基盤モデル ファインチューニング API を使用してトレーニング 実行を作成する
プレビュー
この機能はus-east-1
とus-west-2
でパブリックプレビュー段階です。
この記事では、基盤モデル ファインチューニング (現在は Mosaic AI Model トレーニングの一部) APIを使用してトレーニング実行を作成および構成する方法と、 API 呼び出しで使用されるすべてのパラメーターについて説明します。 UI を使用して実行を作成することもできます。 手順については、「 基盤モデル ファインチューニング 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
)
トレーニング実行を構成する
次の表は、 foundation_model.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 |
モデル トレーニングの学習率。 Llama 3.1 405B Instruct以外のすべてのモデルでは、デフォルトの学習率は |
|
|
str |
データサンプルのシーケンスの最大長です。これは、長すぎるデータを切り捨て、効率を上げるために短いシーケンスをまとめてパッケージ化するために使用されます。 デフォルトは8192トークンか、提供されたモデルのコンテキストの最大長のどちらか低い方です。このパラメーターを使用してコンテキスト長を設定できますが、各モデルの最大コンテキスト長を超える設定はサポートされていません。各モデルでサポートされる最大コンテキスト長については、「サポートされるモデル」を参照してください。 |
|
|
ブール値 |
トレーニングジョブを送信する前に入力パスへのアクセスを検証するかどうか。デフォルトは |
カスタムモデルの加重を構築する
基盤モデル ファインチューニングは、オプションのパラメーター custom_weights_path
を使用してモデルのトレーニングとカスタマイズにカスタム重みを追加することをサポートしています。
開始するには、 custom_weights_path
を以前のトレーニング実行の Composer チェックポイント パスに設定します。 チェックポイント パスは、以前のMLflow 実行の アーティファクト タブにあります。チェックポイント・フォルダ名は、特定のスナップショットのバッチとエポックに対応します ( ep29-ba30/
など)。
前回の実行から最新のチェックポイントを指定するには、
custom_weights_path
を Composer チェックポイントに設定します。 たとえば、custom_weights_path=dbfs:/databricks/mlflow-tracking/<experiment_id>/<run_id>/artifacts/<run_name>/checkpoints/latest-sharded-rank0.symlink
.以前のチェックポイントを指定するには、目的のチェックポイントに対応する
.distcp
ファイルを含むフォルダへのパス (custom_weights_path=dbfs:/databricks/mlflow-tracking/<experiment_id>/<run_id>/artifacts/<run_name>/checkpoints/ep#-ba#
など) をcustom_weights_path
に設定します。
次に、custom_weights_path
に渡したチェックポイントの基本モデルと一致するようにmodel
パラメーターを更新します。
次の例では、 ift-meta-llama-3-1-70b-instruct-ohugkq
を微調整する前の実行 meta-llama/Meta-Llama-3.1-70B
です。 ift-meta-llama-3-1-70b-instruct-ohugkq
から最新のチェックポイントを微調整するには、model
変数と custom_weights_path
変数を次のように設定します。
from databricks.model_training import foundation_model as fm
run = fm.create(
model = 'meta-llama/Meta-Llama-3.1-70B'
custom_weights_path = 'dbfs:/databricks/mlflow-tracking/2948323364469837/d4cd1fcac71b4fb4ae42878cb81d8def/artifacts/ift-meta-llama-3-1-70b-instruct-ohugkq/checkpoints/latest-sharded-rank0.symlink'
... ## other parameters for your fine-tuning run
)
ファインチューニング 実行で他のパラメーターを構成する方法については、「 トレーニング 実行の構成 」を参照してください。
実行のステータスを取得する
実行の進行状況は、 Databricks UI のエクスペリメント ページまたは API コマンド get_events()
を使用して追跡できます。 詳細については 、基盤モデル ファインチューニング 実行の表示、管理、および分析を参照してください。
get_events()
からの出力例:
サンプル実行の詳細はエクスペリメントページをご覧ください:
次のステップ
トレーニング 実行が完了したら、 MLflow でメトリクスを確認し、推論のためにモデルをデプロイできます。 チュートリアル: 基盤モデル ファインチューニング 実行の作成とデプロイのステップ 5 から 7 を参照してください。
データの準備、微調整トレーニング実行設定、およびデプロイメントを説明する指示を微調整の例については、指示を微調整:エンティティを識別できる名前デモノートブックを参照してください。