Google Cloud TPUでGemma 4を動かす。言葉にするとシンプルですが、実際はぜんぜんシンプルじゃないんですよね。空いているゾーンを探し、quotaを確認し、VMを立て、boot diskを気にし、Hugging Faceのtokenを渡し、vLLMのTPU向け設定を入れ、起動ログを追い、最後は忘れず片づける。しかも、TPUは放置すると課金がじわじわ進む。やることが多すぎる。
今回の記事は、その面倒を Claude Code に丸投げしやすくするための skill と MCP server を紹介しています。名前は tpu-management。かなり直球です。Cloud TPUを触ったことがある人ほど、「ああ、そこを自動化したいのは分かる」とうなずく内容だと思います。
vllm bench serve で速度を測る要するに、「TPUでGemma 4を動かすまでの作業手順」を、Claudeが実行できる形に落とし込んだものです。
しかも単なる手順書ではなく、MCP server までついています。MCPは雑に言うと、AIアシスタントが外部ツールを使うための接続口です。Claude Code が実際にクラウド操作をするための手足、と考えると分かりやすいです。
個人的にいちばん面白いのは、著者が「TPU運用って、想像以上に儀式が多い」と正直に言っているところです。ここはかなり本質的だと思います。GPUならまだしも、TPUは「とりあえず借りて起動」がやりにくい。空き容量、quota、起動方式、ログの見方、モデルに合わせたフラグ設定まで、毎回ちゃんと確認が必要です。
そこで tpu-management は、単に「作成する」だけではなく、探す・作る・待つ・確かめる・測る・消す までを一気通貫で扱います。運用の人が本当に欲しいのはたぶんこれで、モデルそのものより「事故らずに回す仕組み」なんですよね。
この skill は、Claude に TPU serving の流れを教えます。MCP server 側にはおよそ40個のツールがあり、たとえばこんなことができます。
TPUの空きを探す find_tpu、quota を持っている zone を確認する get_zones_with_available_quota、事前にコストを見積もる、といった“始める前の確認”ができます。これが地味に重要です。TPUは「立ててから考える」をやると財布に効くので、先に調べるのは正しい。
Provision の段階では、flex-start TPU VM を作ったり、古い queued resource 方式を使ったりします。v6e や v5p、v5e など TPU ファミリーごとの差も吸収しています。起動スクリプトには Docker の導入、vllm/vllm-tpu:nightly の取得、Secret Manager からの Hugging Face token 読み出し、モデル起動まで入っています。ここまでやってくれるなら、だいぶ気持ちが軽いです。
起動後は、vLLM コンテナの管理、serial console の監視、モデルヘルスの確認、OpenAI互換 endpoint への問い合わせまで面倒を見ます。ここでの “OpenAI互換” は、OpenAIっぽいAPI形式で他のツールから呼べる、くらいに思えば大丈夫です。つまり、後続のアプリに繋ぎやすい。
診断もあります。vLLM、Docker、システム、Cloud Logging のログを引っ張ってきて、さらに analyze_cloud_logging では Gemma 4 自身にログを読ませるという、ちょっとニヤッとする構成になっています。自分で立てたモデルが自分のインフラログを読む。こういう“AIが運用を食べる”感じ、未来感があって好きです。実用性もありますし。
Benchmark も対応しています。vllm bench serve を回して、TTFT、throughput、P95 を返します。TTFT は最初の1トークンが返るまでの時間、throughput は処理速度、P95 は遅い方から見た目安の値です。性能確認まで一連でできるのはかなり便利です。
もちろん teardown もあります。ただしここはちゃんと慎重で、削除前の確認を求め、flex-start は削除まで課金が続くと警告します。これは大事です。クラウド運用でいちばんありがちな事故のひとつが「検証終わったのに消し忘れ」なので、ここにガードレールが入っているのは好印象です。
この記事は、単にツールの宣伝ではなく、TPU運用の泥臭さをかなり具体的に共有しています。たとえば、vLLM の TPU イメージはデフォルトの 10GB boot disk を食い潰すので、ディスクサイズを気にしないといけない。gcloud regions describe では見えない TPUS_PER_TPU_FAMILY quota がある。SSH ではなく serial console を見るべき。Gemma 4 を TPU で動かすには、--tool-call-parser gemma4 や --disable_chunked_mm_input など、特定のフラグが必要。
このへんは、正直かなり“現場っぽい”です。きれいな概念説明より、こういう細部のほうが価値があることが多い。特に「何で起動しないのか分からない」時間を何度も経験した人には刺さるはずです。

導入方法は複数ありますが、いちばん手短なのは Claude Code の plugin marketplace から入れる方法です。著者の言い方だと、たった1コマンドで skill と MCP server の両方が入る。クラウド運用の話なのに、導入だけは妙に気軽です。このギャップが少し面白い。
もちろん、git clone して入れる古典的な方法もありますし、zip を落として展開するやり方もあります。環境変数で GOOGLE_CLOUD_PROJECT、MODEL_NAME、ACCELERATOR_TYPE、TENSOR_PARALLEL_SIZE を設定する形です。TPU を動かすのに必要な前提としては、認証済みの gcloud、TPU API の有効化、Hugging Face token が必要になります。

この手の仕組みは、完全初心者向けというより、すでに TPU や vLLM に触る必要がある人の作業を省力化するもの だと思います。つまり、「TPUは面倒だから嫌だ」ではなく、「面倒だけど、避けられない」という人向けです。
逆に言うと、これがあるだけで TPU が簡単になるわけではないです。quota も zone も課金も、現実はそのまま残る。けれど、その現実を毎回人間が手でなぞらなくてよくなる。ここが大きい。AI に任せられる部分と、まだ人間が見るべき部分を分ける発想が、かなり実務的だと思います。

tpu-management は、「Claude Code に TPU運用の一連の手順を覚えさせて、Gemma 4 の起動・検証・片づけまでやらせるための道具」です。
豪快に見えて、実はかなり地に足のついた自動化だと思います。TPU を触るたびに毎回同じ作業をしている人には、かなり効きそうです。
著者は GitHub で issue や PR も受け付けていて、仕組みを他のモデルや accelerator に広げやすい形にもしています。こういう「自分の困りごとを、再利用しやすい道具にして公開する」動きは、やっぱり良いですね。実戦で揉まれたものは強いです。

参考: tpu-management: a Claude Code skill for running Gemma 4 on Cloud TPUs