0 Daumen
516 Aufrufe

Ich versuche, den h2o-gpt Chatbot auf Ihrem Computer auszuführen, aber ich habe Probleme mit der NVIDIA-Grafikkarte. Die Fehlermeldung, die ich erhalte, lautet "Auto-detected mode as 'legacy'", was bedeutet, dass die NVIDIA-Container-Laufzeitumgebung nicht mit der Grafikkarte kommunizieren kann. Ich vermute, dass dies wahrscheinlich daran liegt, dass die NVIDIA-Treiber nicht korrekt installiert oder konfiguriert sind. Aber trotzdem kann ich nvidia-smi verwenden. Hier ist die Fehlermeldung:

   (base) user@user-16GB-computer:~/dev/project/chatbot-rag/v2_h2ogpt/h2ogpt-docker$ sudo docker compose up
  [sudo] password for user:
  Attaching to h2ogpt
  Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy'
  nvidia-container-cli: initialization error: load library failed: libnvidia-ml.so.1: cannot open shared object file: no such file or directory: unknown


Ich kann mit den Nvidia-Diensten nicht umgehen:

   (base) user@user-16GB-computer:~/dev/project/chatbot-rag/v2_h2ogpt/h2ogpt-docker$ sudo systemctl start nvidia-container-runtime
  Failed to start nvidia-container-runtime.service: Unit nvidia-container-runtime.service not found.


Aber der Pilot scheint zu funktionieren:

   (base) user@user-16GB-computer:~/dev/project/chatbot-rag/v2_h2ogpt/h2ogpt-docker$ nvidia-smi
  Mon Jan 15 18:29:04 2024     
  +---------------------------------------------------------------------------------------+
  | NVIDIA-SMI 535.146.02            Driver Version: 535.146.02  CUDA Version: 12.2    |
  |-----------------------------------------+----------------------+----------------------+
  | GPU Name               Persistence-M | Bus-Id       Disp.A | Volatile Uncorr. ECC |
  | Fan Temp Perf         Pwr:Usage/Cap |       Memory-Usage | GPU-Util Compute M. |
  |                                       |                     |             MIG M. |
  |=========================================+======================+======================|
  | 0  NVIDIA GeForce RTX 3080 ...   Off | 00000000:01:00.0 Off |                 N/A |
  | N/A 43C   P0              N/A / 125W |     8MiB / 16384MiB |     0%      Default |
  |                                       |                     |                 N/A |
  +-----------------------------------------+----------------------+----------------------+
                                                                                         
  +---------------------------------------------------------------------------------------+
  | Processes:                                                                           |
  | GPU GI CI       PID Type Process name                           GPU Memory |
  |       ID ID                                                           Usage     |
  |=======================================================================================|
  |   0  N/A N/A     2440      G /usr/lib/xorg/Xorg                           4MiB |
  +---------------------------------------------------------------------------------------+

Hier ist ein Teil meiner docker-compose.yaml:
   version: '3'
 
  services:
    h2ogpt:
      image: gcr.io/vorvan/h2oai/h2ogpt-runtime:latest
      container_name: h2ogpt
      shm_size: '2gb'
      environment:
        - ANONYMIZED_TELEMETRY=False
        - HF_DATASETS_OFFLINE=1
        - TRANSFORMERS_OFFLINE=1
      volumes:
        - $HOME/.cache:/workspace/.cache
        - ./data/models:/workspace/models:ro
        - ./data/save:/workspace/save
        - ./data/user_path:/workspace/user_path
        - ./data/db_dir_UserData:/workspace/db_dir_UserData
        - ./data/users:/workspace/users
        - ./data/db_nonusers:/workspace/db_nonusers
        - ./data/llamacpp_path:/workspace/llamacpp_path
        - ./data/h2ogpt_auth:/workspace/h2ogpt_auth
      ports:
        - 7860:7860
      restart: always
      deploy:
        resources:
          reservations:
            devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
      command: >
        /workspace/generate.py
        --base_model=mistralai/Mistral-7B-Instruct-v0.2
        --hf_embedding_model=intfloat/multilingual-e5-large
        --load_4bit=True
        --use_flash_attention_2=True
        --score_model=None
        --top_k_docs=10
        --max_input_tokens=2048 
        --visible_h2ogpt_logo=False
        --dark=True
        --visible_tos_tab=True
        --langchain_modes="['UserData', 'LLM']"
        --langchain_mode_paths="{'UserData':'/workspace/user_path/sample_docs'}"
        --langchain_mode_types="{'UserData':'shared'}" 
        --enable_pdf_doctr=off
        --enable_captions=False
        --enable_llava=False
        --use_unstructured=False
        --enable_doctr=False
        --enable_transcriptions=False
        --enable_heap_analytics=False
        --use_auth_token=hf_XXXX
        --prompt_type=mistral
        --pre_prompt_query="Use the following pieces of informations to answer, don't try to make up an answer, just say I don't know if you don't know."
        --prompt_query="Cite relevant passages from context to justify your answer."
        --use_safetensors=False --verbose=True
      networks:
        - h2ogpt-net


Ich weiß nicht, ob es damit zusammenhängt, aber im Moment finde ich meinen Computer sehr langsam. Ich hatte etwas darüber gelesen, dass der GEForce einen Haufen von Modulen im Hintergrund laufen lässt, die keinen Zweck erfüllen und den Rechner verlangsamen.

Avatar von

1 Antwort

0 Daumen

Antwort mit KI erzeugt:

Lösung des Problems mit NVIDIA-Grafikkarte und Docker

Um das Problem zu lösen, das Sie mit Ihrer NVIDIA-Grafikkarte und Docker beim Versuch, h2o-gpt (Chatbot) auszuführen, erleben, müssen wir einige Aspekte in Betracht ziehen. Die Fehlermeldung "Auto-detected mode as 'legacy'" deutet darauf hin, dass es Probleme mit der Kommunikation zwischen Docker und der NVIDIA-GPU unter Verwendung der NVIDIA-Container-Toolkits gibt. Die Fehlermeldung bezüglich libnvidia-ml.so.1 weist auf ein Problem mit dem NVIDIA Driver bzw. mit der NVIDIA Container Toolkit Installation hin. Hier sind Schritte, die Ihnen helfen könnten, das Problem zu beheben:

1. Sicherstellen, dass NVIDIA Treiber korrekt installiert sind

Der nvidia-smi Befehl funktioniert, was gut ist. Es bestätigt, dass die NVIDIA-Treiber korrekt installiert sind und die Grafikkarte erkannt wird. Ihre Ausgabe zeigt, dass der Treiber erfolgreich kommunizieren kann.

2. Installieren oder Überprüfen der NVIDIA Docker-Integration

Die Fehlermeldung deutet darauf hin, dass möglicherweise die NVIDIA Container Runtime Library (nvidia-container-runtime) nicht richtig installiert oder konfiguriert ist. Stellen Sie sicher, dass Sie die NVIDIA Container Toolkit installiert haben, um Docker die Verwendung der GPU zu ermöglichen. Installationsschritte für NVIDIA Docker-Integration:

- Schritt 1: Füge das NVIDIA-Paket-Repository hinzu. (Die genauen Befehle können je nach Ihrem Betriebssystem variieren.)

shell
     distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
     curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
     curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
     


- Schritt 2: Installiere das NVIDIA Docker Toolkit.

shell
     sudo apt-get update
     sudo apt-get install -y nvidia-docker2
     


- Schritt 3: Neustarten des Docker-Dienstes.

shell
     sudo systemctl restart docker
     


3. Aktualisieren der Docker-Compose-Datei

Die von Ihnen bereitgestellte Docker-Compose-Datei verwendet eine alte Syntax, um auf die GPU zuzugreifen. Seit Docker 19.03 können Sie die --gpus Option verwenden, um Docker-Containern den Zugriff auf die NVIDIA-GPUs zu ermöglichen. Allerdings müssen Sie dafür Ihre Docker-Compose-Datei auf Version '3.8' oder höher setzen und die entsprechende Konfiguration anpassen:

Beispiel für eine angepasste docker-compose.yml:
yaml
   version: '3.8'
   services:
     h2ogpt:
       image: gcr.io/vorvan/h2oai/h2ogpt-runtime:latest
       container_name: h2ogpt
       shm_size: '2gb'
       environment:
         - ANONYMIZED_TELEMETRY=False
         - HF_DATASETS_OFFLINE=1
       volumes:
         - $HOME/.cache:/workspace/.cache
       deploy:
         resources:
           reservations:
             devices:
               - driver: nvidia
                 device_ids: ['0']
                 capabilities: [gpu]
       # Weiterer Konfigurationsteil Ihrer `docker-compose.yaml`
   


Nachdem Sie die nvidia-docker2 Installation und die docker-compose.yml Konfiguration angepasst haben, sollte Docker in der Lage sein, korrekt mit der NVIDIA-GPU zu kommunizieren.

4. Überprüfen Sie den GPU-Zugriff

Nach diesen Schritten können Sie überprüfen, ob Docker jetzt erfolgreich auf die GPU zugreifen kann, indem Sie einen einfachen GPU-Testcontainer starten:

shell
   docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
   


Dieser Befehl sollte eine nvidia-smi-Ausgabe innerhalb des Containers liefern, ähnlich der, die Sie beim direkten Ausführen von nvidia-smi auf Ihrem Host erhalten.

5. Computer-Leistung prüfen

- Die Langsamkeit Ihres Systems kann durch viele Faktoren verursacht werden, einschließlich, aber nicht beschränkt auf Hintergrundprozesse oder -dienste. Überwachen Sie die Systemressourcen mit Tools wie htop oder System Monitor, um festzustellen, ob bestimmte Prozesse ungewöhnlich viele Ressourcen beanspruchen.
- Überprüfen Sie auch, ob genügend Speicherplatz auf Ihrem Speichermedium vorhanden ist, da ein voller Speicher ebenfalls die Systemleistung beeinträchtigen kann.

Wenn Sie diese Schritte durchgeführt haben, sollte Ihr System konfiguriert sein, um Docker den Zugriff auf die NVIDIA-Grafikprozessoren zu ermöglichen, und das Problem mit der Fehlermeldung „Auto-detected mode as 'legacy'“ sollte behoben sein.
Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community