gpt‑oss量子化モデルは実用的?RTX 3060で限界チャレンジ
はじめに
ChatGPT や Claude、Gemini などの大規模言語モデル(LLM)はクラウド上で動かすのが一般的です。
しかし最近、gpt‑oss という、ローカルでも動かせるオープンソースのLLMが公開されました。
これは、商用利用も可能な「オープンウェイトモデル」であり、
学習済みの重み(ウェイト)が公開されているため、PCのスペックに合った重みのモデルをダウンロードすることで、誰でもローカル環境でLLMを動かすことができます。
実際に gpt‑oss‑20B(Q8_0) をRTX 3060(VRAM 12GB)で動かし、精度・速度・メモリ使用量を検証しました。
gpt-ossとは?性能はどのくらい?
gpt‑ossは商用利用も可能な「オープンウェイトモデル」で、モデルサイズによって精度や必要スペックが変わります。
ライセンスは Apache 2.0 に基づいており、研究や商用利用も可能です。
| gpt-ossモデル | 性能目安(GPT系比較) | コメント |
|---|---|---|
| gpt-oss-20B | GPT-3.5相当(LLaMA 2 13B〜70Bの中間) | 実用可能な精度。推論は遅めだが安定。 |
| gpt-oss-120B | GPT-4初期版クラス | 高精度だが、動作には複数のハイエンドGPUが必要。 |
📖 参考文献
gpt-ossを動かすための推奨PCスペックと金額
| モデル | 推奨GPU | VRAM | 推奨RAM | 推定価格 | コメント |
|---|---|---|---|---|---|
| gpt-oss-20B(非量子化) | RTX 3090 / RTX 4090 | 24GB以上 | 64GB以上 | 約40〜50万円 | 量子化なしは中級GPUでも厳しい |
| gpt-oss-20B(量子化Q8) | RTX 3060〜RTX 3080 | 12〜16GB | 32GB以上 | 約15〜25万円 | 低スペックでも動くが速度・精度は制限あり |
| gpt-oss-120B(非量子化) | NVIDIA A100 / H100 | 80GB以上 | 128GB以上 | 数百万円〜 | 一般家庭では現実的ではない |
💡 今回の検証環境は RTX 3060 / VRAM 12GB / RAM 32GB / 約15万円 です。
本当は非量子化のgpt-oss-20Bまで動かしたかったのですが、PCのスペック的に不可能なため、量子化済みのgpt-oss-20Bを検証します。
量子化とは?
量子化(Quantization)は、機械学習モデルの重みや中間計算結果の数値精度を下げて、モデルのサイズと必要なメモリを削減する技術です。
通常、学習済みモデルは
- FP32(32bit浮動小数点)
- FP16(16bit浮動小数点)
で重みを保存しています。
量子化では、これを int4, int5, int6, int8 といった整数値に変換します。
量子化のメリット
- VRAMやRAM消費量を削減
- 推論速度が向上(特にCPU推論)
- ローカル運用が現実的になる
量子化のデメリット
- 精度低下(ビット数が少ないほど誤答が増える傾向)
- 特定タスクで品質劣化
- 学習やファインチューニングには不向き
量子化モデルの命名規則
量子化されたモデルは、以下のように表記されます。
q{ビット数}_{量子化タイプ}_{追加情報}
- q: 量子化(Quantization)の略
- ビット数: 量子化後の各重みを表現するビット数
- 量子化タイプ: 使用される量子化アルゴリズムや特性
- 追加情報: サイズや最適化のバリエーション
💡 例
Q4_K_S → 4bit量子化 + K方式 + Smallサイズ
Q8_0 → 8bit量子化 + 標準方式
詳しく知りたい方は、以下の参考文献を見てみてください。
📖 参考文献
量子化方式ごとの精度・速度比較(体感)
以下、量子化済みのgpt-oss-20B実際に動かしてみたときの体感精度比較です。
| 方式 | VRAM使用量(3060) | 平均応答速度 | 精度(体感) | 特徴 |
|---|---|---|---|---|
| Q4_K_M | 約6.8GB | 5〜8秒 | ☆☆☆☆☆ | 軽量だが誤答多め |
| Q5_K_M | 約8.0GB | 7〜10秒 | ★☆☆☆☆ | Q4より精度改善 |
| Q6 | 約9.5GB | 8〜12秒 | ★★☆☆☆ | バランス型 |
| Q8_0 | 約11.2GB | 10〜15秒 | ★★★☆☆ | 比較的精度高め |
実際の応答例
このブログの生成をQ4_K_MとQ8_0で試した結果(一部抜粋)
Q4_K_M
| 項目 | 実際値 | ※説明 |
|------|--------|--------|
| ストレージ | 932 GB | 書く易いとスボげる SSD / HDD |
| GPU | NVIDIA GeForce RTX 3060 (12 GB) | スケールは “12 GB の小型” |
| RAM | 32 GB | きもちます |
| CPU | AMD Ryzen 7 5700G | 近年の中のコア |
> 次章で使うソフトは **Ubuntu** (論文言うと “リナックスディストウの一床”).
誤字がひどすぎます
Q8_0
- **目標**
- 自宅にあるパソコンで **gpt‑OSS 20B**(約20億パラメータ)を動かしてみる
- 「会社のPCではスペックが足りない」という課題を解決する
## 2. 必要なソフト (アセット)
| 名称 | 役割 | 簡易説明 |
|------|------|----------|
| **Ollama** | モデルをダウンロードしたり、実行したりするためのツール | シンプルなコマンドで「言語モデル」の起動と管理ができます |
| **Open WebUI** | ブラウザ上でチャット形式にして、モデルと対話できる UI | Windows 17 上で動くチャットツールです |
| **gpt‑OSS** | 実際に使う「大規模言語モデル」 | オープンソースでインターネットからダウンロードできる言語モデルです |
誤字はほどんどないが、簡単な内容でも誤りがある。
- gpt‑OSS 20B(約20億パラメータ)→ 20Bは約200億パラメータ
- Windows 17 上で動くチャットツールです → Open WebUIはOSを問わず動作する。Windows 17は存在しない
結論
- 量子化技術を用いれば、低スペックPCでもローカルでLLM(gpt‑ossなど)を動かせる。
- ただし、量子化によって精度は低下するため、業務利用や正確性が求められる用途には向かない。
- 普段、クラウド上で高精度なモデル(GPT‑5やClaude Sonnet 4.5など)を安定して使えることのありがたみを改めて感じた。
参考:環境構築手順(Ubuntu + RTX 3060)
以下は私が実際に行った環境構築手順です。
この通りに進めると、ローカルでgpt-ossなどのLLMを動かせます。
- パッケージ更新
まずはUbuntuのパッケージを最新化します。
sudo apt update && sudo apt upgrade -y
- 必要ツールのインストール
LLMやWebUIを動かすために最低限必要なツールを入れます。
sudo apt install -y curl git python3 python3-pip
- GPU認識の確認
NVIDIAドライバとCUDAが正しく認識されているか確認します。
nvidia-smi
例)出力結果(RTX 3060 / VRAM 12GB)
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 560.35.02 Driver Version: 560.94 CUDA Version: 12.6 |
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| 0 NVIDIA GeForce RTX 3060 On | 00000000:01:00.0 On | N/A |
| 30% 53C P8 16W / 170W | 850MiB / 12288MiB | 1% Default |
+-----------------------------------------------------------------------------------------+
- Ollama のインストール
OllamaはローカルでLLMを簡単に動かせるツールです。
curl -fsSL https://ollama.com/install.sh | sh
ollama --version
# 出力例: ollama version is 0.12.6
- LLaMA 3 で動作確認
まず軽めのモデルを動かしてみます。
ollama run llama3
- Python仮想環境の作成
WebUI用のPython環境を分離して作ります。
python3 -m venv ~/openwebui-venv
source ~/openwebui-venv/bin/activate
- Open WebUI のインストール・起動
pip install --upgrade pip
pip install open-webui
open-webui serve
ブラウザで localhost:8080 を開くとWebUIが表示されます。
- gpt-oss 量子化モデルの取得
unslothが公開している量子化済みモデルを使用します。
ollama run hf.co/unsloth/gpt-oss-20b-GGUF:Q8_0
📖 参考文献
- モデル切り替えと動作確認
Open WebUIを再起動し、再度ブラウザで localhost:8080 を開いた後、モデルを切り替えます。
余談
本当はgpt-ossにこの記事を書かせて、「実はこの記事gpt-ossで作成しました!」ってやりたかったけど、私のPCスペックで動かせるgpt-ossの精度では難しかったです...
「GPUに鬼課金 + ローカルLLMの大進化」があれば、いつかローカルで高精度のLLMを動かせる日が来るかも!?
Discussion