task #923
masaya_abe さんが約2ヶ月前に更新
## Docker
まずドッカーを整備する
LLMは、AMDGPU(Rocm)がDockerと相性悪いらしいので、ネイティブにインストールするが、
それ以外は、Dockerに入れる。
まずは下記を入れる
open-webui→WEBUI化
searxng→インターネット検索を可能にする
prometheus→サーバー監視
grafana→サーバー監視
LLMサーバー化
systemdサービス化
sudo vi /etc/systemd/system/llama-server.service
```
[Unit]
Description=llama.cpp Server
After=network.target
[Service]
Type=simple
User=abe
WorkingDirectory=/home/abe/llama.cpp
Environment=HIP_VISIBLE_DEVICES=1
ExecStart=/home/abe/llama.cpp/build/bin/llama-server \
-m /home/abe/models/gemma-4-26b-a4b-q5KM.gguf \
-ngl 18 \
-fa on \
-c 262144 \
-ctk q4_0 \
-ctv q4_0 \
--host 0.0.0.0 \
--port 8080 \
--parallel 1
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
```
有効化
sudo systemctl daemon-reload
sudo systemctl enable llama-server
sudo systemctl start llama-server
状態確認
systemctl status llama-server
依存パッケージ
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
③ Docker公式GPGキー追加
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
④ リポジトリ追加
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
⑤ Docker本体インストール
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
⑥ 動作確認
sudo docker run hello-world
2. sudoなしで使えるようにする(重要)
LLMサーバ用途では必須です
sudo usermod -aG docker $USER
newgrp docker
確認:
docker ps
3. GPU(ROCm)対応の準備
あなたの構成は:
RX 7900 GRE(gfx1100)
RX 6700 XT(gfx1031)
なので Docker では ROCm runtimeコンテナを使います。
まずホスト側確認:
ls /dev/kfd
ls /dev/dri
これが見えていればOKです。
4. ROCm対応Dockerテスト
テストコンテナ:
docker run --rm -it \
--device=/dev/kfd \
--device=/dev/dri \
--group-add video \
--ipc=host \
rocm/rocm-terminal
中で:
rocminfo
### docker-compose.yml OpenWebUI
webuiで使えるようにして、web検索機能を使えるようにする
vi ~/docker/docker-compose.yml
```
services:
openwebui:
image: ghcr.io/open-webui/open-webui:main
container_name: openwebui
restart: unless-stopped
ports:
- "3000:8080"
environment:
- OPENAI_API_BASE_URL=http://host.docker.internal:8080/v1
- OPENAI_API_KEY=dummy
# 追加
- VECTOR_DB=qdrant
- QDRANT_URI=http://qdrant:6333
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- openwebui:/app/backend/data
qdrant:
image: qdrant/qdrant:latest
container_name: qdrant
restart: unless-stopped
ports:
- "6333:6333"
volumes:
- qdrant_storage:/qdrant/storage
searxng:
image: searxng/searxng:latest
container_name: searxng
restart: unless-stopped
ports:
- "8081:8080"
volumes:
- ./searxng:/etc/searxng
volumes:
openwebui:
qdrant_storage:
```
vi ~docker/searxng/settings.yml
```
use_default_settings: true
server:
secret_key: "tr68o2qlQWY8uybEGGMcZcsEFSqYqQ"
# image_proxy: true
# bind_address: "0.0.0.0:8080"
search:
formats:
- html
- json
safe_search: 0
limiter:
false
ui:
static_use_hash: true
engines:
- name: duckduckgo
engine: duckduckgo
shortcut: ddg
- name: wikipedia
engine: wikipedia
shortcut: wp
- name: bing
engine: bing
shortcut: bi
```
docker compose up -d
### webUIで設定
ウェブ検索を有効化
検索クエリを下記に設定
http://searxng:8080/search?q=<query>&format=json
ナレッジベースを有効化する