Transformers.js

Biblioteka JavaScript uruchamiająca modele uczenia maszynowego bezpośrednio w przeglądarce, na warstwie środowiska uruchomieniowego ONNX z akceleracją WebGPU. Obsługuje nie tylko modele językowe, ale też embeddingi, rozpoznawanie mowy, syntezę mowy i zadania wizyjne.

W Polsce nazywane też:

Transformers.jsbiblioteka modeli w przeglądarcemodele po stronie klienta

Przez lata uruchomienie modelu uczenia maszynowego wymagało serwera, środowiska w Pythonie i rachunku za tokeny. Transformers.js usuwa wszystkie trzy pozycje — kosztem jednorazowego pobrania.

Czym jest Transformers.js

Transformers.js to biblioteka JavaScript rozwijana przez Hugging Face, uruchamiająca modele uczenia maszynowego bezpośrednio w przeglądarce, w Node i w pokrewnych środowiskach. Stanowi warstwę nad środowiskiem uruchomieniowym ONNX: dostarcza tokenizatory, szablony rozmowy, potoki zadaniowe oraz przetwarzanie wstępne i końcowe, a samo liczenie zleca WebGPU albo WASM.

Jak wygląda łańcuch

Model eksportuje się do ONNX i kwantyzuje. Biblioteka pobiera plik i zapisuje go w pamięci podręcznej przeglądarki, więc koszt pobrania ponosi się raz. Inferencję uruchamia się w osobnym wątku roboczym, żeby nie blokować interfejsu.

Do czego się nadaje

Najlepiej do zadań mniejszych niż generowanie tekstu: embeddingi do wyszukiwania semantycznego bez zaplecza, rozpoznawanie mowy, klasyfikacja, rozpoznawanie encji, przeszeregowanie wyników, synteza mowy, usuwanie tła z obrazów. Modele w tych zadaniach ważą od kilkudziesięciu do kilkuset megabajtów i uruchamiają się niemal natychmiast.

Gdzie są granice

Generowanie tekstu przez model kilkumiliardowy działa, ale wymaga pobrania rzędu gigabajta i daje jakość nieporównywalną z modelami serwowanymi przez API. Jako główna funkcja produktu ma sens wtedy, gdy praca offline albo nieopuszczanie urządzenia przez dane są twardym wymogiem.

Co zmienia dla autora strony

Model przestaje być czymś, co dostawca przeglądarki wdraża bez pytania. Staje się czymś, co autor wdraża świadomie: z wybranym wariantem, znaną wersją i pełną kontrolą nad tym, co dokładnie zostaje przetworzone.

ONNXOtwarty format zapisu modeli uczenia maszynowego, pozwalający wyeksportować model z jednego środowiska treningowego i uruchomić go w innym. W praktyce najczęstszy nośnik grafu obliczeniowego — także dla modeli uruchamianych w przeglądarce.WebAssemblyBinarny format kodu wykonywanego przez przeglądarkę z wydajnością zbliżoną do natywnej. Dla modeli AI pełni rolę ścieżki zapasowej tam, gdzie nie ma dostępu do karty graficznej — wolniejszej od WebGPU, ale działającej praktycznie wszędzie.WebGPUStandard W3C dający stronom internetowym dostęp do karty graficznej użytkownika, zarówno do grafiki, jak i do obliczeń ogólnego przeznaczenia. Dla modeli językowych oznacza możliwość uruchomienia inferencji lokalnie z akceleracją sprzętową, bez wysyłania czegokolwiek na serwer.kwantyzacjaZapisanie wag modelu z mniejszą precyzją liczbową, co zmniejsza zużycie pamięci i przyspiesza obliczenia kosztem dokładności. Umożliwia uruchamianie dużych modeli lokalnie. To nie to samo co destylacja — kwantyzacja zmienia zapis tych samych wag, destylacja tworzy nowy, mniejszy model.Przeglądarka-jako-AgentParadygmat w którym przeglądarka zawiera wbudowany lokalny LLM modulujący doświadczenie każdej odwiedzanej strony — bez wyraźnej intencji użytkownika i bez wiedzy autora strony. W przeciwieństwie do Agent-in-Browser (świadomie uruchamiany gość), Browser-as-Agent jest cały czas obecny. Wcielenie: Chrome z Gemini Nano w 500M+ urządzeń.Lokalny model językowyModel językowy uruchamiany lokalnie — bez zewnętrznego API — zapewniający prywatność danych, działanie offline i przewidywalne koszty. Llama, Mistral, Phi jako popularne modele. Ollama jako de facto standard dla developerów.Osadzenie wektoroweNumeryczna reprezentacja tekstu w wielowymiarowej przestrzeni wektorowej, gdzie podobne znaczeniowo obiekty mają bliskie wektory — fundament wyszukiwania semantycznego i RAG. Termin obejmuje dwie różne rzeczy: wiersz macierzy embeddingów wskazywany numerem tokenu wewnątrz modelu językowego oraz wektor całego tekstu zwracany przez osobny model embeddingowy.