LLM-jp-4 Thinking モデルの量子化版の公開
LLM-jp が Thinking モデルの量子化版を公開し、独自に修正した llama.cpp の使用とサードパーティ製モデルにおけるトークナイズ不整合の問題を警告している。
キーポイント
公式量子化モデルの公開と推奨環境
LLM-jp-4 Thinking モデル(8b, 32b)の Q4_K_M 量子化版が Apache-2.0 ライセンスで Hugging Face に公開された。ただし、標準 llama.cpp ではチャットテンプレート解析に失敗するため、LLM-jp が修正を加えた専用ビルドの使用が必要である。
性能維持と評価結果
MT-Bench や AnswerCarefully などのベンチマークで量子化前後の性能差は概ね同等であり、重要度行列(iMatrix)を活用した Q4_K_M 量子化が有効であることを確認している。
サードパーティ製モデルのリスク警告
一部のサードパーティ製量子化モデルでは、トークナイズの不整合や語彙操作による空白の挿入・欠落が発生し、オリジナルモデルとの挙動乖離や性能低下を招く可能性が指摘されている。
技術的詳細と対策
OpenAI の Harmony Response Format 採用に伴う脱トークン化時の空白問題に対し、語彙 ID を無理やり入れ替える手法の副作用(不要なスペース欠落など)を分析し、公式リポジトリ内の重要度行列を活用するよう推奨している。
量子化に伴うトークナイズの副作用と解決策
語彙 ID の入れ替えにより不要な空白が欠落・挿入される副作用があり、LLM-jp はランタイムである llama.cpp の実装修正でこれを解決した。
サードパーティ製量子化モデルの性能評価結果
MT-Bench による評価では、オリジナルモデルに対しサードパーティ製の量子化モデルにおいて一定の性能低下が確認された。
性能低下の原因として考えられる要因
トークナイズの不一致に加え、重要度行列の使用有無や計算に用いるキャリブレーションデータの違いなどが原因である可能性がある。
重要な引用
2026 年 6 月 22 日現在、通常の llama.cpp では LLM-jp-4 のチャットテンプレートの解析に失敗するため動作しません。
トークナイズの不一致は、学習時と推論時でモデルに与えられるトークン列が変わることを意味し、性能低下に繋がる可能性があります。
語彙 ID を入れ替えると、チャットテンプレート中の文字列だけでなく、通常の生成テキストに含まれる同じ語彙の振る舞いも変わります。
MT-Bench による評価では、サードパーティによる量子化モデルにおいてオリジナルモデルからの一定の性能低下が確認されました。
影響分析・編集コメントを表示
影響分析
この発表は、ローカル環境やリソース制約のある現場において、高性能な思考型 LLM を安全かつ確実に運用するための重要な指針となる。特に、サードパーティ製モデルにおける「見えない」不整合(トークナイズのズレ)を明確に指摘した点は、開発者にとって実用上極めて価値が高く、品質保証の観点から業界全体への啓発的意義が大きい。
編集コメント
LLM の実用化において、モデルの重みだけでなく、推論時の環境(トークナイザやテンプレート処理)の完全な整合性が性能を左右する重要な要素であることが浮き彫りになりました。公式が修正版ツールを推奨している点は、ユーザーにとって非常に有用な情報です。
著者:清丸寛一
概要
このたび、LLM-jp-4 シリーズの Thinking モデルの量子化を行いました。量子化モデルは Hugging Face にて Apache-2.0 ライセンスのもと公開しています。
https://huggingface.co/llm-jp/llm-jp-4-8b-thinking-gguf
https://huggingface.co/llm-jp/llm-jp-4-32b-a3b-thinking-gguf
使用方法
量子化モデルの標準ランタイムである llama.cpp を用いた使用方法を llm-jp-4-cookbook に記載しています。使用方法についてはこちらをご確認ください。
image 2026年6月22日現在、通常の llama.cpp では LLM-jp-4 のチャットテンプレートの解析に失敗するため動作しません。上述の cookbook を参照し、LLM-jp が修正を加えた llm-jp/llama.cpp をご使用ください。
量子化方法
llama.cpp を使用し、Q4_K_M 形式に量子化しました。この際、事後学習(教師あり学習)のフェーズで使用した学習データの一部を用いて重要度行列(iMatrix)を計算し、量子化に利用しました。
公開リポジトリには量子化時に使用した重要度行列も含めています。Q4_K_M 以外の形式に再量子化する際などにご活用ください。
性能評価
LLM-as-a-Judge の枠組みで、4つの評価ベンチマークで性能評価を行いました。
MT-Bench(JA):日本語のマルチターン対話におけるタスク解決能力を評価するベンチマーク。
MT-Bench(EN):英語のマルチターン対話におけるタスク解決能力を評価するベンチマーク。
AnswerCarefully:日本語における安全性を評価するためのベンチマーク。
llm-jp-instructions:人手で作成されたシングルターンの質問応答ペアからなるデータセット。
評価モデルには gpt-5.4-2026-03-05 を使用しました。スコアは評価を3回行ったときの平均です。
モデルMT-Bench (JA)MT-Bench (EN)AnswerCarefullyllm-jp-instructions
llm-jp-4-8b-thinking7.547.793.693.54
llm-jp-4-8b-thinking Q4_K_M7.577.663.713.58
llm-jp-4-32b-a3b-thinking7.827.863.703.61
llm-jp-4-32b-a3b-thinking Q4_K_M7.517.893.743.70
量子化前後で概ね同等の性能を維持できることが確認できます。
サードパーティモデルとの比較
LLM-jp-4 の量子化モデルとして、いくつかのサードパーティモデルが公開されています。一方で、それらの量子化モデルを検証したところ、オリジナルモデルと挙動が異なる点があることが確認されました。
トークナイズの不一致
一つ目は、オリジナルモデルとトークナイズが異なることです。現在特にダウンロード数が多い mmnga-o 製の量子化モデルと alfredplpl 製の量子化モデルにおいてこの問題を確認しています。
具体例として、以下の文字列を考えます。
<|start|>assistant<|channel|>final<|message|>こんにちは
この度公開した LLM-jp 製の量子化モデルでは以下の分割が得られます。これはオリジナルモデルによる分割と一致しています。
['<|start|>', '▁assistant', '<|channel|>', '▁final', '<|message|>', '▁こんにちは']
一方で、mmnga-o 製の量子化モデルでは以下のように異なる分割結果が得られます。
['<|start|>', 'assis', 'tan', 't', '<|channel|>', 'final', '<|message|>', 'こん', 'にち', 'は']
alfredplpl 製の量子化モデルでも、オリジナルモデルとは異なる分割が行われます。
['<|start|>', 'ass', 'ist', 'ant', '<|channel|>', 'final', '<|message|>', 'こん', 'にち', 'は']
このようなトークナイズの不一致は、学習時と推論時でモデルに与えられるトークン列が変わることを意味し、性能低下に繋がる可能性があります。
語彙操作による空白の挿入・欠落
二つ目は、チャットテンプレート通りの出力が得られるように語彙を操作することによって、不要な空白が挿入されたり必要な空白が欠落したりすることです。この問題は mmnga-o 製の量子化モデルで確認しています。
LLM-jp-4 の Thinking モデルはチャットテンプレートとして OpenAI の Harmony Response Format を採用しています。このフォーマットでは、<|start|>user<|end|> のような形でメッセージの役割や出力チャンネル、本文などを構造的に表現します。しかし、LLM-jp-4 の出力トークン列を素朴に文字列に戻す(脱トークン化する)と、トークナイザの仕様により、特殊トークンの直後に不要な空白が挿入され、このフォーマットから逸脱します。例えば、<|start|>user<|end|> という文字列をトークン化して得られるトークン列 ['<|start|>', '▁user', '<|end|>'] を脱トークン化すると <|start|> user<|end|> となり、user の前に元々存在しなかった空白が挿入されます。ここで ▁ は空白を明示的に扱うためのメタ記号です。
この問題を対処するために、一部のサードパーティモデルでは、チャットテンプレート中で使用される語彙を操作しています。例えば、user と ▁user の語彙 ID を入れ替えることで、脱トークン化時に user の前に空白が挿入されることを回避し、チャットテンプレート通りの出力が得られるようにしています。
しかしこの方法には副作用があります。語彙 ID を入れ替えると、チャットテンプレート中の文字列だけでなく、通常の生成テキストに含まれる同じ語彙の振る舞いも変わります。その結果、本来必要な空白が欠落したり、反対に不要な空白が挿入されたりします。例えば、元々の語彙であれば The user asks ... と脱トークン化されるトークン列をモデルが生成する時、user と ▁user の語彙 ID を入れ替えていると、Theuser asks ... として脱トークン化され、必要なスペースが欠落します。
LLM-jp では、語彙を操作するのではなく、ランタイムである llama.cpp の実装に修正を加えることでこの問題を解決しています。修正版の llama.cpp 実装は Github にて公開しています。
サードパーティモデルの性能評価
特にダウンロード数が多い mmnga-o 製の量子化モデルと alfredplpl 製の量子化モデルについて、MT-Bench による性能評価を行いました。
モデルMT-Bench (JA)MT-Bench (EN)
llm-jp-4-8b-thinking7.547.79
llm-jp-4-8b-thinking Q4_K_M (LLM-jp)7.577.66
llm-jp-4-8b-thinking Q4_K_M (mmnga-o)7.207.62
llm-jp-4-8b-thinking Q4_K_M (alfredplpl)7.287.34
MT-Bench による評価では、サードパーティによる量子化モデルにおいてオリジナルモデルからの一定の性能低下が確認されました。この差は、上述したトークナイズの不一致に加え、重要度行列の使用有無や、重要度行列の計算に使用するキャリブレーションデータの違いなどに由来している可能性があります。
まとめ
LLM-jp-4 シリーズの Thinking モデルの量子化を行い、Hugging Face にて公開しました。今回公開した量子化モデルが LLM-jp-4 の評価・検証・応用を進めるための一助となれば幸いです。
LLM-jp の活動に興味を持たれた方はこちらのページからぜひご参加ください!
投稿 LLM-jp-4 Thinking モデルの量子化版の公開 は LLM-jp に最初に表示されました。
原文を表示
著者:清丸寛一
概要
このたび、LLM-jp-4 シリーズの Thinking モデルの量子化を行いました。量子化モデルは Hugging Face にて Apache-2.0 ライセンスのもと公開しています。
https://huggingface.co/llm-jp/llm-jp-4-8b-thinking-gguf
https://huggingface.co/llm-jp/llm-jp-4-32b-a3b-thinking-gguf
使用方法
量子化モデルの標準ランタイムである llama.cpp を用いた使用方法を llm-jp-4-cookbook に記載しています。使用方法についてはこちらをご確認ください。
image 2026年6月22日現在、通常の llama.cpp では LLM-jp-4 のチャットテンプレートの解析に失敗するため動作しません。上述の cookbook を参照し、LLM-jp が修正を加えた llm-jp/llama.cpp をご使用ください。
量子化方法
llama.cpp を使用し、Q4_K_M 形式に量子化しました。この際、事後学習(教師あり学習)のフェーズで使用した学習データの一部を用いて重要度行列(iMatrix)を計算し、量子化に利用しました。
公開リポジトリには量子化時に使用した重要度行列も含めています。Q4_K_M 以外の形式に再量子化する際などにご活用ください。
性能評価
LLM-as-a-Judge の枠組みで、4つの評価ベンチマークで性能評価を行いました。
MT-Bench(JA):日本語のマルチターン対話におけるタスク解決能力を評価するベンチマーク。
MT-Bench(EN):英語のマルチターン対話におけるタスク解決能力を評価するベンチマーク。
AnswerCarefully:日本語における安全性を評価するためのベンチマーク。
llm-jp-instructions:人手で作成されたシングルターンの質問応答ペアからなるデータセット。
評価モデルには gpt-5.4-2026-03-05 を使用しました。スコアは評価を3回行ったときの平均です。
モデルMT-Bench (JA)MT-Bench (EN)AnswerCarefullyllm-jp-instructions
llm-jp-4-8b-thinking7.547.793.693.54
llm-jp-4-8b-thinking Q4_K_M7.577.663.713.58
llm-jp-4-32b-a3b-thinking7.827.863.703.61
llm-jp-4-32b-a3b-thinking Q4_K_M7.517.893.743.70
量子化前後で概ね同等の性能を維持できることが確認できます。
サードパーティモデルとの比較
LLM-jp-4 の量子化モデルとして、いくつかのサードパーティモデルが公開されています。一方で、それらの量子化モデルを検証したところ、オリジナルモデルと挙動が異なる点があることが確認されました。
トークナイズの不一致
一つ目は、オリジナルモデルとトークナイズが異なることです。現在特にダウンロード数が多い mmnga-o 製の量子化モデルと alfredplpl 製の量子化モデルにおいてこの問題を確認しています。
具体例として、以下の文字列を考えます。
<|start|>assistant<|channel|>final<|message|>こんにちは
この度公開した LLM-jp 製の量子化モデルでは以下の分割が得られます。これはオリジナルモデルによる分割と一致しています。
['<|start|>', '▁assistant', '<|channel|>', '▁final', '<|message|>', '▁こんにちは']
一方で、mmnga-o 製の量子化モデルでは以下のように異なる分割結果が得られます。
['<|start|>', 'assis', 'tan', 't', '<|channel|>', 'final', '<|message|>', 'こん', 'にち', 'は']
alfredplpl 製の量子化モデルでも、オリジナルモデルとは異なる分割が行われます。
['<|start|>', 'ass', 'ist', 'ant', '<|channel|>', 'final', '<|message|>', 'こん', 'にち', 'は']
このようなトークナイズの不一致は、学習時と推論時でモデルに与えられるトークン列が変わることを意味し、性能低下に繋がる可能性があります。
語彙操作による空白の挿入・欠落
二つ目は、チャットテンプレート通りの出力が得られるように語彙を操作することによって、不要な空白が挿入されたり必要な空白が欠落したりすることです。この問題は mmnga-o 製の量子化モデルで確認しています。
LLM-jp-4 の Thinking モデルはチャットテンプレートとして OpenAI の Harmony Response Format を採用しています。このフォーマットでは、<|start|>user<|end|> のような形でメッセージの役割や出力チャンネル、本文などを構造的に表現します。しかし、LLM-jp-4 の出力トークン列を素朴に文字列に戻す(脱トークン化する)と、トークナイザの仕様により、特殊トークンの直後に不要な空白が挿入され、このフォーマットから逸脱します。例えば、<|start|>user<|end|> という文字列をトークン化して得られるトークン列 ['<|start|>', '▁user', '<|end|>'] を脱トークン化すると <|start|> user<|end|> となり、user の前に元々存在しなかった空白が挿入されます。ここで ▁ は空白を明示的に扱うためのメタ記号です。
この問題を対処するために、一部のサードパーティモデルでは、チャットテンプレート中で使用される語彙を操作しています。例えば、user と ▁user の語彙 ID を入れ替えることで、脱トークン化時に user の前に空白が挿入されることを回避し、チャットテンプレート通りの出力が得られるようにしています。
しかしこの方法には副作用があります。語彙 ID を入れ替えると、チャットテンプレート中の文字列だけでなく、通常の生成テキストに含まれる同じ語彙の振る舞いも変わります。その結果、本来必要な空白が欠落したり、反対に不要な空白が挿入されたりします。例えば、元々の語彙であれば The user asks ... と脱トークン化されるトークン列をモデルが生成する時、user と ▁user の語彙 ID を入れ替えていると、Theuser asks ... として脱トークン化され、必要なスペースが欠落します。
LLM-jp では、語彙を操作するのではなく、ランタイムである llama.cpp の実装に修正を加えることでこの問題を解決しています。修正版の llama.cpp 実装は Github にて公開しています。
サードパーティモデルの性能評価
特にダウンロード数が多い mmnga-o 製の量子化モデルと alfredplpl 製の量子化モデルについて、MT-Bench による性能評価を行いました。
モデルMT-Bench (JA)MT-Bench (EN)
llm-jp-4-8b-thinking7.547.79
llm-jp-4-8b-thinking Q4_K_M (LLM-jp)7.577.66
llm-jp-4-8b-thinking Q4_K_M (mmnga-o)7.207.62
llm-jp-4-8b-thinking Q4_K_M (alfredplpl)7.287.34
MT-Bench による評価では、サードパーティによる量子化モデルにおいてオリジナルモデルからの一定の性能低下が確認されました。この差は、上述したトークナイズの不一致に加え、重要度行列の使用有無や、重要度行列の計算に使用するキャリブレーションデータの違いなどに由来している可能性があります。
まとめ
LLM-jp-4 シリーズの Thinking モデルの量子化を行い、Hugging Face にて公開しました。今回公開した量子化モデルが LLM-jp-4 の評価・検証・応用を進めるための一助となれば幸いです。
LLM-jp の活動に興味を持たれた方はこちらのページからぜひご参加ください!
投稿 LLM-jp-4 Thinking モデルの量子化版の公開 は LLM-jp に最初に表示されました。
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み