👋

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_MQ8_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を動かせます。

  1. パッケージ更新
    まずはUbuntuのパッケージを最新化します。
sudo apt update && sudo apt upgrade -y
  1. 必要ツールのインストール
    LLMやWebUIを動かすために最低限必要なツールを入れます。
sudo apt install -y curl git python3 python3-pip
  1. 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 |
+-----------------------------------------------------------------------------------------+

  1. Ollama のインストール
    OllamaはローカルでLLMを簡単に動かせるツールです。
curl -fsSL https://ollama.com/install.sh | sh
ollama --version
# 出力例: ollama version is 0.12.6
  1. LLaMA 3 で動作確認
    まず軽めのモデルを動かしてみます。
ollama run llama3
  1. Python仮想環境の作成
    WebUI用のPython環境を分離して作ります。
python3 -m venv ~/openwebui-venv
source ~/openwebui-venv/bin/activate
  1. Open WebUI のインストール・起動
pip install --upgrade pip
pip install open-webui
open-webui serve

ブラウザで localhost:8080 を開くとWebUIが表示されます。

  1. gpt-oss 量子化モデルの取得
    unslothが公開している量子化済みモデルを使用します。
ollama run hf.co/unsloth/gpt-oss-20b-GGUF:Q8_0

📖 参考文献

  1. モデル切り替えと動作確認
    Open WebUIを再起動し、再度ブラウザで localhost:8080 を開いた後、モデルを切り替えます。

余談

本当はgpt-ossにこの記事を書かせて、「実はこの記事gpt-ossで作成しました!」ってやりたかったけど、私のPCスペックで動かせるgpt-ossの精度では難しかったです...
「GPUに鬼課金 + ローカルLLMの大進化」があれば、いつかローカルで高精度のLLMを動かせる日が来るかも!?

Discussion