プロジェクト

全般

プロフィール

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 
 ナレッジベースを有効化する 


戻る