MLOpsスタックとは?

MLOps スタックは、機械学習プロジェクトワークフローのインフラストラクチャの作成を自動化します。 開発環境、ステージング環境、および本番運用環境全体で継続的に展開するための機械学習の実装と運用に必要な要素を設定します。

  • モデルのトレーニング、デプロイ、推論のための機械学習パイプライン。

  • 特徴量テーブル.

  • Release pipeline for 本番運用.

MLOps スタックは、Databricks CLI と Databricks アセット バンドルに完全に統合されており、Databricks でデータ資産と機械学習資産の両方を開発、テスト、デプロイするための単一のツールチェーンを提供します。 MLOps スタックによって作成された環境は、 Databricks が推奨する MLOps ワークフローを実装します。 コードをカスタマイズして、組織のプロセスや要件に合わせてスタックを作成できます。

この記事では、MLOpsスタックの仕組みと、MLOpsによって作成されるプロジェクトの構造について説明します。

MLOpsスタックのコンポーネント

「スタック」とは、開発プロセスで使用される一連のツールを指します。 デフォルトのMLOpsスタックは、統合されたDatabricksプラットフォームを利用し、次のツールを使用します。

MLOpsスタックはどのように機能しますか?

Databricks CLI を使用して MLOps スタックを作成します。 詳細な手順については、「 MLOps スタックの Databricks アセット バンドル」を参照してください。

MLOps Stacksプロジェクトを開始すると、ソフトウェアによって構成の詳細が入力され、プロジェクトを構成するファイルを含むディレクトリが作成されます。 このディレクトリ (スタック) は、Databricks が推奨する本番運用 MLOps ワークフローを実装します。 図に示されているコンポーネントは自動的に作成され、カスタムコードを追加するために必要なのはファイルを編集するだけです。

MLOpsスタックのコンポーネント図

組織は、デフォルトのスタックを使用することも、必要に応じてカスタマイズして、組織の慣行に合わせてコンポーネントを追加、削除、または変更することもできます。 詳細については、 GitHub リポジトリの readme を参照してください。

MLOps スタックはモジュール構造で設計されているため、ソフトウェア エンジニアリングのベスト プラクティスに従い、本番運用グレードの CI/CD を維持しながら、さまざまな機械学習チームがプロジェクトで独立して作業できます。 本番運用エンジニアは、データサイエンティストが機械学習パイプラインとモデルを開発、テスト、および本番運用に展開するための機械学習インフラストラクチャを構築します。

図の緑色のボックスに示すように、MLOps スタックの 3 つの Databricks コード コンポーネントは次のとおりです。

  • 機械学習 code. データサイエンティストは、Databricks ノートブックまたはローカル IDE でコードを作成できます。 ソース管理には GitHub または Azure DevOps を使用できます。 図に示すように、プロジェクトが作成されると、コード例で実行可能な状態になります。 このコードを編集するか、独自のコードに置き換えます。

  • リソース構成。 これらの .yml ファイルは、トレーニングジョブやバッチ推論ジョブなど、プロジェクトを構成する個々のワークフローを定義します。 これらは、Databricks CLI バンドルを使用して構成およびデプロイされます。 これらのリソースを .yml で定義することで、 ファイルを使用すると、UI を使用して行われた追跡不能な変更ではなく、プル要求を使用して変更を管理、監査、デプロイできます。

  • CI/CD ワークフロー。 これらのワークフローは、GitHub Actions または Azure DevOps を Databricks ワークフローと組み合わせて使用して実装され、開発、ステージング、本番運用ワークスペース全体で ML コード (モデル トレーニング、バッチ推論など) と Databricks ML リソース構成をテストしてデプロイします。 リソースファイルと同様に、これらのワークフローはすべての本番運用の変更を自動化し、テストされたコードのみが本番運用にデプロイされるようにします。

MLOps スタックのプロジェクト構造

MLOps スタックは、プロジェクトのエンドツーエンドの定義として機能するソース ファイルのコレクションである Databricks アセット バンドル を使用します。 これらのソース ファイルには、テスト方法とデプロイ方法に関する情報が含まれています。 ファイルをバンドルとして収集すると、変更を共同バージョン管理したり、ソース管理、コードレビュー、テスト、CI/CDなどのソフトウェアエンジニアリングのベストプラクティスを使用したりすることが容易になります。

この図は、デフォルトのMLOpsスタック用に作成されたファイルを示しています。 スタックに含まれるファイルの詳細については、 GitHub リポジトリ のドキュメントまたは MLOps スタックの Databricks アセット バンドルを参照してください。

MLops スタックのディレクトリ構造

次のステップ

開始するには、「 MLOps スタックの Databricks アセット バンドル」を参照してください。