Hugging Face ZeroGPU のチュートリアル
tl;dr
Hugging Face に月に 9 ドルお布施すると ZeroGPU が使えるよ!
ZeroGPU は Hugging Face Spaces にて最大 120 秒間 A100 が使えるという代物だよ!
通常はホスティングに時間単価で課金が発生するから安心だね!
ちょっとしたモデルの推論サーバとして重宝するよ!
ZeroGPU とはなにか
Hugging Face Spaces で追加のコストなく GPU を使える代物。
この記事の読者の多くは、大規模言語モデルや画像生成モデルなどのデモアプリが Hugging Face Spaces 上で動いているのを目にしたことがあるでしょう。
これらを自前で Hugging Face Spaces にホスティングする際にはなかなかにめんどうくさい。
このモデルってどのくらいの推論メモリを使うの?
毎月どのくらいの金額感になるの?
どれが最適なの?選べる GPU がたくさんあってわかんな💢
そんな細かいことを考えずに 9 ドル課金して脳死で A100 使えるというのが ZeroGPU です。
ZeroGPU のスペック
ZeroGPU は現状ベータ版ですが、Nvidia の A100 40GB を使うことができます。transformers や diffusers などの Hugging Face 謹製のライブラリとの互換性が保たれています。また、現状では Gradio SDK のみの対応ですので、Streamlit 他 SDK で使いたい場合は対応するまで待ちましょう。
サポートされている各ライブラリのバージョンは下記の通り。
Gradio: 4+
PyTorch: All versions from 2.0.0 to 2.2.0
Python: 3.10.13
もし動かない場合は上記のバージョンとずれていないかご確認ください。
使い方は簡単。既存の Gradio アプリに二行を追加するだけ。
+import spaces ←ここ
from diffusers import DiffusionPipeline
pipe = DiffusionPipeline.from_pretrained(...)
pipe.to('cuda')
+@spaces.GPU ←ここ
def generate(prompt):
return pipe(prompt).images
gr.Interface(
fn=generate,
inputs=gr.Text(),
outputs=gr.Gallery(),
).launch()
デフォルトで 60 秒制限があるので 120 秒まで使いたい時はデコレータを明示的に指定してあげてください。
@spaces.GPU(duration=120)
def generate(prompt):
お布施の方法
だいたい説明したのであとは動かすだけです。
ものは試し。月額 9 ドルお布施してみましょう。「👷Subscribe to Pro」からクレジットカードを登録して決済してください。(参考までに私の決済金額は 1,417 円でした)
とりあえず使ってみて、翌月も継続するか不安な方は自動更新をオフにしておきましょう。
上記の Billing ページの「PRO Subscription」より「Cancel subscription」をポチッと押しておきましょう。すると来月の自動更新がストップします。意図しない課金はダメ。ゼッタイ。
他の方の Spaces を複製してみよう
できる方は自前の Spaces を ZeroGPU でデプロイし直してみてください。初めての方はまずはすでに ZeroGPU の上で動作しているものを複製してみましょう。
Hugging Face の中の方が公開してくださっている Whisper Large V3 の Spaces を自分で ZeroGPU にホスティングしてみましょう。
俺の行く道は俺が決める!という方はこちらからどうぞ。すでに ZeroGPU にホスティングされた Spaces がまとめられています。
Spaces の右上の三点リーダーから「Duplicate this Spaces」を押してください。
こんな感じで「ZeroGPU Nvidia A100」が選択できるようになっていれば OK です。「Duplicate Space」を押してください。
30 秒ほどで自分の Spaces にホストされます。「Record」を押して適当に喋ってみましょう。文字起こしが右側の output に出力されたら OK です。
私は Kotoba Whisper が好きなので差し替えてみました。もしよかったらお使いください。
もし使い方で困ったら
こちらに質問が集まっているので解決策が見つかるかも?
最後までお読みいただきありがとうございます。よかったら X をフォローしていただけるとうれしいです!