Mosaic AIモデルトレーニングのためのデータ準備
重要
この機能はus-east-1
とus-west-2
でパブリックプレビュー段階です。
この記事では、Mosaic AIモデルトレーニング(旧基盤モデルトレーニング)でサポートされているタスク(教師ありのファインチューニング、チャットの完了、継続的な事前トレーニング)について、受け入れられているトレーニングと評価のデータファイル形式について説明します。
次のノートブックは、データを検証する方法を示しています。トレーニングを開始する前に独立して実行できるように設計されています。このノートブックの目的は、データがMosaic AIモデルトレーニングに適した形式であることを検証することです。また、トレーニング中の費用を見積もるのに役立つ、未加工のデータセットをトークン化するコードも含まれています。
教師ありトレーニング用のデータを準備する
教師ありトレーニングタスクの場合、トレーニングデータは以下のスキーマのいずれかになります:
プロンプトとレスポンスのペア。
{"prompt": "your-custom-prompt", "response": "your-custom-response"}
プロンプトと完了のペア。
{"prompt": "your-custom-prompt", "completion": "your-custom-response"}
使用できるデータ形式は次のとおりです:
.jsonl
ファイルを含むUnityカタログボリューム。トレーニングデータは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です。
注:
Mistralモデルは、データ形式でsystem
ロールを受け入れません。
配列内の各メッセージオブジェクトは会話内の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ボリュームフォルダ内にある場合、それらのファイルも学習用データ用に取得されます。ボリューム内のtxt
以外のファイルは無視されます。Unity Catalogボリュームへのファイルのアップロードを参照してください。
次の画像は、Unity Catalogボリューム内の.txt
ファイルの例を示しています。このデータを継続的な事前トレーニング実行構成で使用するには、train_data_path = "dbfs:/Volumes/main/finetuning/cpt-data"
を設定します。
![UCボリュームと継続的な事前学習データセットファイルの例](../../_images/cpt-data-example.png)