Gemma のフォーマットとシステムの手順

Gemma 命令チューニング(IT)モデルは、トレーニング時と推論時の両方で、すべての命令チューニング例に追加情報をアノテーションする特定のフォーマッタでトレーニングされます。フォーマッタには次の 2 つの目的があります。

  1. 会話でのロールの指定(システムユーザーアシスタントのロールなど)。
  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 の命令チューニング済みモデルは、usermodel の 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>