機械学習ワークフローを自動化して、Visual Studio に AI を採り入れる

Microsoft 開発者部門のデータ サイエンティストとエンジニアが、機械学習の運用 (MLOps) プラクティスによって、成功を収めた実験を高トラフィックの製品機能に変えた方法をご覧ください。

課題: プロトタイプから製品まで大規模に

開発者の生産性向上を目的とした 6 か月間の AI と機械学習の実験を行った後、Microsoft 開発部門のデータ サイエンティストで構成された小規模チームは、コーディング中に開発者が呼び出す可能性が高い C# メソッドをアクティブに予測するというモデルにたどり着きました。

この機械学習のプロトタイプは成功を収め、Visual Studio IntelliCode (AI 支援のコード予測機能) の基礎となりましたが、Visual Studio ユーザーの要件を満たすための厳格な品質、可用性、およびスケーリング テストはまだ受けていませんでした。機械学習プラットフォームの作成とそのプロセスの自動化を行うため、エンジニアリング チームに参加してもらう必要がありました。また両チームともに 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."

Gearard Boland (Principal Software Engineering Manager、Data および AI チーム)

MLOps で分析情報を活用する

IntelliCode がロールアウトされたことにより、チームはさらに優れたユーザー エクスペリエンスを設計する機会を得ることができました。それは、各お客様の具体的なコーディング習慣に基づいたチーム完成モデルの作成です。これらの機械学習モデルをカスタマイズするには、Visual Studio または Visual Studio Code ユーザーが要求するたびに、モデルをオンデマンドかつ自動でトレーニングおよび発行する必要がありました。既存のパイプラインを使用してこれらの機能を大規模に実行するために、チームは、Azure Machine LearningAzure Data FactoryAzure BatchAzure Pipelines などの Azure サービスを使用しました。

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

Gearard Boland (Principal Software Engineering Manager、Data および AI チーム)

2 つの異なる観点の統合

自分たち自身の機械学習パイプラインを構築するには、チームで共通の言語を話し、ベスト プラクティスを共有し、共同作業をさらに効率化できるように、共通の標準とガイドラインを定義する必要がありました。また、プロジェクトに対する互いのアプローチについても理解しておく必要がありました。データ サイエンス チームは、モデルの作成をすばやく反復しながら実験的に作業し、一方でエンジニアリング チームは IntelliCode が運用レベルの機能を求める Visual Studio ユーザーの期待に応えられるものになるよう注力しました。

現在では、トレーニング、評価、パッケージング、デプロイなどの機械学習パイプライン全体が自動的に実行されており、Visual Studio および Visual Studio Code ユーザーからの月間 9,000 件を超えるモデル作成リクエストを処理しています。チームは現在も、自分たちのパイプラインを使用して他の Microsoft 製品に追加の AI 機能を構築し、さらに充実したエクスペリエンスを顧客に提供する方法を探しています。

チームが MLOps を実装した方法について、順を追ってご覧ください。

物語を全部読む