Mosaic AIモデルトレーニング APIを使用したトレーニング実行の作成
重要
この機能はus-east-1
とus-west-2
でパブリックプレビュー段階です。
このページでは、Mosaic AIモデルトレーニング(旧基盤モデルトレーニング)APIを使用してトレーニング実行を作成および構成する方法と、API呼び出しで使用されるすべてのパラメーターについて説明します。UIを使用して実行を作成することもできます。手順については、Mosaic AIモデルトレーニングUIを使用したトレーニング実行の作成を参照してください。
要件
要件を参照してください。
トレーニング実行を作成する
プログラムでトレーニング実行を作成するには、create()
関数を使用します。この関数は、提供されたデータセットでモデルをトレーニングするし、最終的なComposerチェックポイントを推論用のHugging Faceのチェックポイントに変換します。
入力が必要な箇所は、トレーニングしたいモデル、学習用データセットの場所、モデルを登録する場所です。評価を実行したり、実行のハイパーパラメータを変更したりできるオプションフィールドもあります。
実行が完了すると、完了した実行と最終チェックポイントが保存され、モデルがクローン化され、そのクローンが推論用のモデルバージョンとしてUnity Catalogに登録されます。
Unity Catalogのクローンモデルバージョンではなく、完了したランのモデルと、そのコンポーザーとHugging FaceのチェックポイントがMLflowに保存されます。コンポーザーチェックポイントは、継続的な微調整タスクに使用できます。
create()
関数の引数の詳細については、トレーニング実行の構成を参照してください。
from databricks.model_training import foundation_model as fm
run = fm.create(
model='meta-llama/Llama-2-7b-chat-hf',
train_data_path='dbfs:/Volumes/main/mydirectory/ift/train.jsonl', # UC Volume with JSONL formatted data
# Public HF dataset is also supported
# train_data_path='mosaicml/dolly_hhrlhf/train'
register_to='main.mydirectory', # UC catalog and schema to register the model to
)
トレーニング実行を構成する
次の表は、create()
関数のフィールドをまとめたものです。
フィールド |
必須 |
タイプ |
説明 |
---|---|---|---|
|
x |
str |
使用するモデルの名前。サポートされているモデルを参照してください。 |
|
x |
str |
トレーニングデータの場所。これは、Unity Catalog内( |
|
x |
str |
簡単にデプロイできるようにトレーニング後にモデルが登録されるUnity Catalogカタログとスキーマ( |
|
str |
Sparkデータ処理に使用するクラスターのクラスターID。これは、学習用データがDeltaテーブルにある教師ありトレーニングタスクに必要です。クラスターIDの見つけ方については、クラスターIDの取得を参照してください。 |
|
|
str |
トレーニング実行出力(メトリクスとチェックポイント)が保存されるMLflowエクスペリメントへのパス。デフォルトは、ユーザーの個人ワークスペース内の実行名(つまり |
|
|
str |
実行するタスクのタイプ。 |
|
|
str |
評価データのリモートロケーション(存在する場合)。 |
|
|
str |
評価中に応答を生成するためのプロンプト文字列のリスト。デフォルトは |
|
|
str |
トレーニング用のカスタムモデルチェックポイントのリモートの場所。デフォルトは |
|
|
str |
実行の合計時間。デフォルトは1エポックまたは |
|
|
str |
モデルトレーニングの学習率です。デフォルトは |
|
|
str |
データサンプルのシーケンスの最大長です。これは、長すぎるデータを切り捨て、効率を上げるために短いシーケンスをまとめてパッケージ化するために使用されます。 デフォルトは8192トークンか、提供されたモデルのコンテキストの最大長のどちらか低い方です。このパラメーターを使用してコンテキスト長を設定できますが、各モデルの最大コンテキスト長を超える設定はサポートされていません。各モデルでサポートされる最大コンテキスト長については、「サポートされるモデル」を参照してください。 |
|
|
ブール値 |
トレーニングジョブを送信する前に入力パスへのアクセスを検証するかどうか。デフォルトは |
カスタムモデルの加重を構築する
Mosaic AIモデルトレーニングは、オプションのパラメーターを使用してカスタム重みから始まる、サポートされているモデルのトレーニングをサポートします。 custom_weights_path.
例えば、カスタムデータを使用してドメイン固有のモデルを作成し、必要なチェックポイントを入力として渡して、さらにトレーニングすることができます。
トレーニングのために、前回実行したコンポーザーのチェックポイントにリモートの場所を提供することができます。チェックポイントパスは、前回のMLflow実行の[アーティファクト]タブにあり、形式はdbfs:/databricks/mlflow-tracking/<experiment_id>/<run_id>/artifacts/<run_name>/checkpoints/<checkpoint_folder>[.symlink]
で、シンボリックリンクの拡張子はオプションです。このチェックポイントフォルダ名は、ep29-ba30/
などの特定のスナップショットのバッチとエポックに対応しています。最終スナップショットにはシンボリックリンクlatest-sharded-rank0.symlink
でアクセスできます。
このパスを構成のcustom_weights_path
パラメーターに渡すことができます。
model = 'meta-llama/Llama-2-7b-chat-hf'
custom_weights_path = 'your/checkpoint/path'
実行のステータスを取得する
Databricks UIの実験ページまたはAPIコマンドget_events()
を使用して、実行の進行状況を追跡できます。詳細については、Mosaic AIモデルトレーニング実行の表示、管理、解析をご参照ください。
get_events()
からの出力例:
サンプル実行の詳細はエクスペリメントページをご覧ください:
次のステップ
トレーニングの実行が完了したら、MLflowでメトリックを確認し、推論用にモデルをデプロイできます。チュートリアル:Mosaic AIモデルトレーニングの実行を作成してデプロイするのステップ5~7を参照してください。
データの準備、微調整トレーニング実行設定、およびデプロイメントを説明する指示を微調整の例については、指示を微調整:エンティティを識別できる名前デモノートブックを参照してください。