Mosaic AI Model トレーニングAPIを使用してトレーニング実行を作成する

重要

この機能は パブリック プレビュー段階です。 パブリック プレビューに登録するには、Databricks アカウント チームにお問い合わせください。

このページではMosaic AI Model Training (旧基盤モデル トレーニング) APIを使用してトレーニング実行を作成および構成する方法と、 API呼び出しで使用されるすべての論点について説明します。 UI を使用して実行を作成することもできます。 手順については、 「 Mosaic AIモデル トレーニング UI を使用したトレーニング実行の作成」を参照してください。

要件

要件」を参照してください。

トレーニング実行を作成する

プログラムでトレーニング実行を作成するには、 create()関数を使用します。 この関数は、提供されたデータセットでモデルをトレーニングし、最終的なComposerチェックポイントを推論用のHugging Face形式のチェックポイントに変換します。

必要な入力は、トレーニングするモデル、トレーニング データセットの場所、およびモデルを登録する場所です。 評価を実行したり、実行のハイパーパラメータを変更したりできるオプション フィールドもあります。

実行が完了すると、完了した実行と最終チェックポイントが保存され、モデルが複製され、その複製が推論用のモデルバージョンとして Unity Catalog に登録されます。

Unity Catalog 内の複製されたモデルバージョンではなく、完了した実行からのモデルとそのComposer および Hugging Face チェックポイントがMLflow に保存されます。 Composer チェックポイントは、継続的なファインチューニング タスクに使用できます。

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() 関数のフィールドをまとめたものです。

フィールド

*必須

タイプ

説明

model

x

str

使用するモデルの名前。 「サポートされているモデル」を参照してください。

train_data_path

x

str

トレーニング データの場所。 これは、 Unity Catalog内の場所 (<catalog>.<schema>.<table> または dbfs:/Volumes/<catalog>/<schema>/<volume>/<dataset>.jsonl)、または HuggingFace のデータセットになります。

INSTRUCTION_FINETUNEの場合、データは、各行にpromptフィールドとresponseフィールドを含むように書式設定する必要があります。

CONTINUED_PRETRAINの場合、これは.txtファイルのフォルダです。受け入れられるデータ形式については「 Mosaic AIモデル トレーニング用のデータの準備」をデータ サイズの推奨事項については「モデル トレーニングの推奨データ サイズ」を参照してください。

register_to

x

str

簡単にデプロイできるようにトレーニング後にモデルが登録される Unity Catalog カタログとスキーマ ( <catalog>.<schema>または<catalog>.<schema>.<custom-name> )。 custom-nameが指定されていない場合は、デフォルトで実行名が使用されます。

data_prep_cluster_id

str

Spark データ処理に使用するクラスターのクラスター ID。 これは、トレーニング データが Delta テーブルにある教師ありトレーニング タスクに必要です。 クラスター ID を見つける方法については、 「クラスター ID の取得」を参照してください。

experiment_path

str

トレーニング 実行 の出力 (メトリックとチェックポイント) が保存されるMLflow拡張機能へのパス。 デフォルトでは、ユーザーの個人ワークスペース内の実行名になります(つまり、 /Users/<username>/<run_name>)。

task_type

str

実行するタスクのタイプ。 INSTRUCTION_FINETUNE (デフォルト)、 CHAT_COMPLETION 、またはCONTINUED_PRETRAINになります。

eval_data_path

str

評価データのリモートロケーション (存在する場合)。 train_data_pathと同じ形式に従う必要があります。

eval_prompts

str

評価中に応答を生成するためのプロンプト文字列のリスト。 デフォルトはNone (プロンプトを生成しない) です。 モデルがチェックポイントされるたびに、結果が実験に記録されます。 世代はモデル チェックポイントごとに発生し、次の世代を表します: max_new_tokens: 100temperature: 1top_k: 50top_p: 0.95do_sample: true

custom_weights_path

str

トレーニング用のカスタム モデル チェックポイントのリモートの場所。 デフォルトはNoneです。つまり、実行は選択したモデルの元の事前トレーニング済み重みから開始されます。 カスタムの重みが指定されている場合、モデルの元の事前学習済みの重みの代わりに、これらの重みが使用されます。 これらの重みは、Composerチェックポイントであり、指定された model のアーキテクチャと一致する必要があります

training_duration

str

実行の合計時間。 デフォルトは 1 エポックまたは1epです。 エポック ( 10ep ) またはトークン ( 1000000tok ) で指定できます。

learning_rate

str

モデルトレーニングの学習率。 デフォルトは5e-7です。 オプティマイザーは DecoupledLionW で、ベータは 0.99 と 0.95 で、重み減衰はありません。 学習率スケジューラは、ウォームアップが合計トレーニング期間の 2%、最終学習率乗数が 0 の LinearWithWarmupSchedule です。

context_length

str

データ・サンプルの最大シーケンス長。 これは、長すぎるデータを切り捨てたり、短いシーケンスをパッケージ化して効率を上げるために使用されます。

デフォルトは、8192 トークンまたは指定されたモデルの最大コンテキスト長のいずれか小さい方です。 この引数を使用してコンテキストの長さを設定できますが、各モデルの最大コンテキスト長を超える設定はサポートされていません。 各モデルでサポートされる最大コンテキスト長については、 サポートされるモデル を参照してください。

validate_inputs

ブール値

トレーニング ジョブを送信する前に入力パスへのアクセスを検証するかどうか。 デフォルトはTrueです。

カスタムモデルの重みに基づいて構築する

Mosaic AIモデル トレーニングは、オプションの 分散 を使用して、カスタムの重みから始まるサポートされているモデルのトレーニングをサポートします。 custom_weights_path.

たとえば、カスタム データを使用してドメイン固有のモデルを作成し、目的のチェックポイントを入力として渡してさらにトレーニングを行うことができます。

トレーニングのために、前回の実行からComposerチェックポイントへのリモート ロケーションを指定できます。 チェックポイント パスは、以前の MLflow 実行の[アーティファクト]タブにあり、形式はdbfs:/databricks/mlflow-tracking/<experiment_id>/<run_id>/artifacts/<run_name>/checkpoints/<checkpoint_folder>[.symlink]です。シンボリック リンク拡張子はオプションです。 このチェックポイント フォルダー名は、特定のスナップショットのバッチとエポックに対応します (例: ep29-ba30/ 。 最終スナップショットにはシンボリックリンクlatest-sharded-rank0.symlinkでアクセスできます。

以前の MLflow 実行の成果物タブ

その後、パスを構成内のcustom_weights_pathに渡すことができます。

model = 'meta-llama/Llama-2-7b-chat-hf'
custom_weights_path = 'your/checkpoint/path'

クラスターIDを取得

クラスター ID を取得するには:

  1. Databricksワークスペースの左側のナビゲーション バーで、 [コンピュート] をクリックします。

  2. 表で、クラスターの名前をクリックします。

  3. クリック[その他] ボタン右上隅にあるドロップダウン メニューから[JSON の表示] を選択します。

  4. クラスター JSON ファイルが表示されます。 ファイルの最初の行にあるクラスター ID をコピーします。

    ClusterID

実行のステータスを取得する

Databricks UI のエクスペリメント ページまたはAPIコマンド get_events() を使用して、実行の進行状況を追跡できます。 詳細については、 「Mosaic AI モデル トレーニングの実行の表示、管理、分析」を参照してください。

get_events()からの出力例:

APIを使用して実行ステータスを取得する

実験ページのサンプル実行の詳細:

実験UIから実行ステータスを取得する

次のステップ

トレーニングの実行が完了したら、 MLflowでメトリクスを確認し、推論用にモデルをデプロイできます。 「チュートリアル: Mosaic AIモデル トレーニング実行の作成とデプロイ」のステップ 5 から 7 を参照してください。

データの準備、構成、およびデプロイメントの手順を説明する手順の例については、「手順 ファインチューニング: Named Entity Recognitionデモ」を参照してください。