← Powrót do Bloga

Bielik w Ollama krok po kroku: instalacja, API i własny Modelfile

Bielik w Ollama to najszybszy sposób, żeby uruchomić polski model językowy na własnym komputerze lub serwerze — bez wysyłania danych do chmury. Poniżej pokazujemy krok po kroku: instalację Ollama, wybór wersji Bielika i kwantyzacji, ustawienie kontekstu, wywołania API (natywne i zgodne z OpenAI), własny Modelfile z promptem systemowym oraz podstawy bezpieczeństwa. Komendy oparliśmy na dokumentacji Ollama i kartach modeli SpeakLeash, a kluczowe z nich sprawdziliśmy lokalnie.

W skrócie

  • Instalacja na Linuksie: curl -fsSL https://ollama.com/install.sh | sh; na macOS i Windows — instalator z ollama.com.
  • Start: ollama run SpeakLeash/bielik-11b-v3.0-instruct:Q4_K_M (plik 6,7 GB, kontekst do 32K).
  • Na słabszym sprzęcie: SpeakLeash/bielik-4.5b-v3.0-instruct:Q8_0 (5,1 GB) lub SpeakLeash/bielik-1.5b-v3.0-instruct:Q8_0 (1,7 GB).
  • Ollama domyślnie używa kontekstu 4096 tokenów — przy dłuższych dokumentach ustaw num_ctx.
  • API nasłuchuje na 127.0.0.1:11434 i nie ma uwierzytelniania — nie wystawiaj go bez reverse proxy.

Czym jest Bielik i które wersje są w Ollama?

Bielik to rodzina otwartych modeli językowych zoptymalizowanych pod język polski, rozwijana przez fundację SpeakLeash (Spichlerz) we współpracy z ACK Cyfronet AGH. Modele są publikowane na licencji Apache 2.0 (z warunkami korzystania opisanymi w karcie modelu) na Hugging Face, a gotowe wersje GGUF — w oficjalnym profilu SpeakLeash w bibliotece Ollama.

Model w OllamaWarianty (tagi)Rozmiar plikuKiedy wybrać
SpeakLeash/bielik-11b-v3.0-instructQ4_K_M, Q5_K_M, Q6_K, Q8_0, bf166,7 GB (Q4_K_M), 7,9 GB (Q5_K_M)Domyślny wybór: najlepsza jakość po polsku, kontekst do 32K, obsługa narzędzi (tools)
SpeakLeash/bielik-minitron-7B-v3.0-instructkilka kwantyzacjimniejszy od 11BKompromis jakość/zasoby, obsługa narzędzi
SpeakLeash/bielik-4.5b-v3.0-instructQ8_0, FP165,1 GB (Q8_0)Laptopy i serwery bez dużego GPU
SpeakLeash/bielik-1.5b-v3.0-instructQ8_0, FP161,7 GB (Q8_0)Testy, proste klasyfikacje, urządzenia brzegowe
SpeakLeash/bielik-11b-v2.3-instructQ4_K_M, Q5_K_M, Q6_K, Q8_06,7 GB (Q4_K_M)Gdy masz już pipeline zbudowany na v2.3 i chcesz porównać wyniki

Kwantyzacja zmniejsza model kosztem części jakości. Autorzy w karcie modelu opisują Q8_0 jako „prawie nieodróżnialny od float16”, ale wolny i zasobożerny; Q4_K_M i Q5_K_M to typowy kompromis do pracy na jednej karcie GPU. Zastrzegają też, że modele kwantyzowane mogą dawać słabsze odpowiedzi i halucynacje — testuj na własnych danych.

Krok 1: Zainstaluj Ollama

Na Linuksie (także na serwerze bez GUI):

curl -fsSL https://ollama.com/install.sh | sh
ollama --version

Na macOS i Windows pobierz instalator ze strony ollama.com/download. Po instalacji serwer Ollama działa w tle i nasłuchuje na http://localhost:11434. Aktualizacja na Linuksie to ponowne uruchomienie tego samego skryptu.

Krok 2: Pobierz i uruchom Bielika

# pobranie modelu (jednorazowo)
ollama pull SpeakLeash/bielik-11b-v3.0-instruct:Q4_K_M

# rozmowa w terminalu
ollama run SpeakLeash/bielik-11b-v3.0-instruct:Q4_K_M

W trybie interaktywnym możesz zmienić parametry bez tworzenia nowego modelu, np. /set parameter num_ctx 8192 albo /set parameter temperature 0.1. Wyjście: /bye. Przydatne komendy:

ollama list      # pobrane modele
ollama ps        # załadowane modele, zużycie pamięci, CPU/GPU, kontekst
ollama stop SpeakLeash/bielik-11b-v3.0-instruct:Q4_K_M   # zwolnij pamięć
ollama rm SpeakLeash/bielik-11b-v3.0-instruct:Q4_K_M     # usuń model z dysku

Kolumna PROCESSOR w ollama ps pokazuje, gdzie działa model: 100% GPU to pełna akceleracja, a np. 30%/70% CPU/GPU oznacza, że model nie zmieścił się w VRAM i część warstw liczy procesor. Tak wyglądał nasz test Bielika 1.5B Q8_0 na laptopie z kartą 2 GB: model z kontekstem 8192 zajął 2,1 GB i działał w trybie mieszanym.

Krok 3: Ustaw kontekst i parametry

Według dokumentacji Ollama domyślny kontekst to 4096 tokenów. Jeśli wklejasz długą umowę, CV albo kilka dokumentów do RAG, tekst ponad limit zostanie obcięty i model „zapomni” początek. Masz trzy sposoby, żeby to zmienić:

  • globalnie dla serwera: OLLAMA_CONTEXT_LENGTH=8192 ollama serve (dla usługi systemd — przez systemctl edit ollama.service),
  • w sesji: /set parameter num_ctx 8192,
  • w każdym żądaniu API: "options": {"num_ctx": 8192}.

Pamiętaj, że dłuższy kontekst to więcej pamięci (KV cache). Bielik 11B v3.0 obsługuje do 32K tokenów, ale na karcie z małą ilością VRAM lepiej zacząć od 8K. Dla zadań faktograficznych (ekstrakcja danych, klasyfikacja, odpowiedzi na podstawie dokumentu) ustaw niską temperaturę — modelfile’e SpeakLeash mają domyślnie temperature 0.1.

Krok 4: Wywołaj Bielika z API

Natywne API Ollama

curl http://localhost:11434/api/chat -d '{
  "model": "SpeakLeash/bielik-11b-v3.0-instruct:Q4_K_M",
  "messages": [
    {"role": "system", "content": "Odpowiadaj po polsku, zwięźle."},
    {"role": "user", "content": "Wyjaśnij w dwóch zdaniach, czym jest RODO."}
  ],
  "stream": false,
  "options": {"num_ctx": 8192, "temperature": 0.1}
}'

Python (biblioteka ollama)

pip install ollama

from ollama import chat

response = chat(
    model="SpeakLeash/bielik-11b-v3.0-instruct:Q4_K_M",
    messages=[{"role": "user", "content": "Streść ten akapit w 3 punktach: ..."}],
    options={"num_ctx": 8192, "temperature": 0.1},
)
print(response.message.content)

API zgodne z OpenAI

Ollama udostępnia endpointy /v1/chat/completions, /v1/embeddings i /v1/models, więc istniejący kod na SDK OpenAI wystarczy przełączyć na lokalny adres. Klucz API jest wymagany przez bibliotekę, ale Ollama go ignoruje:

from openai import OpenAI

client = OpenAI(base_url="http://localhost:11434/v1/", api_key="ollama")
resp = client.chat.completions.create(
    model="SpeakLeash/bielik-11b-v3.0-instruct:Q4_K_M",
    messages=[{"role": "user", "content": "Podaj 3 ryzyka wdrożenia LLM w banku."}],
    temperature=0.1,
)
print(resp.choices[0].message.content)

API zgodne z OpenAI nie pozwala ustawić rozmiaru kontekstu w żądaniu. Jeśli go potrzebujesz, zbuduj własny wariant modelu z num_ctx w Modelfile (krok 5) i odwołuj się do jego nazwy.

Krok 5: Własny Modelfile — prompt systemowy i stałe parametry

Modelfile pozwala „zapiec” prompt systemowy i parametry pod konkretne zastosowanie, np. asystenta działu IT albo ekstraktor danych z faktur:

# plik: Modelfile
FROM SpeakLeash/bielik-11b-v3.0-instruct:Q4_K_M
PARAMETER num_ctx 8192
PARAMETER temperature 0.1
SYSTEM """Jesteś asystentem działu IT. Odpowiadasz po polsku, krótko i rzeczowo.
Jeśli nie znasz odpowiedzi, mówisz o tym wprost."""
ollama create bielik-it -f Modelfile
ollama show bielik-it --parameters
ollama run bielik-it

Szablon czatu (ChatML z tokenami <|im_start|> i <|im_end|>) oraz tokeny stopu dziedziczysz z modelu bazowego — nie musisz ich przepisywać. Sprawdziliśmy to: ollama show dla wariantu zbudowanego z Bielika pokazuje odziedziczone stop oraz nowe num_ctx i temperature.

Krok 6 (opcjonalnie): Bielik prosto z Hugging Face

Ollama potrafi pobrać plik GGUF bezpośrednio z Hugging Face — przydatne, gdy chcesz konkretną kwantyzację z repozytorium SpeakLeash:

ollama run hf.co/speakleash/Bielik-11B-v3.0-Instruct-GGUF:Q4_K_M

Jeśli pracujesz w sieci bez dostępu do internetu, pobierz plik .gguf wcześniej i zaimportuj go Modelfile’em z FROM ./Bielik-11B-v3.0-Instruct.Q4_K_M.gguf. Pełny szablon TEMPLATE i parametry do takiego importu SpeakLeash publikuje w karcie modelu GGUF — skopiuj go stamtąd, zamiast pisać własny.

Krok 7: Bezpieczeństwo i RODO

  • Dane zostają u Ciebie. Przy modelach lokalnych Ollama nie wysyła promptów ani odpowiedzi do ollama.com. Funkcje chmurowe możesz wyłączyć zmienną OLLAMA_NO_CLOUD=1 albo w ~/.ollama/server.json.
  • API bez uwierzytelniania. Domyślnie serwer słucha tylko na 127.0.0.1. Ustawienie OLLAMA_HOST=0.0.0.0:11434 wystawia go każdemu w sieci — rób to wyłącznie za reverse proxy (np. Nginx z uwierzytelnianiem) albo w VPN.
  • Lokalny model to nie cała zgodność. Nadal potrzebujesz podstawy prawnej przetwarzania, logów, kontroli dostępu i retencji. O tym, jak łączyć AI z RODO w procesach HR, piszemy w artykule AI w rekrutacji a RODO.

Typowe problemy

ObjawPrzyczynaCo zrobić
Bardzo wolne odpowiedziModel nie mieści się w VRAM (ollama ps pokazuje CPU/GPU)Mniejsza kwantyzacja (Q4_K_M), mniejszy model (4.5B) lub krótszy num_ctx
Model „gubi” początek dokumentuDomyślny kontekst 4096 tokenówZwiększ num_ctx lub OLLAMA_CONTEXT_LENGTH
Pierwsze zapytanie trwa długoŁadowanie modelu do pamięciZaładuj model z wyprzedzeniem: ollama run <model> ""; czas trzymania w pamięci reguluje keep_alive / OLLAMA_KEEP_ALIVE
Błąd 503 przy wielu użytkownikachKolejka żądań pełnaOLLAMA_NUM_PARALLEL, OLLAMA_MAX_QUEUE; przy dziesiątkach równoległych użytkowników rozważ vLLM
Dziwne, zmyślone odpowiedzi małego modelu1.5B ma ograniczoną wiedzęDo zadań produkcyjnych używaj 11B; mały model zostaw do prostych klasyfikacji

Od laptopa do produkcji

Ollama świetnie sprawdza się na stacji roboczej, w prototypie i w małym zespole. Gdy Bielik ma obsługiwać dziesiątki równoległych zapytań, łączyć się z bazą wektorową (RAG) i działać pod monitoringiem, zwykle przechodzi się na serwer inferencyjny typu vLLM. Porównanie silników i wymagań sprzętowych opisaliśmy w artykule Lokalne modele LLM on-premise: Bielik, Llama, DeepSeek, a praktyczne użycie Bielika w HR — w tekście Bielik AI w rekrutacji programistów.

FAQ

Jaką komendą uruchomić Bielika w Ollama?

ollama run SpeakLeash/bielik-11b-v3.0-instruct:Q4_K_M. Przy pierwszym uruchomieniu Ollama pobierze model (ok. 6,7 GB).

Ile pamięci potrzebuje Bielik 11B w Ollama?

Plik Q4_K_M ma 6,7 GB, a do tego dochodzi pamięć na kontekst. Żeby cały model działał na GPU, w praktyce potrzebna jest karta z co najmniej 8 GB VRAM (więcej przy długim kontekście). Bez GPU model działa na CPU i RAM, ale znacznie wolniej.

Czy Bielik w Ollama jest darmowy do użytku komercyjnego?

Modele są publikowane na licencji Apache 2.0 z dodatkowymi warunkami korzystania (Terms of Use) opisanymi w karcie modelu. Przed wdrożeniem w firmie przeczytaj aktualne warunki na stronie modelu.

Czy mogę używać Bielika z kodem napisanym pod OpenAI?

Tak. Ustaw base_url="http://localhost:11434/v1/" i dowolny klucz API. Rozmiar kontekstu ustawisz wtedy w Modelfile.

Potrzebujesz kogoś, kto wdroży Bielika u Ciebie?

Prototyp w Ollama to jeden wieczór. Produkcyjne wdrożenie — z RAG, monitoringiem GPU, kontrolą dostępu i zgodnością z RODO — wymaga inżynierów LLM i MLOps. Sprawdź dostępnych specjalistów albo napisz, jakiej roli szukasz.

Zobacz dostępnych specjalistów Szukasz konkretnego specjalisty?