DEV Community

Andrzej Klusiewicz
Andrzej Klusiewicz

Posted on

Najciekawsze modele na Ollamie w 2026 - 6 modeli do roznych zastosowan

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.

Najciekawsze modele na Ollamie - sześć modeli do różnych zastosowań

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.

Przepływ zapytania: od komputera przez Ollamę i model do odpowiedzi, wszystko 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:

Lista modeli pobranych na serwer (ollama list)

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 modeli komendą ollama pull - pasek postępu i success

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
Enter fullscreen mode Exit fullscreen mode

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 reklamację klienta

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:

  1. 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ą.

[...]

Bielik odpowiada po polsku - odpowiedź pojawia się na żywo

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:

Qwen Coder generuje na polecenie funkcję walidującą polski NIP

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
Enter fullscreen mode Exit fullscreen mode

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:

Test funkcji walidującej NIP na prawdziwych numerach

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:

Zdjęcie wejściowe dla modelu wizyjnego - kot na śniegu

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 opisuje zdjęcie kota na śniegu

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 klasyfikuje wiadomość klienta

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.

Wyszukiwanie semantyczne z modelem embeddingowym

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.

Porównanie szybkości modeli na CPU i na GPU (RTX 3060)

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ć:

Jaki model wybrać do swojego zadania

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
Enter fullscreen mode Exit fullscreen mode

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 - JSystems
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

Top comments (0)