TinyServe: co robi model AI, gdy odpowiada
Czemu długie pytanie liczy się szybko, a odpowiedź powstaje wolno? TinyServe pokazuje to na prawdziwym modelu, który liczy się na Twojej karcie graficznej.
- Rodzaj
- Nasz projekt własny
- Dla kogo
- Programiści i inżynierowie ML
- Rok powstania
- 2026
- Podobny projekt
- Cennik i kontakt studia
W skrócie
Pytanie liczy się od razu w całości, a odpowiedź powstaje wolniej, token po tokenie.
Model AI to czarna skrzynka, nawet dla inżynierów
Czemu pytanie liczy się szybko, a odpowiedź wolno? TinyServe pokazuje to na żywo, na prawdziwym modelu.
Siedem widoków, każdy pokazuje jeden mechanizm
| Widok | Co pokazuje i status |
|---|---|
| Prefill vs dekodowanie | Długie pytanie szybko, odpowiedź token po tokenie Zmierzone |
| KV cache | Pamięć rosnąca z każdym tokenem Wyliczone ze wzoru |
| Atencja | Mapa uwagi wybranej warstwy Przybliżone |
| Dekodowanie spekulacyjne | Mały model proponuje, duży weryfikuje Symulowane |
| Pamięć stronicowana | Przydział stronicowany obok ciągłego Symulowane |
| Modele | Pięć modeli obok siebie Liczby autorów modeli |
| Losowanie | Prawdopodobieństwa następnego tokenu Zmierzone |
Liczby z pomiarów
- 5
- modeli wczytasz i porównasz w widoku Modele
- 579 MB
- waży najmniejszy model (Qwen3 0.6B), rozmiar odczytany z huggingface.co przed pobraniem
- 0
- zapytań do serwera, żeby powstała odpowiedź, liczy ją Twoja karta graficzna (pomiar w Chromium z zasymulowanym WebGPU)
Dla inżynierów: stos technologiczny
| Warstwa | Wybór | Co to daje |
|---|---|---|
| Język | TypeScript, bez frameworka | Lekka strona, więc wykresy nadążają za tekstem. |
| Build | Vite | Statyczny plik: otwierasz adres i działa, bez serwera. |
| Inferencja | @huggingface/transformers (WebGPU) | Odpowiedzi liczy prawdziwy model na Twojej karcie graficznej. Bez WebGPU aplikacja odtwarza nagrany przebieg. |
| Wizualizacje | D3 | Pamięć, opóźnienia i uwagę widzisz jako rysunek zmieniający się z każdym tokenem. |
Pełny opis widoków i metody pomiaru
Problem inżynierów
Zespoły wdrażające AI pytają: czemu długie pytanie liczy się szybko, a odpowiedź powstaje wolno? Czemu pamięć karty graficznej kończy się przy dłuższej rozmowie? Slajdy tego nie tłumaczą. TinyServe pokazuje te mechanizmy na żywo, na prawdziwym modelu, bez serwera i bez instalacji.
Siedem widoków: pełny opis
Prefill vs dekodowanie: dwa etapy pokazane osobno: długie pytanie liczy się szybko i równolegle, a odpowiedź powstaje token po tokenie. Czas każdego tokenu jest zmierzony. KV cache: wykres pamięci rosnącej z każdym tokenem, na tle budżetu okna rozmowy. To rozmiar wyliczony ze wzoru z konfiguracji modelu, nie odczyt z karty graficznej. Atencja: mapa cieplna uwagi dla wybranej warstwy. To zamiennik, nie odczyt: biblioteka nie udostępnia jeszcze prawdziwych tensorów uwagi, więc wzór jest modelowany i tak opisany w aplikacji. Pasek pod mapą pokazuje zmierzoną niepewność modelu przy każdym tokenie. Dekodowanie spekulacyjne: mały model proponuje token, duży go przyjmuje albo odrzuca. Docelowy model liczy naprawdę, a cykl proponowania i weryfikacji jest symulowany. Pamięć stronicowana: symulacja: przydział pamięci stronicowany (jak w vLLM) obok ciągłego, który się fragmentuje. Do ośmiu żądań naraz, każde nazwane R1 do R8. Modele: pięć modeli obok siebie: warstwy, rozmiary i wyniki testów ze źródłem i datą odczytu. To liczby autorów modeli, nie nasze pomiary, a słupki ze znakiem ~ są oznaczonymi szacunkami. Losowanie: karta ocen jednego kroku: prawdopodobieństwa, z których model wybierał następny token, w ośmiu krokach, w których był najmniej pewny. W przebiegu na żywo zmieniasz temperaturę suwakiem, a słupki przeliczają się dokładnie.
Taśma przebiegu i nagrany przebieg
Pod sceną biegnie taśma przebiegu: jeden słupek na token (wysokość to czas tokenu, kreska pod nim to niepewność modelu), a pinezki prowadzą do ośmiu rozwidleń. Kursor taśmy wybiera krok, który pokazują widoki 01, 02, 03 i 07, karta kroku i odczyty. Przy pierwszej wizycie nagrany przebieg Qwen3 0.6B gra od razu, jeszcze przed pobraniem modelu: tekst pisze się token po tokenie, a licznik w nagłówku pokazuje „n z 101” (nagrano na Apple Metal-3, odtwarzane wolniej niż nagrano).
Liczby: pełny opis
5 modeli wczytasz jeden po drugim (Qwen3 0.6B i 1.7B, Llama 3.2 1B, LFM2.5 1.2B Think, DeepSeek-R1 1.5B) i porównasz w widoku Modele. Zmiana modelu przeładowuje stronę. 579 MB waży najmniejszy z modeli (Qwen3 0.6B): rozmiar odczytany z huggingface.co przed pobraniem (pomiar: 578,9 MB), nie szacowany. Druga wizyta startuje z pamięci przeglądarki. 0 zapytań do serwera, żeby powstała odpowiedź: model liczy ją na Twojej karcie graficznej. Strona pyta tylko huggingface.co o rozmiary plików (7 zapytań, żadne z promptem; policzone Playwrightem w Chromium z zasymulowanym adapterem WebGPU).
Co zmierzone, co symulowane
Odpowiedź powstaje na Twojej karcie graficznej, nie na serwerze. Zmierzone: czas każdego tokenu i prawdopodobieństwa następnego tokenu. Wyliczone ze wzoru: rozmiar KV cache. Symulowane lub przybliżone: mapa atencji, dekodowanie spekulacyjne i pamięć stronicowana. Liczby autorów modeli: wyniki testów w widoku Modele, ze źródłem przy każdym modelu.
Zrzut ekranu
Aplikacja po zamknięciu panelu startowego: lista widoków po lewej, wykres czasu na token pośrodku, odczyty i zapis po prawej, a pod spodem taśma przebiegu zatrzymana w kroku 58, jednym z ośmiu rozwidleń.
