bartowskiは、GGUFモデルでimatrixを計算するために使用されるキャリブレーションデータについて新たな実験を公開した。新しいdatasetはパフォーマンスを改善する「魔法の解決策」ではないものの、一部のケースでは限定的ながら重要な改善を達成し、量子化に使用するテキストの種類が最終モデルにどのような影響を与えるかについて、より深い理解をもたらしたと説明している。実験の著者は、これが最終的な結果ではなく、今後もデータの更新とテストを続ける予定だとしている。
実験はFableとの協力により、LTT Labsが提供したGPUリソースを使用して実施された。bartowskiは使用したファイルを公開しており、散文テキストと会話の2つの個別ファイルに加え、モデル固有のチャットテンプレートを通した後のテキストも含まれている。また、整形済みバージョンの生成方法を説明するスクリプトも提供し、Qwenのファイルについては、モデルがデータの最後の部分を無視しないよう、末尾に <|endoftext|> 文字列を意図的に追加していると述べた。
量子化プロセスにおけるimatrixの役割
bartowskiは、llama.cppの量子化アルゴリズムが、重みの集合をより低精度の表現へ変換することで生じる誤差を低減しようとすると説明した。これらの重みの相対的重要性を推定するため、大量のテキストをモデルに通し、入力チャネルの活性化に関する測定値、より正確には各テンソルに到達する活性化値の二乗和を集計する。
多くのテキストにわたって強く一貫して活性化するチャネルは、最終結果にとって関連する重みの重要度が高いとみなされる。一方、ほとんど活性化しないチャネルは重要度が低いように見えるが、実際には、それを呼び出す適切な種類のテキストがデータに含まれていなかった可能性もある。したがって、結果はcorpusの規模だけでなく、その多様性とモデルの異なる部分を作動させる能力にも左右される。
テストには密モデルとMixture-of-Expertsモデルを含めた
チームは、gemma-4-E2B-it、Qwen3.5-4B、Qwen3.6-27B、Qwen3.6-35B-A3B、Mistral-Small-4-119B、Qwen3-Next-80B-A3B、Qwen3.5-397B-A17Bの7モデルをテストした。評価では、bf16に対するKLDの比較、BFCLのテスト、専用の短いテストセット、MoEモデルにおけるエキスパートのカバレッジ検証に重点を置いた。また、テストを完全に実行するコストが高いため、より深い検証としてMMLU-ProとGSM8Kのサンプルも使用した。
全体的な結果として、約4ビット/重みを超えるレートでは、データによる明確に予想できる差は生じなかった。初期テストには、いくつかの仮説を排除するため完全にランダムなデータも含めたが、Q4_0、IQ4_XSおよびそれ以上のレベルにおける差は、ほとんどのケースで限定的だった。これらのレベルでは量子化誤差が比較的小さいためである。
最大の差は低いレベル、特にMoEモデルのQ2_Kで現れた。Qwen3.6-35Bをimatrixなしで量子化した場合、BFCLの性能は約82%から54%へ、およそ28ポイント低下した。このテストでは、最良のcorpusと最悪のcorpusの差も約10%に達した。一方、IQ2_Mで使用したクリーンなデータの大半は近い結果となり、差は概して数パーセントポイント以内に収まった。
会話形式とツール利用が重要な理由
この実験は、MoEモデルにおける課題が言語の多様性やテキストの品質だけでなく、データが異なるエキスパートを作動させる能力にも関係していることを示している。Qwen3-Next-80B-A3Bでは、ツール利用専用の英語corpusを使用したところ、3126個のセグメントを通過させた後も、512エキスパート中18エキスパートが一度も作動しなかった。これはcalibration_datav5.txtの長さの約4倍に相当する。
calibration_datav5.txtとツール呼び出しデータを組み合わせると、エキスパートを完全にカバーできた。実験では、多言語コンテンツとプログラミングコンテンツが、一部のエキスパートを作動させるために必要な主要因であることも分かった。また、特にMoEモデルでは、chat templateに従って構成された会話を含めることが重要だと見られた。一部のエキスパートは、会話のトークンと構造を確認した場合にのみ作動する可能性があるためである。
実際には、会話やツール呼び出しに対応するモデル向けのimatrixを準備する際、ランダムな散文テキストだけに限定すべきではないということを意味する。チャットテンプレートやツールの例がない場合、キャリブレーション中に一部のエキスパートが十分に代表されず、後に低い量子化レートでの性能に現れる可能性がある。
新しいバージョンはどのように構築されたか
bartowskiは、どのデータセグメントがエキスパートをより効果的に作動させるかを把握するため、セグメント単位の分析を使用した。その結果、一部のエキスパートは、コード、フランス語テキスト、物語文学、科学資料など、特定の種類のコンテンツでのみ現れることが分かった。そこで、テスト対象のMoEモデル全体でエキスパートのカバレッジを最大化する目的で、多様な散文テキストを集めた。
さらに、interstellarninja/hermes_reasoning_tool_useから取得した、ツール呼び出し用に整形された会話を追加し、テストでは散文と会話を2:3の比率で組み合わせる構成が最良と判断された。400~800セグメントの規模のバージョンを試した後、最終版は、同じ品質を基に構築された場合であっても、はるかに大規模なバージョンより優れた性能を達成した。著者は、巨大なcorpusでは、より頻繁に現れるコンテンツが、出現頻度の低い重要なシグナルを覆い隠してしまう可能性があるという初期的な説明を示している。
また、新しいデータによって多言語カバレッジが狭まったわけではないとも述べた。散文部分におけるラテン文字で書かれたテキストの割合が低下したため、v5リリースと比較して、非ラテン文字の言語がcorpusに占める割合は大きくなった。ただし、追加のテストがなお必要だと強調している。
v5とv6の比較は絶対的な優位性を示すものではない
bartowskiは、Qwen3.8-27Bを構築する際にv5とv6を比較し、wikitext、HuggingFaceH4/no_robots、Salesforce/xlam-function-calling-60kに対するperplexityとKLDを使用した。これらの数値は近似的な指標であり、決定的な証拠ではないと説明している。特に、no_robotsにおけるbf16の基準perplexity値は19.05だった。wikitextでは、v6によって一部のレベルで平均KLDが改善し、Q2_K_Lでは2.6%、IQ2_Mでは1.8%改善したが、Q4_K_Sでは3.6%、IQ2_Sでは3.1%悪化した。
この比較は、新しいdatasetによる改善が選択的であり、すべての量子化形式やすべてのテストセットに対する全般的なアップグレードではないことを示している。これは、imatrixの影響が低いビットレートでより明確になり、多数のエキスパート間で作業を分配するモデルで特に顕著になるという著者の結論とも一致する。
著者は、imatrixの計算時にコンテキスト長2048を512の代わりに使用することもテストしたが、結果の改善は確認できず、多くのケースでエキスパートのカバレッジが低下した。また、bf16とQ8_0から計算したimatrixの結果についてコサイン類似度を比較したところ、一部の外れ値は存在したものの、99.99%を超える類似度が示された。
実際的な結論は、単一のdatasetが常により良い性能を保証するということではなく、特にMoEモデルを低いレベルへ量子化する際には、corpusの選択が調整すべき要素になったということである。新しいバージョンは、そのファイルと生成方法とともに公開されており、bartowskiはMistralやQwen3-Next-80B-A3Bを含む他のモデルでもテストを続けている。