趋近智
管理机器学习 (machine learning)项目会遇到特有难题,特别是当数据集和模型过大,无法放入标准Git仓库时。Git擅长代码版本控制,但跟踪数GB大小的文件会影响其性能并导致仓库膨胀。数据版本控制 (DVC) 解决了这些挑战。
DVC是一款开源工具,专门设计用于为数据和模型提供版本控制能力,它与Git协同工作而非取代Git。可以将其视为Git能力的延伸,以应对机器学习中常见的庞大文件。
DVC背后的基本思路很简单:DVC不会将大文件直接存储在Git仓库中,而是存储轻量级的元数据文件(称为.dvc文件),这些文件充当指向实际数据的指针。这些.dvc文件由Git跟踪。
具体情况如下:
dvc add 命令告诉DVC需要跟踪哪些大文件或目录。.dvc文件。该文件包含哈希值和定位实际数据所需的其他信息。.dvc/cache中)。此缓存使用内容寻址存储,即文件根据其哈希值存储。这能防止数据重复;如果同一文件有多个副本(即使名称或位置不同),DVC在缓存中只存储一份。.dvc文件提交到Git,就像处理任何其他代码变更一样。您的Git仓库现在包含代码和这些指针,但没有大文件本身。dvc push 命令将本地缓存中的实际数据推送到远程存储(如云存储桶或网络驱动器)。这样可以方便协作和备份,而不会给Git服务器增加负担。了解DVC需要认识其主要组成部分以及它们如何协同作用:
dvc init、dvc add、dvc push、dvc pull 和 dvc checkout 等命令用于管理数据版本控制过程。.dvc 文件: 这些小型、易读的文本文件(通常为YAML格式)位于您的Git仓库中。它们包含元数据,包括数据文件的哈希值、大小,以及其在DVC缓存或远程存储配置中的潜在路径。它们充当Git历史记录与特定数据版本之间的链接。.dvc/cache),DVC在此处存储实际数据文件,并按其内容哈希值进行组织。此机制通过重复数据删除来保证数据完整性和高效存储。默认情况下,DVC会尝试使用优化的文件链接(如reflinks或硬链接)来避免在您的工作区和缓存之间重复数据,从而节省磁盘空间。DVC旨在补充Git,为代码和数据版本控制创建统一的工作流程:
.py文件、脚本等)和.dvc元数据文件。.dvc文件引用的那些大文件和模型成果。当您在Git中切换分支或检出某个历史提交时,您会得到与该历史点对应的代码和.dvc文件。然而,您工作区中的大文件可能不会自动与这些.dvc文件匹配。为了使您的工作区数据与当前.dvc文件指定的版本保持一致,您通常需要运行 dvc checkout 或 dvc pull。DVC随后会根据.dvc文件中的信息,从缓存或远程存储中获取正确的数据版本,并将其放入您的工作目录。
下图描绘了这种关系:
Git、工作区、DVC 缓存和远程存储之间的关系。Git对代码和
.dvc文件进行版本控制,而DVC则根据.dvc文件中的信息,管理工作区、缓存和远程存储之间的数据流动。
采用DVC能为您的机器学习 (machine learning)项目带来多方面好处:
.dvc文件)关联起来,使实验更容易复现。既然您已了解DVC是什么以及它如何与Git配合使用,接下来的部分将指导您完成在项目中设置DVC、跟踪数据、配置远程存储以及管理不同数据版本的实际步骤。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•