マネージド MLflow とは
Managed MLflow は、Databricks が開発した、より優れたモデルと生成 AI アプリを構築するためのオープンソースプラットフォームである MLflow の機能を拡張したもので、企業の信頼性、セキュリティ、スケーラビリティに重点を置いています。 MLflow の最新アップデートでは、大規模言語モデル(LLM)の管理およびデプロイ機能を強化する革新的な LLMOps 機能が導入されました。この拡張された LLM サポートは、業界標準の LLM ツールである OpenAI と Hugging Face Transformers、および MLflow デプロイメントサーバーとの新しい統合によって実現されます。 さらに、MLflow は LLM フレームワーク(LangChain など)と統合することで、チャットボット、文書要約、テキスト分類、センチメント分析など、さまざまなユースケースに対応する生成 AI アプリケーションを作成するためのモデル開発を簡素化することができます。
メリット
モデル開発
本番稼働可能なモデルのための標準化されたフレームワークにより、機械学習のライフサイクル管理を強化し、迅速化します。マネージド型の MLflow のレシピは、シームレスな ML プロジェクトのブートストラップ、迅速なイテレーション、大規模なモデル展開を可能にします。チャットボット、文書要約、センチメント分析、分類などのアプリケーションを容易に作成できます。LangChain、Hugging Face、OpenAI とシームレスに統合された MLflow の LLM を使用して、生成 AI アプリケーション(チャットボット、文書要約など)を簡単に開発できます。
実験の追跡
機械学習ライブラリ、フレームワーク、言語を使って実験することができ、各実験のパラメータ、メトリック、コード、およびモデルを自動的に追跡します。Databricks ワークスペースとノートブックの組み込みの統合機能により、Databricks 上で MLflow を使用することで、対応する成果物やコードバージョンも含めた実験結果の安全な共有、管理、比較ができます。また、MLflow の評価機能により、生成 AI 実験の結果を評価し、品質を向上させることができます。
モデル管理
一元的な場所を使用して、機械学習モデルの検出と共有、実験からオンラインでのテストと実稼働への移行に関する共同作業、承認とガバナンスのワークフローと CI/CD パイプラインとの統合、機械学習のデプロイとそのパフォーマンスを監視します。MLflowモデルレジストリを使用することで、専門知識と知識の共有を容易にし、管理を維持できます。
モデルのデプロイ
本番モデルは、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 ノートブック、ジョブ、およびデータストア全体での再現性と実験管理をユーザーに提供します。