數據科學家 機器學習專業人員在典型的數據科學項目中處理大量各種類型的數據。 已經開發了許多具有各種配置和功能的模型,以及參數調整的多次迭代以獲得最佳性能。
在這種情況下,必須監控和測量所有數據修改和模型構建過程調整,以確定哪些有效,哪些無效。 能夠回到以前的版本並查看以前的結果也很重要。
數據版本控制 (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. 數字電視
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. Neptune
模型構建元數據由 ML 元數據存儲管理,這是 MLOps 堆棧的一個重要方面。 對於每個 MLOps 工作流程,Neptune 都用作集中式元數據存儲。
您可以在一個地方跟踪、可視化和比較數千個機器學習模型。 它包括實驗跟踪、模型註冊和模型監控等功能,以及協作界面。 它包含超過 25 個不同的工具和庫,包括幾個模型訓練和超參數調整工具。
您無需使用信用卡即可加入 Neptune。 一個 Gmail 帳戶就足夠了。
優點
- 與任何管道、流、代碼庫或框架的集成都很簡單。
- 實時可視化、簡單的 API 和快速的支持
- 使用 Neptune,您可以在一個位置對所有實驗數據進行“備份”,以便日後恢復。
缺點
- 儘管不是完全開源的,但個人版本可能足以供私人使用,儘管這種訪問僅限於一個月。
- 有一些小的設計缺陷需要被發現。
方案收費
您可以通過個人計劃開始使用該平台,該計劃可供所有人免費使用。 定價部分從每月 150 美元起。
結論
在這篇文章中,我們討論了最好的數據版本控制工具。 正如我們所見,每個工具都有自己的一組功能。 有些是免費的,有些則需要付費。 有些非常適合小型商業模式,而另一些則更適合大型商業模式。
因此,在權衡利弊後,您必須為您的目的選擇最好的軟件。 我們鼓勵您在購買高級產品之前測試免費試用版。
發表評論