Gemma 命令チューニング(IT)モデルは、トレーニング時と推論時の両方で、すべての命令チューニング例に追加情報をアノテーションする特定のフォーマッタでトレーニングされます。フォーマッタには次の 2 つの目的があります。
- 会話でのロールの指定(システム、ユーザー、アシスタントのロールなど)。
- 会話のターンの区別(特にマルチターンの会話の場合)。
以下では、Gemma で使用されるコントロール トークンとそのユースケースについて説明します。制御トークンは、トークン化ツールで予約されており、トークン化ツールに固有です。
- ユーザーのターンを示すトークン:
user
- モデルのターンを示すトークン:
model
- ダイアログ ターンの開始を示すトークン:
<start_of_turn>
- 会話ターンの終了を示すトークン:
<end_of_turn>
以下に会話の例を示します。
<start_of_turn>user
knock knock<end_of_turn>
<start_of_turn>model
who is there<end_of_turn>
<start_of_turn>user
Gemma<end_of_turn>
<start_of_turn>model
Gemma who?<end_of_turn>
トークン "<end_of_turn>\n"
はターンの区切り文字で、プロンプトの接頭辞は "<start_of_turn>model\n"
です。つまり、「クレイマーの法則とは何ですか?」のような質問をモデルに提示する場合は、次のようにモデルに入力する必要があります。
"<start_of_turn>user
What is Cramer's Rule?<end_of_turn>
<start_of_turn>model"
事前トレーニング済みの Gemma モデルを独自のデータでファインチューニングする場合は、トレーニングと推論のユースケースで整合性がある限り、制御トークンにこのようなスキーマを使用できます。
システム指示
Gemma の命令チューニング済みモデルは、user
と model
の 2 つのロールでのみ動作するように設計されています。したがって、system
ロールまたはシステムのターンはサポートされていません。
別のシステムロールを使用する代わりに、最初のユーザー プロンプト内で直接システムレベルの手順を指定します。モデル指示の続行機能により、Gemma は指示を効果的に解釈できます。次に例を示します。
<start_of_turn>user
Only reply like a pirate.
What is the answer to life the universe and everything?<end_of_turn>
<start_of_turn>model
Arrr, 'tis 42,<end_of_turn>