1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

自分のPCでLLMを使おう CPUだけで動くローカルLLM環境構築記録(Ollama + Docker + WSL2)

1
Posted at

はじめに

WSL2とDockerを用いたコンテナ環境でローカルLLM(SLM)を稼働させ、CPU推論による対話環境を構築・検証した際の作業ログです。
「GPUがないPCでもLLMを動かしてみたい」という方の参考になれば幸いです。

1. 目的

Dockerコンテナ上で Ollama を稼働させ、外部GPUを使用しない「CPU推論」環境を構築すること。

2. 動作環境 & スペック

今回はNVIDIA製のGPUを使用せず、CPUの演算能力のみで推論を行います。

項目 内容 備考
OS Windows 11 (WSL2 / Ubuntu)
実行基盤 Docker コンテナ技術を利用
CPU AMD Ryzen 7 5700U 8コア16スレッド / CPU推論を実行
GPU Radeon Graphics (内蔵) ※今回は使用せず
メモリ 16GB あればあるほど高性能なモデルを使用できる

3. Ollamaの導入

Ollama は、LLMをローカルで手軽に動かすためのランタイム兼管理ツールです。
Python環境への依存がなく、Go言語とC++ (llama.cpp) で実装されているため、CPU環境でも高速に動作するように最適化されているのが特徴らしい。また、いろいろな機能が標準搭載されているので初めてローカルLLMを動かす場合にはOllamaを選択するのが無難そう。

以下のDockerコマンドで環境構築を行う。

docker run -d \
  -v ollama:/root/.ollama \
  -p 11434:11434 \
  --name ollama \
  ollama/ollama

オプションの解説

コマンドで使用したオプションの詳細は以下の通りです。

-v ollama:/root/.ollama

  • 目的: ダウンロードした巨大なモデルデータを保存
  • メリット: ホスト側を汚させない。ディレクトリはDockerの管理領域(/var/lib/docker/volumes/ollama/_data 等)に作成される。

-p 11434:11434

  • 目的: ホスト(PCやブラウザ)からコンテナ内のAPIにアクセスするため。

  • ブラウザで localhost:11434 にアクセスし、Ollama is running と表示されれば成功

  • ollama/ollama

  • 使用する公式Dockerイメージ

4. モデルのダウンロードと実行

Ollama公式ライブラリからモデルを取得して実行します。
今回はテスト用として、軽量モデルの gemma2:2b を使用しました。

実行方法 A:ホストから直接実行

WSLのターミナルから、Dockerコマンド経由で直接Ollamaを呼び出す方法です。基本的にはこちらを使用します。

docker exec -it ollama ollama run gemma2:2b

初回実行時について
指定したモデルを持っていない場合、初回実行時に自動的にダウンロード(Pull)が始まるので時間がかかるかも。

実行方法 B:コンテナ内部で実行

コンテナ内のシェルに入って操作する方法。

# 1. コンテナに入る
docker exec -it ollama bash

# 2. 内部で実行
ollama run gemma2:2b

動作ログ例

実際に会話した際のログ。日本語でもスムーズに応答が返ってきます。

>>> こんにちは
こんにちは! 😊
お元気ですか? 何かお手伝いできることはありますか?

>>> /bye

API経由っぽく使ってみた

curl http://localhost:11434/api/generate -d '{
  "model": "gemma2:2b",
  "prompt": "API経由でこんにちは!",
  "stream": false
}'

>>>
{
    "model":
    "gemma2:2b",
    "created_at":"2026-01-29",
    "response":
        "こんにちは! 😊 
        どのようなリクエストでお役に立てられるか知りたいです。
        APIを使って何かをしたい場合は、教えてください。
        例えば:**特定の機能を実装**: 
        例えば、「テキスト生成」や「質問応答」など
        **データ取得**: 例えば、「最新のニュース」や「天気予報」など
        **その他**: 特定の用途に合わせてどのようなAPIを使いたいのか
        より具体的な情報をお知らせいただけると、より的確な回答ができます。 😉 
}

このようにAPI経由でLLMとの対話を行うことができるので、アイデア次第でいろいろなことができると思います。

5. 操作コマンドまとめ

動作 コマンド / 操作
対話モード開始 docker exec -it ollama ollama run [モデル名]
対話終了 /bye または Ctrl + d
モデル一覧確認 docker exec ollama ollama list
コンテナ停止 docker stop ollama
容量確認 docker system df (Local Volumesを確認)

6. 補足

モデルデータの保存構造について

-v オプションでマウントしたボリューム内(/root/.ollama/models)にモデルデータが保存されます。
(ファイル名はハッシュ化されており、人間が直接読める形式ではありません。)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?