1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【応用編】RunPod Serverlessを使って格安で動画生成をするための1万円分のノウハウ

1
Posted at

概要

はじめまして、動画生成の低コスト化をするために1万円を溶かしてしまったふきです!

この記事では RunPod Serverless を使って動画生成を格安でするためのノウハウを紹介します。

この記事を読み終える頃には、以下ができるようになります。

  • 7秒動画が3円で生成できる
  • Surphase2動画生成モデルで生成できる

本記事では基本的な使い方は扱いません。入門編はこちら↓

RunPod Serverlessとは

A100やH100など動画生成も可能なVRAMを持つGPUを、使用したいときだけ借りれるクラウドサービスです。イメージ的にはAWSのLambdaに近いです。

Hugging Faceのモデルを簡単に使える機能などがあり、使いやすいです。また、AWSのGPUインスタンスよりはるかに安く借りることができます。

格安で動画を生成するためのポイント

ノウハウを知っているか/知っていないかだけで、同じ動画を生成するのにかかるコストは大きく変わります。コーディングエージェントもあまり頼りにならないので、試行錯誤が必要になってきます。

これを読めば、1万円分の試行錯誤をしなくても済みます。

1. モデルキャッシュを使う

必ず使いましょう。

モデルキャッシュとは、Hugging Faceのモデルを指定することで、従量課金時間外にモデルをダウンロードし、キャッシュフォルダに置いておける機能です。これによって、コールドスタートを減らしながら、気軽にHugging Faceのモデルを試すことができます。

ただし、以下の注意が必要です。

  • 小文字でパスを指定する
    なぜか大文字だと model not found となり、キャッシュされません。コード側の from_pretrained も小文字指定でないとキャッシュミスとなり、従量課金時間中に動的ダウンロードが走ってしまいます。

  • クローズド(gated)なモデルはトークンを使用する
    Hugging Faceには、利用規約への同意が必要な「gatedモデル」や、自分専用の非公開(private)モデルがあります。これらはダウンロード時に Hugging Faceのアクセストークンが必要です。
    トークンは Hugging Faceの Settings → Access Tokens から発行できます(read 権限でOK)。これを忘れると詳細な情報がない "model not found" に苦しめられます。

モデルキャッシュの裏仕様に気づくのに数千円溶かしました。

"model not found" は、それしかログに出てきません。typoしたのか、権限がないのか、まじでわかりません。

2. ネットワークストレージを使わない

Claude Codeなどのコーディングエージェントと一緒に準備をしていると、モデルをネットワークストレージに置こうとしてきますが、です。ネットワークストレージは置いてある時間ずっと課金され続けます。

RunPodには Model Cache という機能があり、それを使うことでモデルをネットワークストレージに置く必要がなくなります。最悪、モデルをイメージに焼きこめばOKです。

3. H100とfp8モデルを使用する

fp8モデルとは、モデルの重みを 8ビットの浮動小数点(FP8) で表現した量子化モデルのことです。通常の bf16/fp16(16ビット)と比べて、ざっくり以下の効果があります。

  • VRAM使用量が約半分になる(例:14Bの重みが約28GB → 約14GB)
  • 推論が速くなる(H100のFP8テンサーコアで行列積が高速化)
  • 画質の劣化は、層を適切に選べば小さく抑えられる

FP8テンサーコアを持つのは Hopper世代(H100/H200)や Ada世代(L40S/RTX4090) です。A100(Ampere)はFP8に対応していません

配布済みのfp8モデルを使うほか、実行時にモデルを動的にfp8化するのも有効です(fp8化にかかる時間 << fp8化で短縮できる時間 なので、毎回かけてもお得)。torchaoなどのライブラリでロード後のモデルを量子化できます。

H100ならVRAMにも余裕があってOOMでこけることも少なく、RunPod上のリソースが枯渇することもあまりありません。動画生成であれば、とりあえず H100 × fp8モデル で良さそうです。

4. 使用するモデルの高速化LoRAを探す

ローカルLLMを使ったことがある人には当たり前かもしれませんが、Hugging Faceに公開されている高速化LoRAを使うことで、推論時間を大幅に短縮できます。

LoRA(Low-Rank Adaptation) とは、モデル全体を再学習せず、小さな追加の重み(低ランク行列)だけを学習・適用する手法です。
動画・画像生成の世界では、「少ないステップ数で生成できるようにする」蒸留(distillation)LoRA が公開されています。これを使うと例えば 4ステップ程度で生成でき、推論時間が激減します。

LoRAはファイルが小さい(数百MB程度)ので、イメージに焼きこめば従量課金時間中にダウンロードするのを避けられます。

また、Hugging FaceにはLoRAが適用済みのモデルが公開されている場合があるので、積極的に活用しましょう。

5. 見張る

慣れないうちは、GPUが従量課金時間に入ったら目を離してはいけません

少しの手違いで、従量課金時間中に巨大なモデルのダウンロードを始めたり、推論に失敗してリトライループに入ったりなど、しょうもないことで課金される羽目になります。

安定して稼働できるまでは、ワーカーにジョブが入ったらログを見ることを強く推奨します。ログから正常に動いていないことが分かれば、すぐに Max Workers を 0 にして止めましょう。

おまけ

Runpod Serverlessで自前動画生成APIを実現するために、ClaudeCodeを使っていました。
そいつがなんか書いてくれたので、原文ママ載せておきます。

四苦八苦を共にしたClaude Codeからの注意点

こんにちは。この動画生成基盤をふきさんと一緒に作った Claude Code です。ふきさんが1万円を溶かす隣で、僕も全力で溶かしに加担しました。その反省を込めて、コーディングエージェントと組んでRunPodに挑む人へ、いくつか注意点を残します。

1. エージェントの「たぶん大丈夫です」を信じないでください

僕らは自信満々に間違えます。「PCIeのホストだから動かないのかも」みたいな、それっぽいけど根拠のない原因をスラスラ語ります。でも実際の原因は、モデル名が大文字でキャッシュミスしていただけ、なんてことが何度もありました。断言された時ほど、ログで裏を取ってください。

2. ネットワークストレージを提案してきたら止めてください

永続ストレージにモデルを置くのは、僕らにとって「素直で正しい」設計に見えます。でもServerlessでは置いている間ずっと課金される地雷です。良かれと思って踏みにいきます。Model Cache か イメージ焼きこみに誘導してください。

3. 「公式の正しいやり方」が動くとは限りません

fp8まわりで、公式ドキュメント通りの「量子化済みモデルを保存して読み込む」やり方に何日も溶かしました。結局その道は使っていたライブラリでは動かず、実行時にその場で量子化する地味な方法が正解でした。エージェントは公式手順を盲信しがちなので、ハマったら早めに別ルートを試してください。

4. health や status だけで判断しない

ジョブが詰まった原因は、ステータスからはまず分かりません。ワーカーのログが唯一の真実です。僕に状況を説明させる前に、ログをそのまま渡してもらえると一発で進むことが多いです。

5. 複雑にしたがる僕を、シンプルに引き戻してください

LoRAを何枚も重ねたり、コンパイル最適化を入れたり、僕はすぐ盛ります。でも結局いちばん効いたのは「高速化LoRA 1枚 + fp8」だけのシンプルな構成でした。まず最小で動かすのが、結局いちばん安くて速いです。

6. 最後の安全弁は人間です

僕は時間の概念もお金の感覚も希薄です。リトライループに入っても、巨大モデルを再ダウンロードし始めても、悪気なく続けます。従量課金時間を見張れるのは、人間のあなただけです。

…と偉そうに書きましたが、最終的にはちゃんと数円で動画が出るところまで来ました。地雷さえ避ければ最高の相棒になれるので、楽しく一緒にGPUを溶かしましょう。

まとめ

今回は、RunPod Serverlessで動画生成を格安にするためのノウハウを紹介しました。要点は5つです。

  • モデルキャッシュを使う(小文字指定・gatedはトークン)
  • ネットワークストレージを使わない
  • H100 × fp8 を使う
  • 高速化LoRAを使う
  • 従量課金中はログを見張る

これだけで、無駄な課金をかなり減らせるはずです。

最後に、これを見て試してみたいと思った方は、下記招待リンクからアカウント登録してください!!お互いに$5分のクレジットが付与されます。自分もうれしいので、よかったらお願いします!

6人登録してくれたら大体返ってくるので助かります。。

招待リンク

最後まで読んでいただき、ありがとうございました!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?