西川和久の不定期コラム
これは事件だ。“賢い家庭内LLMの夢”を叶える「gpt-oss-120b」、動かし方を教えます
2025年8月26日 06:00
今年(2025年)の8月5日に、ChatGPTでお馴染みOpenAIからオープンウェイトな「gpt-oss-20b」と「gpt-oss-120b」がリリースされた。このうち前者の20bの方は32GBのメモリがあればそこそこ動くので、すでに実践されている方も多いかもしれない。「ではより大規模で賢い120bをPCで動かすにはどうすればいいのか!? 」……を、3つのパターンに分けてご紹介したい。
OpenAI「gpt-oss-120b」とは?
8月5日にOpenAIから2つのオープンウェイトなLLMがいきなりリリースされた。1つはgpt-oss-20b、もう1つはgpt-oss-120b。どちらもApache 2.0ライセンスで提供され、商用利用も可能。当初、“あのChatGPTのOpenAI”が出したとのことで結構騒動となった。
一説によると20bは「o3-mini」、120bは「o4-mini」と同レベルの程度の性能だとか(リンク参照)。本当だとすると、これがローカルPCで動くのであれば、ある意味事件だ。
gpt-ossの特徴としては、MoE(mixture-of-experts)となっていることだ。ザックリ仕組みを解説すると、LLMでパラメータを常にすべては使わず、全部をアクティブにしておくのは無駄なので、小さく分けたエキスパートをいくつか抱え、実行する時はそのパラメータ数で動作させる点だ。
アクティブパラメータは20bで3.6b、120bで5.1b。3.6bや5.1bならちょっとしたPCで動作するのは、以前から記事にしてきた通り。つまり強力なGPUなしで、CPUとメモリだけでもそれなりに使える環境となる。
gpt-oss-20bと120bは、OpenAI純正外にもいろいろなパターンが出ているものの、今回は純正を使用する。これには理由があり、LM StudioだとHarmonyと呼ばれるフレームワークに対応し、「Reasoning Effort(考え中……)」をLow/Medium/Highに切り替えることができるからだ。以降の内容に関しては、特に断りがない限りMediumで試用した。
それぞれのモデルのファイルサイズは約12GBと約63GB。この容量+αがメモリにさえ乗れば理論上は動作する。実際、容量12GBの20bはメモリ32GB/Snapdragon X Eliteを搭載したASUSの「Zenbook SORA(UX3407RA)」でも、約20tok/sの出力速度ほどで動いている。従って20bであればハードルはかなり低い。
では、120bを動かすにはどうすれば?という話が今回のお題。以降3パターンに分けてご紹介する。
メモリ64GBの「GMKtec EVO-T1」だけで動かしてみる
上記でgpt-oss-120bのファイルサイズは約63GBと書いた。だとすると常識的に考えて、メモリ64GBのPCだと動くはずがないのだが、なぜかGMKtecのCore Ultra 9 285H搭載ミニPC「 EVO-T1」では遅いものの動作した。
そのカラクリだが、調べてみたところ、
- タスクマネージャーを見るとメモリ63.5GB、GPU 36.2GBとなっている
- LM StudioのMemory CapacityがRAM 63.53GB、VRAM 36.21GBとなっている
一般的にiGPUの場合、Ryzen AIプロセッサなどでは、メモリ64GB搭載PCでVRAMへ16GBを割り当てるとメインメモリは48GBとなるのだが、Intelはなぜかメインメモリは減らず、実際の搭載メモリサイズのままになっている。
これをLM Studioがそのまま参照すると、システム的にはメインメモリ63.5GB、VRAM 36.21GBに勘違いしてしまうのだ。通常、どう考えてもリソース不足のシステムではモデルをロードしない仕掛けになっているのだが、これが理由でgpt-oss-120bがロード可能になるようだ。
ロード時のオプションは、
- コンテキストサイズはデフォルトの4,096のまま
- モデルをメモリへ保持: オフ
- Force Model Expert Weights onto CPU: オン
にする。ポイントは3で、その詳細はここにあるが、説明(英語からgpt-oss-20bで翻訳して抜粋)によると、
十分なVRAMがなく、モデル全体をGPU専用メモリにロードできない場合は、この方法が有効です。そういったケースでは、高度な読み込み設定で「Force Model Expert Weights onto CPU」オプションをオンにしてみてください。(省略)
これは llama.cpp の --n-cpu-moe と同じ基盤技術を利用しています。
とある。この設定により、アテンションのみGPUへ、ほかはCPUへ乗ることになる。百聞は一見に如かず。動作中の画面キャプチャをご覧いただきたい。
GPUメモリは36.2GB中2.9GB使用、メインメモリ63.5GB中63.3GB使用。何と残269MB!のギリギリで動いている。この時の速度は7.16tok/s。コンテキストサイズが4,096。普通にチャットできる速度の最低ラインが15tok/sとすると、半分しか出ていないものの、それでも動くことが重要だろう(笑)。
この“なぜかiGPUに割り当てたメモリ分、メインメモリが減らない”現象、本機固有なのか、Core Ultra 9 285H+Intel Arc 140Tの仕様なのか不明であるが、お手持ちのPCはどうなのか?興味のある人は一度確認して欲しい。条件が揃えば64GBで(一応)gpt-oss-120bが動くハズだ。
Aiberzy「XG1-370」を96GBにして動かしてみる
続いてVRAMへ割り振った分、メインメモリが減る一般的なRyzen AI 9 HX 370などでgpt-oss-120bを動かすにはどうすればいいか?という疑問だ。答えは簡単。力技になるがメモリを96GBにすればよい(笑)。
現在SO-DIMM/DDR5のメモリは比較的安く買え、たとえばCrucial製の96GBキット(48GB 2枚)でも約3万7,000円(Amazon調べ)で購入可能。PC側が対応していれば、これを使わない手はない。96GBに変更後の設定は、
- BIOSのiGPU/dGPU割り当てをAutoへ。LM StudioのLM Settings→Hardwareでは 95.12GB / 0GBとなる
- ガードレールをオフ
- GGUFのエンジンをCPUへ
- CPUで推論するので、設定→システム→電源→電源モード→最適なパフォーマンスへ
この時、いくつか重要な設定項目がある。まず、LM Studioのガードレールをオフにする。これはシステムに影響を及ぼすようなモデルのロードを阻止するものだが、何に設定してもロード途中で止まってしまう。オフにしコンテキスト長最大128kでも16GBほど残るためPC側への影響はないので、オフにしてしまおう。
次にGGUFのエンジンをCPUに設定する。通常、CUDA以外だとVulkanになるのだが、CPUだけで推論する時はこの変更が必要となる。
仕上げはCPUで推論するため、CPUの動作をなるべく速く……ということで、電源モード→最適なパフォーマンスへ変更する。
この状態で実際動かしてみると、コンテキスト長最大の128kにして13.6tok/s。実際使った感じだと15tok/s前後出る(ただし、コンテキストが長くなるとどんどん遅くなる)。メモリは17GBほど余る。CPUは70%前後の使用率……といった感じだ。Vibeコーディングでサクサクコードを書く速度ではないものの、チャットであればそれなりに使えると思う。
いかがだろうか!? 少し遅いものの、CPUとメモリだけでもgpt-oss-120bが動くのがお分かり頂けただろうか。
この場合、速度はCPUパワーとメモリ帯域勝負になるため、メモリはDDR5よりLPDDR5X-8000が使えるミニPCなどが欲しいところ。条件を満たし現時点最強がRyzen AI Max+ PRO 395で96GB/128GBを搭載するPCとなる。ネットの情報によるとgpt-oss-120bが約40tok/s程度で動くとのことだ。
参考までにM4 Max 128GBを搭載した「MacBook Pro 14」だと、コンテキスト長を最大にした状態で70tok/s出る。買って良かったと思った瞬間でもあった(笑)。
本原稿の打ち合わせを編集担当としていた時、「1tok/s=1万円!? 」という話が。当たらずといえども遠からずか(笑)!?
Aiberzy「XG1-370」を64GBまたは96GB+RTX 4060 Ti(16GB)/OCuLinkで動かしてみる
XG1-370にはOCuLinkがあるので、手持ちの「GeForce RTX 4060 Ti」(16GB)を使うとどうなるか?も試してみたい。なお、以下画面キャプチャなどはメモリ96GBだが、64GBでも同レベルで動くことは確認している。
LM Studio以外の別のパターンとして、ここにApple Silicon、NVIDIA、AMDのGPUでgpt-oss-120bを動かす適正値が載っている。なお、NVIDIAの場合は「more than 64GB VRAM」と「Devices with 16GB VRAM」、この2つ。家庭用GPUだと後者(16/24/32GB)になるだろう。
使用するllama-serverはllama.cppに含まれるコマンドの1つ。Windowsの場合は、適当なフォルダへプリビルドバイナリをダウンロードして展開、gpt-oss-120bも別途ダウンロードしこのフォルダ直下などに入れておく。
※2つのファイルが出てくるので、2つとも上記を展開したフォルダへコピーする
起動は、ほぼ上記サイトの情報そのままだが以下のようになる、
llama-server --model ../models/ggml-org/gpt-oss-120b-GGUF/gpt-oss-120b-mxfp4-00001-of-00003.gguf --ctx-size 32768 --jinja -ub 4096 -b 4096 -ngl 99 -fa --n-cpu-moe 32 --host 0.0.0.0 --port 8080
--model以降はgpt-oss-120bの入ってるパスで、実態は複数のファイルに分かれているため「00001-of-00003」のファイルのみ指定
無事起動すると、localhost:8080や起動しているPCのIPアドレス:8080をWebブラウザで開けばチャット用のWebUIとなる。加えて、OpenAI API互換のエンドポイントにも対応しており、VSCodeのClineでOpenAI API compatibleを選びエンドポイントを指定、使用することも可能だ。
速度は20tok/sほど出るため、これまで説明した方法よりもう一段上がる。ただし、--ctx-size 32768と、最大128Kの4分の1になってしまうのが残念だ。
試しに最大の--ctx-size 131072にしたところ、VRAM 16GBの場合、4GBほど共有メモリを使ってしまうのだが、多くがメモリで動いているため、結果その速度に引っ張られ、tok/sは変わらなかった(笑)。であれば、これでllama-serverを起動した方が良い。
20tok/sほど出るようになると、より実践的に使いたくなる。以下の画面キャプチャはVSCode + Clineでgpt-oss-120bへ接続、MCPでMySQLへアクセス可能にし、いろいろ自然言語で問い合わせた結果を掲載した。
本記事で見せて問題ないデータは、昔WordPressを使って書いた日記程度なので、実用的ではないものの、たとえば販売管理や顧客管理などのデータベースに接続すれば、いろいろな情報を簡単に引き出せるようになる。
もちろん、gpt-oss-20bでもある程度のことは可能だが、問い合わせに対する理解度やSQL文の組み立てが、gpt-oss-120bではMySQLの初心者レベルから上級者レベルに変わるという感じだろうか。
以上のようにOpenAI「gpt-oss-120b」は、DDR5メモリを少し多めに搭載、CPUはモバイル系のハイエンド……この条件さえ整えば、10~15tok/s程度の速度が出ることが分かった。Vibeコーディングでバリバリ使いたい人には速度不足であるものの、チャット用途であればそれなりに使える環境だ。GPUを加えるとより一段速くなる。
ここのところSO-DIMM/DDR5 48GB 2枚の96GBセットがそこそこ安く買えるので、対応しているPCであれば、まず96GBで試してみてはいかがだろうか?




























![[Amazon限定ブランド]CCL い・ろ・は・すラベルレス 2LPET ×8本 ミネラルウォーター 無味 製品画像:1位](https://m.media-amazon.com/images/I/41h0MHfvhkL._SL160_.jpg)








