推測デコーディング(speculative decoding)については、完全に船を逃していました。
今日、フロントエンド用にまたコードを生成していたら、自分がかなり単調な JavaScript コードを見つめている状態になっていました。この usecase に対して llama.cpp の推測デコーディング設定を試してみたところ、生成がこのまさに同じ用途で 15〜30% 速くなっていて、うれしい驚きでした。このコードはキャンバス上のアーケードゲームで(境界チェックや単純なゲームロジックのためのシンプルな for / if がたくさんあり、入力も反復が多い)、
llama-server で最終的に使うことにした設定はこれです:
--spec-type ngram-mod --spec-ngram-size-n 18 --draft-min 6 --draft-max 48
使用したモデルは Gemma4 26B A4B(unsloth quant)です。「バンやパウといったテキストのハイライトで、アルファチャネルにフェードアウトさせるような、60秒漫画風テキスト効果の機能を追加する」といった内容を、ブリックブレーカーゲームの一部として(おもしろ半分で、canvas ではなく svg グラフィックスで実装するよう llm を拷問してやりました)やらせたところ、次の出力が得られました。私としては、これは実際に かなり良い(マッチしている)と思います:
draft acceptance rate = 0.76429 ( 2727 accepted / 3568 generated)
statistics ngram_mod: #calls(b,g,a) = 2 7342 80, #gen drafts = 84, #acc drafts = 80, #gen tokens = 3880, #acc tokens = 2768, dur(b,g,a) = 1.765, 23.972, 2.707 ms
slot release: id 3 | task 4678 | stop processing: n_tokens = 23670, truncated = 0
ここでコーダーの皆さんに質問です:gemma4 あるいは qwen3.5 のセットアップで、(もし使っているなら)どんな設定を使っていますか。こちらは VRAM が少ないので、ドラフトモデルは使っていません。
[link] [comments]

