gpt-oss-20bをMacbookで試してみる【Ollama】

221 アクセス

はじめに

2025年8月5日にOpenAIが無料のオープンウェイトモデル「gpt-oss」を公開しました。
https://openai.com/ja-JP/index/introducing-gpt-oss/

gpt-oss-120bとgpt-oss-20bの2種類がリリースされました。
120bモデルは単一80GB GPUで動作し、OpenAI o4-miniと同等の性能を持つそうです。
20bモデルは16GBのメモリを搭載したデバイスで動作するそうです。

Ollamaでも公開されているとのことなので、本記事では20bモデルをローカルで動かします。

実行環境

  • PC:Macbook Air
  • チップ:Apple M3
  • メモリ:16 GB
  • OS:macOS Sequoia 15.5

Homebrew経由でOllamaをインストール済み

実行方法

以下のコマンドをターミナルで入力

ollama run gpt-oss:20b

初回のみモデルのダウンロードがあります。

実行結果

初めにコマンドを入力したときは以下のようなエラーが生じました。

% ollama run gpt-oss:20b
pulling manifest 
Error: pull model manifest: 412: 
The model you are attempting to pull requires a newer version of Ollama.
Please download the latest version at:

https://ollama.com/download

Ollamaのバージョンが古いと言われたので、更新して再度実行します
更新後のOllamaのバージョンは0.11.2(更新前は不明です)

% ollama run gpt-oss:20b
pulling manifest 
pulling b112e727c6f1: 100% ▕██████████████████▏  13 GB                         
pulling 51468a0fd901: 100% ▕██████████████████▏ 7.4 KB                         
pulling f60356777647: 100% ▕██████████████████▏  11 KB                         
pulling d8ba2f9a17b3: 100% ▕██████████████████▏   18 B                         
pulling 8d6fddaf04b2: 100% ▕██████████████████▏  489 B                         
verifying sha256 digest 
writing manifest 
success 
>>> Send a message (/? for help)

モデルのダウンロードは1分もあれば終了します。

以下に実行例を示します。
これを出力するのにおよそ10分かかりました。
アクティビティモニタを見たところ、メモリ不足が遅くなる原因かなと予想しています。
(よりメモリの大きいマシンで試したわけではない)

思考過程は英語で、灰色で表示してくれます。
日本語にも対応しています。

>>> ブログの記事の新しい題材を考えて
... 
... これまでの記事の内容
... * Ollamaを用いたローカルLLMとの対話システム
... * Mosquittoの使い方
... * Mecabを用いた形態素解析
... * 応用情報技術者試験対策
... * PythonのPandasライブラリを用いたデータの可視化
Thinking...
We need to propose new blog article topics, presumably in Japanese. The 
user says: "ブログの記事の新しい題材を考えて これまでの記事の内容 * 
(list)". So we should think of new topics, maybe building on or 
complementary to previous posts. They covered local LLM with Ollama, 
Mosquitto MQTT broker, Mecab morphological analysis, exam prep, Pandas 
visualization. So new topics could be: 1) building a chatbot with local 
LLM and other frameworks like Gradio or Streamlit. 2) integrating MQTT 
with Home Assistant or other IoT. 3) advanced text processing with spaCy 
or Gensim. 4) Python concurrency or async. 5) Data visualization with 
plotly or seaborn. 6) Building a data pipeline with Airflow or Prefect. 7) 
Dockerizing a Python ML app. 8) Using vector databases like Weaviate. 9) 
Web scraping with BeautifulSoup. 10) Machine learning basics with 
scikit-learn. 11) Japanese NLP: sentiment analysis. 12) Building a REST 
API with FastAPI. 13) Security: encryption, hashing. 14) Serverless 
computing with AWS Lambda. 15) Chatbot evaluation. 16) Natural language 
generation with T5 or GPT.

Let's propose about 5-8 new topics, each with a short description, maybe 
including subtopics. Let's keep Japanese. Provide a short introduction for 
each. Provide also suggestions on structure.

Also maybe include a meta topic: "How to write a technical blog article". 
But user likely wants new article ideas.

Thus produce list. Let's produce like "1. ChatGPT local inference with 
Flask" etc. Ensure they are unique from previous. Provide some suggestions 
for code snippets, usage of frameworks.

Let's answer accordingly.
...done thinking.

## ブログ記事の新しい題材アイデア(日本語)

以下は、これまで書かれた記事(Ollama + LLM, Mosquitto, Mecab, 応用情報技術者
試験対策, Pandasでの可視化)と連携したり、次のステップに進むためのテーマです
。  
記事構成の参考に、**イントロ・背景・主要内容・実装例・まとめ・次のステップ
**の5つのパートを想定しています。

| No | タイトル | 何が学べるか | 主要ポイント | 例題・コードサンプル |
|----|----------|--------------|--------------|----------------------|
| 1 | **FastAPI + Ollama で作る軽量チャットAPI** | Python Webフレームワーク
でLLMを呼び出す方法 | ①FastAPIの基本構成 ②依存性注入 ③非同期処理 ④
Swagger UI ⑤Docker化 | `app.py` に `Ollama` クライアントを `Depends` で注入
、`/chat` エンドポイントを作成 |
| 2 | **MQTT と Raspberry Pi を使ったホームオートメーション** | IoT デバイス
からのデータ収集と制御 | ①Mosquitto でブローカーを構築 ②RPi でスクリプト実
行 ③Home Assistant 連携 ④セキュリティ対策 | `main.py` で `paho-mqtt` を使
い、温度センサーからのデータを Home Assistant に送信 |
| 3 | **spaCy + Mecab で日本語文書の構造化解析** | 日本語テキストをトピック
モデル化 | ①spaCyの日本語モデル `ja_core_news_sm` ②形態素解析結果をベクト
ル化 ③LDA トピック抽出 | `topic_model.py` で `sklearn.decomposition.LDA` を
利用 |
| 4 | **Python の asyncio で複数の API を並列呼び出し** | I/O バウンドタスク
を高速化 | ①async/await の基本 ②`aiohttp` で非同期 HTTP ③タスクのスケジュ
ーリング ④レートリミット対策 | `async_api.py` で 10 API を同時に叩くサンプ
ル |
| 5 | **Plotly Dash でインタラクティブなダッシュボードを作る** | データ可視
化+UI 連携 | ①Dash アプリの作成 ②コンポーネントのレイアウト ③コールバッ
クでデータ更新 ④サーバー側のキャッシュ | `dashboard.py` で Pandas データフ
レームをリアルタイム更新 |
| 6 | **Docker Compose で LLM + MQTT + DB を一括構築** | マイクロサービスを
ローカルで再現 | ①Dockerfile 設計 ②Compose の `services` ④ネットワークと
ボリューム ⑤CI でのビルドテスト | `docker-compose.yml` に `ollama`, 
`mosquitto`, `postgres` を定義 |
| 7 | **Python で簡易 NLP パイプラインを構築** | テキスト前処理 → 特徴量化
 → モデル推論 | ①文字列正規化 ②形態素解析 ③TF‑IDF ④SVM ⑤評価指標 | 
`nlp_pipeline.py` で `sklearn` と `MeCab` を組み合わせる |
| 8 | **応用情報技術者試験の「アルゴリズム」章に挑む** | 実践的なアルゴリズ
ム問題集 | ①問題例の解説 ②Python での実装 ③最適化ポイント ④時間計算量の
分析 | 5 問題を選び、`algorithm_examples.py` にコード |
| 9 | **Jupyter Notebook を使ったデータサイエンスワークフロー** | 収集 → 探
索 → モデル化 → レポート | ①ノートブックの構成 ②Magic コマンド活用 ③デ
ータ可視化 ④セル実行順序管理 | `workflow.ipynb` を公開 |
|10 | **ChatGPT との対話ログを SQLite に保存** | チャット履歴の永続化 | ①
SQLite でテーブル設計 ②ORM (SQLAlchemy) ③API 経由でデータ保存 ④検索機能 
| `chat_history.db` を使ったサンプルコード |

---

### それぞれの記事で押さえておくといい構成

1. **イントロ(背景)**  
   * 何が課題なのか  
   * なぜこの記事が役立つのか  

2. **主要内容**  
   * 技術的ポイントを箇条書き  
   * 重要な概念・アルゴリズムを図解  

3. **実装例**  
   * 実際に動くサンプルコード(GitHub リポジトリリンク推奨)  
   * スクリーンショット・ログ出力を貼り付け  

4. **テスト・検証**  
   * ユニットテスト(pytest)やスモークテストの紹介  
   * 実行時間やメモリ使用量の測定  

5. **まとめ & 次のステップ**  
   * 何を得られたか  
   * 読者が次に取り組める関連テーマ  

---

### 記事執筆時に活用したいツール

| ツール | 用途 |
|--------|------|
| **GitHub Gist** | コードスニペットの共有 |
| **ReadTheDocs** | ドキュメントの自動生成 |
| **Google Colab** | 実行環境の共有(Notebook) |
| **Docker Hub** | イメージの公開 |
| **MkDocs + Material** | 技術ブログの静的サイト生成 |

---

#### まとめ

- **FastAPI + Ollama** でAPIレイヤーを学び、IoT には **Mosquitto + 
Raspberry Pi** を、データ可視化は **Plotly Dash** でインタラクティブ化、
Python の非同期処理は **asyncio**、そして **Docker Compose** で全体を統合す
るフローを作ると、読者にとって「全体像が掴める」記事になるでしょう。  
- それぞれの記事は、実際に動くサンプルコードを中心に構成し、**「実装 → テス
ト → 本番」** というストーリーを通して読者に手順を示すと親しみやすいです。
  

以上のアイデアをベースに、新しいブログ記事を計画してみてください。ぜひご質問
や実装のサポートが必要な場合は遠慮なくどうぞ!

新しいブログ記事のアイデアを出してもらおうとしましたが、難易度が高そうなので、多分採用しません。

おわりに

Ollamaのコマンド1つで動くのは楽で助かります。
手元のMacbook Air 16GBで動かすにはギリギリのようでした。
初めてOllamaで推論モデルを使いましたが、性能としては賢そうではあるので、スペックに余裕がある人は試してみるよいかもしれません。

Tags: