📝 この記事は forge.workstyle.tech に掲載した記事の転載です。
80GBあれば大きなモデルで会話できると思っていました。実際は3B分しか動かせませんでした。しかも声なしで。
モデル全体は35Bです。けれど、1語ごとに使う重みは3B分。ここにたどり着くまで、私は「メモリに入るか」と「会話として使えるか」を同じ問題として考えていました。
使っているGPUはH100で、VRAMは80GBです。値段は約500万円。これだけあれば、大きなモデルを動かして会話できるはずだと思っていました。少なくとも、モデルを置く場所には困らない。そう考えていました。
ところが、会話に必要なのはモデルが動くことだけではありません。音声アシスタントやAIアバターでは、返事の速さで会話の自然さが決まります。質問してから返ってくるまでが遅ければ、賢い答えでも会話が続きにくい。大きなモデルはメモリに入っても、1語ごとに多くの計算が必要です。そのため、返事が遅くなることがあります。
ここで私は、モデルの大きさをメモリの容量だけで考えていたことに気づきました。会話として使えるかを決めるのは、置けるかどうかだけではありません。返事を作る間に、どれだけ計算するかも関わります。
小さくすれば、会話は軽くなるのか
返事を速くしたくて、小さいモデルを試しました。計算量を抑えられるなら、会話の応答にも向くかもしれない。そんな期待がありました。
ただ、私が作っていたのは、ユーザーの一言を見て「何の依頼か」を分ける会話の振り分け判定です。言葉の意味を拾い、依頼の種類を見分ける必要があります。直前の操作を踏まえた短い一言も、ひとつの依頼として解釈しなければなりません。
小さいモデルでは、言葉の取り違えが目立ちました。たとえば「今度は --watch 付けて同じの走らせて」。この一言は、直前に何をしたかを受けています。文字だけを見て、単独の新しい依頼として処理すると、意図を外しやすい。私の判定では、こうした「直前の操作の続き」でモデル間の差が特に開きました。
小さくするだけでは、欲しい返事の速さと、意図を読み取る力を一緒に保てませんでした。ならば、モデル全体は大きくても、1語ごとの計算を抑えられるものはないか。そこで候補になったのが、いま注目を集めている「MoE(Mixture of Experts)」です。
35Bのモデルなのに、1語ごとに使うのは3B分
MoE とは、複数の専門家(エキスパート)ネットワークの中から、入力に応じて最適なものを選んで使うことで、LLM が効率よく推論できるようにする仕組みです。多数の専門的なサブネットワーク(エキスパート)を持ち、入力に応じて必要なものだけを選択的に活性化します。
採用したのはQwen3.6-35B-A3Bです。モデル全体には35B分の重みがありますが、1語を処理するたびに使う重みは3B分です。
普通の大きなモデルでは、1語ごとの処理にも多くの計算が必要になります。MoEでは全体をメモリに置きながら、各語の計算には選ばれたエキスパートの分の重みだけを使います。このモデルの1回の計算量は、普通の4B・8Bモデルに近いとされています。私の環境では、自前のゲートウェイ(vLLM)で動かしています。
数字で見ると、この選択の理由がはっきりします。ユーザーの一言が何の依頼かを分ける判定で、Qwen3.6-35B-A3Bの正解率は92.6%でした。普通のqwen3:8bとqwen3.5:4bは82%台です。35B-A3Bの判定にかかった時間は306msでした。
とくに差が開いたのは、直前の操作の続きにあたる一言です。35B-A3Bは86.3%。小さい4B・8Bは70.4%でした。会話では、短い言葉ほど前のやりとりに頼ることがあります。私が見た範囲では、こうした一言を取り違えないことが、モデルを選ぶ理由になりました。
ただし、この数字は文字だけの判定結果です。音声認識(STT)も音声合成(TTS)も含めていません。実際に声で会話するなら、その分の時間とGPUメモリが上乗せになります。どれくらい増えるかは、ここでは数字にできません。今回の判定結果だけで、声での会話全体の速さを説明することもできません。
メモリに入ることと、会話で使えること
以前、私は「GPU 1枚にAIアバターは4体まで」という記事を書きました。720p30を実時間で維持したときの話です。ただ、そのときもボトルネックはGPUではありませんでした。
今回のLLMの話も、GPUのメモリだけを見ていると見落としがあります。80GBにモデルを置けるか。1語ごとの計算はどれほどか。文字を受け取ってから返すまでの時間はどうか。さらに声で会話するなら、STTとTTSの時間やメモリも加わります。見ているのは同じGPUでも、会話で使えるかを決める条件はいくつもあります。
私がこの構成で学んだのは、GPUの容量と会話の応答は別の観点で考える必要がある、ということです。全体35Bのモデルでも、1語ごとの計算が3B分なら候補になりました。小さいモデルへ替えるだけでは、判定の正解率を保てませんでした。
GPUはメモリの大きさより「1語ごとにどれだけ計算するか」で選ぶ。
関連記事
- Jev vs ローカルモデル ── 1,000件の発話で比べて分かった、日本語の振り分け判定の現在地
- GPU 1枚でAIアバターは何体配信できる? 実測4体・1体あたり月7,600円
- H100を借りたのに、絵が1フレームも描けなかった
