access: 264491
Dockerを使ってローカルなLLMをインストールします。LLMは、NVIDIAのGPUを使って動作させることができます。今回は、OllamaのLLaMA3.1:8Bモデルを使って、Open-WebUIで動作させます。
Dockerで動作させるための場所を作成します。今回は、~/localai/llm というディレクトリを作成して、そこにファイルを置くことにします。
Docker composeファイルを作成します。今回は、~/localai/llm/docker-compose.yml というファイルを作成して、以下の内容を記述します。
起動時にLLMを取得するスクリプトを用意します。今回は、~/localai/llm/entrypoint.sh というファイルを作成して、以下の内容を記述します。
ブラウザで http://localhost:3000 にアクセスして、Open-WebUIが表示されることを確認します。
前準備
動作場所の作成
$ mkdir -p ~/localai/llm
Docker composeファイル
services:
ollama:
image: ollama/ollama:latest
container_name: ollama-llama
restart: always
ports:
- "11434:11434"
volumes:
- ollama_data:/root/.ollama
- ./entrypoint.sh:/entrypoint.sh
entrypoint: ["/bin/bash", "/entrypoint.sh"]
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
environment:
- OLLAMA_HOST=0.0.0.0
- OLLAMA_FLASH_ATTENTION=true
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
restart: always
ports:
- "3000:8080"
volumes:
- open_webui_data:/app/backend/data
environment:
- OLLAMA_BASE_URL=http://ollama:11434
- WEBUI_AUTH=False
depends_on:
- ollama
volumes:
ollama_data:
open_webui_data:
起動時にLLMを取得するスクリプトを用意
#!/bin/bash
ollama serve &
echo "Waiting for Ollama server to start..."
until ollama list > /dev/null 2>&1; do
sleep 1
done
echo "Ollama server is ready!"
MODEL_NAME="llama3.1:8b"
if ! ollama list | grep -q "$MODEL_NAME"; then
echo "Model $MODEL_NAME not found. Downloading..."
ollama pull "$MODEL_NAME"
echo "Download completed!"
else
echo "Model $MODEL_NAME is already available."
fi
wait
起動
$ cd ~/localai/llm
$ sudo docker compose up -d
動作確認