LM StudioがMTPに対応したので使ってみる

ローカルLLM

LM StudioがMTP(Multi Token Prediction)に対応しました。まだベータ版なので設定からベータ版を選択してアップデートする必要があります。
MTPは、最初に小さなモデルで複数のトークンを生成し、そのうちのいずれかがメインのモデルと同じトークンを生成していたらそれを採用する、という仕組みです。これによりトークン生成が2倍程度に速くなるといいますが、設定とPCのスペック次第のようです。
うちの環境(24GB VRAM + 32GB RAM)ではこの機能をフル活用するのは難しそうだと感じました(今の所)。

VRAM使用量が多すぎる(Qwen3.6-27B)

LM StudioでMTP対応モデルをダウンロードして使ってみました。追加で消費するVRAMが多すぎます。コーディングに使うには最低でも60000トークンのコンテキストウィンドウが必要で、24GBのVRAMはモデルとこのコンテキストのKV Cacheでほぼいっぱいになります。MTPを利用するとさらに10GBくらいのメモリを必要とするため、RAMのほうにスワップします。これが原因でPrefill(入力トークンの読み込み)にかなり時間がかかるようになってしまいました。スワップしたこの状態でMTPによって増えるトークン生成速度は8tokens/sくらいだった(max draft tokensを2に設定)ので、Prefillの遅さに釣り合っていません。一般のご家庭でこの大きさのモデルにMTPを適用する意味はなさそうです。
24GBを2枚差ししたい。そんなスペースないけど。

追記

一日後に改めて使ってみると、VRAMは少しスワップするくらいで、使用量が急増する現象は見られませんでした。トークン生成速度の増加量は変わらず8tokens/sくらい(28%の向上)、Prefillが遅くなることはありませんでした。ただの不具合だった可能性が高いです。

数万トークン入力してみたところ、32GBあったRAMが一瞬でカンストしてPCの動作が不安定になったので、ちょっと使いどころがないかもです。コーディングでも小説執筆のお供でも、数万トークンの入力が普通なので。

Qwen3.6-35B-A3B

MTPを有効にすると微妙に遅くなります。元々速いこのモデルがさらに高速化してもあまり意味がないかもしれません。

Qwen3.5-9B

ここまでパラメータ数を落とすとコーディングでは実用できないのですが、これくらいの大きさが現実的なラインかと思われます。Qwen4なんかが出て今の27Bの実力が9Bに降りてきてくれればようやくMTPの恩恵を受けられるでしょう。
今はまだこんな小さいモデルを高速化してどうすんねん、というところです。

で、トークン生成速度は変わりませんでした。速度の最大値はmax draft tokensが2のときで、ちょうどMTPを無効化したときと速度が同じでした。VRAMに余裕はありました。

MTPの恩恵の大きさは有効パラメータ数に比例するのでしょうか?

今のところ一般のご家庭では恩恵が少ない

24GBを個人消費者向けで手に入る最大のVRAMとした(RX7900XTX, RTX3090。5090, 4090は高すぎ)とき、MTPを有効化した状態でQwen3.6-27Bを動かしても恩恵が少ないですが、とりあえず有効にしておいてもいいかな、くらいのものです。大幅な高速化に成功した事例はどれも48GB以上のVRAMを積んでいます。並列でトークンを生成するときの速度が大幅に向上するとのことですが、並列に生成するということはそれだけ肥大した入力トークンを扱うということなので、たぶん前述の通りRAMが尽きます。

次の世代のモデルでQwen3.6-27Bの半分以下のサイズかつQwen3.6-27B相当の能力を持ったものが登場するとようやく24GBに収まりそうですが、9Bで試してなぜか速度が出なかったので今のところ期待していません。素のllama.cppで試したら変わるのでしょうか?

コメント

タイトルとURLをコピーしました