MLOps的角色是什么?
你有興趣成為一名 MLOps 工程師嗎?今天詳細了解 MLOps 工程師角色。
所以已經建立了一個機器學習模型。它在驗證數據集上達到了預期的性能。很高興能夠應用數據科學和機器學習技能來構建此模型。但是,意識到該模型在 Jupyter notebook 中在本地計算機上運行良好(目前)并不是很有幫助。
為了讓用戶從模型中受益并讓企業利用機器學習,必須將模型部署到生產環境中。然而,部署和維護機器學習模型并非沒有挑戰。在開發環境中表現良好的模型在生產環境中可能會慘敗。這可能是由于數據和概念漂移以及其他導致性能下降的因素造成的。
所以意識到:要使機器學習模型有用,必須超越模型構建。這就是 MLOps 發揮作用的地方。今天,將了解 MLOps 以及MLOps 工程師在組織中的角色。
什么是 MLOps?
通常,會發現 MLOps 被定義為將 DevOps 原則應用于機器學習。
隨著 DevOps 實踐簡化了開發和運營團隊之間的跨職能協作,軟件開發生命周期 (SDLC) 已經變得更好。如果認識從事 DevOps 工作的人,會聽過他們談論 CI/CD 管道、自動化 CI/CD 管道、應用程序監控等。
盡管這可以轉移到機器學習應用程序中,但機器學習系統存在一些特定的挑戰。構建和運行機器學習機器學習系統是一個更復雜的過程。
所以一般來說,可以將 MLOps 視為構建、部署和維護機器學習系統的一組最佳實踐。
有了這個想法,繼續了解組織中的 MLOps 工程師的工作。
MLOps 工程師做什么?
可以將 DevOps 實踐應用于機器學習系統。如果那是 MLOps,那么 MLOps 工程師就有責任做到這一點!
這是什么意思?一旦數據科學團隊構建了模型,MLOps 工程師就會通過以下方式使模型成功運行:
- 自動化機器學習模型部署
- 為 ML 管道設置監控
- 自動化 CI/CD 管道以處理數據、代碼和模型更改
- 設置自動模型再訓練
- 確定所需的自動化水平
與 MLOps 相關的一些挑戰
設置監控只能幫助識別何時出現問題。為了獲得有關模型不同版本性能的更詳細信息,MLOps 工程師經常使用模型版本控制和實驗跟蹤。
我\提到過 MLOps 工程師會設置具有所需自動化水平的模型再訓練。嘗試了解與之相關的挑戰。
一旦將應用程序部署到生產環境中,模型在生產環境中使用的數據可能與訓練它的數據截然不同。結果,這樣的模型會表現得很差,經常不得不重新訓練。
MLOps 工程師還通過考慮性能下降、數據更改頻率和模型再訓練成本來處理再訓練和再訓練過程的自動化。
在一些初創公司中,可能擁有機器學習工程師,也戴著 MLOps 工程師的帽子。而在其他一些公司中,擁有身兼數職的 DevOps 和后端工程師。
一家大型科技公司的 MLOps 可能與早期初創公司的 MLOps 大不相同。MLOps 自動化水平也可能因組織而異。
如果一直在一家初創公司工作,擁有端到端機器學習管道(從模型訓練到監控和維護機器學習系統)的所有權,那么也已經是一名 MLOps 工程師了。
對探索 MLOps 工程師這一具有挑戰性的角色感到興奮嗎?總結一下需要的技能。
MLOps 技能集和工具:概述
MLOps 工程師通常具有很強的 ML、DevOps 和數據工程技能。
MLOps 工程師在組織中的角色
- 機器學習技能:編程、機器學習算法和框架的工作知識以及領域知識
- 軟件工程技能:查詢和使用數據庫、測試 ML 模型、Git 和版本控制、FastAPI 等框架
- DevOps基礎:熟練掌握Docker、Kubernetes等工具
- 實驗跟蹤:熟悉MLflow等實驗跟蹤框架
- 編排數據管道:使用 Prefect 和 Airflow 等工具設置和自動化數據管道
- 云基礎設施:熟悉 AWS、GCP 等云基礎設施提供商和 Terraform 等基礎設施即代碼工具 (IaC)
學習 MLOps
如果您有興趣了解有關 MLOps 的更多信息,可以使用以下資源列表來幫助您入門:
- DataTalks.Club 的 MLOps Zoomcamp:DataTalks.Club 的 MLOps zoomcamp 是一門免費課程,用于學習 MLOps 的所有內容——從模型構建到部署和監控的最佳實踐。將通過構建一個項目來學習,將學到的所有知識組合在一起。
- Coursera 上的 MLOps 專業化:DeepLearning.AI 的機器學習工程生產 (MLOps) 專業化。該專業(包含四門課程)將教如何構建生產級機器學習系統。
- MLOps GitHub 存儲庫:一個精選的存儲庫列表,用于在 MLOps 中升級。
總結
在本文中,介紹了 MLOps 工程師在組織中的首要職責以及關鍵的 MLOps 技能。
如前所述,并非所有執行 MLOps 的工程師都稱為MLOps 工程師。還討論了 MLOps 自動化水平和實際日常工作的依賴程度如何因組織而異。
與任何其他角色一樣,作為一名成功的 MLOps 工程師需要軟技能,例如有效的溝通、協作和戰略性問題解決。也就是說,如果想嘗試成為一名 MLOps 工程師,祝 MLOps 快樂!