基盤モデル ファインチューニングのためのデータ準備

プレビュー

この機能はus-east-1us-west-2パブリックプレビュー段階です。

本稿では、基盤モデル ファインチューニング (現在は Mosaic AI Model トレーニングの一部) で認められているトレーニングおよび評価データファイル形式について説明します。

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

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

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

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

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

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

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

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

  • role: メッセージの作成者を示す文字列。 指定できる値は、 systemuser、および assistantです。 ロールが 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 Catalog ボリュームに存在する必要があります ファイル。 各.txt ファイルは 1 つのサンプルとして扱われます。 あなたの.txt ファイルは Unity Catalog ボリューム フォルダーにあり、それらのファイルはトレーニング データ用にも取得されます。 ボリューム内の txt 以外のファイルはすべて無視されます。 「Unity Catalog ボリュームへのファイルのアップロード」を参照してください。

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

UCボリュームと継続的な事前学習データセットファイルの例

自分でデータをフォーマットする

警告

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

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

基盤モデル ファインチューニング は、自分でデータフォーマットを行うことができます。 モデルのトレーニングと提供時には、データ形式を適用する必要があります。 書式設定されたデータを使用してモデルをトレーニングするには、トレーニング実行を作成するときに 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."}