縁は何処より起こるかを知らず、ひとたび深く情を傾ける。Docker は如何にして雄飛するか——夜もすがら、pip。
最初は Google の L4 を使っていた。
Google L4 は一時間でおよそ160円、五日間で1万2千円あまりを溶かした。
Google GPU L4 を使ったその五日間、時間のなかの取るに足らない価値が金銭という形で目の前に積み上がっていくとき、それは鉄のカーテンのようだった。
しばしば得体の知れない圧迫感に襲われた。たとえば朝七時半の閾値(しきいち)を逃すのが怖くて、六時に目が覚める。はっと飛び起きるのではなく、ただ、目が覚めてしまうのだ。
Google L4 は VRAM 24GB、最大 72W。LoRA で 1024×1024 の画像を生成するのに約一分。LivePortrait の動画合成は 30fps・28crf・30step で、180 フレームの尺がおよそ十数分。
だがそのコスト以上に、頭上に吊るされた刃(やいば)は「不安定さ」だった。これは学習用のマシンであって、長丁場の本番フローには向かない。安定した軽い作業には実に向いているが、ひとたびメモリあふれのリスクがあれば、まず間違いなくあふれる——マーフィーの法則、サーバー版だ。
Google A100 は VRAM 40GB、最低でも 250W。一時間で約470円。
仮に一か月 60 時間使えば、A100 だけで2万8千円、帯域とディスクは別。もっとも毎月フルで 60 時間回すわけではないので、GPU の使用料そのものは、平均すれば年 19万円ほどに収まる。
だがここに罠がある。あちこちからイメージや各種パッケージを落とす通信費は決して安くなく、静的 IP にも金がかかり、ディスクにも金がかかる(これが安くない)。こうした諸々の雑費を上乗せすれば、ぜんぶ込みで年 23万円というのは、ごく普通のことだ。
それに、モデルを訓練した者なら誰でも知っているが、いざ訓練が始まれば、マシンはほぼ電源を切らない。60 時間など、ただの土台にすぎない。
Amazon はもっと高い。むろん、安い業者もある。だが、その代償は?
父はかつて言った——「金を使う楽しみを、この俺が分からんとでも?」
Google のエコシステムを心から愛してはいるが、一週間で 80 時間も回してしまう私にとって、自作 PC を組むことだけが、残された唯一の道だった。
自作 PC は立派な筋トレだ。尻を突き出して 20 キロ超えの本体をいじくり回すのは、決して楽ではない。なにせ「マシン一台まともに抱えられぬ」ひ弱なこの身なのだから。
それでも自作の喜びは、一発で起動した瞬間の満足にあり、ファンが唸りをあげる高揚にあり、そして——家にキーボードがなくて OS を入れられない、というあの間抜けな可笑しみにある。
水冷のたてる滴(したた)りの音、ガラス窓の奥で回るグラフィックボード、明滅する蛍光の数字、瞳に映るサイバーパンクの光——肉体は脆く、機械は永遠なり!!!
……ゴホン、脱線した。
自作は楽しい。ネットワークを組んだあと、一台のマシンからもう一台へ繋ぐあの感覚は、まるでどこかで誰かが自分を待っていてくれると知っているようなもの。手を振れば、向こうも応えてくれる。
だが、Docker は美しくない。
水曜日に組み上げてから今日まで、余暇の大半は環境問題との格闘に消えた。
Docker は環境問題を斬る切れ味鋭い武器か? そうだ!
だが、ホスト環境に合った Docker が要る。そしてその Docker は、自分で設定しなければならない。
とりわけ 50 系のグラフィックボードでは。この、ほんの少しだけ時代を先取りしたハードの上では。夜通しの PyTorch と pip が、一晩中、あなたの情熱に付き合ってくれる。
たとえばこうだ——プラグインを一つ入れたら、元の NVIDIA がアップグレードされて環境が崩壊する。強引に入れたら、そのプラグインが動かなくなる。互換対応を入れたら、プラグインが壊れる。直したら、別のプラグインが壊れる……
読んで損をさせないために、50 系 Blackwell 専用の、金には代えがたい解決策をいくつか(sm_120 アーキは初期の stable な torch では未対応。nightly か、ソースからのビルドが要る):
-
MuseTalk:mmcv-full は、まずホスト側で sm_120 対応を強制的にソースからビルドする必要がある(conda create -n musetalk python=3.10 → pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128 → export TORCH_CUDA_ARCH_LIST="12.0" → mim install mmcv-full -f)。その後 -v でマウントして Docker/仮想マシンに共有する(あるいは直接その env を source activate して走らせる)。こうすればコンテナ内で直接 mim を叩いて爆死する、あの深い落とし穴を回避できる
-
Fish-Speech:NVIDIA NGC の公式コンテナから出発する(nvcr.io/nvidia/pytorch:25.xx-py3 もしくはそれ以上の Blackwell 最適化版)。そのうえで手動で pip install -U torchaudio(torch に合わせて +cu128 のバージョンを指定する。NGC の torchaudio はしばしば不完全か、ABI が非互換)。それから funasr や modelscope などを入れる
-
あの古典的な「[m_120] unsupported」エラー(sm_120 アーキの不一致。ほぼすべての docker build/pip install で踏む):pip install --pre torch --index-url https://download.pytorch.org/whl/nightly/cu128 の nightly 版を使うか、ビルド時に export TORCH_CUDA_ARCH_LIST="12.0" を強制する(Blackwell の consumer アーキ)
むろん、これらを片づけたあとは、実に快適だ。新しい相棒が、370W の電力であなたを支えてくれる。「速さ」は、これよりのち、あなたたち二人に共通する特徴となる。
望んでいたものが生成されたとき、ただ純粋に、うれしい。まるであの夏に戻ったかのように。風が頬を撫でて、暑くもなく、寒くもない。
選択には代償がある。クラウドとローカルもそうだし、世界もそう、人生もそうだ。
日本での暮らしと同じで、白とも黒とも言い切れない。大人の優しさとは、世界が灰色だと知りながら、それでも心の奥では白のほうが少し多いと信じ、そしていたるところで白い物語を語ろうとすること。
後記
昨今の AI をめぐる不安は、その多くが「使う側」に集中している。だが開発の視点に踏み込めば——金は多くかかり、難度は高く、天井もまた高い。私がずっと「挑戦よりチャンスのほうが大きい」と感じてきた理由も、まさにここにある。IT に賭けた人間なのだから。
2026-02-16