機械学習ワークフローを自動化して Visual Studio に AI を採り入れる
機械学習ワークフローを自動化して Visual Studio に AI を採り入れる
Microsoft 開発者部門のデータ科学者とエンジニアがどのように、実験の成功から高トラフィック製品機能への転換を機械学習の運用 (MLOps) の実践によって達成したかをご紹介します。
課題: プロトタイプから実稼働までを大規模に
6 か月にわたり、開発者の生産性向上を目指して AI と機械学習の実験を続けてきた Microsoft 開発者部門内の少数の応用データ科学者で構成されるチームは、開発者によるコーディング中に呼び出される可能性が高い C# メソッドをアクティブに予測するモデルを得ることができました。
この成功を収めた機械学習プロトタイプは後に Visual Studio IntelliCode (AI 支援のコード予測機能) の基礎となるものでしたが、Visual Studio ユーザーの要件を満たすための厳格な品質、可用性、およびスケーリングのテストはまだ受けていませんでした。機械学習プラットフォームを作り、そのプロセスを自動化するにはエンジニアリング チームの参加が必要でした。この両チームが MLOps の文化を取り入れて DevOps の原則を機械学習ライフサイクル全体に拡張することも必要でした。
サイエンスとエンジニアリングのチームは一体となって機械学習パイプラインを構築し、これでモデルのトレーニング プロセスを繰り返すとともに、応用サイエンス チームがプロトタイプ段階のときに手動で行っていた作業の多くを自動化しました。このパイプラインによって、IntelliCode をスケーリングして 6 つのプログラミング言語をサポートできるようになり、その結果、多数のオープンソース GitHub リポジトリからのコード サンプルを使用して新しいモデルを定期的にトレーニングすることができるようになりました。
課題: プロトタイプから実稼働までを大規模に
課題: クラウド運用モデルへの適応
"明らかに、私たちは大量のコンピューティング集中型モデル トレーニングを非常に大規模なデータ セットに対して毎月実行しようとしていました。そのため、自動化されたスケーラブルなエンドツーエンドの機械学習パイプラインの必要性が明白になりました。"
Gearard Boland (データ & AI チーム プリンシパル ソフトウェア エンジニアリング マネージャー)
MLOps で分析情報を活用する
IntelliCode がロールアウトされると、両チームにはさらに優れたユーザー エクスペリエンスを設計する機会が訪れました。それは、お客様それぞれの固有のコーディング習慣に基づくチーム入力候補モデルを作ることです。このような機械学習モデルをパーソナライズするには、モデルのトレーニングと発行をオンデマンドで自動的に、つまり Visual Studio や Visual Studio Code のユーザーから要求されるたびに実行できることが必要でした。既存のパイプラインを使用してこれらの機能を大規模に実行するために、両チームは Azure Machine Learning、Azure Data Factory、Azure Batch、Azure Pipelines などの Azure サービスを使用しました。
課題: クラウド運用モデルへの適応
"カスタム モデルのサポートを追加したときに、トレーニング パイプラインのスケーラビリティと信頼性がさらに重要になりました"
Gearard Boland (データ & AI チーム プリンシパル ソフトウェア エンジニアリング マネージャー)
2 つの異なる観点を持ち寄る
機械学習パイプラインを構築するにあたり、両チームは共通の標準とガイドラインを定義する必要がありました。それは意思疎通を可能にし、ベスト プラクティスを共有し、より良いコラボレーションを実現するためです。また、プロジェクトに対する互いのアプローチについても理解が必要でした。データ サイエンス チームの作業は実験が中心で、モデル作成を短時間で繰り返していましたが、エンジニアリング チームの主眼は、実稼働レベルの機能を求める Visual Studio ユーザーの期待に IntelliCode が応えられるようにすることでした。
現在では、機械学習パイプライン全体 (トレーニング、評価、パッケージング、デプロイ) が自動的に実行されており、Visual Studio と Visual Studio Code のユーザーからの月間 9,000 件を超えるモデル作成リクエストを処理しています。両チームは、このパイプラインを使用して追加の AI 機能を他の Microsoft 製品に組み込むことでさらに充実したエクスペリエンスをお客様に提供する方法を模索しています。