基盤モデルトレーニングAPIを使用してトレーニング実行を作成する

重要

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

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

要件

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

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

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

必要な入力は、トレーニングするモデル、トレーニング データセットの場所、およびモデルを登録する場所です。 評価を実行したり、実行のハイパーパラメータを変更したりできるオプション フィールドもあります。 実行を作成すると、チェックポイントが MLflow 実行に保存され、最終チェックポイントが Unity Catalog に登録されて簡単にデプロイできるようになります。

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
)

実行が完了すると、完了した実行と最終チェックポイントが保存され、モデルが Unity Catalog に登録されます。

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

次の表は、 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ファイルのフォルダです。受け入れられるデータ形式については「基盤モデルのデータの準備」を、データ サイズの推奨事項については「モデルの推奨データ サイズ」を参照してください。

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

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

デフォルトは、提供されたモデルのデフォルトです。 各モデルのデフォルトを超えてコンテキストの長さを増やすことはサポートされていません。 各モデルのコンテキストの長さについては、「 サポートされているモデル 」を参照してください。

validate_inputs

ブール値

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

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

基盤モデル トレーニング は、オプションの 構造体 を使用して、カスタム重みから始まるサポートされているモデルのいずれかをサポートします。 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() を使用して、実行の進行状況を追跡できます。 詳細については、 「基盤モデル トレーニング 実行の表示、管理、分析」を参照してください。

get_events()からの出力例:

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

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

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

次のステップ

トレーニングの実行が完了したら、 MLflowでメトリックを確認し、推論用にモデルをデプロイできます。 「チュートリアル: 基盤モデル トレーニングを使用してトレーニング 実行を作成および展開します」の手順 5 から 7 を参照してください。