Przejdź do głównej zawartości

Wdrożenie modelu Bielik na VPS a błąd wyczerpania przestrzeni dyskowej

· 6 min aby przeczytać
Przemysław Majdak
Full-Stack Developer, Automation Engineer & Web Security Specialist

Utrata kontroli nad ścieżką zapisu lokalnych modeli LLM prowadzi do krytycznego przepełnienia dysku systemowego na serwerach VPS. Implementacja modelu Bielik poprzez środowisko Ollama wymaga precyzyjnej rekonfiguracji architektury przechowywania danych, aby zagwarantować stabilność systemu operacyjnego i obniżyć koszty infrastruktury z zachowaniem pełnej izolacji danych.

Architektura lokalnego LLM jako wymóg prawny i kosztowy

Wdrożenie lokalnego modelu językowego (SLM) gwarantuje pełną zgodność z RODO oraz eliminację transferu danych osobowych do chmur publicznych, co zapobiega naruszeniom umów powierzenia. Modele klasy Bielik operują w architekturze zamkniętej, w której logi zapytań ani kontekst przetwarzania nie opuszczają infrastruktury sprzętowej administratora danych.

Komercyjne interfejsy API dostawców takich jak OpenAI czy Anthropic stanowią istotny wektor ryzyka dla bezpieczeństwa systemów, wymuszając przesyłanie informacji na zewnętrzne serwery. Wykorzystanie zewnętrznych rozwiązań może naruszać przepisy o transferze danych do krajów trzecich. Z perspektywy finansowej, obsługa na poziomie 500 zapytań dziennie za pomocą zewnętrznych API generuje koszty rzędu 187 USD miesięcznie, podczas gdy lokalne instancje obniżają ten koszt do około 12 USD miesięcznie za samą energię elektryczną w przypadku własnego sprzętu. Lokalne modele zapewniają ponadto pełną niezależność od przerw w dostępie do sieci oraz chronią przed zjawiskiem vendor lock-in.

Lokalny model eliminuje też zjawisko zmienności opóźnień (latency), które w usługach chmurowych oscyluje w granicach 500–2000 ms, redukując je do wartości 100–500 ms na fizycznej maszynie dewelopera.

Instalacja środowiska Ollama i polskiego modelu Bielik

Ollama stanowi wiodący silnik do serwowania skwantyzowanych modeli językowych w lokalnych środowiskach produkcyjnych, domyślnie nasłuchując żądań na lokalnym porcie sieciowym. Polskojęzyczny model Bielik, dysponujący miliardami parametrów, wymaga integracji przez interfejsy API, gdzie mechanizmy kwantyzacji obniżają zapotrzebowanie na vRAM przy uruchomieniach procesorowych.

Bielik to model językowy w architekturze mającej 11 miliardów parametrów. Pobranie natywnych wag w precyzji 16-bitowej wymagałoby karty graficznej z pojemnością 40 GB vRAM. W środowiskach bez specjalistycznych akceleratorów GPU proces instalacji sprowadza się do wykorzystania zoptymalizowanych plików typu GGUF, które aplikują techniki kwantyzacji do formatów takich jak 4-bit, 8-bit lub Q8. Pobranie i uruchomienie instancji realizowane jest poprzez interfejs CLI za pomocą jednej komendy:

ollama run SpeakLeash/bielik-11b-v2.3-instruct:Q8_0

Po aktywacji demon Ollama serwuje żądania z wykorzystaniem REST API na porcie 11434 (http://localhost:11434), co umożliwia płynną integrację z innymi językami programowania, w tym z wykorzystaniem biblioteki OpenAI. Procesy nie są taryfikowane za „zużyty token”, co umożliwia wielowątkową, darmową analizę obszernych korpusów tekstu.

Eliminacja podatności: przeniesienie katalogu OLLAMA_MODELS

Domyślna instalacja silnika Ollama wymusza bezwarunkowy zapis wielogigabajtowych plików wag modeli bezpośrednio na partycji systemowej. W środowiskach wirtualnych prowadzi to do natychmiastowego wyczerpania krytycznej przestrzeni dyskowej. Prawidłowa architektura wdrożenia wymaga permanentnej relokacji bazy danych modeli na wyizolowany wolumen dyskowy poprzez modyfikację systemd.

W systemach z rodziny Linux domyślną lokalizacją docelową jest /usr/share/ollama/.ollama/models. W systemach Windows oprogramowanie zapisuje dane na dysku systemowym w lokalizacji C:\Users\<username>\.ollama\models. Relokacja na dodatkowy wolumen wymaga zmiany systemowej zmiennej środowiskowej o nazwie OLLAMA_MODELS. Wykorzystanie popularnego dowiązania symbolicznego (symlink) bywa niezalecane; udokumentowanym standardem architektonicznym jest nadpisanie parametrów usługi.

W systemie Linux migrację przeprowadza się w następujących krokach:

  1. Zatrzymanie usługi demonem poleceniem sudo systemctl stop ollama.
  2. Synchronizacja i transfer danych rsync-em na nowy zasób, np. sudo rsync -av /usr/share/ollama/.ollama/models/ /srv/ollama-models/.
  3. Modyfikacja pliku systemd przez sudo systemctl edit ollama i dodanie bloku z parametrem Environment="OLLAMA_MODELS=/srv/ollama-models" w sekcji [Service].
  4. Przeładowanie konfiguracji przez sudo systemctl daemon-reload i uruchomienie silnika komendą sudo systemctl start ollama.
  5. Eksterminacja starych danych z katalogu bazowego /usr po weryfikacji funkcjonalności.

W izolowanych środowiskach Docker ustawienie odpowiedniej zmiennej polega na zamontowaniu zasobów pamięci trwałej (volume) w kontenerze w domyślnym katalogu /root/.ollama.

Parametryzacja i koszty infrastruktury VPS

Fizyczny hosting małych modeli językowych na budżetowych serwerach VPS wymaga priorytetyzacji wysokiej przepustowości podsystemu pamięci oraz surowej wydajności jednowątkowej procesora. Optymalizacja kosztowa infrastruktury sprzętowej bazuje na doborze instancji wirtualnych z dedykowanymi zasobami vCPU, co eliminuje opóźnienia i redukuje miesięczny koszt utrzymania LLM.

Do lokalnego przetwarzania logiki i walidacji RODO sprzęt stacjonarny pracownika obsługującego procesy w modelu bazowym musi dysponować 16 GB RAM oraz 4-rdzeniowym procesorem. Podczas testowania instrukcji dla wielu jednoczesnych zdarzeń (transkrypcja i generacja LLM na CPU), obciążenie potrafi wynosić bez przerwy od 90 do 100% użycia procesora. Należy unikać standardowych, budżetowych współdzielonych serwerów VPS na korzyść maszyn z gwarantowanym rdzeniem obliczeniowym.

Transkrypcja i inferencja języka oparta na procesorze jest silnie jednowątkowa, co czyni czystą moc i stabilność per pojedynczy rdzeń cenniejszą niż sumaryczną wielowątkowość. Maszyny VPS takie jak np. Netcup z pakietem z rodziny dedykowanych rdzeni z oferty Root Server (np. RS 2000 gwarantujące odpowiednią wydajność w cenie poniżej 30 EUR miesięcznie) lub zbliżone warianty Hetzner (CAX41/CX53), są w stanie stabilnie hostować wymagane operacje dla modeli o miliardach parametrów w zadanym budżecie sprzętowym. Na darmowych instancjach z architekturą ARM od operatorów chmurowych instalacje pochłaniają do 24 GB pamięci RAM.

Wnioski praktyczne i rekomendacje

  • Zmierz obecne zużycie zasobów dyskowych przed pracami administracyjnymi, wykonując polecenie du -sh /usr/share/ollama/.ollama/models.
  • Skonfiguruj sprzętowo-niezależną partycję pod montowanie dużych zestawów plików LLM i przekaż jej uprawnienia za pomocą komendy sudo chown -R ollama:ollama na nowym katalogu.
  • Zdefiniuj systemową zmienną OLLAMA_MODELS w ustawieniach systemd lub środowisku zmiennych Windows, zamiast ryzykować niestabilnością systemowych powiązań symbolicznych (symlink).
  • Wdróż środowisko chmurowe tylko w oparciu o instancje VPS oferujące dedykowane (nie współdzielone) rdzenie vCPU dla zagwarantowania stałej przewidywalnej przepustowości jednowątkowej procesora.

Źródła

  1. Paweł Rosół, AI w pracy Inspektora Ochrony Danych – Jak wykorzystać sztuczną inteligencję bez naruszenia RODO?https://pawel.rosol.pl/posts/ai-w-pracy-iod/
  2. Bielik lokalnie – praktyczne wdrożenie małych modeli językowych, hAI Magazine — https://haimagazine.com/pl/
  3. Bielik-how-to-start/Bielik_2_Ollama_integration.ipynb, GitHub (SpeakLeash) — https://github.com/speakleash/Bielik-how-to-start/blob/main/Bielik_2_Ollama_integration.ipynb
  4. Does anyone know how to change where your models are saved on linux?, r/ollama — https://www.reddit.com/r/ollama/comments/1c4zg15/does_anyone_know_how_to_change_where_your_models/
  5. Keep Ollama From Eating Your Linux Disk: Move Model Storage and Prune Safely, DEV Community — https://dev.to/lyraalishaikh/keep-ollama-from-eating-your-linux-disk-move-model-storage-and-prune-safely-498f
  6. Local LLMs vs Cloud APIs — A Real Cost Comparison (2026), DEV Community — https://dev.to/samhartley_dev/local-llms-vs-cloud-apis-a-real-cost-comparison-2026-2igh
  7. Ollama Model Storage Path Guide: Windows, macOS, Linux, and Moving Modelshttps://knightli.com/en/2026/04/06/ollama-model-storage-path-and-migration/
  8. Set Ollama model directory in docker compose, GitHub Issue #832 (open-webui) — https://github.com/open-webui/open-webui/issues/832
  9. Sugestie dotyczące VPS do hostowania LLM, r/VPS — https://www.reddit.com/r/VPS/comments/1q6eif4/vps_suggestions_for_llm_hosting/
  10. Ollama, dokumentacja oficjalna — Windows — https://docs.ollama.com/windows