What is 数据版本管理?
跟踪和管理数据集随时间变化的不同版本的实践,实现机器学习工作流中的可重现性、回滚和可审计性。
Definition
数据版本管理将版本控制的原则(软件开发中通过Git熟知的概念)应用到机器学习数据集上。正如Git跟踪代码文件随时间的变化一样,数据版本管理系统跟踪数据集的变化——记录版本之间添加、修改或删除了哪些数据,由谁做出的更改以及何时做出的。这创建了数据集演化的完整历史,支持可重现性、协作和合规。
在ML工作流中,数据版本管理至关重要,因为模型行为是代码和数据的函数。在数据集1.0版上训练的模型可能与在1.3版上训练的模型行为截然不同——即使训练代码完全相同。没有数据版本管理,团队无法可靠地重现过去的结果、将质量回归追溯到数据变更,或在新批次引入问题时回滚到之前的数据集版本。
数据版本管理工具包括DVC(Data Version Control,将Git扩展到处理大数据文件)、LakeFS(为数据湖提供类Git的分支功能)、Delta Lake(为云对象存储中的数据添加ACID事务和版本管理)和Hugging Face Datasets(提供版本化的数据集托管)。每种方法在存储效率、可扩展性和与现有ML管道集成方面有不同的权衡。
Why It Matters
可重现性是生产ML的基本要求。当模型产生意外行为时,团队需要回答:'它究竟是在什么数据上训练的?'没有数据版本管理,这个问题往往无法回答——训练数据可能在模型训练后已被修改、覆盖或丢失。数据版本管理确保每个模型都能追溯到产生它的确切数据集版本。
对于合规来说,数据版本管理提供了监管机构要求的审计轨迹。GDPR的删除权要求组织跟踪哪些数据用于训练了哪些模型。欧盟AI法案要求对训练数据进行文档化。数据版本管理通过维护每个时间点存在哪些数据以及哪些模型在哪些版本上训练的完整历史,使这些要求变得可行。
How It Works
数据版本管理系统通常通过存储数据集快照或增量(版本之间的变化)来工作。基于快照的系统在每个版本存储数据集的完整副本——简单但存储密集。基于增量的系统仅存储版本之间的变化——更节省存储但需要从增量链重构完整数据集。
大多数系统使用内容寻址存储,数据按其哈希值而非文件名存储。当文件更改时,只存储新版本;未更改的文件通过哈希引用在版本之间共享。这种去重将存储开销从线性(与版本数成比例)减少到与实际数据变化成比例。元数据——版本标签、时间戳、作者信息、描述——单独存储,可以在不加载数据本身的情况下浏览。
Example Use Case
一个团队维护着一个每周更新的客户反馈数据集。在更新到版本2.7并重新训练后,模型性能下降了8%。使用数据版本管理,他们将版本2.7与2.6进行比较,发现最新批次中包含来自新标注供应商的500个错误标注样本。他们回滚到版本2.6,重新训练,确认性能恢复,然后与供应商合作修复标注问题,再将修正后的数据作为版本2.8重新整合。
Key Takeaways
- 数据版本管理跟踪数据集随时间的变化,支持可重现性和回滚。
- 它至关重要,因为模型行为取决于代码和数据——两者都必须进行版本管理。
- 内容寻址存储在版本之间对未更改数据进行去重以提高效率。
- 数据版本管理提供GDPR、欧盟AI法案等法规要求的审计轨迹。
- 工具包括DVC、LakeFS、Delta Lake和Hugging Face Datasets。
How Ertas Helps
Ertas Data Suite在数据通过Ingest、Clean、Label、Augment和Export管道时维护版本历史,使团队能够将任何模型追溯到在Ertas Studio中训练时使用的确切数据版本。
Related Resources
Ship AI that runs on your users' devices.
Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.