GPUメモリ4GBあればGPT-oss 20Bが14tok/secで動く

llama.cppにMoEに適したCPU/GPUの振り分けのオプションが入って、LM Studioでもそのオプションに対応したことによって、MoEモデルであるGPT-ossが少ないGPUメモリでもそれなりに動くようになりました。拡大するとわかりますが、LM Studioの右下の表示によると、メインメモリは12GBくらい使います。

14tok/sec出ています。

CPUだけで動かすと10tok/secだったので、5割マシですね。

0.3.23.0に「Force Model Expert weight onto CPU」というスイッチが入っているので、これをOnにするとExpertのウェイトがすべてCPUに乗るようになります。アテンションはGPUで。

詳しくはリリースノートにありますが、llama.cppの--n-cpu-moeの仕組みを使ってるとのこと。
https://lmstudio.ai/blog/lmstudio-v0.3.23#force-moe-expert-weights-onto-cpu-or-gpu

ちなみに全部GPUに載せると65tok/secです。

基本的には、この話の応用。
CPUが得意なことをCPUにまかせて少ないVRAMでも大きめのLLMを速く動かす - きしだのHatena

アテンションは3重ループがある一方パラメータ数が少ないのでGPUに、Feed Forward Network(FFN)はパラメータ数が多い一方で2重ループなのでCPUでも比較的速く処理ができる、というのを利用しています。この図ではFFNについて3割くらいCPUにやらせるとありますが、今回の設定では全部をCPUにやらせています。

MoEのExpertsというのはFFNがいろいろ分かれているわけで、全体のパラメータ数は多いけど実行時にはほとんど使われないのでメモリが無駄になります。
ということで、メモリが貴重なGPUじゃなくCPUに載せておけばそれなりに効率よく実行できるわけですね。

ところで、動画用に15秒くらいで終わるやつと思ってHello Worldを出してもらったのだけど、IDEを使う場合とかクラスとファイル名とかいらんこと解説して30秒かかってしまった。
回答の自信がなくていろいろ付け足してしまっている