llama.cpp と Gemma4 の推測デコーディング設定を共有してください

Reddit r/LocalLLaMA / 2026/4/14

💬 オピニオンSignals & Early TrendsIdeas & Deep AnalysisTools & Practical Usage

要点

  • ユーザーは、反復的な JavaScript コードのユースケース(例:アーケードゲームのロジック)で推測デコーディングを試したところ、llama.cpp で生成速度が 15〜30% 向上したと報告しています。
  • ngram ベースの推測デコーディングに関する具体的な llama.cpp 設定として、`--spec-type ngram-mod --spec-ngram-size-n 18 --draft-min 6 --draft-max 48` を共有しています。
  • ターゲットモデルとして Gemma4 26B(unsloth quant)を使用した場合、テストしたシナリオでは下書き(draft)の受理率が約 0.764(生成した 84 個の draft のうち 80 個が受理)だったと報告しています。
  • 投稿には、受理トークン数と生成トークン数、ステップごとの所要時間などの追加の生成・タイミング統計が含まれており、推測パスが単に捨てられるのではなく、生産的に使われていたことを示しています。
  • 著者は、Gemma4 や Qwen 3.5 で他のローカルLLM コーダーがどのような推測デコーディング設定を使っているのか尋ねています。特に、別の draft モデルを用意するのを避ける可能性があるような、制約のある VRAM 環境についての情報を求めています。

推測デコーディング(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 が少ないので、ドラフトモデルは使っていません。

submitted by /u/hurdurdur7
[link] [comments]