前回では L1(GitHub Runner) を整理しました:git push のあと監査可能な Fact が必要です(定義は Runner 編 · Stack 用語)。多くのチームは同じ Cloud Mac に Claude Code を入れ、ついで brew install ollama——すると本番コーディングは依然 100% Claude API、Ollama は空転し 6–8GB のユニファイドメモリを占有、という状態に陥ります。
これは「Ollama が無用」ではなく、なぜ Inference が単独の層でなければならないかにまだ答えていないからです。本稿は Ollama インストール大全ではなく、16GB vs 24GB 実測やM4 vs GPU クラウドコストも繰り返しません。L2 の存在理由・境界、L3(Diff)との関係だけを扱います(L3 は Claude Code ワークステーション)。
GitHub Runner が「コードが本当に検証を通ったか」を解くなら、Ollama は「どの Token を自分の Cloud Mac 上で推論しなければならないか」を解きます。 この対:Fact vs Inference。
Cloud Mac AI Stack · L2 一言
Runner は実行エンジン;Ollama は Inference Service;Claude Code はコーディング Agent。
産出物は Fact、Inference、Diff。L2 の鍵はモデルではなく、推論能力を長期呼び出し可能な Inference Serviceにすること(任意)。
Stack における L2 の責務
L3 は「リポジトリをどう直すか」;L1 は「直したあとビルド・署名・配布できるか」;L2 は「どの推論 token を macOS ノードから出してはいけないか」。 Claude の代替ではなく、Cloud Mac に重ねる第二の推論パイプラインです。
L2 の産出物:Inference とは
Cloud Mac AI Stack ではツール名ではなく産出物で層を分けます(全体は Runner 編 · Stack 用語):
記憶の鎖 · 五種の産出物(呼び出し順ではない) Context → Inference → Diff → Fact → Workflow (MCP) (Ollama 等) (Claude Code) (Runner) (OpenHands) 五層図は L0–L5 のコンポーネント;産出物の鎖は Inference を Context/Diff/Fact/Workflow と並列にし「横断パッチ」感を避ける
ここでの Inference は、自分が制御する macOS プロセス内のモデル forward——prompt / embedding を入れ、completion / ベクトルを出し、第三者の推論 API を経由しない(または L3 主経路だけ API、L2 でローカル必須の token を処理)ことを指します。Ollama は現在最も一般的な L2 実装ですが唯一ではありません。Core ML や MLX も一部 Inference を担えますが、Ollama のモデル生態と運用パスが統一されやすく、L2 のデフォルト叙述に向きます。
L2 の形態:Inference Serviceであり、たまの ollama run ではない
Inference だけでは「またローカルモデルツール」と読まれがちです。Stack では形態——各層が長期依存できるシステム役割——を強調します:
| 層 | コンポーネント | 形態 | 産出物 |
|---|---|---|---|
| L1 | GitHub Runner | Execution Engine(実行エンジン) | Fact |
| L2 | Ollama(等) | Inference Service(推論サービス) | Inference |
| L3 | Claude Code | Agent(コーディング Agent) | Diff |
ollama run qwen3:8b と ollama serve+ヘルスチェック+cron の差は、「SSH で手動テスト」と「Runner が push を待つ」の差に似ています:
ollama run → 人が端末の前で一度きりの推論(試走) Inference Service → 11434 常駐、モデル pin、Runner / スクリプト / Agent が繰り返し呼ぶ
L2 の鍵はモデルではなく、推論を長期呼び出し可能な Service にすること。 モデルは交換可;API・呼び出し元・シフト・可観測性が Stack で固定される対象です。
Inference を L2 として独立させる理由(Claude Code の一部ではない)
よく聞かれる:「Claude API も推論では?」 はい——しかし Stack は産出物で層分けし、「ニューラルネットがあるか」では分けません。
Claude Code の責務は Diff——どのファイルをどう直し、PR にどんな patch か。Inference の責務は Token——任意の forward のテキストやベクトル。Diff は Token の用途のひとつです。
同じく Inference だがコーディング Agent 主経路に入れない仕事:
- ログ要約・分類・レビュー・ルーティング
- Embedding、RAG、rerank
- Agent 記憶整理、ナレッジベース清掃
- 夜間バッチ、定時レポート
したがって:
Claude Code ⊂ Inference の応用シーンのひとつ ではなく: Inference ⊂ Claude Code
L2 を独立させるのは Ollama が「より下」だからではなく、一台の Cloud Mac に複数の推論パイプラインがあり得るからです:L3 は API で Diff;L2 はローカルでプライベート Token;並行で代替しません。Inference を Claude Code に折りたたむと「Claude を入れれば推論層は揃った」と誤り、空転 Ollama の原因になります。
Ollama vs Claude Code:二者択一ではない
検索では「Ollama か Claude Code」がよく出ますが、Stack 文脈では問いの立て方が違います。産出物が異なり、代替関係ではありません。
| 観点 | Claude Code(L3) | Ollama(L2) |
|---|---|---|
| 産出物 | Diff | Inference |
| 形態 | Agent(オンデマンドコーディング) | Inference Service(24/7 常駐可) |
| 算力経路 | 多くは Claude API | ローカル(localhost:11434 等) |
| 典型タスク | コーディング、patch、リポジトリ変更 | 要約、embedding、分類、夜間バッチ、コンプライアンス副タスク |
| 動き方 | オンデマンド:Agent を開くと推論、離れると主経路停止 | 常駐可:24/7、cron / sidecar が随時呼ぶ |
| Stack 内 | 主経路(コード変更) | 副タスク・プライベート管線(L3 より先に起動不要) |
実務の合言葉:コードは Claude Code;「どの token を機外に出せず、定時で回すか」は Ollama。 L2-Q03 続編;本稿は「二者択一ではない」だけを固定します。
「モデル試用」と「プライベート Inference 層」の差
同じ ollama run qwen3:8b でも、意図でアーキテクチャ結果が分かれます:
| 観点 | モデル試用(個人) | L2 · Inference Service |
|---|---|---|
| 目的 | prompt 試行、tok/s 比較、スクショ | 固定負荷:コンプライアンス要約、ログ分類、embedding、夜間バッチ |
| CI との関係 | 無関係 | L1 Runner と時間帯で錯峰(昼 CI・夜 Inference)、L0 メモリ共有 |
| L3 との関係 | 二者択一:「ローカルか Claude か」 | 並行:コーディングは API、副タスクは localhost:11434 |
| 成功基準 | モデルが応答する | SLA:遅延上限、モデル pin、失敗アラート、token 不出機 |
| マシン形態 | ノートを閉じれば停止 | Cloud Mac 24/7:Inference Service と Runner / Agent が同 Stack で可観測 |
一言:試用は「動くか」;L2 は「何を・いつ・誰が出力に依存するか」。 プライベート Inference が不要なら L2 は丸ごとスキップ可——「完全 Stack」のために無理に Ollama を入れないでください。
L2 と L1 / L3 の分担
混同しやすい境界:
| 層 | コンポーネント | 産出 | 答える問い |
|---|---|---|---|
| L1 | GitHub Runner | Fact | このコミットはビルド・テスト・アーカイブできるか? |
| L2 | Ollama(等) | Inference(Inference Service 経由) | どの推論を本機で、Runner / Agent が繰り返し呼べるか? |
| L3 | Claude Code | Diff(Agent 形態) | リポジトリをどう直すか?(多くは Claude API) |
L2 は Diff も Fact も産みません。 PR を緑にしたり xcodebuild を代替したりしません。典型接続:Claude Code が修正 → Runner が検証 → 某 step や sidecar が Ollama でログ要約、脆弱性パターン、プライベート embedding——出力は Context(L4)や人のレビューへ行き、「ビルド成功」と同一ではありません。
五層図の L2:階層 ≠ 呼び出し順
全シリーズ共通の五層は Runner 編 · 五層構造図。図で Ollama が Claude Code の下にあるのは責務上 Inference がプライベート算力の土台を示すもので、起動時に必ず ollama serve してから Claude Code、ではありません。
抜粋 · 全体は Runner 編
Claude Code L3 · Diff
↑ 並行、非依存
Ollama L2 · Inference Service(任意)
↑
GitHub Runner L1 · Fact
↑
Cloud Mac L0 · インフラ
Claude API と Ollama は同時に存在できます——前者はコーディング主経路の Diff、後者は本機 Inference。これは「ローカルモデルが Claude を置き換える」物語とは異なり、Cloud Mac AI Stack と「単機 All-in-One チャット」製品の境界です。
コンプライアンス以外:L2 の常時計算価値
L2 は「金融・医療・大企業だけ」と書かれがちですが、Cloud Mac の利用者の多くは個人開発者・AI 起業家・小チームで、コンプライアンスチケットがなくても L2 が要ることがあります。
差は働き方です:
Claude Code(L3)· オンデマンド 開く → 推論開始 閉じる → 主経路の推論終了 Ollama(L2)· 24/7 可 常駐 → cron / sidecar が随時呼ぶ 端末の前にいなくても動く
これらはAgent 対話でも CI でも日常 Coding でもないが、本物の長期 Inference Serviceです:
- Runner / アプリログの毎時整理
- 夜間の embedding 再構築、ナレッジベース清掃
- 日報・異常分類・ルーティング草稿の自動生成
- Claude Code オフライン時も Context(L4)側データを更新
ノートを閉じれば止まり、インフラにはなりにくい。L1 と錯峰すれば昼 Fact・夜 Inference は小チームに現実的——前提は L2 をServiceとして運用することです。
ローカル Mac は動かせる、Cloud Mac は運用できる
「自宅 Mac mini でも brew install ollama できるのに Cloud Mac?」——その通り、ローカル Mac = 動かせる;差はインフラとして運用できるかです。
| 観点 | ローカル Mac / ノート | Cloud Mac(L0) |
|---|---|---|
| 可用性 | 蓋・スリープ・出張で停止 | 24/7 常駐、固定出口 |
| Stack との関係 | Ollama が孤立しがち | Runner・Claude Code と同機で可観測・錯峰 |
| L2 形態 | 多くは ollama run 試用 |
Inference Service:ヘルスチェック、pin、sidecar / cron |
| 依存者 | ほぼ本人のみ | CI、Agent、定時ジョブ、チームスクリプト |
Ollama は Cloud Mac のために存在するわけではない;Cloud Mac の価値は、Ollama を端末コマンドから 24/7 可観測・シフト可能・Runner と Agent が共有する Inference Service にすること。 さもないと「Ollama の話」に見え、プライベート Inference を Stack に載せる理由が伝わりません。
選定と L0 境界は Cloud Mac vs ローカル Mac AI ワークステーション。本稿はレンタル仕様を繰り返さず、Stack 叙述では L2 は「運用できる」ノードに置くとだけ固定します。
L2 に載せるべきワークロード
Ollama を L2 インフラ(試用以上)とみなすシグナル:
- コンプライアンス / エアギャップ——コードとログは Cloud Mac へ、推論リクエストは公有 API 不可;L2 で脱敏後の分類・要約・PII 検出。
- Embedding / rerank——CodeGraph や RAG が安定・pin 可能なローカルベクトルモデルを要する場合。
- 高頻度・小モデル・バッチ——例:毎夜 CI ログ分類;7B–14B 量子化は Apple Silicon で十分(固定ノード vs 時間課金 GPU)。
- L3 と錯峰——昼 Claude Code + Runner、夜
ollama runバッチ。24GB を終日フル負荷にしない。 - マルチ Agent の「速い経路」——大きな変更は Claude;分類・ルート・草稿はローカル 8B で API token 削減(OpenHuman ノートも同様の分割)。
逆に、iOS 納品のみ・コーディングは Claude API のみ・定時ローカル推論なしなら L2 は L1 Runner より後——まず push に Fact を。
読む順:Runner → Ollama → Claude Code
シリーズ追読の推奨順:
- L1 · Fact — GitHub Runner 実行エンジン:
push後に本当にビルド・テスト・配布できるか。 - L2 · Inference Service — 本稿:どの Token を Cloud Mac に残し、サービスとして呼ぶか。
- L3 · Diff — Claude Code ワークステーション:リポジトリをどう直すか(多くは API)。
基盤・選定:Cloud Mac vs ローカル Mac。Context(L4)と CodeGraph は後続で Inference 出力に接続します。
典型の誤認:Ollama を入れたが Stack は API のみ
- Cloud Mac で
brew install ollama、モデル二つ、「AI スタック完成」と祝杯。 - 日常は 100% Claude Code + Anthropic API;Ollama は一週間、どのスクリプト / Agent からも未呼び出し。
- メモリは未使用モデルが占有;Claude Code と Runner が残りメモリを奪い Swap 上昇(16GB vs 24GB)。
- 責任者:「なぜ Cloud Mac?」——L0 はマシンだけで L2 ワークロードが未定義。
修正は GUI をもう一つではなく、L2 必須の pipeline を 1–2 本指定(例:CI 失敗ログ要約のみ Ollama;embedding のみ nomic-embed-text)し、モデル pin と 11434 ヘルスチェック。並行 scheduling は L2-Q03 · メモリ scheduling。
L2 をスキップできるチーム
| L2 を立てる(Cloud Mac 上の Ollama) | 先に L2 をスキップ |
|---|---|
| 推論を機外に出せない、エアギャップ副タスク | コーディング・レビューは Claude API で足りる |
| 自前 RAG / CodeGraph でローカル embedding | ベクトル索引・ローカルバッチなし |
| 7B–14B で高頻小タスク、API コスト削減 | たまのチャット試用のみ |
| L1 とメモリ錯峰(昼 CI / 夜 Inference)済み | Claude Code のみ、Runner・パイプラインなし |
| 個人・小チームで 24/7 ログ・embedding・日報 Inference | 定時 / sidecar が本機モデルを呼ばない |
既存実測記事との関係(本稿は繰り返さない)
- L2-Q02 · 16GB vs 24GB——メモリ・Swap 実測;「どの機種か」であって「Stack のどの層か」ではない。
- L2-Q04 · M4 vs GPU クラウド——請求と規模;本稿は比価しない。
- L2-Q05 · Core ML——Apple ネイティブ推論;Ollama と併存可、別ランタイム。
- L3 · Claude Code ワークステーション——コーディング体験;本稿は L2 で API コーディングとローカル Inference の併存を補う。
導入順:Fact のあとに Inference
Runner 編 · 接続順と同様:
- L0——Cloud Mac 常駐 macOS。
- L1——Runner、
push → 緑/赤を再現可能に。 - L2——Ollama は定義済みプライベート Inference 管線だけ(本稿)。
- L3–L5——Claude Code、MCP、OpenHands。Fact +(任意)Inference のあと。
L2 を先に積み L1 を後回しにすると、ローカル要約は回るのに xcodebuild は Linux で失敗——Inference は Fact を代替しない。
L2 連載
本稿は L2 基盤(位置と境界)。同テーマの続き:
| 回 | テーマ | 状態 |
|---|---|---|
| ① · 本稿 | Ollama をプライベート Inference 層として | 公開済み |
| ② · 公開済 | Mac mini 上の AI Workload Scheduling:Ollama + Claude Code + GitHub Runner による Swap を防ぐ | 公開済み |
| ③ | モデル pin、ヘルスチェック、CI からの Ollama 呼び出し | 予定 |
五層責務の総図は Cloud Mac AI Stack 五層構造図。
よくある質問
Claude API も推論なのに、なぜ Inference を単独の層に?
Claude Code は Diff;L2 は Token(要約、embedding、バッチ等)。Claude Code ⊂ Inference の応用であり、その逆ではありません。
Ollama と Claude Code は二者択一?
いいえ。コーディングは L3 API;本機・定時推論は L2。比較表参照。
Claude Code の前に Ollama 必須?
不要。L2 は任意、L3 と並行。
コンプライアンスがなくても L2?
24/7 推論(ログ、embedding、日報)が要れば個人・小チームにも L2 は価値あり;たまの試用だけならスキップ。
ローカル Mac mini で Ollama できるのに Cloud Mac?
ローカルは動かせる;Cloud Mac は運用 Inference Service——24/7、Runner/Agent 同 Stack。ローカル vs Cloud Mac。
Ollama と Runner の先後?
先 L1、次 L2。図の上下は責務階層で起動順ではない。
本稿と 16GB vs 24GB の違い?
本稿は Stack 位置;メモリは 16GB vs 24GB、コストは M4 vs GPU クラウド。
L2 シリーズ · 続編
Mac mini 上の AI Workload Scheduling:Ollama + Claude Code + GitHub Runner による Swap を防ぐ
L2-Q03 · メモリ Scheduling 層:Swap と CI 遅延の scheduling 解法。30 秒 Runbook 付き。
L2-Q03 · AI Workload Scheduling を読む