TurboQuantを実装してみたが、論文の結果と完全には一致しなかった

Reddit r/LocalLLaMA / 2026/5/3

💬 オピニオンDeveloper Stack & InfrastructureSignals & Early TrendsModels & Research

要点

  • 著者はTurboQuant(arXiv:2504.19874)をゼロから実装したものの、特に「PROD」版で論文の再現が十分ではないことを見つけました。
  • MSEベースの版は圧縮と歪みの挙動が概ね期待どおりに出る一方、論文で99%超の相関が報告されているPROD版では、著者は4ビットで約95.8%の相関にとどまりました。
  • さらに重要なのは、相関が約95%程度でもアテンション品質が大きく低下し、簡単なシミュレーションではトップ1精度が約67%まで下がった点です。
  • 著者は、相関はランキング保持を保証しない可能性があり、アテンションは順序の小さな誤りにも非常に敏感だという仮説を述べています。
  • 分散スケーリングの扱い、QJLの分散スケーリングの再導出、圧縮を成立させるためのビットパッキングなど、実装上の細部が大きな障害になったため、KVキャッシュ量子化に詳しい人からのフィードバックを求めています。

ここ数日で、TurboQuant(arXiv:2504.19874)をゼロから実装しようと試みました。

論文にある数値と一致しないので、こちらの皆さんに何か確認してみようと思いました。

観測結果:

MSEバージョンは良好に動作します(圧縮&歪みが期待通り)

PRODバージョン:

論文での主張は99%以上の相関

私の値は4ビットで約95.8%です

ただ、より興味深いのは:

この約95%の相関レベルでも、注意(attention)の品質が大きく劣化します

(単純なシミュレーションでトップ1精度が約67%のみ)

私の仮説:

相関はランキングの保持と一致しない

attentionは順序のわずかな誤りに非常に敏感です

他に遭遇したこと:

分散スケーリング(unit vs 1/d)が最初はMSEバリアントを完全に壊してしまいました

QJLの分散スケーリングは再導出が必要でした

圧縮を成立させるにはビットパッキングが必要です

よく分からないのは:

PRODのスケーリングで単に何かを見落としているだけなのか

d=256のときには、これが期待される振る舞いなのか

それとも論文の結果は、より大きな次元/セットアップに依存しているのか

興味があればコードはここにあります:

https://github.com/Ashx098/Turboquant-Implementation

KVキャッシュの量子化/同様の手法を扱ったことがある方からのフィードバックが本当にありがたいです。

submitted by /u/Routine-Thanks-572
[link] [comments]