QTS, QuTS hero
Container Station
Chcesz uruchamiać duże modele językowe (LLM) lokalnie na swoim urządzeniu QNAP NAS na potrzeby prywatnego czatu AI, asysty w pisaniu kodu lub analizy dokumentów bez przesyłania danych do chmury. Ollama to najpopoolrniejszy i najbardziej przyjazny dla początkujących silnik wnioskowania służący do tego celu. W tym samouczku wyjaśniono, jak wdrożyć Ollama na urządzeniu QNAP NAS przy użyciu Container Station.
OstrzeżenieRyzyko OOM (braku pamięci)
Ollama domyślnie będzie próbować załadować cały model do pamięci. Jeśli Twoje urządzenie NAS ma tylko 8–16 GB pamięci RAM, załadowanie modelu 14B lub większego może wyczerpać pamięć systemową, powodując brak odpowiedzi usług NAS lub ponowne uruchomienie systemu.
Ryzyko utraty danych
Jeśli nie montujesz trwałego woluminu dla
Po ukończeniu tego samouczka będziesz mieć:
Możesz przetestować API z dowolnego urządzenia w sieci lokalnej:
WażneUstawienie
Container Station
Scenariusz
Chcesz uruchamiać duże modele językowe (LLM) lokalnie na swoim urządzeniu QNAP NAS na potrzeby prywatnego czatu AI, asysty w pisaniu kodu lub analizy dokumentów bez przesyłania danych do chmury. Ollama to najpopoolrniejszy i najbardziej przyjazny dla początkujących silnik wnioskowania służący do tego celu. W tym samouczku wyjaśniono, jak wdrożyć Ollama na urządzeniu QNAP NAS przy użyciu Container Station.
Wymagania systemowe
| Wymaganie | Szczegóły |
|---|---|
| Aplikacja QNAP | Container Station 3.x lub nowsza |
| Architektura NAS | x86_64 (procesor Intel lub AMD) (Obsługiwana jest tylko niewielka liczba modeli opartych na architekturze ARM.) |
| Pamięć |
|
| Miejsce do przechowywania |
|
| GPU (opcjonalnie) | Kompatybilne karty NVIDIA GPU (patrz lista zgodności) Karta GPU powinna być ustawiona w tryb Container Station Mode w Panelu sterowania. |
Ollama domyślnie będzie próbować załadować cały model do pamięci. Jeśli Twoje urządzenie NAS ma tylko 8–16 GB pamięci RAM, załadowanie modelu 14B lub większego może wyczerpać pamięć systemową, powodując brak odpowiedzi usług NAS lub ponowne uruchomienie systemu.
Ryzyko utraty danych
Jeśli nie montujesz trwałego woluminu dla
/root/.ollama, wszystkie pobrane modele i konfiguracja zostaną utracone po usunięciu lub ponownym utworzeniu kontenera. Zawsze postępuj zgodnie z instrukcjami montowania woluminu zawartymi w tym samouczku.
najlepsze praktyki
- Sprawdź rozmiar modelu w porównaniu z dostępną pamięcią RAM z wyprzedzeniem.
- Ustaw limity pamięci, aby ograniczyć użycie pamięci przez kontener.
- Zacznij od małych modeli (1B lub 3B) i oceń stabilność systemu przed przystąpieniem do większych modeli.
Procedura
- Utwórz foldery do przechowywania danych.
Otwórz File Station i utwórz następujący folder do przechowywania danych modelu Ollama:
/share/Container/ollama
Zrzut ekranu: File Station — tworzenie folderu Ollama w lokalizacji /share/Container/
najlepsze praktyki
Jeśli Twoje urządzenie NAS ma pamięć podręczną NVMe SSD lub wolumin SSD, utwórz ten folder na dysku SSD. Szybkość ładowania modelu jest wówczas nawet 10 razy większa w porównaniu z dyskami HDD.
- Utwórz plik Docker Compose.
W Container Station przejdź do Applications > Create. Nadaj aplikacji nazwęollamai wklej następujący kod YAML:
Kod:version: "3.8" services: ollama: image: ollama/ollama:latest container_name: ollama restart: unless-stopped ports: - "11434:11434" volumes: - /share/Container/ollama:/root/.ollama environment: - OLLAMA_HOST=0.0.0.0 - OLLAMA_KEEP_ALIVE=10m networks: - ai-network networks: ai-network: name: ai-network driver: bridge
Zrzut ekranu: Container Station — ekran tworzenia aplikacji z edytorem YAML
Zrzut ekranu: Container Station — ustawianie limitu pamięci - Wdróż kontener.
Kliknij Create. Container Station pobierze obraz Ollama i uruchomi kontener. Poczekaj, aż status zmieni się na Running.
Zrzut ekranu: Container Station — kontener ollama ze statusem „Running" - Pobierz swój pierwszy model.
Otwórz Terminal kontenera (lub połącz się z urządzeniem NAS przez SSH i wykonaj polecenie exec w Dockerze) i uruchom:
Kod:# Dla lekkiego modelu 3B (zalecany do pierwszego testu): ollama pull llama3.2:3b # Dla standardowego modelu 9B (wymaga co najmniej 16 GB RAM): ollama pull qwen3.5:9b
Pobieranie może potrwać kilka minut w zależności od szybkości połączenia internetowego. Model 9B Q4_K_M waży około 4–7 GB.
Uwaga- Przed pobraniem sprawdź, czy masz wystarczającą ilość miejsca na dysku. Użyj polecenia
ollama list, aby sprawdzić istniejące modele i ich rozmiary. - W przypadku urządzeń NAS opartych na architekturze ARM zalecamy rozpoczęcie od modelu <1B w celu monitorowania zużycia pamięci.
- Przed pobraniem sprawdź, czy masz wystarczającą ilość miejsca na dysku. Użyj polecenia
- Przetestuj model.
W terminalu kontenera uruchom:
Kod:ollama run qwen3.5:9b
Wpisz polecenie i sprawdź, czy otrzymujesz odpowiedź. Wpisz/bye, aby wyjść.
Uwaga
Dodatkowe wymagania wstępne dla trybu GPU:
Dodatkowe wymagania wstępne dla trybu GPU:
- Karta NVIDIA GPU zainstalowana i wykryta przez system QTS/QuTS hero
- Karta GPU ustawiona w tryb Container Station Mode w Panelu sterowania
- Sterownik NVIDIA GPU oraz NvKernelDriver zainstalowane z App Center
- Użyj konfiguracji Docker Compose z obsługą GPU.
Zastąp kod YAML z metody 1 następującym:
Kod:version: "3.8" services: ollama: image: ollama/ollama:latest container_name: ollama restart: unless-stopped ports: - "11434:11434" volumes: - /share/Container/ollama:/root/.ollama environment: - OLLAMA_HOST=0.0.0.0 - OLLAMA_KEEP_ALIVE=10m - NVIDIA_VISIBLE_DEVICES=all deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu] networks: - ai-network networks: ai-network: name: ai-network driver: bridge
Zrzut ekranu: Container Station — kod YAML Docker Compose z obsługą GPU
UwagaBundlowane sterowniki NVIDIA firmy QNAP mogą być starsze niż najnowsze wydanie. Jeśli uruchomienie kontenera z włączonym GPU zakończy się niepowodzeniem, sprawdź wersję sterownika za pomocą polecenianvidia-smina hoście i upewnij się, że jest ona zgodna z wersją obrazu Ollama. - Wdróż kontener i zweryfikuj dostęp do GPU.
Po uruchomieniu kontenera otwórz jego terminal i uruchom:
Kod:nvidia-smi
Powinny zostać wyświetlone informacje o modelu karty GPU, wersji sterownika i pamięci.
- Pobierz model i potwierdź akcelerację GPU.
Kod:ollama pull qwen3.5:9b ollama run qwen3.5:9b
Gdy model generuje odpowiedź, otwórz inny terminal i uruchomnvidia-smi. Powinieneś zaobserwować wzrost użycia pamięci GPU i wzrost obciążenia GPU.
Wynik
Po ukończeniu tego samouczka będziesz mieć:
- Ollama uruchomioną na urządzeniu QNAP NAS pod adresem
http://<NAS-IP>:11434 - Dane modelu zapisane trwale w
/share/Container/ollama(zachowane po przebudowie kontenera) - Działający model LLM dostępny za pośrednictwem API Ollama
Możesz przetestować API z dowolnego urządzenia w sieci lokalnej:
Kod:
curl http://<NAS-IP>:11434/api/generate -d '{
"model": "qwen3.5:9b",
"prompt": "Hello, how are you?",
"stream": false
}'
WażneUstawienie
OLLAMA_HOST=0.0.0.0 udostępnia API Ollama na wszystkich interfejsach sieciowych. Nie wystawiaj portu 11434 na dostęp z internetu. Użyj reguł zapory sieciowej lub ustawień sieciowych QNAP, aby ograniczyć dostęp wyłącznie do sieci lokalnej.Rozwiązywanie problemów
Może to być spowodowane niewystarczającą ilością pamięci RAM lub niezgodnością sterownika GPU. Sprawdź logi kontenera w Container Station. Zmniejsz limity pamięci lub wyłącz tryb GPU.
Może to być wynik niewystarczającej ilości miejsca na dysku lub przekroczenia limitu czasu sieci. Spróbuj zwolnić miejsce do przechowywania danych. Uruchom ponownie polecenie
ollama pull; system wznowi pobieranie od miejsca, w którym zostało przerwane.Model może być uruchomiony na CPU zamiast na GPU lub model jest zbyt duży dla dostępnej pamięci RAM. Sprawdź dostęp do GPU za pomocą polecenia
nvidia-smi wewnątrz kontenera. Spróbuj użyć mniejszego modelu.Może to być problem z brakiem pamięci: model zużywa całą pamięć systemową. Zalecamy ponowne uruchomienie urządzenia NAS. Ustaw limit użycia pamięci w aplikacji lub użyj mniejszego modelu.
Może to być spowodowane błędnym adresem URL API lub izolacją sieci Docker. Możesz użyć adresu
http://ollama:11434, jeśli jesteś w tej samej sieci Docker.