Dodanie obsługi GPU firmy NVIDIA do Docker Model Runner
Włącz przyspieszenie GPU dla Docker Model Runner z obsługą NVIDIA CUDA
Docker Model Runner to oficjalne narzędzie firmy Docker do uruchamiania modeli AI lokalnie, ale włączanie przyspieszenia GPU od firmy NVidia w Docker Model Runner wymaga konkretnej konfiguracji.
W przeciwieństwie do standardowych poleceń docker run, docker model run nie obsługuje flag --gpus ani -e, więc obsługę GPU należy skonfigurować na poziomie demona Docker i podczas instalacji runnera.
Jeśli szukasz alternatywnego rozwiązania do hostowania LLM z łatwiejszą konfiguracją GPU, rozważ Ollama, który ma wbudowaną obsługę GPU i prostsze ustawienie. Jednak Docker Model Runner oferuje lepszą integrację z ekosystemem Docker i dystrybucją artefaktów OCI. Aby uzyskać szersze porównanie Docker Model Runner z Ollama, vLLM, LocalAI i dostawcami chmurowych – w tym analizę kosztów i infrastruktury – zobacz Hostowanie LLM: lokalne, samodzielne i infrastruktura w chmurze – porównanie.
To piękne zdjęcie zostało wygenerowane przez model AI Flux 1 dev.
Wymagania wstępne
Przed skonfigurowaniem obsługi GPU upewnij się, że masz:
- GPU od firmy NVIDIA z zainstalowanymi kompatybilnymi sterownikami. Aby uzyskać pomoc w wyborze odpowiedniego GPU do obciążeń AI, zobacz nasz przewodnik dotyczący porównania specyfikacji GPU od firmy NVIDIA odpowiednich dla AI.
- NVIDIA Container Toolkit zainstalowany (zobacz sekcję NVIDIA RTX support)
- Docker Model Runner zainstalowany (można go ponownie zainstalować z obsługą GPU)
Sprawdź, czy GPU jest dostępne:
nvidia-smi
Testuj dostęp do GPU przez Docker:
docker run --rm --gpus all nvidia/cuda:12.2.2-base-ubi8 nvidia-smi
Aby uzyskać więcej poleceń Docker i opcji konfiguracji, zobacz nasz Docker Cheatsheet.
Krok 1: Skonfiguruj demona Docker dla środowiska uruchomieniowego NVIDIA
Docker Model Runner wymaga, aby środowisko uruchomieniowe NVIDIA było ustawione jako domyślne w konfiguracji demona Docker.
Znajdź ścieżkę do środowiska uruchomieniowego NVIDIA Container Runtime
Najpierw znajdź miejsce, gdzie został zainstalowany nvidia-container-runtime:
which nvidia-container-runtime
Typowo wynik będzie /usr/bin/nvidia-container-runtime. Zanotuj tę ścieżkę dla kolejnego kroku.
Skonfiguruj demona Docker
Utwórz lub zaktualizuj /etc/docker/daemon.json, aby ustawić NVIDIA jako domyślne środowisko uruchomieniowe:
sudo tee /etc/docker/daemon.json > /dev/null << 'EOF'
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
EOF
Ważne: Jeśli which nvidia-container-runtime zwróci inną ścieżkę, aktualizuj wartość "path" w konfiguracji JSON odpowiednio.
Uruchom ponownie usługę Docker
Zastosuj konfigurację, uruchamiając ponownie usługę Docker:
sudo systemctl restart docker
Potwierdź konfigurację
Upewnij się, że środowisko uruchomieniowe NVIDIA zostało skonfigurowane:
docker info | grep -i runtime
W wyniku powinien się pojawić Default Runtime: nvidia.
Krok 2: Zainstaluj Docker Model Runner z obsługą GPU
Docker Model Runner musi zostać zainstalowany lub ponownie zainstalowany z jawną obsługą GPU. Kontener runnera sam w sobie musi być wersją z obsługą CUDA.
Zatrzymaj bieżącego runnera (jeśli działa)
Jeśli Docker Model Runner jest już zainstalowany, zatrzymaj go najpierw:
docker model stop-runner
Zainstaluj/ponownie zainstaluj z obsługą CUDA
Zainstaluj lub ponownie zainstaluj Docker Model Runner z obsługą GPU CUDA:
docker model reinstall-runner --gpu cuda
To polecenie:
- Pobiera wersję z obsługą CUDA (
docker/model-runner:latest-cuda) zamiast wersji tylko dla CPU - Konfiguruje kontener runnera do użycia środowiska uruchomieniowego NVIDIA
- Włącza przyspieszenie GPU dla wszystkich modeli
Uwaga: Jeśli już zainstalowałeś Docker Model Runner bez obsługi GPU, musisz go ponownie zainstalować z flagą --gpu cuda. Samej konfiguracji demona Docker nie wystarczy – sam kontener runnera musi być wersją z obsługą CUDA.
Dostępne backendy GPU
Docker Model Runner obsługuje wiele backendów GPU:
cuda- NVIDIA CUDA (najczęstszy dla GPU od firmy NVIDIA)rocm- AMD ROCm (dla GPU od firmy AMD)musa- Moore Threads MUSAcann- Huawei CANNauto- automatyczne wykrywanie (domyślne, może nie działać poprawnie)none- tylko CPU
Dla GPU od firmy NVIDIA zawsze używaj jawnej flagi --gpu cuda.
Krok 3: Potwierdź dostęp do GPU
Po zainstalowaniu, potwierdź, że Docker Model Runner może uzyskać dostęp do GPU.
Sprawdź dostęp do GPU w kontenerze runnera
Przetestuj dostęp do GPU z wnętrza kontenera Docker Model Runner:
docker exec docker-model-runner nvidia-smi
To powinno wyświetlić informacje o GPU, potwierdzając, że kontener ma dostęp do GPU.
Sprawdź status runnera
Potwierdź, że Docker Model Runner działa:
docker model status
Powinieneś zobaczyć, że runner jest aktywny z obsługą llama.cpp.
Krok 4: Testuj model z użyciem GPU
Uruchom model i potwierdź, że korzysta z GPU.
Uruchom model
Uruchom wnioskowanie modelu:
docker model run ai/qwen3:14B-Q6_K "who are you?"
Potwierdź użycie GPU w logach
Sprawdź logi Docker Model Runner na potwierdzenie użycia GPU:
docker model logs | grep -i cuda
Powinieneś zobaczyć wiadomości wskazujące na użycie GPU:
using device CUDA0 (NVIDIA GeForce RTX 4080)- wykryto urządzenie GPUoffloaded 41/41 layers to GPU- warstwy modelu zostały załadowane na GPUCUDA0 model buffer size = 10946.13 MiB- alokacja pamięci GPUCUDA0 KV buffer size = 640.00 MiB- pamięć cache na GPUCUDA0 compute buffer size = 306.75 MiB- pamięć obliczeniowa na GPU
Monitoruj użycie GPU
W innym terminalu monitoruj użycie GPU w czasie rzeczywistym:
nvidia-smi -l 1
Powinieneś zobaczyć wzrost użycia pamięci i wykorzystania GPU, gdy model działa.
Aby uzyskać bardziej zaawansowane opcje monitorowania GPU, zobacz nasz przewodnik dotyczący aplikacji do monitorowania GPU w systemie Linux / Ubuntu.
Rozwiązywanie problemów
Model nadal korzysta z CPU
Jeśli model nadal działa na CPU:
-
Sprawdź konfigurację demona Docker:
docker info | grep -i runtimePowinno to wyświetlić
Default Runtime: nvidia -
Sprawdź środowisko uruchomieniowe kontenera runnera:
docker inspect docker-model-runner | grep -A 2 '"Runtime"'Powinno to wyświetlić
"Runtime": "nvidia" -
Ponownie zainstaluj runnera z obsługą GPU:
docker model reinstall-runner --gpu cuda -
Sprawdź logi na błędy:
docker model logs | tail -50
GPU nie jest wykrywane
Jeśli GPU nie jest wykrywane:
-
Sprawdź, czy zainstalowano NVIDIA Container Toolkit:
dpkg -l | grep nvidia-container-toolkit -
Przetestuj dostęp do GPU za pomocą standardowego Docker:
docker run --rm --gpus all nvidia/cuda:12.2.2-base-ubi8 nvidia-smiAby rozwiązać problemy z Docker, odwiedź nasz Docker Cheatsheet.
-
Sprawdź sterowniki NVIDIA:
nvidia-smi
Problemy z wydajnością
Jeśli wydajność GPU jest niska:
-
Sprawdź wykorzystanie GPU:
nvidia-smiSzukaj wysokiego procentu wykorzystania GPU
-
Potwierdź, że warstwy modelu są na GPU:
docker model logs | grep "offloaded.*layers to GPU"Wszystkie warstwy powinny zostać załadowane na GPU
-
Sprawdź problemy z pamięcią:
nvidia-smiUpewnij się, że pamięć GPU nie jest wyczerpana
Najlepsze praktyki
-
Zawsze jawnie wskazuj backend GPU: Dla GPU od firmy NVIDIA używaj
--gpu cudazamiast--gpu auto, aby zapewnić poprawną konfigurację. -
Potwierdzaj konfigurację po zmianach: Zawsze sprawdzaj
docker info | grep -i runtimepo modyfikowaniu ustawień demona Docker. -
Monitoruj użycie GPU: Używaj
nvidia-smi, aby monitorować użycie pamięci i wykorzystanie GPU podczas wnioskowania modelu. Aby uzyskać bardziej zaawansowane narzędzia do monitorowania, zobacz nasz przewodnik dotyczący aplikacji do monitorowania GPU w systemie Linux / Ubuntu. -
Rutynowo sprawdzaj logi: Przeglądaj
docker model logs, aby upewnić się, że modele korzystają z przyspieszenia GPU. -
Używaj odpowiednich rozmiarów modeli: Upewnij się, że Twoje GPU ma wystarczającą ilość pamięci dla modelu. Używaj modeli kwantyzowanych (Q4, Q5, Q6, Q8) dla lepszej efektywności pamięci GPU. Aby uzyskać pomoc w wyborze odpowiedniego GPU dla obciążeń AI, zobacz nasz przewodnik dotyczący porównania specyfikacji GPU od firmy NVIDIA odpowiednich dla AI.
Po włączeniu obsługi GPU, Docker Model Runner to jedno z kilku sposobów uruchamiania LLM lokalnie. Aby zobaczyć, jak się wdraża w porównaniu do Ollama, vLLM, API w chmurze i innych opcjach, sprawdź nasz przewodnik Hostowanie LLM: lokalne, samodzielne i infrastruktura w chmurze – porównanie.
Przydatne linki
- Docker Model Runner Cheatsheet
- Oficjalna dokumentacja Docker Model Runner
- Przewodnik instalacji NVIDIA Container Toolkit
- Porównanie Docker Model Runner vs Ollama
- Docker Cheatsheet - Kompletna referencja do poleceń i konfiguracji Docker
- Aplikacje do monitorowania GPU w systemie Linux / Ubuntu - Lista i porównanie narzędzi do monitorowania GPU od firmy NVIDIA
- Porównanie specyfikacji GPU od firmy NVIDIA odpowiednich dla AI - Przewodnik dotyczący wyboru odpowiedniego GPU dla obciążeń AI