AI・機械学習
中級
Llama 3チャットテンプレート(ラマスリーチャットテンプレート)
Meta Llama 3シリーズが採用する会話フォーマット。`<|begin_of_text|>`・`<|start_header_id|>`・`<|eot_id|>` などの専用特殊トークンでロールとメッセージを区切り、Llama 3系モデルの推論に必須となる構造。
0 回閲覧
0 いいね
2026/6/7 更新
関連タグ
チャットテンプレート
Llama 3
Meta AI
プロンプト形式
特殊トークン
Llama 3チャットテンプレート — Metaエコシステムの会話標準
2024年4月にMeta AIがLlama 3(8B/70B)を公開した際に導入した会話フォーマット。それ以前のLlama 2の[INST]形式を刷新し、より明確なターン区切りと役割宣言を実現する独自の特殊トークン体系を採用した。Llama 3.1/3.2/3.3と継続採用されており、Metaエコシステムの事実上の標準となっている。
Llama 3チャットテンプレートの基本構造
<|begin_of_text|><|start_header_id|>system<|end_header_id|>
あなたはPC自作の専門家です。<|eot_id|><|start_header_id|>user<|end_header_id|>
RTX 5090とRTX 4090の性能差は?<|eot_id|><|start_header_id|>assistant<|end_header_id|>
特殊トークン一覧
| トークン | 役割 |
|---|---|
| `< | begin_of_text |
| `< | start_header_id |
| `< | end_header_id |
| `< | eot_id |
| `< | end_of_text |
Llama 2形式との比較
Llama 2は[INST]/[/INST]とSYS/SYSの混在形式だったが、Llama 3では各ターンが同一のロール宣言パターンで統一され、eot_idによるターン終端が明確化された。
HuggingFace での自動適用
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Meta-Llama-3.1-8B-Instruct")
messages = [
{"role": "system", "content": "PC自作の専門家として回答してください。"},
{"role": "user", "content": "NVMe SSDのGen4とGen5の実用的な差は?"}
]
prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
対応フレームワーク(2025年時点)
- Ollama: Llama 3.x系モデルで自動適用
- vLLM: --chat-template オプションまたは自動検出
- SGLang: chat_template設定で対応
- llama.cpp: jinja2テンプレートとして保持・適用
よくある質問
Q: Llama 4(2025年)も同じフォーマット? A: Llama 4(Maverick/Scout)はLlama 3形式を継承しているが、ツール呼び出し(tool_use)用の追加トークンも導入されている。
Q: eot_id と end_of_text の違いは? A: eot_idはターン終了(次の発話に続く)、end_of_textはシーケンス全体の終了(生成停止)。推論時の停止条件では両方を指定することが多い。
Q: ChatMLとLlama 3形式はどちらを使うべき? A: モデルに合わせて選択する。Llama 3/4系はLlama 3形式、Qwen/Mistral/Yi系はChatMLを使う。間違った形式を使うと性能が大幅に低下する。