Spaces:
Running
on
Zero
Running
on
Zero
Report: Not Working @ 5:45 PM EST 11/15/24
#59
by
bingusbonglets
- opened
Currently not inferencing.
not inferencing at 11 AM 11/16/24 because the GPU keeps going on and off
gpu task aborted error every time 8:20 PM 11/24/24
same problem as 11/16/24, GPU keeps turning on and off
1. GPU がオン/オフを繰り返す理由
コールドスタート/アイドルタイムアウト
- Hugging Face Spaces 上の GPU インスタンスは、一定時間使われないと自動的に「スリープ」状態になり、再度リクエストが来ると再起動されます。
リソース競合・プリエンプション
- 無料プランでは他ユーザーとの共有リソースとなるため、長時間連続して使うとセッションが切られることがあります。
メモリ不足/OOM (Out-Of-Memory)
- モデルロードやバッチ推論時に GPU メモリが足りず、タスクが強制終了される場合があります。
2. 「GPU task aborted」エラーへの対策
バッチサイズの削減
- 一度に変換するオーディオの長さやサンプル数を下げることで、GPU メモリ使用量を抑えられます。
メモリ最適化ライブラリの活用
xformers
やbitsandbytes
を導入し、モデルの量子化・メモリオフロードを試みてください。
torch.cuda.empty_cache()
の呼び出し- 各推論後に GPU メモリをクリアし、メモリリークを防ぎます。
import torch
def infer(...):
# 推論処理
...
torch.cuda.empty_cache()
return output
3. Gradio 側の設定変更
キュー機能の有効化
gr.Interface
/gr.Blocks
に対してenable_queue=True
を指定し、@app .queue()
デコレータでキュー処理を使うと、同時アクセスがあっても安定しやすくなります。
import gradio as gr @app .queue() def inference(...): ... demo = gr.Interface(fn=inference, ..., enable_queue=True)
タイムアウト延長
- Spaces の「Settings」→「Advanced settings」で「⏱️ Request timeout (sec)」をデフォルトの 60→120 秒などに延長すると、コールドスタートに伴う遅延でタイムアウトしにくくなります。
4. ログの確認とデバッグ
Spaces の「Logs」タブ
- エラーメッセージ全文 (OOM、CUDA エラー等) が出力されているはずです。これは、管理者のみが見ることができます。
代わりの方法:ローカル再現
git clone
してローカル GPU 環境で動作確認し、どこで落ちるか特定すると原因追及がしやすくなります。