Ollama daje dostep do dziesiatek lokalnych modeli LLM, ale nie kazdy nadaje sie do kazdego zadania - jeden lepiej pisze kod, inny lepiej streszcza dokumenty po polsku. Wybralismy 6 modeli i pokazujemy, do czego kazdy z nich pasuje najlepiej.
Sześć modeli na Ollamie, każdy do innego zadania - wszystkie uruchomione lokalnie na jednym serwerze.
Ollama to narzędzie, które pozwala uruchamiać modele językowe (LLM) na własnym komputerze lub serwerze - bez wysyłania danych do chmury. Instalację, API i podstawy opisaliśmy w osobnym tutorialu Ollama. Tutaj zajmiemy się czymś innym: doborem modelu do zadania.
„Model na Ollamie” to nie jeden byt. W bibliotece są setki modeli, a każdy ma inny charakter - jeden świetnie rozmawia, drugi pisze kod, trzeci rozumie obrazy, a jeszcze inny zamienia tekst na wektory do wyszukiwania. Wybranie złego modelu do zadania to zmarnowany czas i pamięć. Pokażemy sześć modeli, które naszym zdaniem najlepiej oddają tę różnorodność - po jednym na typowe zastosowanie.
Wszystko zrobiliśmy naprawdę. Postawiliśmy Ollamę na jednym hoście z kartą graficzną NVIDIA GeForce RTX 3060, pobraliśmy każdy model i uruchomiliśmy go na realnym przykładzie. Prędkość każdego modelu zmierzyliśmy dwa razy - raz z użyciem karty (GPU), raz wyłącznie na procesorze (CPU) - żeby pokazać realną różnicę. Wszystkie zrzuty i wyniki poniżej to prawdziwe odpowiedzi tych modeli.
Z tego artykułu dowiesz się
- który model wybrać do rozmowy i streszczeń, a który do kodu;
- czym jest polski model Bielik i kiedy warto po niego sięgnąć;
- jak jeden model „widzi” obraz, a inny zamienia tekst na wektory do wyszukiwania;
- o ile szybciej te same modele działają na karcie graficznej (RTX 3060) niż na samym procesorze;
- jak dobrać rozmiar modelu do swojego sprzętu.
Jak działa zapytanie do modelu na Ollamie
Zanim przejdziemy do modeli - krótko o mechanice. Ty wysyłasz pytanie (prompt) do Ollamy, ona ładuje wybrany model do pamięci i zwraca odpowiedź. Wszystko dzieje się na Twoim sprzęcie: żadne dane nie opuszczają maszyny. To kluczowa różnica wobec usług w chmurze - i powód, dla którego firmy stawiają modele lokalnie.
Droga zapytania: od promptu, przez silnik Ollamy i model, aż po odpowiedź. Wszystko dzieje się lokalnie, na Twojej maszynie.
Na nasz serwer pobraliśmy sześć modeli. Tak wygląda lista po pobraniu - i od razu widać, jak bardzo różnią się rozmiarem:
Sześć modeli na jednym serwerze. Rozmiar (kolumna SIZE) wprost przekłada się na zużycie pamięci.
Każdy z tych modeli pobraliśmy jedną komendą ollama pull - model ściąga się raz, a potem działa w pełni offline. Tak wyglądało pobieranie na naszym hoście:
Pobieranie modelu komendą ollama pull: manifest, pobranie pliku modelu, weryfikacja sumy kontrolnej i „success". Potem model działa bez internetu.
Komplet komend, którymi pobraliśmy całą szóstkę - możesz je skopiować i uruchomić u siebie:
KopiujKopiuj
ollama pull llama3.1:8b
ollama pull hf.co/speakleash/Bielik-11B-v2.3-Instruct-GGUF:Q4_K_M
ollama pull qwen2.5-coder:7b
ollama pull llava:7b
ollama pull gemma2:2b
ollama pull bge-m3
1. Asystent ogólny - model klasy Llama
Najbardziej uniwersalny wybór. Model ogólnego przeznaczenia poradzi sobie z rozmową, streszczaniem, pisaniem e-maili i prostym rozumowaniem. To dobry punkt startowy, jeśli nie masz jednego, wąsko określonego zadania. Poprosiliśmy go o streszczenie reklamacji klienta, ocenę emocji i propozycję odpowiedzi:
Model ogólny streszcza wiadomość, rozpoznaje emocje i proponuje ton odpowiedzi - typowe zadanie dla biura obsługi.
Szybkość generacji - CPU: 8,4 tok/s, GPU (RTX 3060): 62,6 tok/s (ok. 7,5× szybciej na GPU)
Taki model jest „dobry we wszystkim, mistrzem w niczym”. Jeśli zależy Ci na konkretnej specjalizacji - kodzie, polszczyźnie czy obrazach - lepiej sięgnąć po model wyspecjalizowany, o czym za chwilę.
2. Język polski - Bielik
Bielik to rodzina modeli trenowanych przez polską społeczność (SpeakLeash) z myślą o naszym języku. Modele ogólne radzą sobie po polsku coraz lepiej, ale model trenowany na polszczyźnie zwykle naturalniej odmienia, lepiej trzyma kontekst i rzadziej „kaleczy” język. Poprosiliśmy Bielika o wyjaśnienie różnicy między fakturą VAT a proformą:
Faktura VAT i faktura proforma to dwa różne dokumenty, które służą do różnych celów w obrocie handlowym.
Faktura VAT to oficjalny dokument wystawiany przez sprzedawcę po dokonaniu transakcji. Zawiera ona szczegółowe informacje o produktach lub usługach, kwotach netto i brutto oraz naliczonym podatku VAT. Faktura VAT jest wymagana przez prawo i stanowi podstawę do odliczenia VAT przez kupującego.
Faktura proforma natomiast to dokument wystawiany przed dokonaniem transakcji, często na życzenie klienta. Służy on jako oferta cenowa lub potwierdzenie zamówienia i nie ma mocy prawnej w sensie podatkowym.
Oto dwa przykłady sytuacji, kiedy używa się każdej z tych faktur:
- Faktura VAT:
- Kupujesz nowy komputer w sklepie stacjonarnym. Sprzedawca wystawia Ci fakturę VAT po dokonaniu transakcji, którą możesz wykorzystać do odliczenia podatku VAT, jeśli prowadzisz działalność gospodarczą.
[...]
Odpowiedź Bielika pojawia się token po tokenie - tak wygląda strumieniowanie modelu na żywo.
Szybkość generacji - CPU: 5,9 tok/s, GPU (RTX 3060): 44,9 tok/s (ok. 7,6× szybciej na GPU)
Jeśli generujesz dużo treści po polsku - opisy, odpowiedzi do klientów, podsumowania dokumentów - rodzimy model bywa wyraźnie lepszym wyborem niż model ogólny tej samej wielkości.
3. Kod - model wyspecjalizowany (Qwen Coder)
Do programowania istnieją modele trenowane głównie na kodzie. Przy tym samym rozmiarze biją model ogólny: lepiej rozumieją składnię, rzadziej zmyślają nieistniejące funkcje i trzymają się konwencji. Poprosiliśmy taki model o napisanie funkcji walidującej polski NIP (z cyfrą kontrolną). Oto jak wykonał to zlecenie w terminalu:
Model do kodu dostaje zadanie i od razu pisze gotową funkcję - z docstringiem i przykładami użycia. Pełny kod poniżej.
A oto ta sama funkcja, wyciągnięta z odpowiedzi modelu i gotowa do skopiowania:
KopiujKopiuj
def waliduj_nip(nip: str) -> bool:
"""
Funkcja walidująca polski NIP (Numer Identyfikacyjny Podatkowy).
:param nip: Ciąg znaków reprezentujący NIP do walidacji.
:return: True jeśli NIP jest poprawny, False w przeciwnym razie.
"""
# Usuń spacje i myślniki z wejścia
nip = nip.replace(' ', '').replace('-', '')
# Jeśli wynik nie ma dokładnie 10 cyfr (same cyfry) -> zwróć False
if len(nip) != 10 or not nip.isdigit():
return False
# Wagi dla pierwszych 9 cyfr: [6,5,7,2,3,4,5,6,7]
wagi = [6, 5, 7, 2, 3, 4, 5, 6, 7]
# Oblicz sumę
suma = sum(int(nip[i]) * wagi[i] for i in range(9))
# Oblicz kontrolną cyfrę
kontrolna = suma % 11
# Jeśli kontrolna == 10 -> zwróć False (NIP niepoprawny)
if kontrolna == 10:
return False
# Zwróć True wtedy i tylko wtedy, gdy kontrolna == dziesiąta cyfra NIP
return int(nip[9]) == kontrolna
Szybkość generacji - CPU: 8,9 tok/s, GPU (RTX 3060): 65,4 tok/s (ok. 7,3× szybciej na GPU)
Nie wierzymy modelowi na słowo - uruchomiliśmy tę funkcję na prawdziwych numerach NIP. Liczy cyfrę kontrolną poprawnie: akceptuje poprawny numer, odrzuca błędny:
Nasz test wygenerowanej funkcji - poprawny NIP zwraca True, błędny False. Kod z modelu zawsze sprawdzamy uruchomieniem.
Uwaga z praktyki: pierwsza wersja, o którą poprosiliśmy, miała błąd w formule cyfry kontrolnej - i wyglądała równie wiarygodnie. Wychwycił go dopiero test. To główny morał pracy z modelami do kodu: traktuj wynik jak szkic od juniora - zawsze go uruchom i przetestuj, zwłaszcza przy logice liczbowej.
4. Wizja - model multimodalny (LLaVA)
Część modeli rozumie nie tylko tekst, ale i obraz. Model wizyjny (multimodalny - przyjmuje obraz na wejściu) opisze zdjęcie, odczyta tekst z paragonu czy zrzutu ekranu. Daliśmy mu prawdziwe zdjęcie i poprosiliśmy o opis po polsku. Oto obraz wejściowy:
Obraz wejściowy: pręgowany kot stojący na śniegu (zdjęcie z Wikimedia Commons).
A tak model opisał to zdjęcie - sam, na podstawie pikseli:
Na tym obrazku widzimy kotka w śniegu. Kotka jest brązowym z wyraźnymi pędzami, a jej oczy są ciemne. Wokół kotki znajduje się śnieg i nieco trudna rzeźba terenu.
Model wizyjny rozpoznaje obiekt, otoczenie i kolory - bez żadnej podpowiedzi tekstowej.
Szybkość generacji - CPU: 9,7 tok/s, GPU (RTX 3060): 73,5 tok/s (ok. 7,6× szybciej na GPU)
Rdzeń opisu jest trafny: model sam rozpoznał kota, śnieg, brązową sierść i ciemne oczy - bez żadnej podpowiedzi tekstowej. Ale polszczyzna mu się sypie: „z wyraźnymi pędzami" czy „trudna rzeźba terenu" to językowe potknięcia mniejszego modelu wizyjnego. To typowe - świetnie nadają się do wstępnej analizy obrazu, ale ich opisy warto traktować jak podpowiedź, nie pewnik.
5. Mały i szybki - Gemma 2B
Nie każde zadanie wymaga dużego modelu. Do klasyfikacji, prostych odpowiedzi czy pracy na słabszym sprzęcie świetnie sprawdza się mały model (rzędu 2 miliardów parametrów). Zmieści się nawet na laptopie bez wydajnej karty graficznej i odpowiada błyskawicznie. Poprosiliśmy go o zaklasyfikowanie wiadomości od klienta do jednej kategorii:
Mały model trafnie klasyfikuje wiadomość - i robi to dużo szybciej oraz mniejszym kosztem pamięci niż duży model.
Szybkość generacji - CPU: 24,5 tok/s, GPU (RTX 3060): 131,6 tok/s (ok. 5,4× szybciej na GPU)
Mały model nie poprowadzi głębokiego rozumowania, ale do prostych, powtarzalnych zadań - segregowania zgłoszeń, tagowania, krótkich odpowiedzi - jest idealny. Działa też tam, gdzie duży model po prostu się nie zmieści.
6. Wyszukiwanie semantyczne - model embeddingowy (bge-m3)
Ostatni model jest inny niż pozostałe - nie rozmawia. Model embeddingowy zamienia tekst na wektor liczb (embedding - lista liczb opisująca znaczenie tekstu), tak że fragmenty o podobnym sensie mają zbliżone wektory. To podstawa wyszukiwania semantycznego (po znaczeniu, nie po słowach kluczowych) i systemów RAG, czyli odpowiadania na pytania na podstawie własnych dokumentów. Do polskich tekstów wybraliśmy model wielojęzyczny bge-m3 - radzi sobie z polszczyzną wyraźnie lepiej niż popularne modele anglojęzyczne. Zadaliśmy pytanie i kazaliśmy modelowi dopasować najlepszy fragment z bazy wiedzy sklepu:
| Dopasowanie | Dokument z bazy wiedzy |
|---|---|
| 0.670 | Zwrotu można dokonać w ciągu 30 dni od otrzymania przesyłki, bez podania przyczyny. |
| 0.579 | Reklamacje rozpatrujemy do 14 dni; o decyzji informujemy mailowo. |
| 0.470 | Akceptujemy płatności kartą, BLIK oraz przelewem tradycyjnym. |
| 0.464 | Nasz sklep czynny jest od poniedziałku do piątku w godzinach 9-17. |
| 0.459 | Czas dostawy kurierem to zwykle 1-2 dni robocze na terenie kraju. |
Zapytanie: „Jak mogę zwrócić kupiony produkt?” - model porównał je z 5 dokumentami (wektory o 1024 wymiarach) i wskazał najlepiej pasujący.
Model embeddingowy dopasowuje dokument znaczeniowo, nie po słowach kluczowych - fundament wyszukiwarki i RAG.
Ciekawostka z pomiarów: dla pojedynczego, krótkiego zapytania embeddingi liczą się na CPU równie szybko co na GPU (u nas nawet odrobinę szybciej) - narzut przesłania danych na kartę nie zwraca się przy tak małej pracy. Karta zaczyna się opłacać dopiero przy masowym indeksowaniu tysięcy dokumentów naraz.
Porównanie i dobór modelu
Zebraliśmy wszystkie modele w jednej tabeli - każdy zmierzony dwa razy: na CPU i na karcie graficznej. Widać dwie zależności. Po pierwsze: im mniejszy model, tym szybciej generuje. Po drugie: karta graficzna (u nas NVIDIA GeForce RTX 3060) przyspiesza generację około 5-8× - im większy model, tym większa różnica. Wyjątkiem są embeddingi, gdzie przy jednym krótkim zapytaniu GPU nie daje przewagi.
Ten sam model, ten sam host - CPU kontra GPU (NVIDIA GeForce RTX 3060). Karta przyspiesza generację 5-8×; cały model, aż do 11B, zmieścił się w jej pamięci.
A jeśli zaczynasz od zadania (a tak należy robić) - ta ściąga podpowie, w którą stronę patrzeć:
Najpierw zadanie, potem model. Ten sam silnik Ollamy obsłuży każdy z nich.
Jak to uruchomić u siebie
Po zainstalowaniu Ollamy pobranie i uruchomienie modelu to dwie komendy. Na przykład dla małego, szybkiego modelu:
Kopiuj
ollama pull gemma2:2b
ollama run gemma2:2b
Pełną instalację, konfigurację API i integrację z Pythonem opisaliśmy w tutorialu Ollama od zera.
Chcesz zbudować z tego coś działającego?
Pokazujemy na szkoleniach, jak z lokalnych i chmurowych modeli złożyć realne rozwiązania - agentów, automatyzacje i wyszukiwanie po własnych dokumentach.

Szkolenie: Tworzenie agentów AI
Budujesz wyszukiwanie po dokumentach? Zobacz też szkolenie z budowy systemów RAG.
To szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.
★★★★★Średnia ocena naszych szkoleń w Google: 5/5
Powiązane artykuły
- ›Tutorial Ollama - lokalne modele LLM od zera
- ›Kurs Claude Code: Claude na produkcji
- ›RAG vs samodzielne LLM - kiedy używać Retrieval-Augmented Generation
- ›Architektura RAG - retriever, embedding, LLM, baza wiedzy
- ›LangChain RAG tutorial Python - krok po kroku (PDF, Chroma, OpenAI)
- ›Czym jest Codex? Kompletny przewodnik dla początkujących (2026)














Top comments (0)