llama.cppにおける最近のパフォーマンス最適化により、n-gram投機推定を通じてトークン生成を高速化する技術である、プロンプト・ルックアップ・デコーディングの速度が大幅に向上しました。開発者のJadid Bourbaki氏による更新によると、これらの改善により、全体で最大140倍の高速化が可能になるとのことです。
このパフォーマンス向上は、複数の最適化によるものです。第一に、特定の内部データ構造を ankrerl::unordered_dense に置き換え、segmented_map バリアントを実装したことで、メモリ使用量が削減され、ドラフティング速度が向上しました。第二に、バイナリ・フューズ・フィルタ上に構築された不変マップである constmap の実装により、静的なn-gramキャッシュのロードとルックアップが劇的に高速化されました。541 MBのコーパスを使用したベンチマークでは、静的キャッシュのロード時間は3.76秒から0.23秒へと短縮されました。
さらに、Daniel Lemire氏による貢献により、候補トークンのスコアリング方法が最適化され、これらの結果がさらに強化されました。Lemire氏の手法では、すべての候補のスコアを計算する前に、頻出するフォロワーまたはn-gramの総数が要件を満たしているかをまず確認します。この追加により、静的キャッシュを使用する場合はドラフティングが最大4.2倍、使用しない場合でも最大1.9倍高速化されます。
出典
- 42x faster prompt lookup drafting in llama.cpp (Hacker News Frontpage, 2026-09-26)
- PR