llama.cppのプロンプトルックアップ・ドラフティングを42倍高速化した手法
Faster prompt lookup drafting in llama.cpp

llama.cppのプロンプトルックアップデコーディングにおけるドラフティングを最大42倍高速化し、メモリ使用量を最大2.6倍削減した。不要なマップのコピーを排除し、外側のマップをankerl::unordered_denseに置き換え、内側のマップをソート済みベクトルに変更するという4つの最適化を適用。541MBのコーパスでは、ドラフトあたりのレイテンシが165.48µsから3.98µsに短縮された。
この変更は、コーパスのサイズに応じてドラフティングを4.5倍から25.6倍高速化しました。
- jadidbourbaki
ちなみに、オープンソースコミュニティ全般、特にllama.cppに詳しい方がいれば、ぜひアドバイスをいただけるとありがたいです。悪意なく解決できればと心から願っている、ちょっとした対人関係の問題に直面しています。経緯はこちらです:
https://www.reddit.com/r/LocalLLaMA/comments/1wr5ylm/comment...
何かできることについてアドバイスはありますか?この件のせいで、llama.cppリポジトリでPRやissueを作成できません。ただ、他のチャンネルでメンテナに迷惑をかけて、さらに怒らせてしまうのではないかと心配しています。助けていただきありがとうございます!
- jadidbourbaki
嬉しいアップデートです:Daniel Lemireがさらに最適化を加えて、これを一層高速化しました。https://github.com/jadidbourbaki/llama.cpp/pull/12
彼の変更をベンチマークして、この改善を彼のクレジットとともに記事に追加します。
- PicardsFlute
つまり、頼まれたように非公開で解決する代わりに、ここに来て愚痴ってるんですか?Redditのbot投稿だけでは足りなかったと?プロの助言:こういう物事には正しいやり方と間違ったやり方があり、あなたは間違いなく間違ったやり方をしています。そして私を何かで非難する前に言っておきます:私はそのプロジェクトとは一切関係ありませんが、何が起きたかは確かに見ました。あなたはまるでクソガキのように振る舞っていて、自分を恥じるべきです。