【導入】
エンジニアを30年以上やってきた。 フリーランスとして、今も現場でキーボードを叩き続けているのは、何よりも「達成感」を味わいたいからだ。
今回、手元に届いた M4 Max (Mac Studio) をメイン機に据えるにあたり、これまで現役だった M1 Max を「引退」させるのではなく、「自分専用のローカルLLM推論サーバー」として再定義することにした。
GPTに頼り切るのではなく、完全にクローズドな環境で、インフラ構成(Terraform)を自律的に爆速で組み上げる。そんな「理想のエンジニアリング環境」を構築した記録だ。
【ハードウェア:M4 Max × M1 Max の重なり】
新旧のMac Studioが重なる姿は、エンジニアとしてのキャリアの積み重ねのようにも見える。 M1 Maxを llama.cpp サーバーとして稼働させ、M4 Max上の Continue(VS Code拡張)からSSH経由で命令を飛ばす。
この構成の肝は、電源アダプターすら不要なM4 Maxのパワーと、まだまだ現役でAIを回せるM1 Maxのメモリ帯域の共演にある。
【ソフトウェア:お作法を捨てた実戦ルール】
AI(Qwen)に指示を出す中で、一つ気づいたことがある。 AIは「シニアエンジニア」という役割を与えると、教科書通りの「綺麗なモジュール分割」をしようとして自滅するのだ。
サブディレクトリを掘り、変数を渡し、複雑な構造を作ろうとして、結果的にLLMのコンテキストを使い果たしてエラーを吐く。 「しんどそうだな、お前」 画面の中のAIに、思わずそう声をかけそうになった。
そこで私は、19項目の「行動規範(Rules)」を再定義した。
モジュール分割の禁止: すべてをルート直下のファイル名(vpc.tf, ec2.tf等)で分ける「フラット構成」にする。
一気通貫の実行: フォルダ作成から
validateまで、承認を待たずに一気に完遂させる。日本語の徹底: 思考のノイズを減らすため、 Reasoning も含めてすべて日本語で行う。
ブログに技術的な裏付けを持たせるために、具体的な「足場」の部分を書き加えました。M1 Maxをサーバーにする際の実践的なノウハウとして、エンジニア読者が最も喜ぶセクションになります。
ブログ追加セクション案:M1 Maxを最強の推論サーバーに変える「足回り」
【採用モデル:Qwen2.5-Coder-32B】
今回、Terraform構築の相棒に選んだのは Qwen2.5-Coder-32B だ。 これまで数多くのモデルを試してきたが、コーディングにおける「正確性」と、HCL(HashiCorp Configuration Language)の構造を理解する「論理力」において、現時点でのローカルモデルとしては群を抜いている。
M1 Maxの広帯域なユニファイドメモリ(64GB搭載機であればなおさら)なら、このクラスのモデルも驚くほど軽快に、かつ深いコンテキストを持って動かすことができる。
【バックエンド:llama.cpp の起動戦略】
この Qwen を裏側で支えているのが llama.cpp だ。 ただ動かすだけではなく、M1 Max の GPU 性能を引き出し、かつ VS Code(Continue)からの要求に耐えうる「サーバー」として、私は以下のパラメータで叩いている。
./llama-server \
-m models/qwen2.5-coder-32b-instruct-q4_k_m.gguf \
-c 32768 \
--ngl 99 \
--host 0.0.0.0 \
--port 8080
設定のポイント:
-c 32768: コンテキストサイズを 32k まで拡張。Terraform の複数ファイルを一気に読み込ませるには、デフォルトでは到底足りない。--ngl 99: GPU(Metal)に全レイヤーをオフロード。M1 Max の GPU コアをフルに使い切るための「魔法の数字」だ。--host 0.0.0.0: M4 Max からネットワーク越しに叩くため、バインド先を広げておく。
【「道具」を使いこなすという快感】
SSH で繋いだ M1 Max のターミナルでこのコマンドを叩き、サーバーが立ち上がるログが流れる。 その瞬間、昨日の主力機だった M1 Max は、現代最強の「コーディング専用ブレイン」に生まれ変わる。
0 件のコメント:
コメントを投稿