MacBook Pro M4 ローカルで Llama 3.3 70B を 11 時間動かし続け、機内でクライアント仕事をすべて片付けた開発者がいる。Wi-Fi 代 25 ドルを払わず、オフラインだけで完結させた「オフライン AI ワークフロー」の実例が話題になっている。

構成:ハードウェアとソフトウェア

使用機材はシンプルだ。

項目内容
マシンMacBook Pro M4、64 GB 統合メモリ
モデルLlama 3.3 70B(bf16 精度)
推論エンジンllama.cpp(localhost:8080 で待機)
生成速度71 トークン/秒
コンテキスト長約 60,000 トークン
メモリ使用量48.6 GiB(ほぼ上限)
離陸時バッテリー残量3 時間 21 分

離陸前に書いたオーケストレーション・スクリプト

キモはフライト前に仕込んだシステムプロンプトとスクリプトだ。要約すると以下のとおりだった。

1
2
3
4
5
6
7
8
あなたは今、MacBook 上のオフライン・オーケストレーターです。ネットはありません。
使えるのはローカルファイルと localhost:8080 の Llama 推論サービスだけです。
バッテリーは 3 時間強。

/Users/dev/work/queue.jsonl からクライアントタスクを 1 件ずつ読み込み、
各タスクをドラフト→ローカル評価→ /Users/dev/work/done/ に出力してください。
12 タスクごとにコンテキストチェックポイントを保存し、電源交換後に復元できるようにすること。
キューが空になるか、バッテリーが 5% を切ったら停止。

制約を正直に宣言したシステムプロンプトが、エージェントに「自分の家の事情」を完全に理解させた。インターネットなし・メモリ有限・電源も有限、そして操作者は空の上にいる——何か起きても誰も介入できない状況だ。

バッテリー切れへの対処:チェックポイントが生きた

フライト途中でバッテリーが本当に尽きかけた。エージェントは自律的に 5% を検知して一時停止。彼がモバイルバッテリーを繋いだ後、最後のチェックポイントからコンテキストを復元して作業を再開した。人間はほぼ何もしていない。

ログにはその痕跡がはっきり残っている。

saved context checkpoint 8 of 12 (pos_min = 488, pos_max = 50118, size = 62.813 MiB)
restored context checkpoint (pos_min = 488, pos_max = 50118)
prompt processing progress: n_tokens = 50 / 60 818
task 37016 done | tps = 71 s tokens text → /Users/dev/work/done/proposal_westside.md

「保存→復元→再開」のサイクルが完全に機能している。

実行結果:タスクキュー完全処理

11 時間のフライトを終えた時点で、クライアントのタスクキューはすべて処理済みだった。Wi-Fi に 1 セントも使わず、ローカル推論だけで完結した。

この事例が示すポイントは 2 つある。

  1. M4 チップの推論性能は実用レベルに達している — 70B モデルで 71 トークン/秒は、ローカル推論の常識を変えつつある
  2. 制約を正直に伝えたシステムプロンプトが自律性を引き出す — 「ネットなし・電源有限・操作者は空の上」という状況を明示することで、エージェントは適切な判断基準を持てた

llama.cpp の現在地と活用場面

llama.cpp は Apple Silicon の Metal バックエンドを最適化し続けており、M4 世代のユニファイドメモリ帯域を最大限に活用できる。70B クラスのモデルを bf16 精度でロードするには 64GB 以上の構成が必要で、Metal GPU アクセラレーションは量子化フォーマット(GGUF/Q4/Q5)での利用が最も安定している。32GB 構成でも Q4 量子化であれば十分実用的な速度が出る。

オフライン推論のユースケースとして今後注目されるのは以下の通りだ。

  • 機内・山岳地・海上など通信困難な環境での作業
  • プライバシー要件が厳しいデータを扱う場合(医療・法律・社内情報など)
  • クラウド API コスト削減(大量バッチ処理を夜間ローカルで回す)

クラウドに頼らなくていい理由が、確実に増えている。この 11 時間のログはそれをシンプルに証明した。