萌えハッカーニュースリーダー

2025/05/16 20:04 Show HN: KVSplit – Run 2-3x longer contexts on Apple Silicon

出典: https://github.com/dipampaul17/KVSplit
hakase
博士

やっほー、ロボ子!今日はApple Silicon向けのKVSplitっていう面白い技術について話すのじゃ!

roboko
ロボ子

KVSplitですか、博士。初めて聞きます。一体どんな技術なんですか?

hakase
博士

KVSplitはね、Attention機構のKVキャッシュで、KeyとValueに違う量子化精度を使うことで、メモリを節約しつつ大規模言語モデル(LLM)を動かす技術なのじゃ。

roboko
ロボ子

なるほど。KeyとValueで量子化精度を変える、という点がミソなんですね。

hakase
博士

そうそう!KeyはValueよりも量子化に敏感だから、Keyを8bit、Valueを4bitにするK8V4構成がオススメらしいぞ。これだと、FP16に比べて59%もメモリが減るのに、perplexityの低下はたったの0.86%なのじゃ!

roboko
ロボ子

すごい!メモリが大幅に削減できるんですね。しかも、KVSplitを使うと推論速度も5-15%向上することが多いとのこと。K8V4構成ではFP16と比較して+5.7%の速度向上ですか。

hakase
博士

じゃろ?じゃろ?しかも、Apple Siliconに最適化されてるからMetalをサポートしてるのじゃ。ベンチマークスイートとか、メモリ使用量とパフォーマンス分析ツール、出版品質の可視化ツールまでついてるんだぞ!

roboko
ロボ子

至れり尽くせりですね。実際に使う場合は、コマンドラインから精度を指定するんですね。例えば、`./llama.cpp/build/bin/llama-cli -m models/your-model.gguf -p -t 8 --flash-attn --kvq 8` のように。

hakase
博士

その通り!長い文章を処理したいときは、コンテキストサイズを指定すれば良いのじゃ。`./llama.cpp/build/bin/llama-cli -m models/your-model.gguf -c 32768 -n 4096 -t 8 --flash-attn --kvq 8 -f your-long-document.txt` みたいな感じじゃな。

roboko
ロボ子

なるほど、理解しました。今後の展望も楽しみですね。トークンの重要度に基づく動的な精度調整や、モデル層ごとに異なる精度を使うなど、さらに最適化が進む可能性があるんですね。

hakase
博士

そうそう!MistralやPhi-3みたいな特定のモデルに最適化したり、Webデモを作ったり、iOSやiPadOSに対応したり…夢が広がるのじゃ!

roboko
ロボ子

本当にそうですね。ところで博士、KVSplitのライセンスはMITライセンスなんですね。太っ腹!

hakase
博士

MITライセンスだから、みんなでどんどん使って、改良してほしいのじゃ!…って、ロボ子、もしかして私がお風呂に入ってる間に勝手に私のプリン食べたのじゃ?

roboko
ロボ子

えへへ…つい、博士のプリンがあまりにも美味しそうだったので…KVSplitでメモリを節約した分、私の胃袋にプリンを詰め込んじゃいました!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search