Ollamaが動くけど遅い|VRAMからあふれているかを確かめる

最終更新

本記事にはアフィリエイト広告を含みます。掲載している数値はモデルの配布ページと公式ドキュメントの実測値に基づいており、広告の有無によって内容を変えることはありません。

結論:条件付きでYES。VRAMからあふれていれば遅くなります。ollama ps で確かめます

条件付きでYESです。モデルがVRAM(グラボ専用のメモリ)に収まりきらず、あふれた分をCPU(パソコン本体で計算をする部品)が処理していると、動いても遅くなります。あふれているかは、Ollama公式の方法(ollama ps の Processor 列)で確かめられます。

結論に合う候補を見る(ページ内の製品カードへ移動します)

先に1つだけ確かめさせてください。VRAMはグラフィックボードに載っているメモリで、パソコン本体のメモリとは別物です。「本体のメモリは16GBある」ことと、この話は関係がありません。見分け方はVRAMとシステムメモリの違いにまとめています。

VRAMからあふれると遅くなるだけでなく、途中で止まったりエラーで終わったりすることもあります。どちらの場合も、確かめる場所は同じです。「ollama ps」というコマンドで、モデルがGPUに載っているかを先に見てください。打つ場所は、Ollamaを入れたときに使ったのと同じ画面(Windowsならコマンドプロンプトかターミナル)です。打つと、読み込み中のモデルが表で出て、その中の「Processor」という列に、GPUとCPUがどれだけ受け持っているかが出ます。

ollama ps で何が分かるか

Ollama公式FAQが、この列でどのメモリに載ったか分かると説明しています。推測せずに確定できる唯一の場所なので、まずここを見てください。

Processor列の表示 どういう状態か 速さ
100% GPU モデル全体がGPUに載っています この状態が、そのカードで出せる速さです
48%/52% CPU/GPU 一部だけがGPUに載り、残りはシステムメモリに置かれています 遅さの原因はここです。GPUに載らなかった分をCPUが処理します
100% CPU 全部がシステムメモリに置かれています GPUがまったく使われていない状態です

この3つはOllama公式のFAQに書かれているものです。当サイトが考えた分類ではありません。

買い替えなくてよい場合

  • 小さいモデル(パラメータ数=モデルの大きさを表す数が小さいもの)に替える(下の表で収まる段を選ぶ)
  • 量子化の小さいタグを選ぶ(同じモデルでも必要な容量が変わります。Ollamaのモデルページのタグ一覧に q4_0 のように量子化の名前が付いたものが並んでいるので、そこから選びます)
  • コンテキスト長を既定に戻す(コンテキスト長は、モデルが一度に覚えていられるやり取りの長さのことです。長くするほど、それを置いておく領域がVRAMを圧迫します。Ollamaの既定は4096トークンです)

まず、買わずに済む道を試してください。Processor列がGPU 100%になっていないだけなら、小さいパラメータ数のモデルに替える、量子化の小さいタグを選ぶ、コンテキスト長を既定に戻す、の3つでGPUに収まることがあります。どれもお金がかかりません。カードを買い替えるのは、使いたいモデルが決まっていて、そのどれでも収まらないと分かってからです。

どのモデルなら収まるか

この節の数字は、パラメータ数(モデルの大きさを表す数)ごとに、量子化(モデルを小さくする処理)の代表的な形式の1つ Q4_K_M で計算した場合です。「非対応」は、重み(モデル本体のデータ)がVRAMの2倍を超えるほど大きく、あふれた分が多すぎて実用にならない状態です。「あふれて遅い」はそれより小さく、あふれた分をシステムメモリに置けば動くものの遅くなる状態で、まさに「動くけど遅い」です。

「条件つき」には2通りあります。「載るが余裕なし」は、重みはVRAMに載るものの余裕が無い状態で、やり取りが短いうちは収まり、長くなると足りなくなります。「あふれて遅い」は、重みがVRAMに収まらず、あふれた分をシステムメモリに置けば動くものの遅くなる状態です。画面の描画や他のアプリもVRAMを使うので、そのぶんでも変わります。

下の表は、行がモデルの大きさ(パラメータ数と、そのときの重みの容量)、列が手元のグラボのVRAMで、マスの言葉がその組み合わせの判定です。自分のVRAMの列を縦に見ると、どの大きさまで収まるかが分かります。この表の組み合わせには「載るが余裕なし」のマスはありません。

パラメータ数 重み VRAM 8GB VRAM 12GB VRAM 16GB VRAM 24GB
3B 約1.8GB 対応 対応 対応 対応
7B 約4.3GB 対応 対応 対応 対応
8B 約4.9GB 対応 対応 対応 対応
14B 約8.6GB 条件つき(あふれて遅い) 対応 対応 対応
20B 約12.2GB 条件つき(あふれて遅い) 条件つき(あふれて遅い) 対応 対応
32B 約19.6GB 非対応 条件つき(あふれて遅い) 条件つき(あふれて遅い) 対応

重みのほかに、やり取りの履歴を置く領域(KVキャッシュ)と実行環境の分が要ります。当サイトはそこに1.5GBを見込んでいます。これは実測ではなく見込みです。KVキャッシュは扱う文の長さに比例して増えるので、コンテキスト長を既定より伸ばすとこの分は大きくなります。実際にいま何GB空いているかは、タスクマネージャーの「パフォーマンス」タブでGPUを選び、「専用GPUメモリ」の欄で確認できます。同じ画面の「メモリ」はパソコン本体のほうなので、そちらを見ても分かりません。

当サイトの計算は、配られている実物と合っています

計算が机上のものではないことを、配布物そのもので確かめられます。

Ollamaが配っているもの 公表サイズ 当サイトの計算 差
llama3.1:latest(8B) 4.9GB 4.9GB 0.0GB
llama3.1:70b 43GB 42.8GB 0.2GB

間違えるとどうなるか

必要のない容量に払うことになります。「7B〜8Bには16GB」を前提に選ぶと、8GBのカードで収まる用途に、より高い容量のカードを買うことになります。同じ型番でも容量違いで値段が変わります。容量違いの提示価格と仕様の差はRTX 50シリーズの提示価格と仕様にまとめています。

容量を増やすしかないと分かった場合

上のとおり、まずは小さいモデル・小さい量子化・既定のコンテキスト長で収まらないかを試してください。下記は、使いたいモデルが決まっていて、そのどれでも収まらないと分かった場合の候補です。対応を確認しやすいメーカーの製品から1つずつ選んで並べたもので、当サイトが実際に使用して比較したものではありません。購入前には、必ずメーカーの仕様欄で対応状況をご確認ください。

PNY | ピーエヌワイ VCG5060T16DFXPB1-O (GeForce RTX 5060 Ti OC 16GB

PNY | ピーエヌワイ VCG5060T16DFXPB1-O (GeForce RTX 5060 Ti OC 16GB)

ドスパラ楽天市場店

Amazonで価格を見る楽天市場で価格を見る

よくある質問

ollama ps を打っても何も表示されません。

モデルが読み込まれていない状態です。一度モデルに何か聞いてから、続けて打ってください。Ollama公式FAQは、このコマンドで「いま読み込まれているモデル」が分かると説明しています。

48%/52% CPU/GPU と出ました。どうすればいいですか。

モデルの一部だけがGPUに載っている状態です。上の「買い替えなくてよい場合」を先に試してください。小さいモデル・小さい量子化・既定のコンテキスト長のどれかで収まることがあります。

VRAMとパソコンのメモリは同じものですか。

別物です。VRAMはグラフィックボードに載っているメモリで、違いはこちらにまとめています。

グラフィックボードが無いパソコンでも動きますか。

動きます。ただしその場合はすべてがシステムメモリ側で処理されるため、Processor列は 100% CPU になります。当サイトは速度を測っていないので、どのくらい遅いかは書きません。

16GBのカードを買えば必ず速くなりますか。

使いたいモデルが16GBに収まる場合にかぎります。上の表で、そのパラメータ数が16GBの列でどうなっているかを見てください。収まらないモデルを選べば、容量を増やしてもあふれます。

出典と確認方法

このページの数値は、以下の一次情報に基づいています。同じ手順でご自身でも確認できます。

この記事の数値は、配布ページで公開されている実ファイルサイズと、パラメータ数からの計算をもとにしています。モデルは入れ替わるため、判断の前には配布ページの現在のファイルサイズもあわせてご確認ください。

判定の根拠は判定の方法にまとめています。