以下のようなローカル LLM 環境を構築してみる。
Docker とは
Docker はコンテナ仮想化技術の実装である。
Ollama とは
Ollama はローカル LLM の実行環境である。いろんな LLM をローカルで動かせる。
Open WebUI とは
Open WebUI は AI の GUI である。Ollama と簡単に連携できる。
Docker をインストールする
Docker をインストールしていない場合は、Docker をインストールする。
NVIDIA Container Toolkit をインストールする
NVidia の GPU を使っている場合、NVIDIA Container Toolkit をインストールして動作を高速にできる。
# NVIDIA Container Toolkit をインストールする
$ curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
| sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
$ curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
| sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
| sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
$ sudo apt update
$ sudo apt install -y nvidia-container-toolkit
# NVIDIA Container Toolkitを有効にする
$ sudo nvidia-ctk runtime configure --runtime=docker
$ sudo systemctl restart docker
docker-compose.yml を作成する
以下のようなdocker-compose.yml
を作成する。
services:
ollama:
image: ollama/ollama
container_name: ollama
ports:
- 11434:11434
volumes:
- ./ollama/.ollama:/root/.ollama
restart: always
# NVidiaのGPUを使う場合はここから
deploy:
resources:
reservations:
devices:
- capabilities: [gpu]
# ここまでを入れる
openwebui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
ports:
- 3000:8080
volumes:
- ./open-webui/data:/app/backend/data
restart: always
depends_on:
- ollama
environment:
- OLLAMA_BASE_URL=http://ollama:11434
以下のコマンドを実行してdocker-compose.yml
の内容をコンテナとして起動させる。
$ docker compose up -d
LLM をインストールする
好きな LLM をインストールする。
以下はインストールの例である。
# gpt-ossをインストールする
$ docker exec -it ollama ollama run gpt-oss:20b
# 終わったら以下を入力してプロンプトを抜ける
>>> /bye
モデルによるが大容量のダウンロードになるので注意する。
Open WebUI にアクセスする
しばらく待ってからhttp://localhost:3000/
にアクセスすると、以下のような凄そうな画面が表示されるので開始する。
アカウント作成画面が表示されるので、アカウントを作成する。(ローカル環境なのでお試しなら別に適当に入力しても構わない)
以下のように質問できそうな画面が表示される。
以下のように質問をしてみる。
ローカル LLM 環境を構築することができた。
その他
# インストール済みのモデルを確認する
$ docker exec -it ollama ollama list
# gpt-ossをアンインストールする
$ docker exec -it ollama ollama rm gpt-oss:20b