將機器學習工作流程自動化,以將 AI 融入 Visual Studio 中

了解 Microsoft 開發人員部門的資料科學家和工程師如何使用機器學習作業 (MLOps) 做法,將成功的實驗結果變成高流量的產品功能。

挑戰為:從原型到大規模實際執行

經過六個月的 AI 和機器學習實驗,以期提升開發人員的生產力,Microsoft 開發人員部門有一小群應用資料科學家終於建立出模型,能夠主動預測開發人員在編碼時可能呼叫的 C# 方法。

這個成功的機器學習原型經過嚴謹的品質、可用性和調整測試,能夠滿足 Visual Studio 使用者的需求後,就會成為 AI 輔助程式碼預測功能 Visual Studio IntelliCode 的基礎。他們必須邀請工程小組建立機器學習平台,並將該流程自動化。而且這兩個小組都必須採用 MLOps 文化,將 DevOps 原則延伸到端對端機器學習生命週期。

應用科學和工程小組齊心協力建置出機器學習管線,能夠反覆執行模型訓練流程,並將應用科學小組在原型階段中手動進行的多項工作自動化。該管線可讓 IntelliCode 調整規模及支援 6 種程式設計語言,管線也會使用各種開放原始碼 GitHub 存放庫中的程式碼範例,定期訓練新模型。

"Clearly, we were going to be doing a lot of compute-intensive model training on very large data sets every month—making the need for an automated, scalable, end-to-end machine learning pipeline all that more evident."

資料和 AI 小組的首席軟體工程經理 Gearard Boland

透過 MLOps 從見解中獲益

在 IntelliCode 推出後,小組發現有個機會能夠讓他們設計更好的使用者體驗,那就是根據每位客戶特有的編碼習慣來建立小組完成模型。若要將這些機器學習模型個人化,就需要在 Visual Studio 或 Visual Studio Code 使用者提出要求時,自動視需求訓練和發佈模型。為了使用現有管線大規模地執行這些功能,小組使用了 Azure 服務,例如 Azure Machine LearningAzure Data FactoryAzure BatchAzure Pipelines

"When we added support for custom models, the scalability and reliability of our training pipeline became even more important"

資料和 AI 小組的首席軟體工程經理 Gearard Boland

整合兩個不同的觀點

為了建置機器學習管線,小組必須定義共同的標準和方針,以便用共同的語言溝通、分享最佳做法,並更順利地共同作業。組員也必須了解彼此處理專案的方法。在資料科學小組以實驗的方式,快速地反覆執行模型建立流程時,工程小組則致力於確保 IntelliCode 符合 Visual Studio 使用者對於實際執行層級功能的期待。

現在,整個機器學習管線 (訓練、評估、封裝和部署) 都會自動執行,並滿足每個月超過 9000 個由 Visual Studio 和 Visual Studio Code 使用者提出的模型建立要求。小組正在尋找使用其管線在其他 Microsoft 產品中建置其他 AI 功能的方式,並為客戶提供更豐富的體驗。

了解小組如何逐步實作 MLOps。

閱讀完整案例