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チャットテンプレートの基本構造

&lt;|begin_of_text|>&lt;|start_header_id|>system&lt;|end_header_id|>

あなたはPC自作の専門家です。&lt;|eot_id|>&lt;|start_header_id|>user&lt;|end_header_id|>

RTX 5090とRTX 4090の性能差は?&lt;|eot_id|>&lt;|start_header_id|>assistant&lt;|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を使う。間違った形式を使うと性能が大幅に低下する。

この記事について
カテゴリーAI・機械学習
難易度中級
作成日2026/6/7