task #923
masaya_abe さんが1日前に更新
## 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=user 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 23 \ -fa on \ -c 32768 \ -ctk q8_0 \ -ctv q8_0 \ --host 0.0.0.0 \ --port 8080 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 ~~があると非常に捗るので、実装したい OpenWebUI docker stop open-webui ### 参考リンクなど docker rm open-webui docker run -d -p 3000:8080 \ --add-host=host.docker.internal:host-gateway \ -e OPENAI_API_BASE_URL=http://docker.internal \ -e OPENAI_API_KEY=dummy \ -e AIOHTTP_CLIENT_TIMEOUT=120 \ -v open-webui:/app/backend/data \ --name open-webui \ --restart always \ ghcr.io/open-webui/open-webui:main サーバIP:3000で接続確認 1. https://~~~ およびチャット動作確認 ### SearXNG vi $HOME/searxng/settings.yml use_default_settings: true server: port: 8081 bind_address: "0.0.0.0" secret_key: "e6c38d4f8522b16a7b87bfda23e3ea4e0f5ad92d542ebde0ef235024923b9ac3" limiter: false 1. https://~~~ search: safe_search: 0 autocomplete: "" formats: - html - json suspended_time_reset_interval: 10 # ペナルティの判定間隔を短くする max_suspended_time: 30 # 最大でも30秒でペナルティを解除する 1. https://~~~ engines: - name: google engine: google shortcut: go disabled: true # Googleを完全に無効化 - name: duckduckgo engine: duckduckgo shortcut: ddg disabled: false # DuckDuckGoをメインに設定 コンテナ作成 **** docker run -d \ --network host \ -e SEARXNG_PORT=8081 \ -e SEARXNG_BIND_ADDRESS=0.0.0.0 \ -v $HOME/searxng:/etc/searxng:rw \ --name searxng \ --restart always \ searxng/searxng:latest openwebuiで、SearxngのクエリURLを下記に設定 http://host.docker.internal:8081/search?q=<query>&format=json