【2026年最新】16GBのMacで動くローカルコーディングLLM「Ornith-1.0」完全ガイド — Claude Code連携とqwen3-coder実測比較

「ローカルLLMでコーディングしたいけど、自分のマシンのメモリで本当に動くの?」 – これは、クラウドにコードを出したくない人がローカルLLMを試すとき、最初にぶつかる壁です。

2026年6月25日、その問いに新しい答えが出ました。DeepReinforce社がリリースしたMITライセンスのコーディング特化モデル「Ornith-1.0」です。X.comでは公式Ollamaアカウント(♥1,309)や海外の検証勢(♥1,880)が「ローカルで動くのに賢い」と話題にしています。

海外の「すごい」という声をそのまま信じる前に、自分の手元のMacで実際に測ってみました。すると、ローカルLLM選びの常識をひっくり返す結果が出たのです。

この記事では、Apple M5 / 16GBメモリという「ごく普通のMac」での実測値をベースに、次の4つを整理します。

  • Ornith-1.0とは何か(4サイズ・MITライセンス・推論モデル)
  • 16GB機で ornith:9bqwen3-coder:30b を比べたら約60倍の速度差がついた話と、その理由
  • ollama launch claude でClaude Codeをローカルモデルに繋ぐ実手順
  • どのサイズを選ぶべきか(メモリ別早見表+量子化)

📌 この記事の数値について: 速度(tok/s)は筆者の実機(Apple M5 / 16GB / ollama 0.30.11)での実測値です。ベンチマークスコアは公式(ornith.site)および各モデルの公表値を引用し、出典を明記しています(as-of 2026-06-30)。


目次

この記事で分かること

知りたいこと結論(先出し)
Ornith-1.0って何?DeepReinforceのMITライセンス・コーディング特化LLM(9B/31B/35B/397B)。自分で足場(scaffold)を組む推論モデル
16GB Macで動く?9b(5.6GB)は快適(実測21 tok/s)。35b(21GB)は載らない(要24GB+)
qwen3-coderとどっちが速い?16GB機では ornith:9bがqwen3-coder:30bの約60倍速(メモリに載るかが全て)
Claude Codeで使える?ollama launch claude --model ornith:9b で繋がる(Anthropic互換APIで応答確認済み)

ローカルでAIコーディングを始めたい人、特にメモリ16GBクラスのマシンで諦めかけていた人に向けた実践ガイドです。


Ornith-1.0とは — 「自分で足場を組む」コーディングモデル

Ornith-1.0は、DeepReinforce社が2026年6月25日にリリースしたオープンソースのコーディング特化LLMファミリーです。ライセンスはMIT(地域制限なし)で、商用利用も自由です。

最大の特徴は、開発元が掲げる “models that jointly learn to solve coding tasks and build their own scaffolds”(コーディング課題を解くのと同時に、自分で足場=タスク計画・ツール呼び出し・エラー復帰を構築するよう学習する)という設計です。人間が事前に決めたワークフローに頼るのではなく、強化学習の過程でモデル自身が「どう動けばタスクを達成できるか」を獲得しています。

実際に動かすと、回答の前に思考ブロックが開きます(後述の実測でも Thinking... ...done thinking が確認できました)。つまり Ornithは推論(reasoning)モデルです。

4つのサイズ

variant種別量子化目安一言
9BDenseQ4 ~6GB(Ollama 5.6GB)省メモリの主力。本記事の検証対象
31BDenseQ4 ~18-20GBDenseで重く、35B MoEと立ち位置が被る
35BMoE(アクティブ約3B)Q4_K_M 21.2GB“runs like 3B, thinks like 27B”
397BMoEFP8 225GB+API/クラウドレンタル前提

すべてコンテキスト長は256K(Ollama配布版・全variant共通)です。

35Bは総パラメータ35BのMoE(Mixture-of-Experts)で、1トークンあたり約3Bだけがアクティブになります。だから「3Bの速度で動き、27B級の賢さで考える」と表現されます。


なぜ今ローカルコーディングLLMなのか

クラウドのClaudeやGPTが優秀なのに、なぜわざわざローカルで動かすのか。理由は3つです。

  1. コードが1ミリも外に出ない — 社内コードや機密リポジトリをクラウドAPIに送らずに済む。セキュリティ・コンプライアンス要件が厳しい現場ほど効く
  2. トークンコストがゼロ — 使うほど課金される従量制から解放される。試行錯誤を気兼ねなく回せる
  3. オフラインで動く — ネットワークがない環境でもコーディング補助が使える

そして2026年、この3つをClaude Codeのまま享受できるようになりました。鍵が ollama launch claude です(後述)。


セットアップ — 3コマンドで動く

前提として Ollama 0.6.x 以降が必要です(筆者環境は 0.30.11)。

# 1. Ollamaを入れる(未導入なら)
curl -fsSL https://ollama.com/install.sh | sh

# 2. モデルを取得(9bは5.6GB)
ollama pull ornith:9b

# 3. 対話で動かす
ollama run ornith:9b

より高性能な35Bを使いたい場合は ollama pull ornith:35b(21GB)ですが、メモリ要件に注意してください(次章の実測が示します)。


★実測:16GB Macで9bと30bを比べたら60倍の差がついた

ここが本記事の核心です。同じコーディングタスクを、ornith:9b と既存の qwen3-coder:30b の2モデルで生成させ、速度(eval rate = tok/s)を比較しました。

  • 検証機: Apple M5 / 16GB ユニファイドメモリ / Metal 4 / ollama 0.30.11
  • タスク: 「重複区間をマージする merge_intervals 関数を、型ヒント・docstring・空入力処理つきで書く」
  • 各モデル2回計測し、モデルロード込みの1回目を除いたウォーム値を採用

結果

モデルサイズeval rate(ウォーム)約250トークン生成にかかった時間実用性
ornith:9b5.6GB21.4 tok/s約10秒✅ 快適
qwen3-coder:30b18GB0.34 tok/s12分22秒❌ 実用不能

約60倍の速度差です。9bが秒で返すコードを、30bは12分かけても返しきれません。

16GB Macでornith:9bとqwen3-coder:30bの生成速度を実測。約60倍の差がついた(対数軸)
Apple M5 / 16GB / ollama 0.30.11 での実測(ウォーム値)。30Bは18GBで16GBメモリを超えスワップし0.34 tok/sに崩落

なぜこうなるのか — 「メモリの壁」

理由は性能の優劣ではなく、メモリに収まるかどうかです。

  • ornith:9b(5.6GB)は16GBに余裕で載る → GPU(Metal)でフル稼働 → 21 tok/s
  • qwen3-coder:30b(18GB)は16GBを超える → macOSがディスクへスワップ → 速度が0.3 tok/s台に崩落

Apple Siliconのユニファイドメモリは優秀ですが、物理メモリを超えたモデルはスワップで一気に使い物にならなくなります。これはOrnithに限らずローカルLLM全般に当てはまる原則です。

💡 教訓: ローカルLLM選びは「ベンチマークスコア」を見る前に、「搭載メモリに収まる量子化か」を確認すべき。9BがMITで強いことの本当の価値は、省メモリ機ユーザーにとって”唯一動く実用解”になる点にあります。

コードの品質も問題なし(ornith:9b)

速いだけでなく、生成コードも正確でした。

def merge_intervals(intervals: list[list[int]]) -> list[list[int]]:
    """Merge all overlapping intervals and return the result in ascending order."""
    if not intervals:
        return []

    sorted_intervals = sorted(intervals, key=lambda x: x[0])
    merged = [sorted_intervals[0].copy()]

    for start, end in sorted_intervals[1:]:
        prev_start, prev_end = merged[-1]
        if start <= prev_end:
            merged[-1][1] = max(prev_end, end)
        else:
            merged.append([start, end])

    return merged

区間ソート→マージのロジック、空入力の return []、型ヒント、docstringまで指示通り。9Bモデルとして十分実用的な品質です。


Claude Codeにつなぐ — ollama launch claude

ローカルモデルの真価は、普段使っているClaude CodeのUIのまま動かせる点にあります。Ollamaにはそのための正式サブコマンド ollama launch が用意されています。

ollama launch claude --model ornith:9b

このコマンドは、ANTHROPIC_AUTH_TOKEN / ANTHROPIC_BASE_URL / ANTHROPIC_API_KEY自動で設定し、Claude Codeをローカルのollamaインスタンスに向けて起動します。環境変数を手で書く必要はありません。ollama launch --help の対応統合リストにも claude → Claude Code が明記されています。

以前は「環境変数でClaude Codeをローカルに繋ぐ」とされていた手順が、ワンコマンドに整理されました。

接続を実証してみる

実際にClaude Codeを多重起動するのは避け、Ollamaが提供するAnthropic互換エンドポイントに直接リクエストして、接続経路が生きているか確認しました。

curl localhost:11434/v1/messages \
  -H "content-type: application/json" \
  -d '{"model":"ornith:9b","max_tokens":64,
       "messages":[{"role":"user","content":"Reply with exactly: CONNECTION_OK"}]}'

返ってきたレスポンス(抜粋):

{
  "role": "assistant",
  "model": "ornith:9b",
  "content": [
    {"type": "thinking", "thinking": "..."},
    {"type": "text", "text": "CONNECTION_OK"}
  ],
  "stop_reason": "end_turn"
}

Ollamaが /v1/messages でAnthropic形式(thinking + text ブロック)を正しく返すことが確認できました。ollama launch claude はこのエンドポイントにClaude Codeを向けているだけなので、ローカルのOrnithでClaude Codeが動く仕組みが成立しているわけです。

ヘッドレス(スクリプト用)で使うなら次の形です。

ollama launch claude --model ornith:9b --yes -- -p "このリポジトリの構成を説明して"

どのサイズを選ぶか — メモリ別早見表

「賢いほど良い」ではありません。自分のメモリ/VRAMに載る最大サイズを選ぶのが正解です。

variant量子化と容量必要メモリ/VRAMこんな人に
ornith:9bQ4 ~6GB8〜16GBで快適16GB Mac / RTX 3060クラス。まず試すならこれ
ornith:31bQ4 ~18-20GB24GB+Denseで重い。35Bと迷うなら35B推奨
ornith:35bQ4_K_M 21.2GB / Q5_K_M 24.7GB24GB VRAM以上(RTX 3090/4090)24GB環境がある人の本命
ornith:397bFP8 225GB+データセンター級自前で持たず、API/クラウドで

35Bの量子化とVRAMの目安

量子化容量必要VRAM
Q4_K_M21.2GB24GB(ギリギリ)
Q5_K_M24.7GB32GB
Q6_K28.5GB32GB
Q8_036.9GB48GB+(またはマルチGPU)

⚠️ 35Bの落とし穴(KVキャッシュ): 24GB VRAMにQ4_K_Mの35Bを載せると、KVキャッシュ用に残るのは3GB未満。実用的なコンテキストは8K〜16K程度で、カタログ値の256Kフルは出ません。「256K対応」を鵜呑みにしないこと。


公式ベンチマーク — 小サイズで上位を食う

実測(速度)とは別に、精度の公式ベンチも確認しておきます(出典: ornith.site、as-of 2026-06-30)。

BenchmarkOrnith 35B MoEOrnith 397BQwen 3.5Claude Opus 4.7
Terminal-Bench 2.164.277.553.570.3
SWE-Bench Verified82.476.480.8
SWE-Bench Pro62.251.664.3

注目は 35B MoEがTerminal-Bench 2.1で64.2を記録し、Qwen 3.5-397B(53.5)をパラメータ約1/10で上回っている点です。さらに最小の9BですらSWE-Bench Verifiedで69.4%を出し、3〜4倍大きいモデル(Gemma 4-31B、Qwen 3.6-35B)を上回るとされています。

海外検証勢(@AlexFinn)は「Qwen 3.6より賢く速い」と評していますが、これは体感ベースの主張です。本記事では断定を避け、公式ベンチの数値自分の実測速度を分けて扱っています。


やりがちなアンチパターン 4選

  1. メモリを超えるサイズを入れて「遅すぎる」と諦める

    → 今回のqwen3-coder:30bがまさにこれ。スワップで60倍遅くなる。容量 < 物理メモリを必ず守る
  2. 16GB機に35Bを入れようとする

    → 21GB > 16GBで起動すらまともにできない。16GBなら9B一択
  3. 「256Kコンテキスト対応」をフルで使えると思い込む

    → 24GBで35Bを動かすとKVキャッシュが枯れ、実用は8K〜16K
  4. 公式の起動コマンドを調べず環境変数を手で書こうとする

    ollama launch claude --model <model> がBASE_URL等を自動設定してくれる

関連モデル比較 — 16GBで戦えるローカルコーディングLLM

モデル容量16GB機での実用性メモ
ornith:9b5.6GB◎(21 tok/s 実測)MIT・推論モデル・本記事の推し
gemma4:12b7.6GB○(要実測)汎用寄り
qwen3-coder:30b18GB✕(0.34 tok/s 実測)24GB+環境なら有力
ornith:35b21GB✕(載らない)24GB+ VRAM向け

16GBという制約下では、5〜8GB級に収まるモデルだけが実用候補になります。その中でOrnith 9BはMITライセンス・推論対応・Claude Code連携と三拍子そろっています。


実践チェックリスト

  • [ ] ollama --version が 0.6.x 以上か確認
  • [ ] 自分のメモリ/VRAMを確認し、載るサイズを選ぶ(16GB → 9b、24GB+ → 35b)
  • [ ] ollama pull ornith:9b(または :35b
  • [ ] ollama run ornith:9b で動作と速度を体感
  • [ ] ollama launch claude --model ornith:9b でClaude Codeに接続
  • [ ] 実タスクで試し、ツール呼び出し(ファイル読み書き)が通るか確認
  • [ ] 物理メモリを超えていないか(ollama ps で実メモリ使用を確認)

まとめ

  • Ornith-1.0はDeepReinforceのMITライセンス・コーディング特化LLM(2026-06-25リリース、9B/31B/35B/397B、推論モデル)
  • 16GB Macでは ornith:9b(5.6GB)が実測21 tok/s で快適。一方 qwen3-coder:30b(18GB)はスワップで0.34 tok/s と実用不能 → 約60倍差
  • ローカルLLM選びは精度より先に「メモリに載るか」が支配的。9Bの真価は省メモリ機での”唯一の実用解”であること
  • ollama launch claude --model ornith:9b でClaude Codeにそのまま接続できる(Anthropic互換 /v1/messages で応答確認済み)
  • 35B以上は24GB+ VRAMが前提。16GB機では9B一択

「メモリが足りないからローカルAIコーディングは無理」と思っていた人こそ、9Bを一度試す価値があります。クラウドにコードを出さず、課金も気にせず、いつものClaude Codeのまま – その環境が、ごく普通のMacで現実になりました。


参考リンク

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次