top of page

Google LiteRT.js przenosi wysokowydajne wnioskowanie AI w przeglądarce, ale kompatybilność będzie sprawdzianem

Google uruchomiło LiteRT.js 9 lipca, udostępniając swoje wysokowydajne środowisko uruchomieniowe do wnioskowania Web AI bezpośrednio w aplikacjach JavaScript, mimo nierównego poziomu akceleracji w przeglądarkach. Nowa biblioteka uruchamia modele uczenia maszynowego lokalnie za pośrednictwem WebGPU, eksperymentalnej obsługi WebNN lub awaryjnej ścieżki procesora opartej na WebAssembly.

Najważniejsza zmiana nie polega wyłącznie na tym, że przeglądarki mogą uruchamiać modele AI. TensorFlow.js i ONNX Runtime Web już oferują taką możliwość. Google przenosi swój natywny, wieloplatformowy stos LiteRT do przeglądarki, gdzie może ponownie wykorzystywać optymalizacje opracowane dla systemów Android, iOS i desktopowych.

Ta decyzja wywiera presję na biblioteki wnioskowania projektowane przede wszystkim z myślą o JavaScripcie. Sprawdza również, czy ujednolicone natywne środowisko uruchomieniowe może zapewnić spójne rezultaty w rozdrobnionym ekosystemie przeglądarek i sprzętu. Google informuje o znaczących wzrostach wyników benchmarków, ale liczby te pochodzą z kontrolowanego środowiska Apple M4, a nie z różnorodnych urządzeń używanych w publicznym internecie.

Google LiteRT.js zmienia warstwę środowiska uruchomieniowego Web AI

Google LiteRT.js przybliża wnioskowanie w przeglądarce do środowiska uruchomieniowego używanego na natywnych platformach brzegowych.

Google opisuje LiteRT.js jako powiązanie JavaScript dla LiteRT — swojego stosu do wnioskowania na urządzeniu. Deweloperzy mogą ładować modele .tflite i wykonywać je w przeglądarce bez przesyłania danych wejściowych do zdalnego serwera wnioskowania.

Wydanie LiteRT.js obsługuje aplikacje JavaScript i TypeScript. Początkowy pakiet zawiera narzędzia do ładowania, kompilowania i uruchamiania modeli, a także demonstracje obejmujące wyszukiwanie wektorowe, wykrywanie obiektów, szacowanie głębi i powiększanie obrazów.

Ta architektura zmienia miejsce, w którym wykonywana jest główna praca. Wcześniejsze biblioteki AI dla przeglądarek często implementowały operacje za pomocą jąder ukierunkowanych na JavaScript lub przeglądarkowych interfejsów graficznych. LiteRT.js udostępnia natywne środowisko uruchomieniowe Google przez WebAssembly — przenośny format binarny, który przeglądarki mogą wykonywać z prędkością zbliżoną do natywnej.

Środowisko uruchomieniowe wybiera następnie ścieżkę akceleracji. XNNPACK obsługuje zoptymalizowane wykonywanie na procesorze, natomiast warstwa ML Drift firmy Google kieruje obliczenia na procesory GPU za pośrednictwem WebGPU. WebNN, rozwijany interfejs przeglądarkowy dla sprzętu do sieci neuronowych, ma umożliwić dostęp do dedykowanych jednostek przetwarzania neuronowego.

WebAssembly zapewnia również ścieżkę awaryjną, gdy akcelerowane rozwiązania są niedostępne. Ma to znaczenie, ponieważ aplikacje internetowe nie mogą zakładać, że każdy użytkownik korzysta z tej samej przeglądarki, sterownika, karty GPU czy systemu operacyjnego.

Google przedstawia to wydanie jako rozwinięcie dla zespołów, które już używają modeli .tflite. Zespoły te mogą utrzymywać jeden format modelu dla środowisk mobilnych, desktopowych i internetowych, zamiast tworzyć osobny potok przeglądarkowy.

Użytkownicy PyTorch mogą wejść na tę ścieżkę za pośrednictwem LiteRT Torch. Google twierdzi, że narzędzie konwersji może przekształcać modele PyTorch w artefakty kompatybilne z LiteRT. Następnie AI Edge Quantizer może zmniejszyć rozmiar modelu i zapotrzebowanie na moc obliczeniową, wykorzystując reprezentacje o niższej precyzji w wybranych warstwach.

Premiera obejmuje pakiet @litertjs/core dystrybuowany za pośrednictwem npm. Google udostępnia również demonstracje przeglądarkowe i przykłady integracji w swoim repozytorium LiteRT. Zasoby te sprawiają, że ogłoszenie jest czymś więcej niż deklaracją kierunku rozwoju, choć gotowość produkcyjna nadal zależy od modelu i docelowych przeglądarek każdej aplikacji.

Przeglądarka może teraz obsługiwać modele generowania tekstu, wykrywania obiektów, przetwarzania dźwięku i tworzenia embeddingów za pośrednictwem tej samej szerszej rodziny środowisk uruchomieniowych, która jest używana na urządzeniach natywnych. Tworzy to wyraźniejszą ścieżkę wdrażania dla zespołów, które już dostarczają rozwiązania edge AI.

Lokalny model działania zmienia również sposób funkcjonowania aplikacji. Dane wejściowe mogą pozostać na urządzeniu użytkownika, wnioskowanie nie wymaga żądania do serwera, a niektóre funkcje mogą działać nadal bez połączenia z siecią.

Korzyści te są warunkowe, a nie automatyczne. Przeglądarka nadal musi pobrać model i środowisko uruchomieniowe. Urządzenie musi również dysponować wystarczającą pamięcią i mocą obliczeniową, aby wykonać zadanie bez pogorszenia responsywności.

Najważniejsza wiadomość ma więc charakter architektoniczny. Google nie wprowadza wnioskowania AI w przeglądarce po raz pierwszy. Udostępnia deweloperom przeglądarek środowisko uruchomieniowe ukształtowane przez lata wdrożeń edge AI na platformach natywnych.

Dlaczego wysokowydajne wnioskowanie Web AI w Google LiteRT.js ma teraz znaczenie

Przeglądarka staje się celem wykonywania AI, a nie tylko interfejsem dla modeli chmurowych.

Większość produktów generatywnej AI nadal przesyła prompty i inne dane wejściowe do zdalnej infrastruktury. Taki model dobrze sprawdza się w przypadku dużych modeli, scentralizowanych aktualizacji i zadań przekraczających możliwości sprzętu konsumenckiego.

Wnioskowanie w chmurze wiąże się jednak z opóźnieniami sieciowymi, stałymi kosztami obsługi oraz obawami dotyczącymi przesyłania danych. Może również uzależniać pozornie lokalny proces od stabilnego połączenia.

Wnioskowanie w przeglądarce oferuje inny model. Aplikacja pobiera odpowiedni model, przetwarza dane na urządzeniu i zwraca wyniki bez kontaktowania się z punktem końcowym wnioskowania przy każdym żądaniu.

Takie podejście pasuje do zadań, w których modele są niewielkie, a interakcje częste. Efekty z kamery internetowej, klasyfikacja dźwięku, embeddingi dokumentów, poprawa jakości obrazu i śledzenie obiektów mogą skorzystać na unikaniu wielokrotnych połączeń sieciowych.

Jednym z przykładów jest demonstracja wyszukiwania wektorowego Google. LiteRT.js może uruchamiać model embeddingów w przeglądarce, przekształcając tekst w reprezentacje liczbowe umożliwiające lokalne wyszukiwanie podobieństw.

Ten schemat może wspierać prywatne wyszukiwanie w ograniczonym zbiorze treści dostarczonych przez użytkownika. Może również pomóc aplikacji lokalnie uszeregować elementy przed wysłaniem ich do bardziej kosztownego modelu chmurowego.

Wydanie pojawia się w momencie, gdy WebGPU staje się praktyczną opcją obliczeniową w głównych przeglądarkach opartych na Chromium. WebGPU udostępnia nowoczesne możliwości procesorów GPU za pośrednictwem standardu internetowego zaprojektowanego z myślą o niskopoziomowej grafice i obliczeniach ogólnego przeznaczenia.

WebNN dotyczy innej warstwy. Zapewnia aplikacjom internetowym interfejs oparty na grafach, który implementacje przeglądarek mogą mapować na platformowe frameworki akceleracji. W zależności od systemu obejmują one Core ML i Windows ML.

Specyfikacja WebNN jest nadal rozwijana, a dostępność w przeglądarkach pozostaje ograniczona. Google określa obsługę WebNN w Chrome i Edge jako eksperymentalną, co czyni z niej komponent przyszłościowy, a nie uniwersalną ścieżkę produkcyjną.

Ta luka wyjaśnia, dlaczego LiteRT.js potrzebuje kilku backendów. WebGPU może zapewnić szeroką akcelerację GPU na obsługiwanych systemach. WebNN może docelowo udostępnić wydajne wykonywanie na NPU, a WebAssembly utrzymuje działanie aplikacji w pozostałych środowiskach.

Dla Google moment ten odzwierciedla również problem związany z portfolio produktów. Firma ma już TensorFlow.js do uczenia maszynowego w przeglądarce oraz LiteRT do natywnego wnioskowania brzegowego. Utrzymywanie oddzielnych ścieżek optymalizacji utrudnia przenoszenie usprawnień między platformami.

Wspólne środowisko uruchomieniowe oferuje bardziej bezpośrednią odpowiedź. Konwersja modeli, kwantyzacja, usprawnienia operatorów i prace ukierunkowane na konkretny sprzęt mogą trafiać do wielu celów wdrożeniowych.

Strategia ta ma znaczenie dla deweloperów utrzymujących tę samą funkcję AI w aplikacji mobilnej i internetowej. Wspólny artefakt .tflite nie eliminuje wszystkich różnic między platformami, ale zmniejsza liczbę formatów modeli i założeń dotyczących środowiska uruchomieniowego, którymi muszą zarządzać.

Ma to również znaczenie dla firm oceniających lokalne przetwarzanie wrażliwych materiałów. Utrzymywanie wnioskowania na urządzeniu może ograniczyć ilość danych wysyłanych do zewnętrznych systemów, choć deweloperzy nadal muszą przeanalizować analitykę, logowanie, pobieranie modeli i kod aplikacji.

Zespoły budujące lokalne przepływy pracy oparte na wiedzy stają przed podobnymi wyborami. Przeszukiwalna baza wiedzy może wykorzystywać lokalne modele do zadań takich jak tworzenie embeddingów lub klasyfikacja, pozostawiając większym modelom chmurowym bardziej wymagające rozumowanie.

Ten hybrydowy schemat jest prawdopodobnie bardziej realistyczny niż przeniesienie każdego zadania AI do przeglądarki. LiteRT.js wzmacnia lokalną część takiego rozwiązania, nie eliminując potrzeby korzystania z serwerów.

Presja w pierwszej kolejności dotyka istniejących środowisk uruchomieniowych do wnioskowania w sieci. Muszą one konkurować pod względem kompatybilności modeli, szybkości wykonywania, rozmiaru pakietu, narzędzi dla deweloperów i zachowania w różnych przeglądarkach.

Dotyka ona również architektur aplikacji opartych wyłącznie na chmurze. Jeśli typowe zadania związane z percepcją, wyszukiwaniem i multimediami będą działać wystarczająco dobrze na sprzęcie klienckim, deweloperzy zyskają kolejny sposób kontrolowania opóźnień i wykorzystania infrastruktury.

Natywne środowisko uruchomieniowe rzuca wyzwanie AI projektowanej przede wszystkim z myślą o JavaScripcie

LiteRT.js konkuruje dzięki ujednoliceniu środowiska uruchomieniowego, podczas gdy uznane alternatywy rywalizują ekosystemami modeli i zakresem obsługi przeglądarek.

TensorFlow.js pozostaje najważniejszym punktem odniesienia pod względem historii. Umożliwił deweloperom tworzenie i wykonywanie modeli uczenia maszynowego za pomocą JavaScriptu, z backendami obejmującymi WebGL i WebAssembly.

Google twierdzi obecnie, że LiteRT.js oferuje lepszą ścieżkę wykonywania modeli .tflite. Według firmy wcześniejsze podejścia TensorFlow.js opierały się na mniej wydajnych jądrach bazujących na JavaScripcie, podczas gdy LiteRT.js udostępnia natywne optymalizacje LiteRT za pośrednictwem WebAssembly.

Taka interpretacja nie sprawia, że TensorFlow.js staje się przestarzały. TensorFlow.js obsługuje tworzenie i trenowanie modeli, operacje na tensorach oraz ugruntowane API JavaScript. LiteRT.js jest obecnie przedstawiany w węższym ujęciu jako wysokowydajne środowisko uruchomieniowe do wnioskowania.

To rozróżnienie ma znaczenie. Zespół korzystający z TensorFlow.js do interaktywnego trenowania lub niestandardowych operacji na tensorach ma inne wymagania niż zespół wdrażający stały, zoptymalizowany model .tflite.

Google udostępnia wskazówki dotyczące używania wnioskowania LiteRT.js w istniejących potokach TensorFlow.js. Sugeruje to współistnienie podczas migracji, a nie natychmiastowe zastąpienie wszystkich zastosowań TensorFlow.js.

ONNX Runtime Web zapewnia silniejsze porównanie konkurencyjne. Już teraz obsługuje wnioskowanie w przeglądarce za pośrednictwem dostawców wykonawczych WebAssembly, WebGL, WebGPU i WebNN.

Przewodnik po wnioskowaniu w sieci opisuje lokalne korzyści, w tym mniejsze opóźnienia, działanie offline, prywatność i ograniczenie pracy po stronie serwera. Wskazuje również główne ograniczenie: modele uruchamiane po stronie klienta muszą mieścić się w możliwościach mniej wydajnego sprzętu.

ONNX Runtime Web wykorzystuje modele ONNX, podczas gdy LiteRT.js koncentruje się na artefaktach .tflite. Decyzja dotycząca formatu może mieć większe znaczenie niż wyniki benchmarków, ponieważ firmy często dysponują dojrzałymi potokami konwersji, walidacji i wdrażania.

Zespół skoncentrowany na PyTorch może już eksportować modele do ONNX. Zespół mobilny korzystający z LiteRT może preferować .tflite, ponieważ format ten pasuje do istniejących prac wdrożeniowych na Androidzie i iOS.

Zakres akceleracji jest równie złożony. Dokumentacja ONNX Runtime Web opisuje obsługę WebGPU i WebNN obok WebAssembly oraz starszego WebGL. LiteRT.js wykorzystuje WebGPU, WebNN i ścieżkę procesora opartą na XNNPACK.

Oba podejścia uwzględniają więc tę samą podstawową rzeczywistość. Żaden pojedynczy interfejs akceleracji w przeglądarce nie obejmuje obecnie wszystkich istotnych urządzeń.

Różnica strategiczna tkwi w fundamencie środowiska uruchomieniowego. ONNX Runtime rozszerza wieloplatformowy system wnioskowania na przeglądarkę, opierając go na formacie ONNX. Google rozszerza swoje środowisko brzegowe na przeglądarkę, opierając je na LiteRT i .tflite.

Nie jest to prosty pojedynek między jednym szybkim pakietem a jednym wolnym pakietem. To rywalizacja między ekosystemami wdrożeniowymi.

Google ma w tym wyścigu kilka atutów. LiteRT jest już powiązany z jego narzędziami mobilnymi i edge. Kaggle udostępnia wstępnie wytrenowane modele, a społeczność LiteRT utrzymuje modele w serwisie Hugging Face. Ultralytics dodało również obsługę eksportu LiteRT dla modeli YOLO.

Integracja z Ultralytics daje zespołom zajmującym się widzeniem komputerowym konkretną drogę od narzędzi do tworzenia modeli do przeglądarek. Demonstracja Google uruchamia YOLO26, rodzinę modeli do wykrywania obiektów, za pośrednictwem stosu LiteRT.

Inne demonstracje pokazują korzyści z akceleracji. Jedna z nich przekształca obraz z kamery internetowej w trójwymiarową chmurę punktów przy użyciu Depth Anything V2 i WebGPU. Inna uruchamia Real-ESRGAN, aby powiększać fragmenty obrazów ze 128 na 128 pikseli do 512 na 512 pikseli.

Przykłady te pokazują obciążenia, w przypadku których lokalne wykonywanie zapewnia wyraźną korzyść interakcyjną. Użytkownik oczekuje, że estymacja głębi z kamery internetowej lub edycja obrazu będzie reagować nieprzerwanie, a nie czekać na wielokrotne przesyłanie danych i odpowiedzi serwera.

Demonstracje odbywają się jednak w starannie dobranych warunkach. Nie dowodzą, że ten sam model będzie szybko się ładował, oszczędzał baterię i utrzymywał odpowiednią liczbę klatek na sekundę na popularnych telefonach i laptopach.

Adopcja przez deweloperów będzie więc zależeć od szczegółów operacyjnych. Zespoły potrzebują przewidywalnej konwersji modeli, szerokiej obsługi operatorów, użytecznych komunikatów o błędach, rozsądnych rozmiarów pakietów i narzędzi do profilowania.

Potrzebują również jasnej ścieżki migracji. Wydajność środowiska uruchomieniowego ma znaczenie dopiero wtedy, gdy zespół może odtworzyć wyniki modelu oraz zintegrować przetwarzanie wstępne i końcowe bez nieakceptowalnego nakładu pracy inżynieryjnej.

LiteRT.js high-performance Web AI inference ma wiarygodną przewagę wśród obecnych użytkowników LiteRT. Wyzwaniem będzie udowodnienie, że współdzielone środowisko uruchomieniowe oferuje wystarczające korzyści, aby przyciągnąć zespoły już korzystające z ONNX Runtime Web lub TensorFlow.js.

Deklaracje wydajności zderzają się z realiami przeglądarek

Benchmarki Google są obiecujące, ale różnorodność sprzętu i eksperymentalne API ograniczają wnioski, jakie mogą wyciągnąć deweloperzy.

Google twierdzi, że LiteRT.js przewyższał inne webowe środowiska uruchomieniowe nawet trzykrotnie w zakresie wnioskowania na CPU i GPU dla klasycznych modeli widzenia komputerowego i przetwarzania dźwięku.

Firma informuje również, że wykonywanie na GPU lub NPU za pośrednictwem WebGPU i WebNN zapewniało w wybranych testach przyspieszenie od pięciu do 60 razy w porównaniu ze standardowym wykonywaniem na CPU.

Twierdzenia te wymagają ostrożnego interpretowania. Google przeprowadziło opublikowane benchmarki na MacBooku Pro z 2024 roku wyposażonym w układ Apple M4, w kontrolowanym środowisku przeglądarki.

Google wyraźnie zaznacza, że wyniki mogą się różnić w zależności od możliwości GPU, ograniczania wydajności termicznej oraz optymalizacji sterowników przeglądarki. To zastrzeżenie ma kluczowe znaczenie przy ocenie tego ogłoszenia.

Wysokiej klasy laptop z układem M4 zapewnia korzystne warunki dla lokalnego wnioskowania. Wielu użytkowników korzysta jednak ze starszych notebooków, niedrogich telefonów, zarządzanych urządzeń firmowych lub przeglądarek oferujących inne poziomy obsługi akceleracji.

Siłą webu jest szeroka dystrybucja, ale właśnie ta różnorodność stwarza problem z testowaniem. Deweloperzy nie mogą tak łatwo optymalizować aplikacji pod jeden znany cel sprzętowy, jak w przypadku natywnej aplikacji wdrażanej na kontrolowanej flocie urządzeń.

Dostępność WebGPU poprawiła się, jednak obsługa nadal różni się między przeglądarkami i systemami operacyjnymi. Wykrywanie funkcji jest więc niezbędne. Aplikacje potrzebują również użytecznego rozwiązania awaryjnego, gdy inicjalizacja GPU się nie powiedzie lub dana operacja nie będzie obsługiwana przez akcelerację.

WebNN czeka jeszcze poważniejszy test dojrzałości. Google określa je jako eksperymentalne w Chrome i Edge. Jego propozycja wartości jest istotna, ponieważ może mapować grafy sieci neuronowych na dedykowane akceleratory platformy, w tym NPU.

Eksperymentalna dostępność oznacza jednak, że deweloperzy nie mogą traktować WebNN jako domyślnej ścieżki dla aplikacji przeznaczonej dla szerokiego grona odbiorców. Tablica implementacji śledzi obsługę operacji w Chromium i zapleczach platformowych, pokazując, że wsparcie rozwija się operacja po operacji.

Zakres obsługiwanych operatorów może decydować o tym, czy cały model pozostanie na akceleratorze. Jeśli nieobsługiwane operacje wywołują błędy lub wolniejsze działanie w trybie awaryjnym, deklarowane przyspieszenia mogą nie odzwierciedlać wydajności całej aplikacji.

Czas pobierania modelu stanowi kolejne ograniczenie. Lokalne wnioskowanie eliminuje powtarzające się żądania do serwera, ale przeglądarka musi najpierw pobrać wagi modelu i pliki środowiska uruchomieniowego. Duże artefakty mogą opóźnić pierwszą użyteczną interakcję.

Buforowanie pomaga powracającym użytkownikom, jednak zasady przechowywania danych i eksmisja pamięci przez przeglądarkę mogą sprawić, że korzyść ta będzie niespójna. Połączenia mobilne dodatkowo zwiększają znaczenie początkowego rozmiaru pakietu.

Zużycie pamięci stwarza podobny problem. Model może bez trudu działać na nowszym laptopie, ale przeciążać telefon, gdy przeglądarka, strona i inne karty zajmują dostępne zasoby.

Deweloperzy muszą również uwzględnić responsywność głównego wątku. Intensywne przetwarzanie wstępne, transfery tensorów lub awaryjne wykonywanie na CPU mogą zamrozić interfejs, nawet gdy sam model działa poprawnie.

Szczególnej uwagi wymaga przesyłanie danych między GPU a pamięcią. Przenoszenie danych wejściowych z pamięci CPU do GPU i zwracanie wyników może pochłonąć część opóźnienia zaoszczędzonego dzięki akcelerowanemu wnioskowaniu.

Aplikacje, które przechowują tensory pośrednie na GPU, mogą ograniczyć te transfery. Takie podejście wymaga starannego zarządzania pamięcią oraz projektu unikającego niepotrzebnego pobierania danych do tablic JavaScript.

Dokumentacja WebGPU ONNX Runtime zwraca uwagę na ten sam problem, obsługując tensory rezydujące na GPU oraz wiązanie wejść i wyjść. Obecność podobnych mechanizmów w różnych środowiskach uruchomieniowych pokazuje, że szybkość jąder obliczeniowych jest tylko jednym ze składników wydajności aplikacji.

Twierdzenia dotyczące prywatności również wymagają precyzji. Lokalne wnioskowanie może utrzymywać surowe dane wejściowe na urządzeniu, ale użycie lokalnego modelu nie sprawia automatycznie, że cała aplikacja jest prywatna.

Strona może nadal przesyłać dane analityczne, dzienniki błędów, identyfikatory, prompty lub dane pochodne. Deweloperzy muszą przeanalizować pełną ścieżkę danych, zamiast wnioskować o prywatności na podstawie miejsca wykonywania modelu.

Udostępnienie modelu stwarza odwrotny problem. Aplikacja działająca po stronie klienta musi dostarczyć model na urządzenie użytkownika, przez co jego wagi są bardziej dostępne niż w przypadku modelu hostowanego na serwerze.

Taki kompromis może być akceptowalny w przypadku otwartych modeli i typowych zadań percepcyjnych. Może być nieakceptowalny w przypadku modeli zastrzeżonych, których wagi zawierają cenne dane lub logikę produktu.

Granice bezpieczeństwa również pozostają istotne. Lokalne wykonywanie wnioskowania ogranicza część transferów danych, ale niezaufana treść internetowa, przejęte zależności i złośliwe pliki modeli mogą tworzyć inne zagrożenia.

Najbardziej uzasadniony wniosek z danych dotyczących wydajności przedstawionych przez Google jest więc wąski. LiteRT.js może znacząco przyspieszać wybrane modele na obsługiwanym sprzęcie, a jego natywne fundamenty środowiska uruchomieniowego zasługują na poważną ocenę.

Dostępne dowody nie potwierdzają jeszcze spójnych korzyści w całym publicznym webie. Niezależne testy powinny obejmować wiele przeglądarek, systemów operacyjnych, klas urządzeń, rodzin modeli i długotrwałych obciążeń.

Dla zespołów inżynieryjnych właściwym punktem odniesienia jest ich własna aplikacja. Testy powinny obejmować pobieranie modelu, inicjalizację, rozgrzewanie, przetwarzanie wstępne, wnioskowanie, przetwarzanie końcowe, zużycie pamięci, pobór energii i zachowanie awaryjne.

Gdzie najlepiej sprawdza się lokalne wnioskowanie w przeglądarce

LiteRT.js przekonuje najbardziej wtedy, gdy lokalne wykonywanie usprawnia interakcję, która w przeciwnym razie cierpiałaby z powodu opóźnień sieciowych lub wielokrotnego przesyłania danych.

Jedną z mocnych kategorii jest widzenie komputerowe w czasie rzeczywistym. Wykrywanie obiektów, przetwarzanie tła, rozpoznawanie gestów i estymacja głębi mogą wymagać ciągłej analizy klatek z kamery.

Przesyłanie tych klatek na serwer zwiększa zużycie pasma i opóźnienia. Tworzy również strumień wrażliwych danych, którego niektórzy użytkownicy lub organizacje nie będą akceptować.

Podobne korzyści oferuje lokalne przetwarzanie dźwięku. Wykrywanie słów kluczowych, klasyfikacja dźwięków i ograniczone zadania transkrypcji mogą przetwarzać dane z mikrofonu bez ciągłego wysyłania nagrań w inne miejsce.

Kolejną praktyczną kategorią są przepływy pracy związane z dokumentami. Aplikacja przeglądarkowa może tworzyć embeddingi dla lokalnego tekstu, klasyfikować dokumenty lub porządkować fragmenty przed skorzystaniem z modelu chmurowego.

Taki układ wspiera architekturę warstwową. Małe, często wykonywane zadania działają lokalnie, a duże modele językowe obsługują żądania wymagające szerszej wiedzy lub większej mocy obliczeniowej.

Naturalnym zastosowaniem jest również obróbka obrazów. Demonstracja Real-ESRGAN od Google przetwarza fragmenty lokalnie i składa powiększony obraz w przeglądarce.

Korzyścią nie jest wyłącznie mniejsze opóźnienie. Lokalne przetwarzanie eliminuje konieczność przesyłania obrazu źródłowego, oczekiwania w kolejce serwera i pobierania wyniku.

Korzystają na tym również aplikacje działające bez połączenia z siecią. Pracownik terenowy, podróżny lub student może zachować dostęp do wybranych funkcji AI po utracie łączności.

Progressive web applications mogłyby łączyć buforowane modele z pamięcią lokalną i service workers. Rezultat nie dorównałby wszystkim możliwościom natywnym, ale mógłby udostępniać użyteczne wnioskowanie za pośrednictwem adresu URL.

Scenariusze te mają kilka wspólnych cech. Wykorzystują modele wystarczająco małe dla sprzętu klienckiego, zyskują na szybkiej, wielokrotnej realizacji i nie wymagają stale aktualizowanej wiedzy po stronie serwera.

Duże modele generatywne stanowią trudniejszy przypadek. Rozmiar modelu, presja na pamięć, szybkość generowania tokenów i zużycie baterii stają się istotne wraz ze wzrostem liczby parametrów.

Google wskazuje na LiteRT-LM.js jako rozwiązanie do obsługi modeli językowych w przeglądarce i wymienia zoptymalizowaną generatywną AI na urządzeniu wśród priorytetów swojej mapy drogowej. Ten kierunek jest ważny, ale nie powinien kształtować oczekiwań wobec początkowego wydania LiteRT.js.

Wczesna wersja pakietu wydaje się najlepiej dostosowana do zadań percepcyjnych, embeddingów i innych ograniczonych zadań wnioskowania. Obciążenia te lepiej odpowiadają zasobom przeglądarek i ugruntowanym technikom kwantyzacji.

Przedsiębiorstwa potrzebują również zasad zarządzania, zanim lokalna AI stanie się rozwiązaniem domyślnym. Zespoły muszą zdecydować, która wersja modelu zostanie dostarczona, jak będą działać aktualizacje, jakie urządzenia będą kwalifikowane i jak zachowanie awaryjne wpłynie na oczekiwania użytkowników.

Monitorowanie staje się bardziej skomplikowane, gdy wnioskowanie odbywa się na różnorodnym sprzęcie klienckim. Systemy serwerowe udostępniają scentralizowane metryki opóźnień i błędów, natomiast wykonywanie w przeglądarce wymaga starannie zaprojektowanej telemetrii, która nie podważa celów związanych z prywatnością.

Kontrola jakości musi obejmować zarówno wyniki numeryczne, jak i doświadczenie użytkownika. Modele skwantyzowane mogą działać szybciej i zajmować mniej miejsca, ale zespoły muszą zweryfikować, czy dokładność pozostaje akceptowalna dla ich konkretnych danych.

Testy powinny obejmować również dostępność. Funkcja AI zużywająca nadmierne zasoby CPU może zakłócać działanie technologii asystujących lub zmniejszać responsywność na starszych urządzeniach.

Dla zespołów produktowych LiteRT.js nie eliminuje tych decyzji. Zapewnia im dodatkową warstwę wykonywania, silniej powiązaną z natywnym stosem edge Google.

Najlepsza strategia adopcji będzie prawdopodobnie selektywna. Należy zacząć od jednej ograniczonej funkcji, zmierzyć pełne doświadczenie na reprezentatywnych urządzeniach i zachować rozwiązanie awaryjne dla nieobsługiwanych środowisk.

Jeśli lokalna ścieżka spełni wymagania dotyczące jakości i responsywności, zespoły mogą ją rozszerzać. Jeśli nie, ta sama aplikacja może kierować bardziej wymagające zadania do serwera.

Taka elastyczność jest cenniejsza niż ogólne twierdzenie, że przeglądarki powinny zastąpić wnioskowanie w chmurze. LiteRT.js ułatwia rozważanie projektów hybrydowych, ale to obciążenie nadal decyduje o właściwym podziale.

Trzy sygnały zdecydują o adopcji LiteRT.js

Kolejny etap zależy od obsługi w przeglądarkach, niezależnych wyników wydajności oraz dowodów, że deweloperzy mogą przenieść rzeczywiste aplikacje do tego środowiska uruchomieniowego.

Pierwszym sygnałem będzie przejście WebNN od dostępu eksperymentalnego do standardowej dostępności w przeglądarkach. Wykonywanie na dedykowanych NPU jest jedną z najciekawszych obietnic LiteRT.js, ponieważ może poprawić opóźnienia i efektywność energetyczną.

Szersza obsługa WebNN wzmocniłaby argument Google na rzecz ujednoliconego środowiska uruchomieniowego. Dalsza zależność od flag lub ograniczonej liczby platform sprawiłaby, że większość produkcyjnych obciążeń nadal obsługiwałyby WebGPU i WebAssembly.

Drugi sygnał to niezależne testy porównawcze. Testy powinny zestawiać LiteRT.js z ONNX Runtime Web i TensorFlow.js na reprezentatywnych laptopach, telefonach, w przeglądarkach oraz dla różnych typów modeli.

Powtarzalne wzrosty wydajności poza konfiguracją M4 firmy Google wzmocniłyby tezę o wysokowydajnym wnioskowaniu AI w przeglądarce. Duże różnice, nieobsługiwane operatory lub kosztowna inicjalizacja zawęziłyby zakres odpowiednich zastosowań.

Trzecim sygnałem jest wdrażanie produkcyjne wykraczające poza demonstracje. Warto obserwować, czy zespoły zaczną używać LiteRT.js w narzędziach do obsługi aparatu, aplikacjach multimedialnych, prywatnym wyszukiwaniu i procesach działających offline.

Wsparcie eksportu z Ultralytics to dobry punkt wyjścia, ponieważ łączy szeroko wykorzystywany ekosystem narzędzi wizyjnych z wdrażaniem modeli za pomocą LiteRT. Mocniejsza walidacja pojawi się wtedy, gdy deweloperzy udokumentują powodzenie konwersji, narzut związany z pakietem, zakres obsługiwanych urządzeń oraz mierzalne korzyści dla użytkowników.

Google musi również wyjaśnić, jak z czasem będzie dzielić odpowiedzialność między LiteRT.js i TensorFlow.js. Deweloperzy potrzebują pewności, że obecna architektura pozostanie wspierana, gdy Google będzie konsolidować swoje narzędzia brzegowe.

To wydanie zapewnia Google wiarygodne środowisko uruchomieniowe dla przeglądarek, oparte na natywnej infrastrukturze edge. Nie rozstrzyga jednak rywalizacji w dziedzinie wnioskowania w przeglądarce, ponieważ ONNX Runtime Web już obsługuje podobne backendy i jest przeznaczony dla innego ekosystemu modeli.

Dla deweloperów najważniejsze działanie jest praktyczne: wybrać jeden reprezentatywny model, przetestować ścieżki akcelerowaną i CPU, a następnie zmierzyć cały proces z perspektywy użytkownika. Wysokowydajne wnioskowanie AI w przeglądarce za pomocą Google LiteRT.js nabierze znaczenia dopiero wtedy, gdy korzyści zapewniane przez środowisko uruchomieniowe utrzymają się na rzeczywistych urządzeniach, w rzeczywistych przeglądarkach i przy rzeczywistych ograniczeniach aplikacji.

 
 

Get started for free

A local first AI Assistant w/ Personal Knowledge Management

For better AI experience,

remio only supports Windows 10+ (x64) and M-Chip Macs currently.

​Add Search Bar in Your Brain

Just Ask remio

Remember Everything

Organize Nothing

bottom of page