Przejdź do treści

Lokalne AI w przeglądarce: sprawdziłem MicroLLM Lab, siedem modeli bez konta

Rejestr pomiarowy: zielona strefa Laboratorium przeglądarki z kartą Przeglądarka i pomiarami 2,0 tok/s na CPU oraz 115 tok/s na WebGPU, siedem kropkowanych ścieżek do plakiet modeli PetitGPT, SmolLM2, L20-Edu, MiniMind2 i GPT-2 z wagami; po polsku zero z siedmiu modeli; stan 30.09.2026

Pod koniec września na Hacker News pojawił się projekt MicroLLM Lab: jedna strona, na której siedem małych modeli językowych działa w całości w twojej przeglądarce. Bez konta, bez klucza API, bez instalacji. Klikasz Load, model ważący kilkadziesiąt megabajtów zapisuje się w pamięci przeglądarki i po chwili odpowiada na pytania, a prompt, przynajmniej według deklaracji autora, nie opuszcza twojego komputera. Sprawdziłem to na laptopie biurowym bez karty graficznej do AI. Działa, choć z wyraźnymi ograniczeniami, a największe jest takie, że te modele nie mówią po polsku.

Spis treści:

Czym jest MicroLLM Lab

MicroLLM Lab to stronka postawiona wokół otwartego repozytorium microllm-lab na GitHubie. Wątek na Hacker News z dwudziestego ósmego września zebrał w dobę 278 punktów i ponad sto komentarzy, w większości od ludzi testujących modele na własnym sprzęcie i dzielących się wynikami, często żenującymi dla modeli. Sama idea jest prosta: skoro przeglądarki mają dziś dostęp do karty graficznej przez WebGPU, drobny model językowy da się policzyć na miejscu, tak jak strona liczy animacje, czyli bez własnego serwera.

Lista siedmiu modeli w MicroLLM Lab: PetitGPT research-v1, SmolLM2 135M Instruct, L20-Edu 135M, SmolLM2 360M Instruct, MiniMind2 104M, MiniMind2 Small 26M i GPT-2 124M, każda karta z rozmiarem pliku, licencją i przyciskiem Load
Zrzut ekranu: stateofutopia.com, moje testy, 30.09.2026.

W zestawie siedem modeli, wszystkie na otwartych licencjach Apache-2.0 albo MIT. PetitGPT research-v1 to projekt jednej osoby, wytrenowany na pojedynczej karcie RTX 4090 na około trzynastu miliardach tokenów. SmolLM2 135M i 360M Instruct pochodzą z serii małych modeli Hugging Face, trenowanej na około dwóch bilionach tokenów. Dalej dwa edukacyjne MiniMind2 z Chin (26 i 104 miliony parametrów), L20-Edu wytrenowany na jednej karcie L20 oraz GPT-2 124M, czyli model z 2019 roku udostępniony przez OpenAI na licencji MIT. Cała siódemka zajmuje razem 605,6 MB, ale najmniejszy mieści się w 15,4 MB.

ModelParametryRozmiar w Q4
PetitGPT research-v1124,6 mln74,4 MB
SmolLM2 135M Instruct134,5 mln80,3 MB
SmolLM2 360M Instruct362 mln215,9 MB
L20-Edu 135M134,5 mln80,3 MB
MiniMind2 104M104 mln62,1 MB
MiniMind2 Small 26M25,8 mln15,4 MB
GPT-2 124M124 mln77,1 MB

Jak to działa

Dwie technologie robią tu całą robotę i obie zdecydują, czy u ciebie to działa, czy nie. Pierwsza to WebGPU, standard W3C dający stronom dostęp do GPU. Działa w Chrome, Edge i Brave od wersji 113, natomiast w Firefoksie pod Linuksem wciąż bywa niedostępny, na co narzekał już pierwszy komentarz pod wątkiem. Druga to kwantyzacja Q4: zamiast zapisywać każdy parametr w szesnastu bitach, model pakuje się do czterech bitów na parametr i stumilionowy model waży około osiemdziesiąt megabajtów zamiast kilkuset. To ta sama rodzina trików, dzięki której lokalne modele w ogóle mieszczą się na laptopach.

Gdy WebGPU nie jest dostępny, strona nie odmawia działania, tylko przełącza się na tryb WASM liczony procesorem. To właśnie scenariusz, który zmierzyłem u siebie, bo mój sprzęt testowy nie ma osobnej karty graficznej. Raz pobrane wagi lądują w IndexedDB, wewnętrznej bazie przeglądarki, więc przy kolejnej wizycie model nie pobiera się drugi raz; po moich testach strona raportowała 154,8 MB w dwóch modelach zapisanych na urządzeniu.

Jedno zastrzeżenie dla ludzi myślących o prywatności. Obietnica, że prompt nie opuszcza maszyny, jest deklaracją autora, a ja nie przeprowadzałem pełnego audytu ruchu sieciowego strony. Kod publicznej strony może się zmienić przy dowolnej aktualizacji, więc naprawdę wrażliwe notatki wklejałbym wyłącznie do kopii postawionej lokalnie z repozytorium. Do zwykłych pytań testowych żywa strona nadaje się bez wahania.

Mój test: laptop bez GPU do AI

Testowy sprzęt to i7-10850H, 64 GB RAM i zintegrowana grafika Intel UHD, czyli przeciętny laptop biurowy, a nie stacja do uczenia maszynowego. W testowanej przeglądarce adapter WebGPU nie był dostępny, więc strona sama włączyła tryb WASM i uczciwie pokazała odpowiedni komunikat na początku.

PetitGPT, 74,4 MB, pobrał się w kilka sekund przy około 13 MB/s. Prośba o krótkie przywitanie wróciła po chwili: „Hello! How can I help you today?”. W logu strony widniała prędkość 2,0 tokenu na sekundę, backend WASM. Dla porównania autor projektu podaje dla tego samego modelu 115 tok/s na Apple M4 z włączonym WebGPU, a strona obiecuje w trybie sprzętowym od 100 do ponad 300 tok/s. Różnica między GPU a CPU to tu nie kilkadziesiąt procent, tylko jeden albo dwa rzędy wielkości. Na moim sprzęcie odpowiedź pojawiała się w tempie wyraźnie wolniejszym niż czytanie.

Arytmetyka wypadła lepiej, niż spodziewałem się po lekturze komentarzy. Na pytanie „What is 2+2? Answer with just the number” PetitGPT odpowiedział: „2+2 is 2 + 2 = 4.”. Poprawnie, choć okrężnie, bo innym użytkownikom ten sam model odpowiadał „2+2 is 2″, a jeszcze innym wyprowadzał równanie kończące się błędem. Małe modele są po prostu loteryjne: ta sama waga pliku i ten sam prompt dają różne odpowiedzi w zależności od trybu dekodowania.

SmolLM2 135M Instruct, drugi model, który załadowałem, na oba angielskie pytania wypadł czysto: „Hello, I’m here to assist you in a variety of ways.” oraz po prostu „2 + 2 = 4″. Widać tu różnicę między checkpointem badawczym trenowanym na trzynastu miliardach tokenów a modelem instrukcyjnym z dwoma bilionami za sobą. Wbudowany pakiet testów, dwadzieścia jeden zadań, na Apple M4 wykonuje się w około sześć sekund; u mnie widoczny licznik zdążył pokazać test drugi z dwudziestu jeden, a po dziesięciu minutach pakiet wciąż się liczył. Na CPU fallback to materiał na przerwę, nie benchmark.

Polski język: klapa

Najciekawszy dla polskiego czytelnika okazał się test językowy. PetitGPT poproszony o napisanie jednego zdania po polsku o kocie odpowiedział: „Napisz Jedno Zdanie Po Polsku O Kocie is a city in Poland. It is located in the district of Olszow.” Model potraktował moje zdanie jak nazwę własną, dopowiedział do niej fikcyjne miasto i spokojnie kontynuował o jego zabytkach oraz turystyce. SmolLM2 był uprzejmie bezradny: „I’m sorry for the misunderstanding, but as a language model, I don’t have the ability to assist in the case of a specific language”, po czym poradził skontaktowanie się z profesjonalistą albo z modelem językowym. Rada kontaktu z modelem językowym, wygłoszona przez model językowy, to moje ulubione zdanie całego testu.

Panel czatu MicroLLM Lab podczas moich testów: odpowiedzi na pytania angielskie są poprawne, a prośba o zdanie po polsku kończy się odpowiedzią modelu SmolLM2, że nie potrafi pomóc w sprawie konkretnego języka
Zrzut ekranu: stateofutopia.com, moje testy, 30.09.2026.

To prosta arytmetyka zbiorów treningowych, nie wada samego laboratorium. Modele tej wielkości trenuje się po angielsku, czasem z domieszką chińskiego, bo każdy kolejny język kosztuje tokeny, których przy stu trzydziestu pięciu milionach parametrów po prostu nie ma. Zanim więc klikniesz Load, wiedz, że żaden z tej siódemki nie napisze maila po polsku ani nie streści polskiego artykułu.

Po co to komu

Dla dewelopera rozważającego funkcję AI działającą na urządzeniu klienta to najtańszy możliwy poligon. Kilka minut w przeglądarce pokazuje na prawdziwym sprzęcie użytkowników, jak smakuje kompromis między jakością odpowiedzi a szybkością, i to bez konfigurowania czegokolwiek. Dla ciekawych to żywa lekcja budowy modeli językowych: widać pobieranie wag, cache w przeglądarce, licznik tokenów na sekundę, wyniki testów i porównania między modelami, wszystko po stronie klienta.

W README projektu jest zdanie, które uczciwie podsumowuje całe przedsięwzięcie: „Cloud models are better. That is not the point.”, czyli modele chmurowe są lepsze i nie o to chodzi. Autor nie udaje, że 135 milionów parametrów dorówna GPT-6 czy Claude. Kierunek zarysowuje się sam: w wątku Hacker News pojawiła się już propozycja Web Models API, interfejsu, którym przeglądarka sama udostępniałaby modele stronom. Dzisiejsze eksperymenty to rozgrzewka przed tą erą.

Co zamiast tego do pracy po polsku

Jeśli chcesz realnie pracować lokalnie i po polsku, MicroLLM Lab nie jest tym narzędziem. Celuj w pełnowymiarowe modele open weights uruchamiane na własnym komputerze przez narzędzia typu Ollama, które opisywałem szerzej w wpisie o DeepSeek po polsku, albo po prostu w chmurę. Przegląd większych narzędzi AI z cenami trzymam na stronie narzędzia AI. A jeśli motywem jest prywatność, a nie polszczyzna, piszę szerzej o tym, co ChatGPT wie o tobie dzięki ciasteczku __obi.

Nota uczciwości

Test wykonałem 30 września 2026 na laptopie z i7-10850H i zintegrowaną grafiką Intel UHD, w przeglądarce bez aktywnego adaptera WebGPU, czyli na backendzie WASM. Prędkości dla trybu WebGPU pochodzą z deklaracji autora projektu, mierzonych na Apple M4, a nie z mojego pomiaru. Odpowiedzi modeli cytuję jednorazowo z własnej sesji testowej; małe modele bywają loteryjne i powtórzenie tego samego pytania może dać inny wynik. Deklarację prywatności cytuję za autorem, bez audytu ruchu sieciowego.

Źródła

  1. MicroLLM Lab, strona projektu, stan 30 września 2026
  2. Repozytorium robss2020/microllm-lab, GitHub, README z listą modeli i pomiarami na Apple M4
  3. Wątek „MicroLLM Lab – Try 7 tiny LLM’s in the browser”, Hacker News, 28 września 2026, 278 punktów
  4. Repozytorium yangqi0/petitgpt, GitHub, trening PetitGPT
  5. HuggingFaceTB/SmolLM2-135M-Instruct, karta modelu, Hugging Face

Powiązane artykuły