spiritbuun/buun-llama-cpp
Experimental llama.cpp fork for inference research and development
buun‑llama‑cpp – 実験的な Llama.cpp フォーク
これは何か – 人気の推論エンジン llama.cpp の研究指向のフォークです。モデルのアテンションメモリの品質を維持しながら、GPUメモリの使用量を大幅に削減する新しいKVキャッシュ量子化技術を追加します。このプロジェクトは、単一GPU(またはマルチGPUサーバー)でLLM推論を実行しており、精度を犠牲にしすぎずにコンテキスト長を最大化したり、より大きなモデルを収めたいと考えている人々を対象としています。
中核となる革新
| 機能 | 機能の説明 | 重要性 |
|---|---|---|
| VBR – 可変ビットレートKVキャッシュ | プロンプトが成長するにつれて、キー・バリューキャッシュをレイヤーごとに動的に圧縮します。FP16から始まり、カスタムコーデックのラダー(turbo8 → turbo4 → turbo3_tcq → … → turbo1_tcq)に劣化します。 | 保有するVRAMで可能な限り長いコンテキストを実現し、プロンプトの初期部分は最高品質の表現を維持します。 |
| Turbo量子化コーデック | 高速で低ビットの量子化器(turbo8、turbo4、turbo3、turbo2、turbo1)と、トレリス符号化バリアント(*_tcq)のファミリーです。 |
値あたり1〜4ビットでKVメモリを削減し、パープレキシティの損失はわずかです。トレリス版はスカラー量子化と比較してKLダイバージェンスを約40%削減します。 |
| TCQ – トレリス符号化量子化 | 512状態のトレリスとビタビ符号化を使用して、同じビットレートでより大きな実効コードブックを実現します。 | 非常に低いビットレート(例:3.25 bpv)での品質を向上させ、最新GPUではFP16に近いデコード速度を維持します。 |
ネイティブ .safetensors とEXL3サポート |
.safetensors(EXL3量子化ウェイトを含む)として保存されたモデルを、GGUFへの変換なしで直接読み込みます。 |
新しい量子化形式のユーザーのワークフローを簡素化します。 |
投機的デコード+ビジョンスワップ(--mmproj-gpu-swap) |
画像が実際に必要になるまでビジョンエンコーダー(mmproj)をCPUに移動し、その後GPUにロードして高速エンコードします。 | マルチモーダルモデルを、そうでなければメモリ不足になるGPUで実行できるようにします。 |
| MoEキャッシュ処理 | 混合エキスパート(MoE)モデルのエキスパートウェイトをGPUとシステムRAMの間で自動的に配置し、適応型の「自動」モードを備えています。 | 非常に大きなMoEモデル(例:DeepSeek‑V4‑Flash)をコンシューマーグレードのハードウェアで使用可能にします。 |
使用方法
このフォークは、アップストリームの llama.cpp バイナリと同様に動作します。専用GPUでの一般的な起動は次のとおりです。
llama-server -m model.gguf # VBRはデフォルトでオン
- 完全なコーデックラダーを強制する(キャッシュを最下位層まで劣化させる)には、
-ct vbrを追加します。 - コンテキスト長を制限し、VBRがそのウィンドウにすべてのVRAMを使用できるようにするには:
-c 30000。 - VRAM予算を手動で設定するには:
--vbr-vram 8G。 - より低品質のエントリ層から開始する(メモリが非常に tight な場合に便利):
--vbr-entry t8。 - マルチモーダル作業の場合は、スワップを有効にします:
--mmproj-gpu-swap。 - MoEモデルの場合、推奨フラグは
--fit on --moe-cache autoです。
すべての設定はオプションです。デフォルトは、品質とメモリの最良のトレードオフを自動的に目指します。
パフォーマンスのハイライト(READMEより)
| コーデック | ビット/値 | パープレキシティ(PPL) | プリフィル速度(トークン/秒) | デコード速度(トークン/秒) |
|---|---|---|---|---|
| f16(リファレンス) | 16.0 | 5.683 | 1104 | 30.7 |
| turbo3_tcq(トレリス) | 3.25 | 5.668 | 818 | 26.6 |
| turbo3(スカラー) | 3.5 | 5.730 | 1015 | 28.1 |
| turbo1_tcq(1.25 bpv) | 1.25 | 6.012 | 991 | 28.5 |
トレリス符号化コーデックは、メモリのわずかな割合でFP16に近い品質を実現し、RTX 3090ではデコード速度はFP16ベースラインの毎秒数トークン以内に留まります。
誰が注目すべきか?
- 単一GPUでより長いコンテキスト(20k〜30kトークン)を実験したい研究者やホビイスト。
- コンシューマーカードのVRAMを超えるマルチモーダルまたはMoEモデルのデプロイ担当者。
- KVキャッシュ量子化に興味がある人 – リポジトリにはトレリスコーデックのコードブックとトレーニングスクリプトが含まれています。
制限事項/注意点
- このフォークは 高度に実験的 とラベル付けされています。新しいllama.cppリリースとの非互換性や、時折のクラッシュが発生する可能性があります。
- CUDAまたはROCmビルドとflash‑attentionの有効化が必要です。CPUのみの推論はTurboコーデックではサポートされていません。
- いくつかの高度な機能(例:階層対応のセーブ・リストア、投機的デコードのチェックポイント)はまだ開発中です。
クイックスタートチェックリスト
- CUDA/ROCmおよびflash‑attentionでビルドします(
make LLAMA_CUDA=1)。 - GGUFまたはサポートされている
.safetensorsモデルを作業ディレクトリに置きます。 llama-server -m model.ggufを実行します。-vを追加してVBRの劣化ステップを確認するか、-ct vbr/--vbr-floor t4で微調整します。- ビジョンの場合は、
--mmproj-gpu-swapを追加し、mmproj.ggufファイルを指定します。
結論 – buun‑llama‑cpp は、可変ビットレート量子化とトレリス符号化コーデックを通じてKVキャッシュメモリ効率の限界を押し広げる、本格的で研究に焦点を当てたllama.cppの拡張です。すでにllama.cppに精通しており、より多くのコンテキストが必要であるか、限られたGPUメモリで大規模なMoE/ビジョンモデルを実行したい場合、このフォークは具体的で文書化された一連のツールを提供します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト