Databricks は機械学習の CI/CD をどのようにサポートしていますか?
CI/CD (継続的インテグレーションと継続的デリバリー) とは、アプリケーションを開発、デプロイ、モニタリング、および保守するための自動化されたプロセスを指します。 コードのビルド、テスト、デプロイを自動化することで、開発チームは、多くの データエンジニアリング チームやデータサイエンス チームでまだ普及している手動プロセスよりも頻繁かつ確実にリリースを提供できます。 機械学習のための CI/CD は、MLOps、DataOps、ModelOps、DevOps の手法を組み合わせたものです。
この記事では、Databricks が機械学習ソリューションの CI/CD をどのようにサポートするかについて説明します。 機械学習アプリケーションでは、 CI/CD はコード資産だけでなく、入力データとモデルによって生成された結果の両方を含むデータパイプラインにも適用されます。
CI/CD が必要な機械学習要素
ML 開発の課題の 1 つは、さまざまなチームがプロセスの異なる部分を所有していることです。 チームは異なるツールに依存し、異なるリリース スケジュールを持っている場合があります。 Databricks は、チームの効率を向上させ、データと ML パイプラインの一貫性と再現性を確保するための統合ツールを備えた、単一の統合データおよび ML プラットフォームを提供します。
一般に、機械学習タスクでは、自動化された CI/CD ワークフローで次のものを追跡する必要があります。
- トレーニング データ (データ品質、スキーマの変更、分布の変更など)。
- 入力データパイプライン。
- モデルのトレーニング、検証、および提供のためのコード。
- 予測とパフォーマンスをモデル化します。
Databricks を CI/CD プロセスに統合する
MLOps、DataOps、ModelOps、DevOps とは、開発プロセスと「運用」の統合を指し、プロセスとインフラストラクチャを予測可能で信頼性の高いものにします。 この一連の記事では、オペレーション ("運用") の原則を Databricks プラットフォーム上の ML ワークフローに統合する方法について説明します。
Databricks には、再現性を確保するための「コードとしての構成」を構築するツールや、クラウドサービスのプロビジョニングを自動化するための「コードとしてのインフラストラクチャ」を構築するツールなど、ML ライフサイクルに必要なすべてのコンポーネントが組み込まれています。 また、問題が発生したときに問題を検出してトラブルシューティングするのに役立つログ記録サービスとアラートサービスも含まれています。
DataOps:信頼性と安全性に優れたデータ
優れた機械学習モデルは、信頼性の高いデータパイプラインとインフラストラクチャに依存しています。 Databricksデータインテリジェンスプラットフォームでは、データの取り込みから提供されたモデルからの出力までのデータパイプライン全体が 1 つのプラットフォーム上にあり、同じツールセットを使用するため、生産性、再現性、共有、トラブルシューティングが容易になります。
DatabricksのDataOpsタスクとツール
次の表に、Databricks の一般的な DataOps タスクとツールを示します。
DataOps タスク | Databricks のツール |
---|---|
データを取り込んで変換します | オートローダー と Apache Spark |
バージョニングやリネージを含むデータの変更の追跡 | |
データ処理パイプラインの構築、管理、監視 | |
データのセキュリティとガバナンスを確保する | |
探索的データ分析とダッシュボード | |
一般的なコーディング | |
データパイプラインのスケジュール | |
一般的なワークフローを自動化 | |
モデル トレーニング用の機能を作成、保存、管理、検出 | |
dataMonitoring |
ModelOps: モデルの開発とライフサイクル
モデルの開発には、一連のエクスペリメントと、それらのエクスペリメントの条件と結果を追跡して比較する方法が必要です。 Databricksデータインテリジェンスプラットフォームには、モデル開発追跡のための MLflow と、モデル成果物のステージング、提供、保存などのモデル ライフサイクルを管理する MLflow Model Registry が含まれています。
モデルを本番運用にリリースした後、パフォーマンスに影響を与える可能性のある多くの変更が発生する可能性があります。 モデルの予測パフォーマンスを監視するだけでなく、モデルの再トレーニングが必要になる可能性のある品質や統計的特性の変化について、入力データも監視する必要があります。
Databricks の ModelOps タスクとツール
次の表に、Databricks が提供する一般的な ModelOps タスクとツールを示します。
ModelOpsタスク | Databricks のツール |
---|---|
モデル開発の追跡 | |
モデルのライフサイクルを管理する | |
モデル コードのバージョン管理と共有 | |
ノーコードモデル開発 | |
モデル監視 |
DevOps: 本番運用と自動化
Databricksプラットフォームは、本番運用のMLモデルをサポートしており、以下のモデルに対応しています。
- エンドツーエンドのデータとモデルリネージ:本番運用のモデルから生のデータソースまで、同じプラットフォーム上で。
- 本番運用-level モデルサービング: ビジネスニーズに基づいて自動的にスケールアップまたはスケールダウンします。
- ジョブ: ジョブを自動化し、スケジュールされた機械学習ワークフローを作成します。
- Git フォルダー: ワークスペースからのコードのバージョン管理と共有は、チームがソフトウェア エンジニアリングのベスト プラクティスに従うのにも役立ちます。
- Databricks Terraform プロバイダー: ML 推論ジョブ、エンドポイントの提供、特徴付けジョブのために、クラウド全体のデプロイ インフラストラクチャを自動化します。
モデルサービング
モデルを本番運用にデプロイする場合、 MLflow はプロセスを大幅に簡素化し、大量のデータのバッチジョブとして、またはオートスケール クラスターの REST エンドポイントとして、シングルクリック デプロイを提供します。 Databricks Feature Store と MLflow の統合により、トレーニングとサービスの機能の一貫性も確保されます。また、MLflow モデルは、待機時間の短いオンライン サービスであっても、Feature Store から機能を自動的に検索できます。
Databricks プラットフォームでは、多くのモデル デプロイ オプションがサポートされています。
- コードとコンテナ。
- バッチサービング。
- 低遅延のオンライン サービス。
- デバイス上またはエッジサービング。
- マルチクラウド、たとえば、1つのクラウドでモデルをトレーニングし、別のクラウドでデプロイします。
詳細については、 Mosaic AI Model Servingを参照してください。
ジョブ
Databricks ジョブ を使用すると、ETL から ML まで、あらゆるタイプのワークロードを自動化およびスケジュールできます。Databricks は 、Airflow などの一般的なサードパーティ オーケストレーターとの統合もサポートしています。
Git フォルダ
Databricks プラットフォームには、ワークスペースに Git サポートが含まれており、UI を介して Git 操作を実行することで、チームがソフトウェア エンジニアリングのベスト プラクティスに従うのに役立ちます。 管理者と DevOps エンジニアは、 APIs を使用して、お気に入りの CI/CD ツールで自動化を設定できます。 Databricks は、プライベートネットワークを含むあらゆるタイプの Git デプロイをサポートしています。
フォルダーを使用したコード開発のベストプラクティスの詳細についてはDatabricksGit 、「CI/CD 統合フォルダーと フォルダーを使用したワークフローGit 」および「DatabricksGitの使用CI/CD 」を参照してください。これらの手法を Databricks REST API と共に使用すると、GitHub Actions、Azure DevOps パイプライン、または Jenkins ジョブを使用して自動化されたデプロイ プロセスを構築できます。
ガバナンスとセキュリティのための Unity Catalog
Databricks プラットフォームには Unity Catalog が含まれており、管理者は Databricks 全体のすべてのデータと AI アセットに対して、きめ細かなアクセス制御、セキュリティポリシー、ガバナンスを設定できます。