跳轉到主要內容
工程的博客

加速毫升MLflow實驗

2021年2月10日 工程的博客

分享這篇文章

今年秋天,我和ML團隊實習,負責構建工具和服務,使其容易在磚做機器學習。在我實習期間,我幾個易用性特性實現MLflow機器學習,一個開源項目生命周期管理,並增強繁殖功能的運行磚毫升的平台Beplay体育安卓版本。這篇博客走過我的一些最有效的項目和磚向客戶提供的好處。beplay体育app下载地址

Autologging改進

MLflow autologging自動跟蹤機器學習培訓,記錄有價值的參數、指標,和工件。
MLflow autologging自動跟蹤機器學習培訓,記錄有價值的參數、指標、模型構件。

MLflow autologging去年引入,為數據科學家提供了一個簡單的方法來自動跟蹤相關的度量標準和參數當訓練機器學習(ML)模型隻需添加兩行代碼。我上半年的實習期間,我多次增強autologging特性。

輸入例子和模型簽名

作為啟動項目,我努力實現輸入和模型簽名支持MLflow的例子XGBoostLightGBM集成。輸入的例子是一個快照的推理模型的輸入。簽名模型定義了輸入和輸出字段和類型,為批處理和實時模型提供輸入模式驗證能力得分。在一起,這些屬性豐富autologged模型,使ML從業者整個組織很容易解釋和集成生產應用程序。

有效地測量培訓進展

接下來,我擴大了迭代/時代日誌支持MLflow autologging。當訓練一個模型,該模型通過多次迭代來提高精度。如果培訓需要很多小時,它有助於跟蹤性能指標,如精度,在整個培訓過程中,以確保它的程序。

同時,同樣重要的是確保收集這些性能指標不減緩培訓過程。由於我們每次調用日誌API是一個網絡電話,天真地登錄每個迭代意味著網絡延遲可以輕鬆添加時間的很大一部分。

我們原型幾個方案來平衡易用性、性能和代碼的複雜性。最初,我們嚐試了一個多線程的方法訓練發生在主線程和日誌是並行執行的線程。然而,在原型,我們觀察到的性能優勢相比,這種方法是最小的實現複雜度。

我們最終選定了一個基於時間的方法,在同一線程中執行培訓和日誌記錄。使用這種方法,MLflow措施時間訓練和日誌記錄,隻記錄指標當培訓所花費的時間達到10 x所花費的時間日誌記錄。這樣,如果每次迭代需要很長時間,MLflow日誌度量日誌以來每次迭代時間是訓練時間相比可以忽略不計。相反,如果每次迭代快,MLflow商店迭代結果和日誌作為一個包後幾個訓練迭代。在這兩種情況下,可以觀察到在實時培訓進展,具有一個額外的延遲不超過10%的開銷。

MLflow日誌優化有助於減少對短期和長期的訓練周期延遲。

左:當訓練迭代是短暫的,我們一起批指標和日誌若幹次迭代完成後。正確的:當訓練迭代時間,每次迭代後我們日誌指標,這樣可以跟蹤進度。這兩種情況下避免施加巨大的延遲開銷。

通用autolog

最後,我介紹了一個通用的mlflow.autolog ()API來進一步簡化毫升儀器。所有支持這個統一的API允許autologging毫升庫集成,消除了需要添加一個單獨的API調用每個庫中使用的培訓過程。

軟件環境再現性

毫升的性能和特征模型依賴於軟件環境(特定的庫和版本)的訓練。更有效地幫助磚用戶複製他們的ML的結果,我庫支持添加到“複製運行”功能。

磚現在商店安裝庫的信息當創建一個MLflow運行。當用戶想要複製環境用於訓練模型,他們可以點擊“複製運行”MLflow UI創建一個新的集群運行的計算資源和圖書館一樣最初的訓練。

在MLflow,點擊“複製運行”從MLflow UI創建一個新的集群運行相同的計算資源和圖書館最初的訓練。

點擊“複製”打開一個模態對話框,允許用戶查看的計算資源和圖書館重新安裝複製。在點擊“確認”,筆記本是無縫克隆和附加到磚集群的計算資源和圖書館作為一個用於訓練模型。

MLflow,單擊“複製”打開一個模態對話框允許用戶檢查的計算資源和圖書館重新安裝為了繁殖。

工程這個功能工作在整個堆棧。大部分的時間都花在後台工作,我不得不協調幾個microservices創建新集群之間的通信和重新安裝的庫。它也是有趣的學習反應和回來的實現UI時根據設計團隊的模型。

結論

這16周的磚是一種驚奇的體驗。真正引人注目的是,我真正擁有我的每個特性。我把每個特性在整個產品周期,包括確定用戶需求,實現最初的原型,編寫設計文檔,進行設計審查,並應用這些反饋原型實現,測試和船最後拋光功能。此外,每個人都在磚是很棒的工作,樂意幫忙,是否與職業建議或反饋關於我工作的特性。特別感謝我的導師科裏Zumar和經理保羅Ogilvie回答我無盡的問題,由於每個人在磚進行最後的實習我的本科最好!

參觀磚職業頁麵更多地了解整個公司即將到來的實習和其他職業機會。

免費試著磚
看到所有工程的博客的帖子
Baidu
map