UbuntuのOllamaでDeepSeekをローカル実行する手順

Ollama


「DeepSeekをローカルで動かしたい、でも手順が分からない」——結論から言うと、Ollama を入れて ollama run deepseek-r1:1.5b と打つだけで、Ubuntu 上に DeepSeek R1 が立ち上がります。今回 deepseek-r1:1.5b を実際に走らせたところ、生成速度は 5回平均で 153.5 tok/s(変動 151.7〜154.6)、モデルサイズは 1.12 GB でした。

この記事では、Ubuntu 24.04 公式Dockerイメージで Ollama を入れる実ログと、ローカルの Ollama 0.30.8 で deepseek-r1:1.5b を動かして取った一次データを載せます。インストールでつまずきやすい点、推論速度、Open WebUI でブラウザから使う手順まで、実際に動かした画面付きで解説します。

この記事のポイント

  • Ollama 0.30.8 を入れて ollama run deepseek-r1:1.5b でローカル実行できる(モデルは 1.12 GB)
  • deepseek-r1:1.5b の生成速度は実測 153.5 tok/s(5回平均・Apple M1 Max / Metal GPU)
  • クリーンな Ubuntu 24.04 は curl 未導入。さらに現行の install.shzstd が必須という落とし穴がある
  • タグは「1.5b」だが /api/show の実値はパラメータ 1.8B・量子化 Q4_K_M・コンテキスト長 131,072
  • Open WebUI を足せばブラウザから ChatGPT 風に使える(実際の画面を掲載)

計測環境について

本記事のインストール手順は docker run --rm ubuntu:24.04(Ubuntu 24.04.4 LTS)で検証しています。推論速度の数値は、ローカルホストの Ollama 0.30.8(Apple M1 Max・Metal GPU 推論)で計測した値です。GPUを持たないCPU専用のVPSでは、これより遅くなります(目安は本文後半で説明します)。

目次

  1. OllamaとDeepSeek R1について
  2. 動作要件と推奨スペック
  3. OllamaをUbuntuにインストールする
  4. deepseek-r1:1.5bをダウンロードする
  5. DeepSeekをターミナルで実行する
  6. 実測パフォーマンスデータ
  7. Open WebUIでブラウザから使う
  8. DeepSeek R1 モデルバリアントの選び方
  9. よくあるエラーと解決策
  10. まとめ

OllamaとDeepSeek R1について

Ollama は、大規模言語モデル(LLM)をローカル環境で手軽に動かすためのオープンソースツールです。ollama run モデル名 の一行で、モデルをダウンロードして即座に対話できます。インストールするとバックグラウンドにサーバーが常駐し、http://localhost:11434 で REST API を提供します。

DeepSeek R1 は、中国の DeepSeek が公開したオープンソースの推論特化型モデルです。回答を出す前に内部で考える「思考プロセス(Chain-of-Thought)」を持つのが特徴で、Ollama のライブラリに登録されているのでインストール後すぐ使えます。本記事で扱う deepseek-r1:1.5b はその最小バリアントで、タグは「1.5b」ですが /api/show で確認した実体のパラメータ数は 1.8B、ベースは Qwen2 系のアーキテクチャになっています。

著者アイコン
著者アイコン

R1 の「R」は Reasoning(推論)です。後半で実際に動かしますが、1.5bは軽い反面、日本語の回答に中国語の文字が混じったり、コマンドを間違えたりします。「とりあえずローカルLLMを体験する」用途に向いた入門モデルだと考えておくと期待値を外しません。

動作要件と推奨スペック

Ollama で DeepSeek R1 を動かすうえで一番効くのはメモリ(RAM)です。モデルがRAMに収まるかどうかで動作可否がほぼ決まります。下の表のファイルサイズは、最小の 1.5b については /api/tags で取得した実測値(1.12 GB)、それ以外は Ollama ライブラリの公称サイズです。

モデル ファイルサイズ 最低 RAM 推奨 RAM GPUなしでの動作
deepseek-r1:1.5b 1.12 GB(実測) 4 GB 8 GB ◎ 動く
deepseek-r1:7b 約 4.7 GB 8 GB 16 GB ○ 動作する
deepseek-r1:14b 約 9.0 GB 16 GB 32 GB △ 低速
deepseek-r1:32b 約 19 GB 32 GB 64 GB △ かなり低速

本記事では最小の deepseek-r1:1.5b(1.12 GB)を対象にします。これなら 4GB RAM のエントリーVPSでも動かせます。「GPUなしでの動作」が◎なのはあくまでこの最小モデルの話で、7b 以上は CPU だと体感がガクッと落ちる点に注意してください。

OllamaをUbuntuにインストールする

手順1:curl があるか確認する

Ollama の公式インストールは curl を使います。ここで正直に言うと、クリーンな Ubuntu 24.04 には curl が入っていません。実際に公式Dockerイメージ ubuntu:24.04 で確認すると、curl は未インストールでした。




ubuntu@linuxlab: ~ (docker ubuntu:24.04)
$ cat /etc/os-release | head -1
PRETTY_NAME=”Ubuntu 24.04.4 LTS”
$ which curl || echo ‘curl: NOT INSTALLED’
curl: NOT INSTALLED
$ apt-get update && apt-get install -y curl
Setting up curl (8.5.0-2ubuntu10.9) …
$ curl –version | head -1
curl 8.5.0 (aarch64-unknown-linux-gnu) libcurl/8.5.0 OpenSSL/3.0.13

このように、まず sudo apt-get update && sudo apt-get install -y curlcurl を入れます(実機の Ubuntu デスクトップ版なら最初から入っていることが多いですが、最小構成のVPSやコンテナでは入っていないと考えておくと安全です)。インストールされた curl8.5.0-2ubuntu10.9 でした。

手順2:公式インストールスクリプトを実行する

準備ができたら、公式が提供するインストールスクリプトを実行します。




ubuntu@linuxlab: ~
$ curl -fsSL https://ollama.com/install.sh | sh
>>> Installing ollama to /usr/local
ERROR: This version requires zstd for extraction.
– Debian/Ubuntu: sudo apt-get install zstd

つまずきポイント:install.sh が zstd を要求する

これは実際に ubuntu:24.04 で踏んだエラーです。現行の install.sh は配布物が zstd 圧縮になっており、zstd が無いと「requires zstd for extraction」で止まります。sudo apt-get install -y zstd を入れてから、もう一度スクリプトを実行してください。

zstd を入れてから再実行すると、今度は正常にインストールが進みます。




ubuntu@linuxlab: ~
$ sudo apt-get install -y zstd
$ curl -fsSL https://ollama.com/install.sh | sh
>>> Installing ollama to /usr/local
>>> Downloading Linux arm64 bundle ######################## 100.0%
WARNING: Unable to detect NVIDIA/AMD GPU. Install lspci or lshw to …
>>> The Ollama API is now available at 127.0.0.1:11434.
>>> Install complete. Run “ollama” from the command line.

注目してほしいのは WARNING: Unable to detect NVIDIA/AMD GPU の行です。GPUを積んでいない環境(多くのVPSやこのコンテナ)では、Ollama は CPU 推論にフォールバックします。エラーではないので、そのまま進んで問題ありません。インストールが終わると Ollama の API が 127.0.0.1:11434 で起動します。

Ubuntu 24.04 クリーン環境での Ollama インストール実ログ(実測)
Ubuntu 24.04 クリーン環境での Ollama インストール実ログ(実測)

手順3:インストールを確認する




ubuntu@linuxlab: ~
$ ollama –version
ollama version is 0.30.8
$ ls -lh /usr/local/bin/ollama
-rwxr-xr-x 1 root root 34M … /usr/local/bin/ollama

ollama version is 0.30.8 と出れば成功です。実体は約34MBのバイナリ1本で、/usr/local/bin/ollama に配置されます。通常のVPS(systemd あり)では、公式スクリプトが自動で systemd サービス(ollama.service)を作って起動・自動起動の設定までやってくれるため、再起動後も勝手に立ち上がります。

注意:sudo が必要な場合

VPSの初期ユーザー(root以外)でスクリプトを実行する場合、書き込み権限のため sudo が必要になることがあります。スクリプト自体が内部で sudo を呼ぶので、パスワードを求められたら入力してください。

deepseek-r1:1.5bをダウンロードする

ollama pull でモデルを取得します。deepseek-r1:1.5b の実サイズは 1.12 GB/api/tags 実測。ollama list 上は丸めて「1.1 GB」と表示)なので、回線速度にもよりますが数分で終わります。




ubuntu@linuxlab: ~
$ ollama pull deepseek-r1:1.5b
pulling manifest
pulling e0979632db5a… 100% ▕████████████████▏ 1.1 GB
verifying sha256 digest
writing manifest
success
$ ollama list
NAME ID SIZE MODIFIED
deepseek-r1:1.5b e0979632db5a 1.1 GB 35 hours ago

ダウンロード後、ollama listdeepseek-r1:1.5b(ID e0979632db5a)が表示されればOKです。ちなみに ollama show deepseek-r1:1.5b/api/show でモデル詳細を見ると、量子化レベルは Q4_K_M、コンテキスト長は 131,072 トークンと、軽量モデルにしては非常に長い文脈に対応していることが分かります。

DeepSeekをターミナルで実行する

基本的な使い方

ollama run deepseek-r1:1.5b で対話モードが起動します。下は実際にローカルで動かしたセッションです。




ubuntu@linuxlab: ~ (Ollama 0.30.8)
$ ollama run deepseek-r1:1.5b
>>> 1から10までの整数の合計はいくつですか。
<think>
ユーザーは1から10の和を尋ねている。等差数列の公式を使う…
</think>

1から10までの整数の合計は 55 です。
公式 S = n(a1 + an)/2 = 10(1 + 10)/2 = 55 で求められます。
>>> /bye

<think>...</think> の部分が DeepSeek R1 の内部思考プロセス(Chain-of-Thought)です。最終回答を出す前に、ここで筋道を立てています。この質問では正しく「55」と答えられました。ただし軽量モデルゆえの限界もあって、回答に中国語の文字(例:「個数」が「个数」)が混じることがありました。日本語の精度を重視するなら、後述の 7b 以上を検討してください。終了は /bye です。

ollama list と deepseek-r1:1.5b 実行セッション(実測スクリーンショット)
ollama list と deepseek-r1:1.5b 実行セッション(実測スクリーンショット)

APIとして利用する

Ollama は http://localhost:11434 で REST API を提供しています。curl から直接叩けるので、Python など他のアプリから呼び出せます。




ubuntu@linuxlab: ~
$ curl http://localhost:11434/api/version
{“version”:”0.30.8″}
$ curl http://localhost:11434/api/generate -d ‘{
“model”:”deepseek-r1:1.5b”,”prompt”:”Hello”,”stream”:false}’
{“model”:”deepseek-r1:1.5b”,”response”:”…”,”done”:true,
“eval_count”:300,”eval_duration”:1954000000}

レスポンスに含まれる eval_count(生成トークン数)と eval_duration(生成にかかったナノ秒)から、生成速度を自分で計算できます。次の章では、この値を使った実測結果を見ていきます。

実測パフォーマンスデータ

ローカルの Ollama 0.30.8 で deepseek-r1:1.5b に 300トークンを生成させる処理を、ウォームアップ後に5回繰り返して計測しました。指標は eval_count ÷ eval_duration で求める「生成トークン/秒(tok/s)」です。

deepseek-r1:1.5b ローカル推論パフォーマンス(実測)
deepseek-r1:1.5b ローカル推論パフォーマンス(実測)

主な実測値は次のとおりです。

  • 生成速度:153.5 tok/s(5回平均、最小151.7〜最大154.6。変動は±1%以内で安定)
  • 応答時間:2.13 秒(300トークン生成時の total_duration
  • モデルサイズ:1.12 GB(Q4_K_M 量子化)
  • パラメータ数:1.8B(タグは1.5bだが /api/show の実値)
  • コンテキスト長:131,072 トークン
  • 初回ロード:1.23 秒(2回目以降は約0.16秒に短縮)

153.5 tok/s は、人の黙読速度(おおむね10〜20 tok/s)を大きく上回るので、ストリーミング出力で読む分にはまったく待たされません。ただし冒頭で触れたとおり、これは Apple M1 Max の Metal GPU で出ている値です。GPUなしのCPU専用VPSでは、数分の一〜十分の一程度まで落ちると見込んでおくのが現実的です。

面白いのは、同クラスの小型モデルと並べたときの順位です。実際に5モデルを同条件で計測しました。

小型ローカルLLM 生成速度の実測比較(実測)
小型ローカルLLM 生成速度の実測比較(実測)

結果は速い順に、qwen3:0.6b(255.0)> qwen2.5:0.5b(230.5)> llama3.2:1b(186.4)> deepseek-r1:1.5b(153.5)> gemma3:1b(146.8 tok/s)。注目は、1.5B の DeepSeek-R1 が、より小さい1Bの Gemma 3 より速いという逆転です。「パラメータが小さいほど速い」という単純な話ではなく、アーキテクチャと量子化で決まる、ということが実測から分かります。

注意:1.5b モデルの精度について

deepseek-r1:1.5b は最も軽量なバリアントです。速度は十分でも、日本語の回答に他言語の文字が混じったり、込み入った指示で精度が落ちたりします。あくまで「ローカルLLMを動かす体験」と割り切り、実用品質を求めるなら 7b 以上を検討してください。

Open WebUIでブラウザから使う

ターミナルではなく、ChatGPT のような Web インターフェースで DeepSeek を使いたいなら Open WebUI が定番です。Docker が入っていれば、コンテナ1つで起動できます。今回は実際に ghcr.io/open-webui/open-webui:main を起動し、ホストの Ollama に接続して画面を撮影しました。




ubuntu@linuxlab: ~
$ docker run -d \
–name open-webui \
-p 3000:8080 \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
-v open-webui:/app/backend/data \
–restart always \
ghcr.io/open-webui/open-webui:main

起動後、ブラウザで http://サーバーIP:3000 にアクセスします。初回は管理者アカウントを作成し、ログインするとメインのチャット画面が表示されます。画面左上のモデルセレクタから deepseek-r1:1.5b を選べば準備完了です。

Open WebUI メイン画面・モデルセレクタ(実撮影)
Open WebUI メイン画面・モデルセレクタ(実撮影)

実際に deepseek-r1:1.5b を選んで日本語で質問してみたのが下の画面です。回答の上に 「Thought for 1 seconds」という折りたたみが出ているのが分かります。これが R1 の思考プロセスで、クリックすると内部の推論を展開できます。

Open WebUI で deepseek-r1:1.5b に質問したチャット画面(実撮影)
Open WebUI で deepseek-r1:1.5b に質問したチャット画面(実撮影)

なお、この実チャットでは「Ubuntuサーバーで最初に実行すべきコマンドを3つ」と尋ねたところ、sudo init -v のような実在しない・的外れなコマンドが返ってきました。WebUI の使い勝手は良くても、回答の中身は 1.5b 相当だという点は押さえておきましょう。

著者アイコン
著者アイコン

VPSで使う場合、ポート開放のし忘れに注意です(sudo ufw allow 3000)。ただし WebUI をインターネットに直接さらすのはリスクがあるので、セキュリティが心配なら SSHポートフォワード(ssh -L 3000:localhost:3000 ユーザー@サーバーIP)で手元のブラウザからだけ見えるようにするのがおすすめです。Open WebUI のより詳しい構築手順は Open WebUI + OllamaをUbuntu/VPSで構築する手順 でも解説しています。

DeepSeek R1 モデルバリアントの選び方

用途に合わせて ollama pull deepseek-r1:タグ名 で各バリアントを取得できます。1.5b のサイズは実測値、それ以外は Ollama ライブラリの公称サイズです。

タグ パラメータ ファイルサイズ 必要 RAM の目安 こんな人向け
deepseek-r1:1.5b 1.8B(実測) 1.12 GB(実測) 4 GB 以上 入門・低スペックVPS
deepseek-r1:7b 7B 約 4.7 GB 8 GB 以上 精度を上げたい・個人用途
deepseek-r1:14b 14B 約 9.0 GB 16 GB 以上 開発・業務補助
deepseek-r1:32b 32B 約 19 GB 32 GB 以上 高精度の推論タスク
deepseek-r1:70b 70B 約 43 GB 64 GB 以上 最高精度・GPU推奨

VPSで試す場合、月$5〜6のエントリープラン(RAM 1〜2GB)では 1.5b でもギリギリで、スワップ前提になります。7b 以上を快適に動かすなら RAM 8GB 以上のプランを選ぶのがポイントです。

よくあるエラーと解決策

①「ERROR: This version requires zstd for extraction」

本記事の手順2で実際に出たエラーです。install.sh の配布物が zstd 圧縮になっているため、zstd 未導入だと展開に失敗します。sudo apt-get install -y zstd を入れてからスクリプトを再実行してください。

②「Error: pull model manifest: file does not exist」




ubuntu@linuxlab: ~
$ ollama pull deepseek-r1:1.5g
Error: pull model manifest: file does not exist

モデル名のタグが間違っています。1.5g ではなく 1.5b です。ollama pull deepseek-r1:1.5b と打ち直してください。

③「Error: model requires more system memory」

RAM不足です。より小さいモデル(1.5b)に切り替えるか、スワップ領域を追加します。スワップ作成は fallocate を使いますが、既存ファイルを上書きしないよう注意してください。




ubuntu@linuxlab: ~
$ free -h # まずメモリとスワップを確認
$ sudo fallocate -l 4G /swapfile
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile

④Ollamaサービスが起動しない

systemd を使うVPSでは、systemctl status ollama で状態を確認します。failed なら sudo systemctl restart ollama で再起動し、sudo journalctl -u ollama -n 50 でログを見ます。よくある原因はポート 11434 が他のプロセスに使われていることです。

まとめ

Ubuntu で Ollama を使って DeepSeek R1 をローカル実行する手順を、実ログと実測データで解説しました。

  • クリーンな Ubuntu 24.04 は curl 未導入。さらに install.sh は zstd が必須なので先に入れる
  • Ollama 0.30.8 を入れたら ollama run deepseek-r1:1.5b(1.12 GB)で対話できる
  • deepseek-r1:1.5b は実測 153.5 tok/s(Apple M1 Max / Metal GPU)。CPU専用VPSではこれより遅い
  • タグは1.5bだが実体は1.8B・Q4_K_M・コンテキスト131,072。1Bの Gemma より速いという逆転もある
  • Open WebUI を足せばブラウザから ChatGPT 風に使える。ただし回答品質は1.5b相当

ローカルLLMに慣れてきたら、VPSにサーバーを立ててどこからでもアクセスできる環境を作るのがおすすめです。Open WebUI と組み合わせる詳しい手順は Open WebUI + OllamaをUbuntu/VPSで構築する手順 を参照してください。

VPSでローカルLLMを動かすなら

自宅PCではなくVPSでローカルLLMを運用するなら、RAMの多いプランを選ぶのがコツです。Vultr の「Cloud Compute」プランは手頃な価格から利用でき、東京リージョンも選べます。1.5bなら小さめのプラン、7b以上を狙うなら RAM 8GB 以上を目安にしてください。

コメント

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