使用 LakeFS 提高我們的研究速度

在我處理過的每個軟體工程問題中,我都注意到兩個非常理想的屬性之間反覆出現的緊張關係:靈活性和穩健性。但在每種情況下,這種緊張都會以不同的方式表現出來。

在 Enigma,我們的目標是建立一套完整的美國小型企業的權威檔案。這要求我們整合數百個不同的資料集,並在高度研究驅動的開發過程中不斷創建和完善基於機器學習的演算法。

對我們來說,靈活性意味著我

們不斷整合需要快速實驗和驗證的新資料來源和演算法。穩健性意味著大規模運行複雜的資料管道,同時花費最少的維護時間。

當我們對潛在的研究突破感到興奮

並希望快速測試它對我們的數據資產的影響時,靈活性和穩健性之間的緊張關係就會出現。我們希望在隔離的資料管道中快速部署更改,並根據生產環境中目前運行的內容來衡量結果。

在這篇文章中,我將討論我們嘗試過的各種方法以及為什麼我們現在使用數據分支來解決這種緊張局勢。

以前的方法我們最初嘗試透過不同

的生產和開發管道來解決這個問題。我們從單獨的 git 分支將程式碼部署到開發管道,並在不同的命名空間中維護資料的副本。此解決方案提供了高度的穩健性,但代價是我們所需的靈活性。我們遇到的主要問題是:

我們需要保持開發和生產管道之間的資料同步。充其量,這需要我們將大型資料檔案從生產環境複製到開發環境。最糟糕的情況是,它要求我們重新計算與我們正在運行的實驗無關的開發結果。

進行研究的資料科學家需要在運

行實驗並將其與產品進行比較之前了解我們的開發流程的狀態。結果,我們經常進行耗時的實驗,卻發現我們無法使用結果。在實踐中,資料科學家需要資料工程師的幫助來運行這些實驗。這降低了數據工程團隊的速度並 南非 WhatsApp 號碼數據 限制了數據科學家的自主權。

隨著我們團隊的成長,當我們想要同時執行多個實驗時,我們在開發環境中遇到了越來越多的爭用。不同的資料科學家需要等待開發環境“釋放”,然後才能測試他們的變更。

新方法:資料分支今年早些時候

我們開始探索 LakeFS 的數據分支,作為解決這種緊張局勢的方法。資料分支在物理資料之上覆蓋了類似 git 的抽象。資料分支是邏輯上隔離的資料視圖,可以修改並合併到其他分支。

資料分支使得研究人員可以輕鬆創建基於最新生產資料的環境。透過一個簡單的命令,資料科學家可以為他們的實驗創建一個獨立的資料分支,除了他們所做的特定更改之外,該分支保證與生產相同。這使得資料科學家能夠獨立於資料工程師工作。

WhatsApp數據

資料分支透過允許創建隔離的實驗

環境(每個實驗在不同的分支上運行)來解決環境爭用問題。

LakeFS 分支以簡單的方式解決了隔離挑戰。如今,每個開發人員和研究人員都會創建單獨的資料分支,其中包括產品資料的完 301 重定向 – 儲存您的搜尋位置 整快照(無需額外的儲存成本)。您可以進行變更並檢查其對最終資料集的影響,而不必擔心幹擾其他人的工作或污染生產資料。

對我們來說,運行並行管道並為想要以較慢節奏升級的客戶維護穩定的管道也變得更加容易。

額外好處除了使實驗變得更容易之外

我們還看到了生產流程的其他好處:

驗證分支:我們的資料管道由一系列階段組成。在每個階段之間,我們在將結果提升到下一階段之前執行驗證邏輯。我們意識到,我們可以 印度數據 透過在分支上運行候選管道並在驗證成功時將該分支合併到主分支來替換這種手工製作的升級邏輯。

資料集標記:我們面臨的另一個挑戰是確定哪些資料集版本對我們的最終資料資產做出了貢獻。標記分支提供了有關進入管道的完整中間資料集集的清晰語義。這在診斷最終資料資產的問題和異常時非常有用。

建造與購買在簡要考慮使用 git 分支

將其實作為元資料層後,我們決定與 LakeFS 合作提供我們的資料分支解決方案。造成這種情況的原因有以下幾個:

LakeFS 100% 專注於提供資料分支解決方案。我們非常喜歡他們專注於解決這個問題。

我們對公司人員的才能印象深刻,包括他們的領導力和技術人才。我的經驗是,具有高度個人誠信和明確重點的聰明人最有能力解決難題。

他們在兩年前就推出了開源解決方案,所以核心能力已經經過實戰檢驗了。他們正在發布其產品的雲端託管版本,這意味著對我們內部團隊的維護和支援更少。

返回頂端