プロジェクト

全般

プロフィール

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 



戻る