この記事は公開から2年以上経過しています。
Linux(openSUSE Leap15.3)のNVIDIA QUADRO P1000(VRAM 4GB)環境でOpenAI Whisperのlargeモデルを試したところエラーで実行できなかったため、そのときの対応についての備忘録。
2023.8.22追記:
torch.cuda.is_available = lambda: False
からload_model(device='cpu')
にコードを修正しました。
問題
CUDA環境でOpenAI Whisperのモデルを実行すると
RuntimeError: CUDA out of memory. Tried to allocate 14.00 MiB (GPU 0; 3.94 GiB total capacity; 2.12 GiB already allocated; 54.62 MiB free; 2.30 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
のようなランタイムエラーが発生してしまう。
原因
CUDA(GPU)のVRAMが不足している(largeモデルの場合VRAMが〜10GB必要)。
対応
モデルの設定でCUDA(GPU)ではなくCPUを利用するように強制する。
充分なVRAMが搭載されている環境でOut Of Memoryが発生する場合は「Stable Diffusion(PyTorch)でOutOfMemoryが出るときの解決策」が役立つかもしれません。
import torch
import whisper
# モデルロード時のパラメータでCPUを指定
model = whisper.load_model(name='large', device='cpu')
try:
result = model.transcribe('input.wav')
print(result['text'])
except Exception as e:
print(e)
CPUなのでCUDAよりも時間は掛かりますが、ひとまずこれでlargeモデルの威力を試すことができます。
参考ウェブサイトなど
- GitHub
openai/whisper
以上です。