【生成AI】OllamaとAivisSpeechが使うVRAMを空ける方法|8GBのグラボで画像・動画生成と同時に使う

スポンサーリンク
生成AI
スポンサーリンク

Ollamaで会話して、AivisSpeechで声を出す。そんな自作のAIチャットを、ComfyUIの画像・動画生成と同じPC(VRAM 8GBのRTX 2080 SUPER)で動かしていると、すぐにVRAMが足りなくなる。

調べてみると、何もしていないときでもOllamaのモデルが約3.1GB、GPUで動くAivisSpeechが約1.1GB、VRAMをつかんだままだった。8GBのうち半分以上だ。

結論から書くと、画像・動画生成の前にollama stopでOllamaのモデルを外し、AivisSpeechはGPUを使わない(CPUの)起動にしておくのがおすすめだ。Ollamaは0.2秒ほどで約3.1GBが空き、次に話しかけたときの読み込みは約3秒で済む。AivisSpeechはCPUにしても短い文の声の速さはほとんど変わらなかった。

先に結果:どれだけ空いたか

PC全体のVRAM使用量をnvidia-smiで測った結果だ(2026年11月、RTX 2080 SUPER 8GB、Windows 11)。

状態 VRAM使用量
Ollamaのモデルなし 792MiB
Ollamaでqwen3:4b(4bit)を読み込んだ後 3949MiB(約3.1GB増)
ollama stopの後 792MiB(0.23秒で戻った)

AivisSpeechは、GPUで起動したときとCPUで起動したときを比べて約1.1GBの差があった。

Ollamaのモデルを外す方法

1. 読み込まれているモデルを確認する

PowerShell(またはコマンドプロンプト)で次を実行する。

ollama ps

読み込まれているモデルがあると、NAME(モデル名)、SIZE、PROCESSOR、UNTILなどが表示される。私の環境では「3.2 GB」「100% GPU」「4 minutes from now」だった。100% GPUはモデルが丸ごとVRAMに載っているという意味で、UNTILは自動で外れるまでの残り時間だ。

2. ollama stopで外す(おすすめ)

ollama psで出たNAMEを指定して実行する。

ollama stop qwen3:4b-instruct-2507-q4_K_M

成功しても何も表示されない。もう一度ollama psを実行して、一覧が空になっていればOKだ。実測ではコマンドが0.13秒で戻り、0.23秒後にはVRAMが792MiBに戻っていた。

外したモデルは消えるわけではない。次に話しかけると自動で読み込み直される。かかった時間はこうだった。

状態 返答が終わるまで
外した後に話しかけた 3.34秒(うち読み込み3.00秒)
読み込み済みで話しかけた 0.19秒

3秒待つだけなので、画像・動画生成の前に毎回外しても困らない。

3. 何もしなくても5分で外れる

Ollamaは、最後に使ってから5分たつとモデルを自動で外す(公式FAQに書かれている初期設定)。実際に放置すると、300.8秒後にVRAMが792MiBに戻った。5分待てるなら、何もしなくてもいい。

自作アプリから外したいとき(keep_alive)

自作のスクリプトやアプリからOllamaを使っているなら、APIにkeep_aliveの0を送るとすぐに外れる。PowerShellならこう書く(11434はOllamaの標準のポート番号)。

Invoke-RestMethod http://localhost:11434/api/generate -Method Post -Body '{"model":"qwen3:4b-instruct-2507-q4_K_M","keep_alive":0}'

Windows PowerShell 5.1で、-ContentTypeを付けなくても動いた。0.10秒で外れ、返ってくる結果のdone_reasonはunloadになる。curlを使う場合はこうだ。

curl.exe http://localhost:11434/api/generate -d "{\"model\":\"qwen3:4b-instruct-2507-q4_K_M\",\"keep_alive\":0}"

会話のたびにkeep_aliveを付けて送れば、返答が終わった時点で毎回外れる。ただし毎回約3秒の読み込みが入るので、会話が続く間は付けないほうが快適だ。コマンドで1回だけ話しかけて、終わったらすぐ外したいときは--keepalive 0を付ける。

ollama run qwen3:4b-instruct-2507-q4_K_M --keepalive 0 "こんにちは"

5分という時間そのものを変えたいときは、環境変数OLLAMA_KEEP_ALIVEで変えられると公式FAQに書かれている(Windowsではユーザーの環境変数として設定する)。この記事では試していない。なお、APIで送ったkeep_aliveのほうが、環境変数より優先される。

AivisSpeechをCPUで動かす方法

AivisSpeech Engine(音声合成のエンジン本体、run.exe)は、--use_gpuを付けて起動したときだけGPUを使う。Windowsの場合、GPUはDirectMLで使われる(公式READMEより)。つまり--use_gpuを付けずに起動すればCPUで動き、VRAMを使わない。

AivisSpeech Engineのフォルダ(run.exeがある場所)をPowerShellで開いて、次のように起動する。10101はAivisSpeech Engineの標準のポート番号だ。

.\run.exe --host 127.0.0.1 --port 10101

GPUに戻したいときは、最後に--use_gpuを足すだけだ。

.\run.exe --host 127.0.0.1 --port 10101 --use_gpu

すでにGPUで動いているエンジンがある場合は、先にそれを閉じてから起動し直す(同じポートでは2つ起動できない)。

AivisSpeechのアプリ(エディター)からエンジンを起動している場合、私のPCではGPUを使うかどうかが%APPDATA%\AivisSpeech\config.jsonのuseGpuに保存されていた(falseならCPU)。アプリの設定画面での切り替え方は、この記事では確認していない。

CPUにすると声は遅くなる?

同じPC(Core i9-9900K)で、GPU起動とCPU起動の声の生成時間を比べた。

読ませた文 GPU CPU
短い文(7文字) 約0.9秒 約0.6秒
中くらい(28文字) 約1.0秒 約1.4秒
長い文(43文字) 約1.0秒 約2.2秒
VRAM CPUのほうが約1.1GB少ない

短い文はCPUのほうが速く、長い文は倍くらいかかる。私のチャットでは1文ずつ声にしているので、しゃべり始めまでの待ち時間はほとんど変わらなかった。ComfyUIの画像生成の速さも、AivisSpeechをCPUにしても変わらなかった(1枚 約6.4秒→約6.3秒)。

長い文章を一気に読ませる使い方なら、GPUのままのほうがいい。会話のように短い文を読ませるなら、CPUにしてVRAMを空けたほうが得だ。

VRAMの空き具合を確かめるコマンド

NVIDIAのグラボなら、PC全体のVRAM使用量を次のコマンドで見られる。外す前と後で比べると、どれだけ空いたか分かる。

nvidia-smi --query-gpu=memory.used,memory.total --format=csv

まとめ

  • 画像・動画生成の前にollama stop モデル名。約3.1GB(4Bの4bitモデル)が0.2秒で空く。次に話しかけると約3秒で戻る
  • 放っておいてもOllamaは5分で外れる
  • AivisSpeech Engineは--use_gpuを付けずに起動するとCPUで動き、約1.1GB空く。短い文なら声の速さはほぼ同じ

空いたVRAMで動画を作る設定はこちらにまとめている。

参考

計測環境:RTX 2080 SUPER(VRAM 8GB)、Core i9-9900K、Windows 11、Ollama 0.34.0、モデル qwen3:4b-instruct-2507-q4_K_M。2026年11月11日に計測。

コメント

タイトルとURLをコピーしました