2023年机器学习研究中的顶级数据版本控制工具
2023年机器学习研究中的数据版本控制工具
所有用于生产的系统都必须有版本控制。一个单一的位置,用户可以访问最新的数据。对于经常修改的资源,特别是当有多个用户同时进行更改时,必须创建审计日志。
为了确保团队中的每个人都处于相同的状态,版本控制系统负责此任务。它确保团队中的每个人都在同时协作同一项目,并且每个人都在使用文件的最新版本进行工作。如果您有正确的工具,您可以迅速完成此任务!
如果您使用可靠的数据版本管理方法,您将拥有一致的数据集和完整的研究存档。如果您关注可重复性、可追溯性和机器学习模型的历史,数据版本控制解决方案对您的工作流程至关重要。
- 中国的研究人员提出了一种基于联邦学习(FL)的新型μXRD图像筛选方法,旨在在保护数据隐私的同时提高筛选效果
- 梅奥诊所的AI研究人员引入了一种基于机器学习的方法,利用扩散模型构建了一种多任务的脑肿瘤修复算法
- 2023年顶级数据仓库工具
它们可以帮助您获取对象的副本,例如数据集或模型的哈希值,您可以用来进行区分和对比。这些数据版本通常记录在您的元数据管理解决方案中,以确保您的模型训练具有版本控制和可重复性。
现在是时候了解市场上最好的数据版本控制工具,以便您可以跟踪代码的每个组成部分。
Git LFS
Git LFS项目的使用是不受限制的。Git将大文件的内容保存在远程服务器上,例如GitHub.com或GitHub企业版,并用文本指针替换大文件。被替换的文件类型包括音频样本、电影、数据库和照片等。
它使您能够使用Git快速克隆和检索大型文件存储库,在Git存储库中使用外部存储托管更多文件,并对大小达到几GB的大型文件进行版本控制。在数据处理方面,这是一个相对简单的解决方案。您不需要其他工具包、存储系统或脚本来使用Git。它限制了您下载的数据量。这意味着复制大文件将比从存储库获取它们更快。这些点指向LFS,并由较轻的材料制成。
LakeFS
LakeFS是一个开源的数据版本控制解决方案,它具有类似于Git的分支和提交方法,可扩展到Petabytes级别,并将数据存储在S3或GCS中。通过允许在可以创建、合并和回滚的单独分支中进行修改,该分支方法使您的数据湖符合ACID标准,并且可以原子性和即时地进行。
使用LakeFS,团队可以开发可重复、原子和版本控制的数据湖活动。虽然它在场景中是新的,但它是一个需要认真对待的力量。它使用类似于Git的分支和版本管理方法与您的数据湖进行交互,并且可以扩展到Petabytes级别的数据。您可以在数量级为exabyte的范围内进行版本控制。
DVC
Data Version Control是一种适用于数据科学和机器学习应用的易于使用的数据版本控制解决方案。您可以使用此应用程序以任何语言定义您的流程。
DVC并不仅仅专注于数据版本控制,正如其名称所示。该工具通过管理大文件、数据集、机器学习模型、代码等,使机器学习模型共享和可重复。此外,它还使团队更容易管理流水线和机器学习模型。该应用程序通过提供简单的命令行来遵循Git的示例,可以快速配置。
最后,DVC将有助于增加团队模型的可重复性和一致性。使用Git分支来测试新的想法,而不是代码的复杂文件后缀和注释。在旅行时使用自动度量跟踪,而不是纸和笔。
您可以使用推送/拉取命令,而不是临时脚本,将一致的机器学习模型、数据和代码包传输到生产环境、远程机器或同事的桌面。
DeltaLake
名为DeltaLake的开源存储层增加了数据湖的可靠性。除了支持批处理和流式数据处理外,Delta Lake还提供可扩展的元数据管理。它依赖于您当前的数据湖,并使用Apache Spark API。通过Delta Sharing,这是第一个用于安全数据共享的开放协议,可以简单地与其他公司交换数据,而不受其计算机系统的限制。
Delta Lake的架构可以读取批处理和流式数据。Delta Lake可以轻松处理Petabytes级别的数据。用户可以使用Describe Detail方法访问存储在与数据相同方式存储的元数据。
使用Delta使upserts变得简单。类似于SQL合并,这些upserts或合并到Delta表中。它允许您编辑、插入和删除数据,并将另一个数据框的数据集成到您的表中。
Dolt
Dolt是一个类似于git存储库的SQL数据库,可以进行fork、clone、branch、merge、push和pull。Dolt使数据和结构可以同时更改,以增强版本控制数据库的用户体验。
这是一个与您和同事之间进行协作的绝佳工具。您可以像与任何其他MySQL数据库一样使用SQL命令进行查询或更改Dolt中的数据。
在数据版本控制方面,Dolt是独特的。与一些仅对数据进行版本控制的系统不同,Dolt是一个数据库。尽管该应用程序目前处于早期阶段,但与Git和MySQL的完全集成即将实现。
使用Dolt,您可以使用任何您习惯使用Git的命令。使用Git进行文件版本控制,使用Dolt导入CSV文件进行表格版本控制,提交您的更改,将其发布到远程,并使用命令行界面合并您的团队成员的更改。
Pachyderm
Pachyderm是一个强大的免费数据科学版本控制系统。Pachyderm Enterprise是一个功能强大、安全性高的数据科学平台,用于广泛的团队协作。
Pachyderm是列表中为数不多的数据科学平台之一。Pachyderm的使命是提供一个控制整个数据循环并简化重复生成机器学习模型结果的平台。从这个意义上说,Pachyderm被称为“数据的Docker”。Pachyderm使用Docker容器封装您的执行环境,这使得再次获得相同的结果变得简单。
版本化的数据和Docker使数据科学家和DevOps团队能够自信地部署模型。一个实用的存储系统可以维护数PB的结构化和非结构化数据,同时存储成本很低。
基于文件的版本控制为整个管道阶段的所有数据和工件(包括中间输出)提供了完整的审计跟踪。这些基石是该工具许多功能的基础,使团队能够充分利用它。
Neptune
ML元数据存储是MLOps堆栈的关键组成部分,用于管理模型构建元数据。Neptune作为一个综合的元数据存储,适用于每个MLOps工作流。
数千个机器学习模型可以在一个地方进行跟踪、展示和比较。它具有协作界面和功能,包括实验跟踪、模型注册和模型监控。它集成了25多个工具和库,包括多个用于超参数调优和模型训练的工具。可以使用Gmail帐号进行Neptune注册,无需使用信用卡。它的位置将由Gmail帐号填补。
Mercurial
Mercurial(Hg)是一个易于使用的分布式源代码管理解决方案,它是免费且开源的。Hg是一个使用Python创建的与平台无关的工具。它是一个快速、简单易用的设备,不需要维护。非技术贡献者可以轻松使用,因为它具有良好的文档。它具有增强的安全功能。然而,由于无法编辑先前的提交,它缺乏变更控制。
CVS
使用CVS(Concurrent Version System)可以处理多个源代码版本。通过在平台上共享存储库来共享版本文件,使团队合作变得简单。CVS不像其他程序那样制作多个源代码文件的副本。相反,它只保留一份代码副本,并跟踪任何更改。它具有很高的可靠性,因为它禁止包含错误的提交。由于它只记录对代码所做的更改,因此简化了代码审查过程。
Lightrun
开源的Web界面和可观察性平台Lightrun使用类似于Git的实践。您的团队所做的每一次移动和修改都会被记录下来,方便审核。您可以实时按需为应用程序添加日志、分析和跟踪,以更快地修复任何错误。它提供了关键的安全功能,如阻止名单、加强的身份验证机制和加密通信通道。它包括强大的可观察性功能。与应用程序配合使用,可以实现零停机时间。调试时间可以大大缩短。基于命令的简单流程。
HelixCore
Perforce的版本控制程序称为HelixCore。通过跟踪和管理源代码和其他数据的更改,它简化了复杂产品的开发。使用Streams功能进行配置更改的分支和合并。HelixCore具有高度可伸缩性,并且使查看更改历史变得简单。它包含了一个本地的命令行工具。能够与外部机构进行集成。具有更好的安全性的多重认证和访问功能。
Liquibase
Liquibase是一个依赖于迁移并使用更改日志功能来跟踪数据库修改的数据库版本控制解决方案。它基于XML的changeset定义允许您在各种平台上操作数据库模式。有两个版本可用:开源和付费。允许特定的回滚来撤销修改。支持多种不同类型的数据库。允许以多种形式指定更新,包括SQL、XML和YAML