数据科学家 机器学习专业人员在典型的数据科学项目中处理大量各种类型的数据。 已经开发了许多具有各种配置和功能的模型,以及参数调整的多次迭代以获得最佳性能。
在这种情况下,必须监控和测量所有数据修改和模型构建过程调整,以确定哪些有效,哪些无效。 能够回到以前的版本并查看以前的结果也很重要。
数据版本控制 (DVC) 有助于管理数据、基础模型和运行可重现的结果,它就是一种使我们能够监控所有这些的技术。
在这篇文章中,我们将仔细研究数据版本控制以及最佳使用工具。 让我们开始。
什么是数据版本控制?
所有生产系统都需要版本控制。 对最新数据的单点访问。 任何经常修改的资源,尤其是同时被多个用户修改的,都需要创建审计跟踪来跟踪所有更改。
版本控制系统负责确保团队中的每个人都在同一页面上。 它保证团队中的每个人都在处理文件的最新版本,更重要的是,每个人都在同一个项目上进行协作。
如果你有合适的设备,你可以用最小的努力完成这个!
如果您使用可靠的数据版本管理策略,您将拥有一致的数据集和所有研究的完整存档。 如果您关心可重复性、可追溯性和 ML 模型历史,那么数据版本控制工具对您的工作流程至关重要。
它们帮助您获取项目的版本,例如数据集或模型的哈希,然后您可以使用它来识别和比较。 此数据版本通常会输入到您的元数据管理解决方案中,以确保您的模型训练是版本化和可重复的。
最佳数据版本控制工具
现在是时候查看可用的最佳数据版本控制解决方案了,您可以使用它来跟踪代码的每个部分。
1. git-lfs
Git LFS 项目可以免费使用。 在 Git 中,音频样本、视频、数据库和照片等大文件被文本指针替换,文件内容保存在 GitHub.com 或 GitHub Enterprise 等远程服务器上。
它允许您使用 Git 对巨大的文件进行版本控制 - 最大大小为几 GB - 在您的 Git 存储库中使用外部存储托管更多文件,并更快地克隆和检索大型文件存储库。 在数据管理方面,这是一个非常简单的解决方案。 要使用 Git,您不需要任何额外的命令、存储系统或工具包。
它限制了您下载的信息量。 这意味着从存储库中克隆和检索大文件会更快。 指针由较轻的材料制成并指向 LFS。
因此,当您将存储库推送到主存储库时,它会快速更新并占用更少的空间。
优点
- 轻松集成到大多数企业的开发工作流程中。
- 无需处理额外的权限,因为它使用与 Git 存储库相同的权限。
缺点
- Git LFS 需要使用专用服务器来存储您的数据。 结果,您的数据科学团队将被锁定,您的工程工作量将增加。
- 非常专业,可能需要在数据科学工作流程的后续阶段使用各种不同的工具。
定价
它可供所有人免费使用。
2. 湖FS
LakeFS 是一种开源数据版本控制解决方案,将数据存储在 S3 或 GCS 中,并具有类似 Git 的分支和提交范式,可扩展到 PB。
这种分支策略使您的数据湖 ACID 兼容,因为它允许在不同的分支中发生更改,这些分支可以原子地和即时地构建、合并和回滚。
LakeFS 使团队能够创建可重复、原子化和版本化的数据湖活动。 这是现场的新手,但它是一股不可忽视的力量。
它使用类似 Git 的分支和版本控制方法与您的 数据湖,可扩展至 PB 级数据。 在 EB 规模上,您可以检查版本控制。
优点
- 类似 Git 的操作包括分支、提交、合并和恢复。
- 预提交/合并挂钩用于数据 CI/CD 检查。
- 为简单的云存储(如 S3 和 GCS)提供复杂的功能,如 ACID 事务,同时保持格式中立。
- 实时还原对数据的更改。
- 易于扩展,使其能够容纳非常巨大的数据湖。 可以为开发和生产设置提供版本控制。
缺点
- LakeFS 是一个新产品,因此功能和文档的变化可能比以前的解决方案更快。
- 由于它专注于数据版本控制,因此您需要为数据科学工作流程的各个部分使用各种附加工具。
定价
它可供所有人免费使用。
3. DVC
Data Version Control 是专为数据科学和机器学习应用程序设计的免费数据版本控制解决方案。 这是一个允许您以任何语言定义管道的程序。
通过管理大型文件、数据集、机器学习模型、代码等,该工具使机器学习模型可共享和可重现。 该程序遵循 Git 提供的简单命令行,只需几个步骤即可设置。
顾名思义,DVC 不仅仅是数据版本控制。 它还有助于团队管理管道和机器学习模型。
最后,DVC 将有助于提高团队模型的一致性和可重复性。 不要在代码中使用复杂的文件后缀和注释,而是利用 git分支 尝试新的想法。 旅行时,使用自动度量跟踪而不是纸和铅笔。
传输一致的捆绑包 机器学习 模型、数据和代码到生产、遥远的计算机或同事的桌面,您可以使用推/拉命令而不是临时脚本。
优点
- 它是轻量级的、开源的,并且适用于所有主要的云平台和存储类型。
- 灵活,与格式和框架无关,并且易于实现。
- 每个 ML 模型的整个演变都可以追溯到其源代码和数据。
缺点
- 流水线管理和 DVC 版本控制密不可分。 如果您的团队已经在使用另一个数据管道产品,则会出现冗余。
- 由于 DVC 是轻量级的,您的团队可能需要手动设计其他功能以使其更加用户友好。
定价
它可供所有人免费使用。
4. 三角湖
DeltaLake 是一个开源存储层,可提高数据湖的可靠性。 除了流和批处理数据处理之外,Delta Lake 还支持 ACID 事务和可扩展的元数据管理。
它与 Apache Spark API 一起使用,并位于您现有的数据湖上。 Delta Sharing 是世界上第一个用于企业安全数据共享的开放协议,使与其他企业的数据交换变得简单,而不受其计算机系统的影响。
Delta Lakes 能够轻松处理 PB 级的数据。 元数据的存储方式与数据相同,用户可以使用 Describe Detail 方法获取。 Delta Lakes 有一个单一架构,可以同时读取流数据和批处理数据。
Upserts 使用 Delta 很简单。 这些更新插入或合并到 Delta 表中可与 SQL 合并相媲美。 您可以使用它将来自另一个数据框的数据集成到您的表中并执行更新、插入和删除。
优点
- 许多功能,如 ACID 事务和强大的元数据管理,都可以在您当前的数据存储解决方案中使用。
- Delta Lake 现在可以毫不费力地管理具有数十亿个 PB 级分区和文件的表。
- 减少对手动数据版本控制和其他数据问题的需求,使开发人员能够专注于在其数据湖之上开发产品。
缺点
- 由于设计用于处理 Spark 和海量数据,Delta Lake 通常对于大多数任务来说都太过分了。
- 它需要使用专用的数据格式,这限制了它的灵活性并使其与您当前的表格不兼容。
定价
它可供所有人免费使用。
5. 多尔特
Dolt 是一个 SQL 数据库,它以与 git 存储库相同的方式进行分叉、克隆、分支、合并、推送和拉取。 为了改善版本控制数据库的用户体验,Dolt 允许数据和结构同步更改。
它是您和您的同事协作的绝佳工具。 您可以像连接到任何其他 MySQL 数据库一样连接到 Dolt,并使用 SQL 命令运行查询或更改数据。
在数据版本控制方面,Dolt 是独一无二的。 Dolt 是一个数据库,与其他一些仅版本数据的解决方案相反。 虽然该软件目前处于早期阶段,但希望在不久的将来使其与 Git 和 MySQL 完全兼容。
您熟悉的与 Git 一起使用的所有命令也适用于 Dolt。 Git 版本文件、Dolt 版本表使用命令行界面,导入 CSV 文件,提交您的更改,将它们发布到远程,并合并您队友的更改。
优点
- 轻巧和 开放源码 部分。
- 与更晦涩的选择相比,它有一个 SQL 接口,使数据分析师更容易访问它。
缺点
- 与其他数据库版本控制替代方案相比,Dolt 仍然是一个开发中的产品。
- 由于 Dolt 是一个数据库,因此您必须将数据传输到其中才能获得好处。
定价
欢迎大家使用社区会议。 平台不提供溢价; 相反,您必须联系提供商。
6. 厚皮动物
Pachyderm 是一个免费的数据科学版本控制系统,具有很多功能。 Pachyderm Enterprise 是一个强大的数据科学平台,专为在高度安全的环境中进行大规模协作而设计。
Pachyderm 是该列表中为数不多的数据科学平台之一。 Pachyderm 的目标是提供一个平台来管理完整的数据周期,并使复制机器学习模型的结果变得简单。 在这种情况下,Pachyderm 被称为“数据的 Docker”。 Pachyderm 使用 Docker 容器打包您的执行环境。 这使得复制相同的结果变得简单。
由于版本化数据与 Docker 相结合,数据科学家和 DevOps 团队可以放心地部署模型。 得益于高效的存储系统,可以维护 PB 级的结构化和非结构化数据,同时将存储成本降至最低。
在整个管道阶段,基于文件的版本控制为所有数据和工件(包括中间输出)提供全面的审计记录。 该工具的许多功能都是由这些支柱驱动的,这有助于团队充分利用它。
优点
- 基于容器,您的数据环境将是可移植的,并且易于在云提供商之间传输。
- 强大,能够从小型系统扩展到超大型系统。
缺点
- 由于有很多移动元素,例如处理 Pachyderm 免费版所需的 Kubernetes 服务器,因此学习曲线更加陡峭。
- Pachyderm 可能很难融入公司现有的基础设施,因为它有许多技术组件。
定价
您可以通过社区会话开始使用该平台,对于企业版,您必须联系供应商。
7. 海王星
模型构建元数据由 ML 元数据存储管理,这是 MLOps 堆栈的一个重要方面。 对于每个 MLOps 工作流程,Neptune 都用作集中式元数据存储。
您可以在一个地方跟踪、可视化和比较数千个机器学习模型。 它包括实验跟踪、模型注册和模型监控等功能,以及协作界面。 它包含超过 25 个不同的工具和库,包括几个模型训练和超参数调整工具。
您无需使用信用卡即可加入 Neptune。 一个 Gmail 帐户就足够了。
优点
- 与任何管道、流、代码库或框架的集成都很简单。
- 实时可视化、简单的 API 和快速的支持
- 使用 Neptune,您可以在一个位置对所有实验数据进行“备份”,以便日后恢复。
缺点
- 尽管不是完全开源的,但个人版本可能足以供私人使用,尽管这种访问仅限于一个月。
- 有一些小的设计缺陷需要被发现。
定价
您可以通过个人计划开始使用该平台,该计划可供所有人免费使用。 定价部分从每月 150 美元起。
结论
在这篇文章中,我们讨论了最好的数据版本控制工具。 正如我们所见,每个工具都有自己的一组功能。 有些是免费的,有些则需要付费。 有些非常适合小型商业模式,而另一些则更适合大型商业模式。
因此,在权衡利弊后,您必须为您的目的选择最好的软件。 我们鼓励您在购买高级产品之前测试免费试用版。
发表评论