Databricks は機械学習の CI/CD をどのようにサポートしていますか?

CI/CD (継続的インテグレーションと継続的デリバリー) とは、アプリケーションを開発、デプロイ、モニタリング、および保守するための自動化されたプロセスを指します。 コードのビルド、テスト、デプロイを自動化することで、開発チームは、多くの データエンジニアリング チームやデータサイエンス チームでまだ普及している手動プロセスよりも頻繁かつ確実にリリースを提供できます。 機械学習のための CI/CD は、MLOps、DataOps、ModelOps、DevOps の手法を組み合わせたものです。

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

機械学習の CI/CD の要素を示すエンドツーエンドの機械学習運用ライフサイクル図。

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

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

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

  • データ品質、スキーマの変更、分布の変更などのトレーニング データ。

  • Input データパイプライン.

  • モデルをトレーニング、検証、および提供するためのコード。

  • 予測とパフォーマンスをモデル化します。

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

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

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

DataOps: 信頼性が高く安全なデータ

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

データオプス図

Databricks の DataOps タスクとツール

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

データ操作タスク

Databricksツール

データの取り込みと変換

オートローダ と Apache Spark

バージョン管理や系列を含むデータの変更を追跡する

Delta テーブル

データ処理パイプラインの構築、管理、監視

Delta Live Tables

データのセキュリティとガバナンスを確保する

Unity Catalog

探索的データ分析とダッシュボード

ノートブックDatabricks SQL および Databricks

一般的なコーディング

ノートブックDatabricks SQL および Databricks

データパイプラインのスケジュール

Databricks Workflows

一般的なワークフローの自動化

Databricks Workflows

モデル トレーニングのための機能の作成、保存、管理、検出

Databricks Feature Store

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

モデルの開発には、一連のエクスペリメントと、それらのエクスペリメントの条件と結果を追跡して比較する方法が必要です。 Databricksデータインテリジェンスプラットフォームには、モデル開発追跡のための MLflow と、モデル成果物のステージング、提供、保存などのモデル ライフサイクルを管理する MLflow Model Registry が含まれています。

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

モデルオプス図

Databricks の ModelOps タスクとツール

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

モデル運用タスク

Databricksツール

トラックモデル開発

MLflow モデルの追跡

モデルのライフサイクルを管理する

Unity Catalogのモデル

モデル コードのバージョン管理と共有

Databricks Git フォルダー

ノーコードモデル開発

Databricks AutoML

DevOps: 本番環境と自動化

Databricks プラットフォームでは、本番運用の機械学習モデルが次のようにサポートされています。

  • エンドツーエンドのデータとモデル系列: 本番環境のモデルから生の Data まで、同じプラットフォーム上で。

  • 実稼働レベルの Model Serving:ビジネスニーズに基づいて自動的にスケールアップまたはスケールダウンします。

  • マルチタスク ワークフロー: ジョブを自動化し、スケジュールされた機械学習ワークフローを作成します。

  • Git フォルダー: コードのバージョン管理とワークスペースからの共有は、チームがソフトウェア エンジニアリングのベスト プラクティスに従うのにも役立ちます。

  • Databricks Terraform プロバイダー: 機械学習推論ジョブ、エンドポイントの提供、特徴付けジョブのために、クラウド全体のデプロイ インフラストラクチャを自動化します。

モデルサービング

モデルを本番運用にデプロイする場合、MLflow ではプロセスが大幅に簡素化され、大量のデータのバッチジョブとして、または REST エンドポイントとしてシングルクリックでデプロイできます。

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

  • コードとコンテナー。

  • バッチサービング。

  • オンライン配信。

  • マルチクラウド、また、1つのクラウドを使用してトレーニングし、別のクラウドで展開します。

詳細については、「 Databricks モデルサービング」を参照してください。

マルチタスクワークフロー

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

Git フォルダー

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

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

ガバナンスとセキュリティに関する Unity Catalog

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