次の方法で共有


Foundation Model の微調整用にデータを準備する

重要

この機能は、次のリージョンでパブリック プレビュー段階です: centraluseastuseastus2northcentraluswestus

この記事では、Foundation Model Fine-tuning (現在はモザイク AI モデル トレーニングの一部) で受け入れられたトレーニングと評価のデータ ファイル形式について説明します。

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

次のノートブックは、データを検証する方法を示しています。 トレーニングを開始する前に個別に実行するように設計されています。 これは、データが Foundation Model Fine-tuning の正しい形式であることを検証し、生のデータセットをトークン化してトレーニング実行中のコストを見積もるのに役立つコードを含みます。

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

ノートブックを入手

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

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

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

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

  • role: メッセージの作成者を示す文字列。 有効な値は systemuserassistant です。 ロールが system の場合、メッセージ一覧の最初のチャットである必要があります。 ロールが assistant であるメッセージが少なくとも 1 つ存在する必要があります。また、(省略可能な) システム プロンプトの後にメッセージがある場合は、ユーザーとアシスタントの間でロールを切り替える必要があります。 同じロールを持つ隣接するメッセージが 2 つ存在してはなりません。 messages配列の最後のメッセージには、ロールassistantが必要です。
  • content: メッセージのテキストを示す文字列。

Mistral モデルは、そのデータ形式で system ロールを受け入れません。

チャット形式のデータの例を次に示します。

{
  "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 カタログ ボリューム内にある必要があります。 各 .txt ファイルは 1 つのサンプルとして扱われます。 .txt ファイルが Unity カタログ ボリューム フォルダーにある場合、それらのファイルもトレーニング データ用に取得されます。 ボリューム内の txt 以外のファイルはすべて無視されます。 「Unity Catalog ボリュームにファイルをアップロードする」を参照してください。

次の図は、Unity カタログ ボリューム内の .txt ファイルの例を示しています。 トレーニング前の継続的な実行構成でこのデータを使用するには、 train_data_path = "dbfs:/Volumes/main/finetuning/cpt-data" を設定し、 task_type = 'CONTINUED_PRETRAIN'設定します。

継続事前トレーニングのデータセット ファイルの例を含む UC ボリューム

データを自分で書式設定する

Warnung

このセクションのガイダンスは推奨されませんが、カスタム データの書式設定が必要なシナリオで使用できます。

Databricks では、使用しているモデルに基づいて適切な書式設定がデータに自動的に適用されるように、 チャット形式のデータ を使用することを強くお勧めします。

Foundation Model Fine-tuning を使用すると、データの書式設定を自分で行うことができます。 モデルのトレーニングと提供を行うときは、データの書式設定を適用する必要があります。 書式設定されたデータを使用してモデルをトレーニングするには、トレーニング実行の作成時に task_type = 'INSTRUCTION_FINETUNE' 設定します。

トレーニングデータと評価データは、次のいずれかのスキーマに含まれている必要があります。

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

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

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

重要

プロンプト応答とプロンプト入力候補はテンプレート化されないため、Mistral の指示書式などのモデル固有のテンプレートは、前処理手順として実行する必要があります。

サポートされるデータ形式

サポートされているデータ形式を次に示します。

  • .jsonl ファイルを含む Unity Catalog ボリューム。 トレーニング データは JSONL 形式にする必要があります。この各行は有効な JSON オブジェクトです。 次の例は、プロンプトと応答のペアの例を示しています。

    {
      "prompt": "What is Databricks?",
      "response": "Databricks is a cloud-based data engineering platform that provides a fast, easy, and collaborative way to process large-scale data."
    }
    
  • 上記の許容されるスキーマのいずれかに準拠する 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 Databricks? ### Response: ","response": "Databricks is a cloud-based data engineering platform that provides a fast, easy, and collaborative way to process large-scale data."}
    {"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."}