Mosaic AIモデルトレーニング APIを使用したトレーニング実行の作成

重要

この機能はus-east-1us-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()関数のフィールドをまとめたものです。

フィールド

必須

タイプ

説明

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_PRETRAIN0}の場合、これは.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_path0}と同じ形式に従わなければなりません。

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です。オプティマイザーはデカップリングされたLionWで、ベータは0.99と0.95で、加重の減衰はありません。学習率スケジューラは、ウォームアップが合計トレーニング期間の2%、最終学習率乗数が0のLinearWithWarmupScheduleです。

context_length

str

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

デフォルトは8192トークンか、提供されたモデルのコンテキストの最大長のどちらか低い方です。このパラメーターを使用してコンテキスト長を設定できますが、各モデルの最大コンテキスト長を超える設定はサポートされていません。各モデルでサポートされる最大コンテキスト長については、「サポートされるモデル」を参照してください。

validate_inputs

ブール値

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

カスタムモデルの加重を構築する

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でアクセスできます。

以前の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を参照してください。

データの準備、微調整トレーニング実行設定、およびデプロイメントを説明する指示を微調整の例については、指示を微調整:エンティティを識別できる名前デモノートブックを参照してください。

ノートブックの例

次のノートブックは、Meta Llama 3.1 405B Instruct モデルを使用して合成データを生成し、そのデータを使用してモデルを微調整する方法の例を示しています。

Llama 3.1 405B 指示ノートブックを使用して合成データを生成する

ノートブックを新しいタブで開く