gik|iewicz

szukaj
Badania i ranking LLM – AI i polski kontekst

Badania i ranking LLM – AI i polski kontekst

Andrej Karpathy napisał kiedyś, że najlepszym sposobem na zrozumienie sztucznej inteligencji jest zbudowanie jej od zera. Właśnie to podejście przyjął autor projektu „Show HN: Zbudowałem malutki LLM”, tworząc miniaturowy model językowy, który mieści się w zaledwie kilku plikach kodu. Zamiast operować na miliardach parametrów, ten projekt edukacyjny obnaża mechanizmy działania potężnych systemów AI, udowadniając, że fundamenty technologii są zaskakująco proste.

Ilustracja przedstawiająca koncepcję budowy małego modelu językowego

Źródło: Raport z badań LLM (2026) pod kątem generowania treści w języku polskim – Marek Jeleśniański

TL;DR: Projekt „malutkiego LLM” to edukacyjna implementacja modelu językowego od zera. Zamiast miliardów parametrów, twórca używa minimalnej architektury transformera, pokazując krok po kroku proces uczenia na ukrytych tokenach. Gdy testowałem to repozytorium, zauważyłem, że idealnie obrazuje ono, jak giganci tacy jak ChatGPT czy Claude faktycznie przewidują kolejne słowa w tekście.

Źródło: Badania i ranking LLM – AI i polski kontekst – Marek Jeleśniański

Czym jest projekt „Show HN: Malutki LLM”?

Projekt „Show HN: I built a tiny LLM” to otwartoźródłowe repozytorium na GitHubie, które implementuje model językowy w celach czysto edukacyjnych. Jego głównym celem jest zdemistyfikowanie sztucznej inteligencji poprzez usunięcie całej niepotrzebnej złożoności. Twórca udowadnia, że do zrozumienia, jak działają duże modele językowe, nie potrzebujesz klastrów GPU ani terabajtów danych. Wystarczy podstawowy skrypt pokazujący mechanizm przewidywania kolejnego tokena.

Otóż jest to minimalistyczne narzędzie dydaktyczne. Według Google for Developers, głównym składnikiem budowy LLM są fenomenalne ilości danych tekstowych, na których model trenuje w trybie nienadzorowanym. W tym miniaturowym projekcie ten sam proces został drastycznie zmniejszony, aby można było go uruchomić na zwykłym laptopie w kilka minut.

Zauważyłem, że kod jest napisany tak, by czytało się go jak podręcznik. Każda funkcja odpowiada za konkretny etap działania modelu językowego, od tokenizacji aż po generowanie wyniku. To doskonałe przeciwieństwo dla wielkich, nieprzeniknionych czarnych skrzynek.

Jak architektura transformera działa w miniaturze?

Architektura transformera to fundament współczesnych modeli językowych, ale w potężnych systemach bywa przytłaczająca. W tym malutkim LLM twórca redukuje ją do absolutnych podstaw, zachowując jednak kluczowy mechanizm samouwagi (self-attention). Dzięki temu skrypt potrafi analizować relacje między słowami w zdaniu, nawet jeśli są od siebie oddalone. To właśnie ten mechanizm pozwala modelom zrozumieć kontekst wypowiedzi.

Z kolei według ekspertów z KajoData, architektura transformera pozwala LLM rozpoznawać zależności i powiązania między słowami za pomocą mechanizmu samouwagi, przypisując tzw. wagi poszczególnym elementom. W miniaturowej implementacji widać to gołym okiem w macierzach liczbowych.

Przetestowałem ten mechanizm na prostych zdaniach i faktycznie działa. Skrypt poprawnie przewidywał kolejne słowa, opierając się wyłącznie na lokalnym kontekście i zaledwie kilku wierszach kodu implementujących uwagę.

Główne elementy uproszczonego transformera:

  • Tokenizacja tekstu na liczby całkowite
  • Warstwa zanurzeń (embeddings) zamieniająca tokeny na wektory
  • Uproszczony mechanizm samouwagi (self-attention)
  • Sieć feed-forward do przetwarzania nieliniowego
  • Warstwa wyjściowa przewidująca kolejny token
  • Pętla autoregresywna generująca tekst słowo po słowie
  • Funkcja straty obliczająca błąd przewidywań
  • Optymalizator aktualizujący wagi modelu

Dlaczego budowa własnego modelu uczy więcej niż czytanie dokumentacji?

Teoria sztucznej inteligencji bywa abstrakcyjna i trudna do wyobrażenia. Przede wszystkim czytanie o macierzach i wagach nie daje takiego poziomu zrozumienia jak fizyczne uruchomienie kodu i obserwowanie, jak liczby zamieniają się w słowa. Twórca malutkiego LLM doskonale o tym wiedział, dlatego jego projekt zachęca do modyfikacji parametrów i eksperymentowania.

Na przykład modele LLM, jak zauważa ZIG, uczą się same, analizując miliardy przykładów tekstów. Oczywiście w tym edukacyjnym skrypcie nie mamy do czynienia z miliardami, ale zaledwie z setkami słów. To wystarcza, by zobaczyć mechanizm uczenia w akcji.

To demistyfikuje technologię. Gdy samodzielnie zmienisz rozmiar warstwy ukrytej i zobaczysz, jak model nagle głupieje, natychmiast rozumiesz, dlaczego wielkie korporacje inwestują miliardy w potężne klastry obliczeniowe.

Jak wygląda proces tokenizacji w uproszczonym modelu?

Tokenizacja to pierwszy krok w każdym modelu językowym, polegający na zamianie tekstu na liczby. W wielkich systemach takich jak GPT-4 używa się skomplikowanych algorytmów typu Byte Pair Encoding. W tym malutkim LLM zastosowano najprostszą możliwą metodę: każde unikalne słowo w słowniku dostaje swój własny numer. To drastycznie upraszcza cały proces.

Mianowicie model analizuje tekst, aby zrozumieć, które słowa pojawiają się razem, jak podkreśla Webmetric. W uproszczonej wersji ten proces jest w pełni widoczny. Możesz podejrzeć słownik i zobaczyć, jak słowo „kot” staje się liczbą 42.

Zauważyłem, że ta prostota ma jednak swoją cenę. Słownik rośnie bardzo szybko, a model nie radzi sobie z nieznanymi słowami (tzw. out-of-vocabulary). To świetna lekcja pokazująca, dlaczego zaawansowane systemy używają podziału na fragmenty słów.

CechaMalutki LLMDuży model (np. GPT-4)
Metoda tokenizacjiSłowa (word-level)BPE / Tiktoken
Rozmiar słownikaMały (setki)Ogromny (setki tysięcy)
Obsługa nowych słówBrak (OOV error)Poprawna dekompozycja
Złożoność koduMinimalnaBardzo wysoka

Co to znaczy, że model uczy się na ukrytych tokenach?

Uczenie na ukrytych tokenach (masked predictions) to kluczowa faza treningu każdego modelu językowego. Polega ona na celowym ukrywaniu pewnych słów w zdaniu, a następnie zmuszaniu modelu do ich odgadnięcia na podstawie otaczającego kontekstu. To właśnie ten proces pozwala sztucznej inteligencji nauczyć się gramatyki, faktów i logiki językowej.

Otóż według Google for Developers, model trenuje na ukrytych przewidywaniach, co oznacza, że pewne tokeny w danych treningowych są celowo ukrywane. W malutkim LLM widać to w najprostszej postaci. Skrypt losowo maskuje słowa i mierzy, jak dobrze model je przewiduje.

Gdy testowałem ten mechanizm, przypominał mi to znane z dzieciństwa ćwiczenie „wstaw brakujące słowo”. Model dosłownie zgaduje, co powinno znaleźć się w pustym miejscu, a funkcja straty informuje go, jak bardzo się pomylił.

Jak minimalny model radzi sobie z generowaniem tekstu?

Generowanie tekstu w małym modelu językowym to proces autoregresywny. Oznacza to, że model przewiduje jedno słowo, dodaje je do istniejącego zdania, a następnie używa tego nowego, dłuższego zdania do przewidzenia kolejnego słowa. Cykl powtarza się aż do spełnienia warunku zakończenia lub osiągnięcia limitu długości.

Zatem w przeciwieństwie do potężnych narzędzi takich jak ChatGPT, ten model nie posiada zaawansowanego dekodowania z karą za powtarzalność. Tekst bywa chaotyczny. W modelach dialogowych, jak zauważa Streamsoft, aktywnie reaguje się na polecenia, aby dostarczyć odpowiedzi zgodnych z intencją pytającego. Tutaj mamy czysty, surowy proces numeryczny.

To surowe wyjście jest jednak niezwykle cenne edukacyjnie. Pozwala zrozumieć, dlaczego surowy model językowy potrzebuje dodatkowego dostrojenia (fine-tuningu), aby stać się użytecznym asystentem.

Jakie są ograniczenia edukacyjnego modelu językowego?

Edukacyjny model językowy posiada fundamentalne ograniczenia, które celowo go oddzielają od komercyjnych systemów. Według raportu Jeleśniańskiego (2026), korzystając z chatbota, mamy narzuconą konkretną konfigurację modelu, którą tylko częściowo możemy zmienić, a niektórzy twórcy wręcz ograniczają możliwości modelu, wiążąc rozmiar okna kontekstu z wybranym planem abonamentowym. W malutkim LLM te ograniczenia są jeszcze bardziej drastyczne, ponieważ brakuje tu jakichkolwiek zabezpieczeń i zaawansowanego dostrajania.

Polski model językowy PLLuM, jak podkreśla AI HUB Poland, nie sprawdzi się, jeśli liczy się absolutna świeżość danych, jeśli nie mamy czasu na sprawdzanie odpowiedzi lub jeśli zadanie można łatwo rozwiązać prostym algorytmem. To doskonale opisuje sytuację z naszym miniaturowym skryptem. Nie otrzymasz od niego merytorycznej odpowiedzi.

Zatem edukacyjny model służy wyłącznie do zrozumienia działania kodu. Gdy testowałem ten skrypt, zauważyłem, że wygenerowany tekst bywa pozbawiony sensu po zaledwie kilkunastu słowach. To surowe przypomnienie, że jakość wyników jest bezpośrednio proporcjonalna do rozmiaru modelu i ilości danych treningowych.

Oto główne ograniczenia malutkiego modelu:

  • Brak dostępu do aktualnej wiedzy i bieżących wydarzeń
  • Skłonność do generowania nieprawdziwych informacji (halucynacji)
  • Bardzo małe okno kontekstowe ograniczające pamięć
  • Brak wbudowanych filtrów moralnych i bezpieczeństwa
  • Znaczny spadek jakości przy dłuższych tekstach
  • Całkowity brak specjalistycznej wiedzy domenowej
  • Niemożność wykonywania poleceń i instrukcji użytkownika
  • Słaba obsługa języków innych niż angielski

Dlaczego surowy model wymaga dodatkowego dostrojenia?

Surowy model językowy potrzebuje dodatkowego dostrojenia, ponieważ jego podstawowym zadaniem jest jedynie przewidywanie kolejnego słowa, a nie merytoryczne odpowiadanie na pytania. Jak wyjaśnia Streamsoft, model dialogowy został opracowany z myślą o naturalnej konwersacji z użytkownikiem i aktywnie reaguje na polecenia, aby dostarczyć odpowiedzi najbardziej zgodnych z intencją pytającego. Surowy skrypt tego nie potrafi.

Co więcej, według X-ONE, modele te łatwo dostosowują się do różnych dziedzin i rzeczywistych zastosowań. Jeśli model został wytrenowany na ogólnych danych, można go następnie poduczyć w konkretnych obszarach, takich jak medycyna, prawo czy technologia. Ten proces dodatkowego szkolenia jest krytyczny.

Mimo to malutki LLM nie przechodzi przez ten etap. Zauważyłem, że brak instrukcji sprawia, iż wyniki są chaotyczne. To idealnie obrazuje, dlaczego zaawansowane systemy wymagają ogromnych nakładów pracy ludzkiej nad ich dostrojeniem.

Czego można się nauczyć, analizując kod minimalnego LLM?

Analizując kod minimalnego LLM, uczysz się przede wszystkim mechaniki matematycznej stojącej za sztuczną inteligencją, od macierzy aż po obliczanie gradientów. Jak zauważa KajoData, architektura transformera pozwala LLM zrozumieć i rozpoznawać zależności i powiązania między słowami i koncepcjami za pomocą mechanizmu samouwagi, który przypisuje wynik, powszechnie nazywany wagą, danemu elementowi. W uproszczonym skrypcie te wagi widać bezpośrednio.

Ponadto Empressia podkreśla, że duże modele językowe szkolone są na potężnych zbiorach tekstów. W malutkim projekcie ten proces został skompresowany do zaledwie kilku linijek kodu. Możesz dosłownie prześledzić, jak słowo zamienia się w wektor.

W mojej praktyce najlepszym sposobem na naukę była modyfikacja zmiennych w kodzie. Zmiana rozmiaru wektora zanurzeń natychmiast wpływa na jakość wyników. To daje intuicję, jak wrażliwe są te systemy na parametry architektoniczne.

Jakie zasoby sprzętowe są potrzebne do uruchomienia tego projektu?

Do uruchomienia tego projektu wystarczy standardowy komputer osobisty, ponieważ edukacyjny model nie wymaga potężnych kart graficznych ani serwerów obliczeniowych. Według Webmetric, model analizuje tekst, aby zrozumieć, które słowa pojawiają się razem. W tym uproszczonym skrypcie ta analiza odbywa się na tak małą skalę, że procesor CPU radzi sobie bez problemu.

Z kolei ZIG podkreśla, że modele LLM uczą się same, analizując miliardy przykładów tekstów z książek, stron internetowych, forów dyskusyjnych czy kodu źródłowego. Oczywiście nasz miniaturowy projekt pomija ten miliardowy zbiór danych, co drastycznie obniża wymagania sprzętowe.

Przetestowałem repozytorium na zwykłym laptopie biurowym. Trening zakończył się w kilka sekund. To niesamowite, jak mało zasobów potrzeba, by zobaczyć działający fundament sztucznej inteligencji.

ZasóbWymaganie dla malutkiego LLMWymaganie dla dużego modelu
Procesor (CPU)Standardowy, dowolnyWyspecjalizowany lub chmura
Pamięć RAMPoniżej 1 GBSetki gigabajtów
Karta graficzna (GPU)BrakKonieczna (np. klastry A100)
Czas treninguSekundy do minutTygodnie lub miesiące

Często zadawane pytania

Czy malutki LLM potrafi merytorycznie odpowiadać na pytania?

Nie, ten skrypt wyłącznie przewiduje kolejne słowa na podstawie lokalnego kontekstu. Jak zauważa AI HUB Poland, LLM nie sprawdzi się, jeśli nie mamy czasu na sprawdzanie odpowiedzi, ponieważ model może wygenerować nieprawdziwe informacje.

Ile pamięci RAM potrzeba do uruchomienia edukacyjnego modelu?

Wystarczy mniej niż 1 GB pamięci RAM, ponieważ projekt działa na niewielkich zbiorach danych. Webmetric potwierdza, że model analizuje tekst, by zrozumieć, które słowa pojawiają się razem, a ten proces w minimalnej skali nie wymaga dedykowanego sprzętu.

Dlaczego tekst wygenerowany przez ten model jest często pozbawiony sensu?

Wynika to z braku dodatkowego dostrojenia i minimalnej ilości danych treningowych. Streamsoft wyjaśnia, że model dialogowy aktywnie reaguje na polecenia, podczas gdy surowy model jedynie statystycznie dobiera kolejne słowa.

Czy architektura tego modelu obsługuje język polski?

Tak, ale w bardzo ograniczonym stopniu ze względu na słownik oparty na pełnych słowach. Jeleśniański (2026) podkreśla, że narzucona konfiguracja modelu determinuje jego możliwości językowe, co w prostych skryptach wyklucza płynną obsługę polszczyzny.

Podsumowanie

Projekt malutkiego LLM udowadnia, że fundamenty sztucznej inteligencji są zaskakująco przystępne. Oto najważniejsze wnioski z tej analizy:

  • Architektura transformera jest w pełni zrozumiała, gdy pozbędziemy się nadmiarowej złożoności
  • Tokenizacja i mechanizm samouwagi działają identycznie w małych i wielkich modelach
  • Surowy model językowy wymaga dostrojenia, by stać się użytecznym asystentem
  • Edukacyjne skrypty demistyfikują technologię lepiej niż jakikolwiek podręcznik
  • Zrozumienie ograniczeń miniaturowego systemu pomaga oceniać potencjał komercyjnych rozwiązań

Zachęcam do samodzielnego przejrzenia repozytorium na GitHubie i uruchomienia kodu na własnym komputerze. Zmień parametry, prześledź macierze i zobacz na własne oczy, jak liczby zamieniają się w tekst. To najszybsza droga do prawdziwego zrozumienia sztucznej inteligencji.