VPS に Ollama を入れて、公開されているモデルを自分のサーバーで動かしてみたい。そう考えたとき、最初にぶつかる問いは「どのプランなら動くのか」と「どのモデルファイルを落とせばいいのか」の2つです。
この2つは別々の問いに見えますが、実は1本の線でつながっています。メモリの上限が先に決まり、その上限に合わせて量子化の段階を選ぶ。この順番を逆にすると、契約したあとで「起動すらしない」か「思ったより使えない」のどちらかになります。
この記事では、CPU だけの VPS で Ollama を動かす前提で、メモリの考え方と量子化モデルの選び方を、判断の順番に沿って整理します。
先に期待値をそろえる: 一般的な VPS に GPU は無い
LLM の計算は GPU で大きく速くなります。ところが、一般的な VPS のプランには GPU が付いていません。Ollama は CPU だけでも動きますが、そのぶん応答は遅くなります。小さなモデルでも、返事が少しずつ絞り出されるような速さになることがあります。
ここで大事なのは、「遅い」を欠点として切り捨てないことです。用途によって評価がまったく変わります。
- 人と会話するように使いたい: CPU だけでは向かない
- 溜まった文章の要約・分類・下ごしらえのように、結果をあとで受け取る処理: 十分に使える
- 外部のサービスに文章を送りたくない事情がある: 自分のサーバーで動かすこと自体に意味がある
- API の利用料をかけずに、まず仕組みを理解したい: 学習用途として向いている
リアルタイムの応答が要るなら、外部の API を使うほうが速く安く済むことが多いです。「動くかどうか」ではなく「何に使うか」で、この道を選ぶかどうかを決めてください。
メモリは「速さ」ではなく「載るかどうか」を決める
Ollama でモデルを動かすと、モデルはメモリに読み込まれます。ここで押さえておきたい性質が2つあります。
1つ目: 足りないと、遅くなるのではなく止まる。 メモリが足りない場合、処理がゆっくりになるのではなく、読み込みの時点で失敗します。起動しないときに最初に疑うのはメモリ不足です。
2つ目: メモリを増やしても速くはならない。 速さを決めるのは計算する力(CPU)のほうです。メモリを増やすのは、載らないモデルを載せるためであって、速くするためではありません。「遅いからメモリを倍にする」は、お金をかけても改善しない典型例です。
モデルの容量 = 必要なメモリ、ではない
もう1つ見落としやすいのが、必要なメモリはモデルファイルの大きさだけでは決まらないことです。読み込んだモデル本体に加えて、処理の途中で使う領域が要ります。この領域は会話が長くなるほど増えます。
その結果、ぎりぎりの構成では次のような壊れ方をします。
- 短い質問では普通に答える
- 実用的な長さの文章を渡したときだけ、突然止まる
テストでは動いたのに本番で落ちる、という一番わかりにくい形です。だから「モデルが何 GB だから、それより少し多ければ足りる」とは考えず、余裕を持たせて見積もります。
おおよその目安
元記事で整理されている目安は次のとおりです。
- パラメータ数が数十億程度の小さいモデル: 8GB 前後から
- 中くらいのモデル: 16GB 以上
- それ以上: メモリを積み増すより、GPU のある環境を検討したほうが現実的
同じサーバーで Web アプリなども動かすなら、そのぶんは別枠で見積もります。また、モデル1つで数 GB のディスクを使うので、保存容量も忘れずに確認してください。
作業の前後に、空きメモリとディスクの使用量を見ておくと、「どれだけ余裕があるか」を数字でつかめます。
free -h
df -h
量子化は「精度を削るかどうか」ではなく「どこまで削れば載るか」
ここで2つ目の問いに入ります。モデルの配布ページを見ると、同じモデルに GGUF・Q8・Q4_K_M のような表記のファイルが何種類も並んでいます。これが量子化です。
モデルの中身は大量の数値です。量子化は、その数値を細かい精度で持つのをやめ、粗い刻みで丸めて持つ処理です。丸めが粗いほどメモリと保存容量は小さくなり、そのかわり答えの精度は落ちやすくなります。GGUF は、こうして軽くしたモデルを配る形式の名前です。
ファイル名の数字は粗さのおおよその目安で、数字が小さいほど粗く丸めています。末尾の記号は丸め方の細かい違いを表していて、同じ粗さでも複数の種類が配布されていることがあります。
「精度が落ちるなら量子化しないほうがいい」と考えたくなりますが、CPU だけの VPS では、量子化しないとそもそもメモリに載らないことがほとんどです。つまり問いは「量子化するか、しないか」ではなく、**「どこまで量子化すれば、自分の VPS に載るか」**になります。
選ぶ順番
ここまでをまとめると、判断は次の順番になります。
- 使えるメモリの上限を決める。 OS やほかのプロセスのぶんを引いた、モデルに回せる量を確認する
- その上限に収まる量子化段階のファイルを選ぶ。 最初は極端な設定を避け、配布元が「バランスが良い」としている真ん中あたりから始める
- 自分の用途で実際に試す。 長めの文章も渡して、途中で止まらないか、答えの質が足りるかを見る
- 足りなければ一段だけ上げる。 より大きいモデルか、より細かい量子化を試す。上げた結果メモリに載らなくなったら、プランの見直しを考える
いきなり一番精度の高いものを狙うと、載らなくて何度もやり直すことになります。まず載る大きさで動かし、足りない部分だけを上げていくほうが、結果として早く必要なスペックにたどり着けます。
試した量子化ファイルは溜め込まない
比較の途中では、同じモデルの量子化違いを何種類も落とすことになります。1つ1つは数 GB でも、合計はすぐに膨らみます。比較が終わったファイルは消し、残すのは最終候補の1〜2種類までに絞っておくと、ディスクが静かに埋まる事故を避けられます。
動かし続けるなら運用の備えも要る
試すだけでなく常時動かすなら、ほかのサービスと同じ備えが必要です。
- プロセスが落ちたら自動で立ち上げ直すようにしておく
- 使用メモリの推移を、ときどきでも確認できるようにしておく
- 常時稼働に移す前に、一度長い時間動かして問題が出ないかを見る
- うまく動いた時点でスナップショットを取っておく(スナップショットも保存容量を使う)
もう1つ、見落とすと危ないのが外からの入口です。管理用の画面や API を外部に開くなら、接続元を絞るか認証をかけてください。誰でも触れる状態で置くと、自分の計算資源を見知らぬ相手に貸しているのと同じことになります。まずは自分だけが使える状態で試して、感触をつかんでから広げるのが安全です。
まとめ
- CPU だけの VPS では、会話用途より「待てる処理」に向く
- メモリは載るかどうかを決めるもので、増やしても速くはならない
- 必要なメモリはモデルファイルより大きい。長い文章で初めて足りなくなる
- 量子化は「するかどうか」ではなく「どこまでやれば載るか」で考える
- 上限を決める → 収まる段階を選ぶ → 試す → 足りなければ一段上げる、の順番
詳しく知りたいとき
- メモリの目安・CPU だけの限界・起動しないときの確認: VPSでOllamaを動かす:必要なメモリ、CPUだけの限界、事業者の選び方
- 量子化の仕組みと、配布ファイルの見分け方: 量子化したLLMをVPSで動かす:GGUFモデルとサイズの選び方
この記事は生成AIで作成し、公開前に人が最終確認しています。掲載しているコマンドは、すべて公開済みの教材・記事に載っているものから引用しています。