Croissant:面向机器学习就绪数据集的全新元数据格式
2024年3月6日
Omar Benjelloun,谷歌研究软件工程师;Peter Mattson,谷歌核心ML软件工程师兼MLCommons协会主席
今天我们推出Croissant——一种面向机器学习就绪数据集的全新元数据格式。Croissant由工业界和学术界的社区协作开发,是MLCommons计划的一部分。
机器学习(ML)从业者在重用现有数据集训练模型时,常需花费大量时间理解数据、理清其组织结构或确定特征子集。这种数据表示的多样性已成为ML领域发展的根本障碍。ML数据集涵盖文本、结构化数据、图像、音频和视频等多种内容类型,即使内容类型相同,每个数据集的文件和数据格式也存在独特的临时性安排。这一挑战降低了整个ML开发流程的生产力,从数据查找到模型训练均受影响,同时也阻碍了急需的数据集工具开发。
现有通用元数据格式(如schema.org和DCAT)主要用于数据发现,而非满足ML数据的特定需求,例如从结构化和非结构化源提取和组合数据、包含支持数据负责任使用的元数据,或描述ML使用特征(如定义训练集、测试集和验证集)。
Croissant格式不改变实际数据的表示方式(如图像或文本文件格式),而是提供描述和组织数据的标准方法。它基于schema.org(Web上发布结构化数据的事实标准,已被超过4000万个数据集使用)构建,并通过ML相关元数据、数据资源、数据组织和默认ML语义的全面层次进行增强。
此外,我们宣布了主要工具和存储库的支持:今天,三个广泛使用的ML数据集集合——Kaggle、Hugging Face和OpenML——将开始为其托管的数据集支持Croissant格式;Dataset Search工具允许用户跨Web搜索Croissant数据集;流行ML框架(包括TensorFlow、PyTorch和JAX)可通过TensorFlow Datasets(TFDS)包轻松加载Croissant数据集。
Croissant 1.0版本
Croissant 1.0版本包括格式的完整规范、一组示例数据集、用于验证、使用和生成Croissant元数据的开源Python库,以及一个开源可视化编辑器,以直观方式加载、检查和创建Croissant数据集描述。
支持负责任AI(RAI)是Croissant项目的关键目标。我们还发布了Croissant RAI词汇扩展的首个版本,该扩展通过描述重要RAI用例所需的关键属性增强Croissant,包括数据生命周期管理、数据标注、参与式数据、ML安全性与公平性评估、可解释性和合规性。
为什么需要共享的ML数据格式?
大部分ML工作实际上是数据工作。训练数据是决定模型行为的“代码”。数据集范围从用于训练大语言模型(LLM)的文本集合到用于训练汽车防碰撞系统的驾驶场景(标注视频)集合。然而,开发ML模型的步骤通常遵循相同的以数据为中心的迭代过程:(1)查找或收集数据;(2)清理和精炼数据;(3)在数据上训练模型;(4)在更多数据上测试模型;(5)发现模型不工作;(6)分析数据找出原因;(7)重复直到获得可行模型。许多步骤因缺乏通用格式而变得更加困难。这种“数据开发负担”对资源有限的研究和早期创业努力尤为沉重。
像Croissant这样的格式旨在使整个过程更轻松。例如,搜索引擎和数据集存储库可利用元数据更轻松地找到合适的数据集。数据资源和组织信息使开发用于清理、精炼和分析数据的工具更轻松。这些信息和默认ML语义使ML框架能够用最少的代码使用数据训练和测试模型。这些改进共同显著减轻了数据开发负担。
此外,数据集作者关心其数据集的可发现性和易用性。采用Croissant提高了其数据集的价值,同时只需最小努力,这得益于可用的创建工具和ML数据平台的支持。
Croissant当前能做什么?
今天,用户可以在以下位置找到Croissant数据集:
- 提供Croissant过滤器的Google Dataset Search
- HuggingFace
- Kaggle
- OpenML
使用Croissant数据集,可以:
- 通过TensorFlow Datasets轻松摄取数据,用于TensorFlow、PyTorch和JAX等流行ML框架
- 使用Croissant编辑器UI(github)检查和修改元数据
要发布Croissant数据集,用户可以:
- 使用Croissant编辑器UI(github)通过分析用户提供的数据自动生成大部分Croissant元数据,并填写重要元数据字段(如RAI属性)
- 将Croissant信息作为数据集网页的一部分发布,使其可发现和可重用
- 在支持Croissant的存储库(如Kaggle、HuggingFace和OpenML)中发布数据,并自动生成Croissant元数据
未来方向
我们对Croissant帮助ML从业者的潜力感到兴奋,但使该格式真正有用需要社区的支持。我们鼓励数据集创建者考虑提供Croissant元数据。我们鼓励托管数据集的平台提供Croissant文件下载并将Croissant元数据嵌入数据集网页,以便数据集搜索引擎可发现它们。帮助用户处理ML数据集的工具(如标注或数据分析工具)也应考虑支持Croissant数据集。共同努力,我们可以减轻数据开发负担,实现更丰富的ML研究和开发生态系统。
我们鼓励社区加入我们,为这一努力做出贡献。
致谢
Croissant由谷歌的Dataset Search、Kaggle和TensorFlow Datasets团队开发,作为MLCommons社区工作组的一部分,该工作组还包括来自以下组织的贡献者:Bayer、cTuning Foundation、DANS-KNAW、Dotphoton、Harvard、Hugging Face、Kings College London、LIST、Meta、NASA、North Carolina State University、Open Data Institute、Open University of Catalonia、Sage Bionetworks和TU Eindhoven。