マネージド MLflow とは
Managed MLflow は、Databricks が開発した、より優れたモデルと生成 AI アプリを構築するためのオープンソースプラットフォームである MLflow の機能を拡張したもので、企業の信頼性、セキュリティ、スケーラビリティに重点を置いています。 MLflow の最新アップデートでは、大規模言語モデル(LLM)の管理およびデプロイ機能を強化する革新的な LLMOps 機能が導入されました。この拡張された LLM サポートは、業界標準の LLM ツールである OpenAI と Hugging Face Transformers、および MLflow デプロイメントサーバーとの新しい統合によって実現されます。 さらに、MLflow は LLM フレームワーク(LangChain など)と統合することで、チャットボット、文書要約、テキスト分類、センチメント分析など、さまざまなユースケースに対応する生成 AI アプリケーションを作成するためのモデル開発を簡素化することができます。
メリット
![model development](/en-website-assets/static/92e9088eb02e631ff351a371651d9b28/image-modeldevelopment1678369197.png)
モデル開発
本番稼働可能なモデルのための標準化されたフレームワークにより、機械学習のライフサイクル管理を強化し、迅速化します。マネージド型の MLflow のレシピは、シームレスな ML プロジェクトのブートストラップ、迅速なイテレーション、大規模なモデル展開を可能にします。チャットボット、文書要約、センチメント分析、分類などのアプリケーションを容易に作成できます。LangChain、Hugging Face、OpenAI とシームレスに統合された MLflow の LLM を使用して、生成 AI アプリケーション(チャットボット、文書要約など)を簡単に開発できます。
![Deploy a model for a batch interface](/en-website-assets/static/20e78103a4fc4d7cf817305f11d36fc9/model-development-image-21681977067.png)
実験の追跡
機械学習ライブラリ、フレームワーク、言語を使って実験することができ、各実験のパラメータ、メトリック、コード、およびモデルを自動的に追跡します。Databricks ワークスペースとノートブックの組み込みの統合機能により、Databricks 上で MLflow を使用することで、対応する成果物やコードバージョンも含めた実験結果の安全な共有、管理、比較ができます。また、MLflow の評価機能により、生成 AI 実験の結果を評価し、品質を向上させることができます。
![model development](/en-website-assets/static/50936fc9d4acb35700cf3b44ff093340/model-development-image-31678367305.png)
モデル管理
一元的な場所を使用して、機械学習モデルの検出と共有、実験からオンライン でのテストと実稼働への移行に関する共同作業、承認とガバナンスのワークフローと CI/CD パイプラインとの統合、機械学習のデプロイとそのパフォーマンスを監視します。MLflowモデルレジストリを使用することで、専門知識と知識の共有を容易にし、管理を維持できます。
![model development](/en-website-assets/static/8de8af1203af8a66e0879db1e16841f5/model-development-image-41678367361.png)
モデルのデプロイ
本番モデルは、Apache Spark™ でバッチ推論を実行するために、または Docker コンテナ、Azure ML、Amazon SageMaker に統合されている組み込み機能を使用する REST API として、迅速にデプロイできます。Databricks 上のマネージド型の MLflow では、Databricks Jobs Scheduler や自動管理クラスターを利用して本番モデルを運用および監視し、ビジネスニーズに応じてスケーリングすることができます。
MLflow の最新のアップグレードは、生成 AI アプリケーションをデプロイするためにシームレスにパッケージ化します。 Databricks のモデルサービング を使用することで、チャットボットやドキュメントの要約、感情分析、分類などの生成 AI アプリケーションを大規模に展開できるようになりました。
機能
MLflow Tracking
MLflow 追跡:Python、 REST、 R API、Java API を使用して、実行ごとにパラメータ、コードバージョン、メトリック、アーティファクトを、自動的に記録します
生成 AI 開発:MLflow のデプロイメントサーバーと評価 UI を使用することで、チャットボット、ドキュメントの要約、センチメント分析、分類など、さまざまなユースケースに対応する 生成 AI アプリケーションを構築するためのモデル開発を簡素化できます。
MLflow 追跡サーバー:実行と実験を全て 1 か所に記録できる組み込みの追跡サーバーをすぐに使用できます。Databricks での設定は不要です。
実験管理:アクセス制御と検索クエリを使用して、ワークスペース内から実験を作成、保護、整理、検索、視覚化します。
MLflow 実行サイドバー:ノートブック内から実行を自動的に追跡し、実行ごとにノートブックのスナップショットをキャプチャして、以前のバージョンのコードにいつでも戻ることができます。
実行のデータ記録:パラメータ、データセット、メトリック、アーティファクトなどの実行をローカルファイル、SQLAlchemy 互換のデータベース、またはリモートの追跡サーバーに記録します。
Delta Lake の統合:モデルに Delta Lake スナップショットを提供した大規模なデータセットを追跡します。
アーティファクトの格納:S3 バケット、共有 NFS ファイルシステム、モデルなどの大きなファイルを、Amazon S3、Azure Blob Storage、Google Cloud ストレージ、SFTP サーバー、NFS、ローカルファイルパスに保存します。
MLflow モデル
MLflow モデル:さまざまなダウンストリームツール(例:REST API を介したリアルタイムサービスや、Apache Spark でのバッチ推論)で使用可能な、機械学習モデルをパッケージ化するための標準形式です。
モデルのカスタマイズ:MLflow の組み込みフレーバーで明示的にサポートされていない ML ライブラリのモデルについては、カスタム Python モデルおよびカスタムフレーバーを使用します。
ビルトインのモデルフレーバー:MLflow は、Python や R 関数、Hugging Face、OpenAI、LangChain、PyTorch、Spark MLlib、TensorFlow、ONNX など、アプリケーションで有用ないくつかの標準フレーバーを提供します。
ビルトインのデプロイメントツール:ローカルマシン、または Microsoft Azure ML、Amazon SageMaker、デプロイメント用 Docker イメージの構築など、他のいくつかの本番環境に対して Apache Spark UDF を介して Datbricks 上で素早くデプロイできます。
MLflow Model Registry
中央リポジトリ:MLflow モデルを MLflow Model Registry に登録します。 登録されたモデルは、一意の名前、バージョン、ステージ、およびその他のメタデータを持ちます。
モデルのバージョン管理:更新時に登録済みモデルのバージョンを自動的に追跡します。
モデルステージ:モデルのライフサイクルを表す「ステージング」や「本番」などのあらかじめ設定されたステージやカスタムステージが各モデルバージョンに割り当てられます。
CI/CD ワークフローの統合:CI/CD パイプラインの一部として、ステージの移行、要求、レビュー、および変更を記録し、制御およびガバナンスを改善します。
モデルステージの移行:新しい登録イベントまたは変更を、ユーザー、変更、およびコメントといった追加のメタデータを自動的に記録するアクティビティとして記録します。
MLflow デプロイメントサーバー
LLM へのアクセス管理:SaaS LLM 認証情報を管理
コスト管理:料金制限の設定
LLM のインタラクションを標準化:標準的な入出力インターフェースを備えたさまざまな OSS/SaaS LLM を使用して、さまざまなタスク(完了、チャット、エンベッディング)の実験を実行。
MLflow プロジェクト
MLflow プロジェクト:MLflow プロジェクトでは、コードの実行で使用するソフトウェア環境を指定できます。MLflow は現在、Conda 環境、Docker コンテナ環境、およびシステム環境のプロジェクト環境をサポートしています。Git リポジトリまたはローカルディレクトリは、MLflow プロジェクトとして扱うことができます。
リモート実行モード:Databricks CLI を使用して Databricks クラスターで Git またはローカルソースから MLflow プロジェクトをリモートで実行し、コードをすばやく拡張します。
MLflow Recipes
プロジェクトの開始を簡素化:MLflow Recipes は、ML モデルの構築とデプロイメントのために、すぐに使用できる接続コンポーネントを提供します。
モデル反復の迅速化:MLflow Recipes は、モデル反復のための標準化された再利用可能な手順を作成し、プロセスの迅速化とコスト削減を実現します。
チームのハンドオフを自動化:独自の構造により、モジュール化された本番環境に対応したコードが提供され、実験から本番環境への自動ハンドオフが可能になります。
最新の機能の詳細については、Azure Databricks と AWS の製品ニュースをご覧ください。
MLflow の機能比較
Open Source MLflow | Managed MLflow on Databricks | |
---|---|---|
実験の追跡 | ||
MLflow 追跡 API | ||
MLflow 追跡サーバー | 自己ホスト型 | フルマネージド型 |
ノートブックの統合 | ||
ワークフロー連携 | ||
再現可能なプロジェクト | ||
MLflow プロジェクト | ||
Git と Conda の統合 | ||
プロジェクト実行のためのスケーラブルなクラウド/クラスター | ||
モデル管理 | ||
MLflow Model Registry | ||
モデルのバージョン管理 | ||
ACL ベースのステージ遷移 | ||
CI/CD ワークフローの統合 | ||
柔軟なデプロイ | ||
組み込みのバッチ推論 | ||
MLflow モデル | ||
組み込みのストリーミング分析 | ||
セキュリティと管理 | ||
高可用性 | ||
自動更新 | ||
ロールベースのアクセス制御 |
仕組み
MLflow は、機械学習ワークフロー全体を通して任意の ML フレームワークで使用できる、API とユーザーインターフェイスの軽量なセットです。次の 4 つのコンポーネントが含まれます:MLflow 追跡、MLflow プロジェクト、MLflow モデル、MLflow モデルレジストリ
Databricks のマネージド型 MLflow
Databricks のマネージド型 MLflow は、MLflow のフルマネージド型バージョンです。Databricks レイクハウスプラットフォームの高い信頼性、セキュリティ、スケーラビリティを備え、Databricks ノートブック、ジョブ、およびデータストア全体での再現性と実験管理をユーザーに提供します。