基盤モデルトレーニングのためのデータの準備

重要

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

このセクションでは、サポートされているタスク(教師ありファインチューニングチャット補完継続的な事前トレーニング)で受け入れられるトレーニングおよび評価データ ファイル形式について説明します。

次のノートブックは、データを検証する方法を示しています。 トレーニングを開始する前に独立して実行できるように設計されています。 このチュートリアルの目的は、データが基盤モデル トレーニングに適した形式であるかどうかを検証することです。 また、トレーニング実行中にコストを見積もるのに役立つ、生のデータセットをトークン化するコードも含まれています。

トレーニング実行ノートブックのデータを検証する

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

教師ありトレーニング用のデータを準備する

教師ありトレーニングタスクの場合、トレーニング データは次のいずれかのスキーマになります。

  • プロンプトと応答のペア。

    {"prompt": "your-custom-prompt", "response": "your-custom-response"}
    
  • プロンプトと補完のペア。

    {"prompt": "your-custom-prompt", "completion": "your-custom-response"}
    

注:

プロンプト応答とプロンプト完了は Mistralテンプレート化され て いない ため、 の 命令フォーマット などのモデル固有のテンプレート化は、前処理ステップとして実行する必要があります。

使用できるデータ形式は次のとおりです。

  • .jsonl ファイルを含むUnity Catalogボリューム。 トレーニング データは JSONL 形式である必要があり、各行は有効な JSON オブジェクトです。

  • 上記の承認済みスキーマのいずれかに準拠する Delta テーブル。 Deltaテーブルの場合、データ処理用に data_prep_cluster_id バインディングを指定する必要があります。 「トレーニング実行を構成する」を参照してください。

  • 公開Hugging Faceシリーズ。

    公開されている Hugging Face データセットをトレーニング データとして使用する場合は、分割した完全なパスを指定します (例: mosaicml/instruct-v3/train and mosaicml/instruct-v3/test )。 異なる分割スキーマを持つデータセット用のアカウントです。 Hugging Face からのネストされたデータセットはサポートされていません。

    より広範な例については、Hugging Face のmosaicml/dolly_hhrlhfデータセットを参照してください。

    次のデータ行の例は、 mosaicml/dolly_hhrlhfデータセットからのものです。

    {"prompt": "Below is an instruction that describes a task. Write a response that appropriately completes the request. ### Instruction: what is Kubernetes? ### Response: ","response": "Kubernetes is an open source container orchestration system for automating software deployment, scaling, and management. Originally designed by Google, the project is now maintained by the Cloud Native Computing Foundation."}
    {"prompt": "Below is an instruction that describes a task. Write a response that appropriately completes the request. ### Instruction: Van Halen famously banned what color M&Ms in their rider? ### Response: ","response": "Brown."}
    

チャット完了のためのデータを準備する

チャット完了タスクの場合、チャット形式のデータはファイル.jsonl形式である必要があり、各行は単一のチャット セッションを表す個別の JSON オブジェクトです。 各チャット セッションは、メッセージ オブジェクトの配列にマップされる単一のキー"messages"を持つ JSON オブジェクトとして表されます。 チャット データをトレーニングするには、 task_type = 'CHAT_COMPLETION'を指定するだけです。

チャット形式のメッセージは、モデルのチャット テンプレートに従って自動的にフォーマットされるため、チャット ターンの開始または終了を手動で通知するための特別なチャット トークンを追加する必要はありません。 カスタム チャット テンプレートを使用するモデルの例としては、 Mistral-instructがあります。

配列内の各メッセージ オブジェクトは、会話内の 1 つのメッセージを表し、次の構造を持ちます。

  • role: メッセージの作成者を示す文字列。 可能な値は、 "system""user""assistant"です。 役割が systemの場合、メッセージリストの最初のチャットである必要があります。 ロールが "assistant"のメッセージが少なくとも 1 つある必要があり、(オプションの)システム プロンプトの後のメッセージでは、ユーザ/アシスタントの間でロールを交互にする必要があります。 同じ役割を持つ 2 つの隣接するメッセージがあってはなりません。 "messages"配列の最後のメッセージには、 "assistant".

  • content: メッセージのテキストを含む文字列。

以下は、チャット形式のデータの例です。

{"messages": [
  {"role": "system", "content": "A conversation between a user and a helpful assistant."},
  {"role": "user", "content": "Hi there. What's the capital of the moon?"},
  {"role": "assistant", "content": "This question doesn't make sense as nobody currently lives on the moon, meaning it would have no government or political institutions. Furthermore, international treaties prohibit any nation from asserting sovereignty over the moon and other celestial bodies."},
  ]
}

事前トレーニングを継続するためのデータを準備する

継続的な事前トレーニングタスクの場合、トレーニング データは非構造化テキスト データになります。 トレーニング データは、.txt ファイルを含むUnity Catalogボリューム内にある必要があります。 各 .txt ファイルは 1 つのサンプルとして扱われます。 .txtファイルが Unity Catalog Volume フォルダー内にある場合、それらのファイルもトレーニング データ用に取得されます。 ボリューム内のtxt 以外のファイルはすべて無視されます。