<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>量子化 on KnightLiブログ</title>
        <link>https://www.knightli.com/ja/tags/%E9%87%8F%E5%AD%90%E5%8C%96/</link>
        <description>Recent content in 量子化 on KnightLiブログ</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>ja</language>
        <lastBuildDate>Wed, 22 Apr 2026 21:47:34 +0800</lastBuildDate><atom:link href="https://www.knightli.com/ja/tags/%E9%87%8F%E5%AD%90%E5%8C%96/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>16GB GPUでも35Bモデルは動かせる: LM StudioでMoEモデルのVRAMを圧縮する考え方</title>
        <link>https://www.knightli.com/ja/2026/04/22/16gb-gpu-run-35b-moe-models-in-lm-studio/</link>
        <pubDate>Wed, 22 Apr 2026 21:47:34 +0800</pubDate>
        
        <guid>https://www.knightli.com/ja/2026/04/22/16gb-gpu-run-35b-moe-models-in-lm-studio/</guid>
        <description>&lt;p&gt;16GB VRAM というと、ローカルで大規模モデルを動かす場合はせいぜい 12B〜14B あたりが限界で、それ以上は量子化してもかなり厳しい、というイメージを持つ人が多いと思います。その見方は完全に間違いではありませんが、16GB GPU の本当の上限でもありません。&lt;/p&gt;
&lt;p&gt;モデル選定とパラメータ設定がうまく噛み合えば、16GB GPU は必ずしも「小さめのモデル」に留まる必要はありません。その代表的な考え方のひとつが、&lt;code&gt;LM Studio&lt;/code&gt; で &lt;code&gt;MoE&lt;/code&gt; モデルを使い、適切なアンロード戦略によって 35B 級モデルを実用的な速度で回すというものです。&lt;/p&gt;
&lt;h2 id=&#34;01-なぜ16gb-gpuが12b14bに固定されるわけではないのか&#34;&gt;01 なぜ16GB GPUが12B〜14Bに固定されるわけではないのか
&lt;/h2&gt;&lt;p&gt;ここでの核心はシンプルです。VRAM 容量は重要ですが、モデルのアーキテクチャも同じくらい重要です。&lt;/p&gt;
&lt;p&gt;標準的な dense モデルを 16GB GPU に無理やり押し込もうとすると、すぐに限界に当たります。こうしたモデルは推論時に基本的にすべてのパラメータ計算へ関与するため、VRAM と帯域の負荷が一気に上がるからです。&lt;/p&gt;
&lt;p&gt;しかし &lt;code&gt;MoE&lt;/code&gt; モデルは違います。総パラメータ数は大きくても、1 回の推論で実際に有効化される専門家パラメータはその一部だけです。35B 級モデルを例にすると、総量は大きくても、1 回の推論で実際に計算に参加するパラメータはずっと少ないため、実際の VRAM 要求は想像ほど極端ではありません。&lt;/p&gt;
&lt;p&gt;だからこそ、16GB GPU にもまだ工夫の余地があります。&lt;/p&gt;
&lt;h2 id=&#34;02-実測上のポイント-35bのmoeモデルはかなり速く動く&#34;&gt;02 実測上のポイント: 35BのMoEモデルはかなり速く動く
&lt;/h2&gt;&lt;p&gt;代表的な例として挙げられるのが、&lt;code&gt;Qwen 3.5 35B A3B&lt;/code&gt; のような &lt;code&gt;MoE&lt;/code&gt; モデルの量子化版です。16GB GPU と &lt;code&gt;LM Studio&lt;/code&gt; の組み合わせで設定を調整すると、&lt;code&gt;Q6&lt;/code&gt; 量子化で 30 &lt;code&gt;tokens/s&lt;/code&gt; を超える水準に届き、&lt;code&gt;Q4&lt;/code&gt; ではさらに高い速度が出ることもあります。&lt;/p&gt;
&lt;p&gt;この結果に価値があるのは、単に「動く」からではありません。速度がすでに「明らかに実用的」と言える水準に入っているからです。&lt;/p&gt;
&lt;p&gt;比較として、同じくらい大きな規模でも &lt;code&gt;MoE&lt;/code&gt; ではないモデルを 16GB GPU で無理に回そうとすると、VRAM あふれや大幅な速度低下が起こりがちです。つまり結果を決めるのは、総パラメータ数だけではなく、推論時にそのパラメータをどう使うかです。&lt;/p&gt;
&lt;h2 id=&#34;03-lm-studioでは見るべきパラメータが1つではない&#34;&gt;03 LM Studioでは、見るべきパラメータが1つではない
&lt;/h2&gt;&lt;p&gt;16GB GPU でこうしたモデルを安定して動かすには、運任せではなく、2 つのパラメータを正しく調整する必要があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GPU Offload&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;一部の expert layer を CPU メモリへ強制的に載せるための設定&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;前者は比較的わかりやすく、&lt;code&gt;GPU Offload&lt;/code&gt; は基本的に可能な限り高く設定し、GPU 側での計算を優先させます。&lt;/p&gt;
&lt;p&gt;後者こそが重要です。これは「VRAM があふれてからシステムメモリを借りる」という昔ながらのやり方ではなく、あらかじめ一部の expert layer を CPU メモリへ逃がして VRAM 使用量を下げる方法です。&lt;code&gt;MoE&lt;/code&gt; モデルはそもそも毎回すべての expert を有効化するわけではないため、専門家層の一部をメモリ側へ回しても、推論速度への影響は多くの人が思うほど大きくありません。&lt;/p&gt;
&lt;p&gt;実際には、まず一定の範囲から試し、手元のマシンに合わせて少しずつ調整するのが安全です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;関連値を &lt;code&gt;20&lt;/code&gt;〜&lt;code&gt;35&lt;/code&gt; あたりから始める&lt;/li&gt;
&lt;li&gt;VRAM 使用量とメモリ圧力を見ながら微調整する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本質的には、システムメモリを使って VRAM の余裕を買う方法です。&lt;/p&gt;
&lt;h2 id=&#34;04-128kコンテキストでも動きさらに縮めればvramをもっと減らせる&#34;&gt;04 128Kコンテキストでも動き、さらに縮めればVRAMをもっと減らせる
&lt;/h2&gt;&lt;p&gt;もうひとつ面白いのは、コンテキスト長を &lt;code&gt;128K&lt;/code&gt; に引き上げた状態でも、35B 級 &lt;code&gt;MoE&lt;/code&gt; モデルが比較的高い速度を保てることです。&lt;/p&gt;
&lt;p&gt;ここからわかるのは、16GB GPU の限界は思っているほど固定的ではない、ということです。特に &lt;code&gt;LM Studio&lt;/code&gt; のようなローカル推論ツールでは、「動くか動かないか」の二択ではなく、実際には次のようなトレードオフになります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;より多くのシステムメモリを使ってでも VRAM を節約するか&lt;/li&gt;
&lt;li&gt;コンテキスト長を短くするか&lt;/li&gt;
&lt;li&gt;量子化ごとの能力差を受け入れるか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;もしコンテキストを &lt;code&gt;128K&lt;/code&gt; から &lt;code&gt;64K&lt;/code&gt; や &lt;code&gt;32K&lt;/code&gt; に縮めれば、VRAM 圧力はさらに下げられます。つまり、35B 級の &lt;code&gt;MoE&lt;/code&gt; モデルの中には、より少ない VRAM の GPU でも何とか動くものが出てくる可能性があります。ただし、その分だけ速度とメモリ負荷のバランスは再調整が必要になります。&lt;/p&gt;
&lt;h2 id=&#34;05-この方法の代償-ramと仮想メモリへの要求が高くなる&#34;&gt;05 この方法の代償: RAMと仮想メモリへの要求が高くなる
&lt;/h2&gt;&lt;p&gt;もちろん、この方法はタダで性能が増えるわけではありません。&lt;/p&gt;
&lt;p&gt;注意すべきなのは、VRAM 圧力をさらに圧縮すると、システム RAM の使用量が目立って増え、仮想メモリの負荷も上がることです。つまり、コストが消えるのではなく、GPU から RAM とディスクスワップへ圧力が移るだけです。&lt;/p&gt;
&lt;p&gt;そのため、実際に試すなら、先にいくつか確認しておくべきです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;システム RAM が十分あるか&lt;/li&gt;
&lt;li&gt;仮想メモリを十分に確保しているか&lt;/li&gt;
&lt;li&gt;バックグラウンドで重いソフトがたくさん動いていないか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こうした条件が揃っていないと、「35B が速く動く」どころか、マシン全体が遅くなる可能性があります。&lt;/p&gt;
&lt;h2 id=&#34;06-量子化は攻めればいいというものでもない&#34;&gt;06 量子化は攻めればいいというものでもない
&lt;/h2&gt;&lt;p&gt;ここにはもうひとつ実務的な判断があります。より低ビットの量子化はたしかに VRAM をさらに節約しやすいですが、それが最善とは限りません。&lt;/p&gt;
&lt;p&gt;実際には、&lt;code&gt;Q4&lt;/code&gt; のほうが速度は高くても、元の能力が落ちやすいモデルもあります。その点、&lt;code&gt;Q6&lt;/code&gt; は速度と能力保持のバランスが取りやすいことが多いです。結局は、自分がどちらを優先するかです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;とにかく速く、VRAM に収めたいのか&lt;/li&gt;
&lt;li&gt;それともモデル本来の能力をより多く残したいのか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この優先順位によって、選ぶ量子化は変わってきます。&lt;/p&gt;
&lt;h2 id=&#34;07-試す価値があるモデルの考え方&#34;&gt;07 試す価値があるモデルの考え方
&lt;/h2&gt;&lt;p&gt;この観点で見ると、やるべきことは「とにかく大きいモデルを追うこと」ではなく、この戦略に合うモデルを先に探すことです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;MoE&lt;/code&gt; アーキテクチャのモデル&lt;/li&gt;
&lt;li&gt;&lt;code&gt;LM Studio&lt;/code&gt; での対応が良く、量子化版が揃っているモデル&lt;/li&gt;
&lt;li&gt;長いコンテキストや instruction following に明確な強みがあるモデル&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;そして、この考え方は 1 つの 35B &lt;code&gt;MoE&lt;/code&gt; モデルだけに限りません。長文脈記憶に強い実験的モデル、命令追従が優秀なモデル、あるいは軽量量子化で速度が出るモデルなどにも自然に広げられます。&lt;/p&gt;
&lt;p&gt;つまり重要なのは、まず「メモリで VRAM を補う」戦略に合うアーキテクチャを見つけ、そのうえで調整に入ることです。最初に総パラメータ数だけ見て判断するべきではありません。&lt;/p&gt;
&lt;h2 id=&#34;08-まとめ&#34;&gt;08 まとめ
&lt;/h2&gt;&lt;p&gt;もし手元に 16GB GPU があり、ローカル LLM はせいぜい 12B〜14B までだと思っていたなら、その前提は少し更新してよさそうです。&lt;/p&gt;
&lt;p&gt;より正確に言えば、次のようになります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;16GB GPU でも大きめのモデルが完全に無理なわけではない&lt;/li&gt;
&lt;li&gt;dense モデルと &lt;code&gt;MoE&lt;/code&gt; モデルは分けて考える必要がある&lt;/li&gt;
&lt;li&gt;&lt;code&gt;LM Studio&lt;/code&gt; の &lt;code&gt;GPU Offload&lt;/code&gt; と expert layer の CPU メモリ移動は、VRAM 使用量を大きく変えられる&lt;/li&gt;
&lt;li&gt;実際には、より大きいモデル規模とより高い実用速度を得るために、より高いメモリ圧力を受け入れている&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この方法がすべてのマシンに向くわけではありませんが、少なくともひとつ確かなことがあります。ローカル LLM 運用では、VRAM 上限だけが唯一の制約ではなく、モデルアーキテクチャと推論設定も同じくらい重要です。&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
