Databricks では機械学習用の CI/CD はどのようにサポートされますか?

CI/CD (継続的インテグレーションと継続的デリバリー) とは、アプリケーションを開発、デプロイ、監視、保守するために自動化されたプロセスを指します。 コードのビルド、テスト、デプロイを自動化することにより、開発チームは、Data Engineering とデータ サイエンスの多くのチームでいまだに広く用いられている手動プロセスより、頻繁かつ確実にリリースを配布できます。 機械学習用の CI/CD は、MLOps、DataOps、ModelOps、DevOps の手法をまとめています。

この記事では、Databricks が機械学習ソリューション用の CI/CD をサポートする方法について説明します。 機械学習アプリケーションでは、CI/CD はコード資産に対して重要であるだけでなく、入力データとモデルによって生成された結果の両方を含むデータ パイプラインにも適用されます。

ML の CI/CD の要素を示すエンド ツー エンドの MLOps ライフサイクル図。

CI/CD を必要とする機械学習要素

ML 開発の課題の 1 つは、異なるチームがプロセスのさまざまな部分を所有していることです。 チームは、さまざまなツールに依存し、リリース スケジュールが異なる場合があります。 Azure Databricks は、チームの効率を向上させ、データと ML パイプラインの一貫性と再現性を確保するための統合ツールを備えた単一の統合データと ML プラットフォームを提供します。

一般に、機械学習タスクの場合は、自動化された CI/CD ワークフローで以下を追跡する必要があります。

  • トレーニング データ (データ品質、スキーマの変更、分布の変化を含む)。
  • 入力データ パイプライン。
  • モデルをトレーニング、検証、および提供するためのコード。
  • モデルの予測とパフォーマンス。

Databricks を CI/CD プロセスに統合する

MLOps、DataOps、ModelOps、DevOps は、開発プロセスと「運用」の統合を参照し、プロセスとインフラストラクチャを予測可能で信頼性の高いものにします。 この一連の記事では、Databricks プラットフォーム上の ML ワークフローに運用 (「ops」) 原則を統合する方法について説明します。

Databricks には、再現性を確保するための「コードとしての構成」と、クラウド サービスのプロビジョニングを自動化するための「コードとしてのインフラストラクチャ」を構築するためのツールなど、ML ライフサイクルに必要なすべてのコンポーネントが組み込まれています。 また、問題が発生した場合の検出とトラブルシューティングに役立つログ サービスとアラート サービスも含まれます。

DataOps: 信頼性が高くセキュリティで保護されたデータ

優れた ML モデルは、信頼性の高いデータ パイプラインとインフラストラクチャに依存します。 Databricks Data Intelligence Platform では、データを取り込みから提供されたモデルからの出力までのデータ パイプライン全体が 1 つのプラットフォーム上にあり、同じツールセットが使用されるため、生産性、再現性、共有、トラブルシューティングが容易になります。

DataOps 図

Databricks の DataOps タスクとツール

次の表に、Databricks の一般的な DataOps タスクとツールを示します。

DataOps タスク Databricks のツール
データの取り込みと変換を行う オートローダーと Apache Spark
バージョン管理や系列を含むデータの変更を追跡する Delta テーブル
データ処理パイプラインを構築、管理、監視する Delta Live Tables
データのセキュリティとガバナンスを確保する Unity Catalog
探索的データ分析とダッシュボード Databricks SQLダッシュボード、および Databricks ノートブック
一般的なコーディング Databricks SQLDatabricks ノートブック
データ パイプラインをスケジュールする Databricks ジョブ
一般的なワークフローを自動化する Databricks ジョブ
モデル トレーニング用の機能を作成、格納、管理、検出する Databricks Feature Store
データの監視 レイクハウス監視

ModelOps: モデルの開発とライフサイクル

モデルを開発するには、一連の実験と、それらの実験の条件と結果を追跡して比較する方法が必要です。 Databricks Data Intelligence Platform には、モデル開発追跡用の MLflow と、モデル成果物のステージング、提供、格納を含むモデル ライフサイクルを管理するための MLflow が含まれています。

モデルが運用環境にリリースされると、パフォーマンスに影響を与える可能性のある多くの変更が発生する可能性があります。 モデルの予測パフォーマンスを監視するだけでなく、モデルの再トレーニングが必要になる可能性がある品質や統計的特性の変化についても入力データを監視する必要があります。

ModelOps 図

Databricks の ModelOps タスクとツール

次の表に、Databricks によって提供される一般的な ModelOps タスクとツールを示します。

ModelOps タスク Databricks のツール
モデル開発の追跡 MLflow モデル追跡
モデルのライフサイクルを管理する Unity Catalog のモデル
モデル コードのバージョン管理と共有 Databricks Git フォルダー
コードなしのモデル開発 Databricks AutoML
モデルの監視 レイクハウス監視

DevOps: 運用と自動化

Databricks プラットフォームでは、次を使用して ML モデルが運用環境でサポートされています。

  • エンドツーエンドのデータとモデル系列: 運用環境のモデルか同じプラットフォーム上のら生データ ソースへ。
  • 運用レベルのモデル サービス: ビジネス ニーズに基づいて自動的にスケールアップまたはスケールダウンします。
  • ジョブ: ジョブを自動化し、スケジュールされた機械学習ワークフローを作成します。
  • Git フォルダー: コードのバージョン管理とワークスペースからの共有は、チームがソフトウェア エンジニアリングのベスト プラクティスに従うのにも役立ちます。
  • Databricks Terraform プロバイダー: ML 推論ジョブ、提供エンドポイント、および特徴量化ジョブ用のクラウド間のデプロイ インフラストラクチャを自動化します。

モデルの提供

モデルを運用環境にデプロイする場合、MLflow はプロセスを大幅に簡素化し、大量のデータのバッチ ジョブとして、または自動スケール クラスター上の REST エンドポイントとしてシングルクリック デプロイを提供します。 Databricks Feature Store と MLflow の統合により、トレーニングとサービス用の機能の一貫性も確保されます。また、MLflow モデルでは、オンライン サービスの待機時間が短い場合でも、Feature Store から機能を自動的に検索できます。

Databricks プラットフォームでは、多くのモデル デプロイ オプションがサポートされています。

  • コードとコンテナー。
  • バッチ サービス。
  • 待機時間が短いオンライン サービス。
  • オンデバイスまたはエッジ サービス。
  • たとえば、マルチクラウドでは、あるクラウドでモデルをトレーニングし、別のクラウドと共にデプロイします。

詳細については、「Mosaic AI Model Serving」を参照してください。

ジョブ

Databricks ジョブを使用すると、ETL から ML まで、あらゆる種類のワークロードを自動化してスケジュールできます。 Databricks は、Airflow などの一般的なサード パーティ製オーケストレーターとの統合もサポートしています。

Git フォルダー

Databricks プラットフォームには、UI を使用して Git 操作を実行することで、チームがソフトウェア エンジニアリングのベスト プラクティスに従うのに役立つ Git サポートがワークスペースに含まれています。 管理者と DevOps エンジニアは、API を使用して、お気に入りの CI/CD ツールを使用して自動化を設定できます。 Databricks では、プライベート ネットワークを含むあらゆる種類の Git デプロイがサポートされています。

Databricks Git フォルダーを使用したコード開発に関するベスト プラクティスの詳細については、「Git 統合と Databricks Git フォルダーを使用した CI/CD ワークフロー」および「CI/CD を使用する」をご覧ください。 これらの技術と共に、Databricks REST API を使うことで、GitHub Actions、Azure DevOps パイプライン、または Jenkins ジョブによる自動デプロイ プロセスを構築できます。

ガバナンスとセキュリティのための Unity カタログ

Databricks プラットフォームには、Unity カタログが含まれています。これにより、管理者は Databricks 全体のすべてのデータと AI 資産に対してきめ細かなアクセス制御、セキュリティ ポリシー、ガバナンスを設定できます。