Aigest.
Newsy

Google udostępnia LiteRT.js: wnioskowanie AI na urządzeniu w przeglądarce dzięki WebGPU

Google wprowadza LiteRT.js, umożliwiając uruchamianie modeli AI .tflite bezpośrednio w przeglądarce, co poprawia prywatność, redukuje koszty serwerowe i skraca czas reakcji.

RA

Udostępnij
Google udostępnia LiteRT.js: wnioskowanie AI na urządzeniu w przeglądarce dzięki WebGPU
Ilustracja poglądowa

Google udostępniło LiteRT.js, czyli wiązanie JavaScript dla swojej biblioteki wnioskowania na urządzeniu, LiteRT (wcześniej znanej jako TensorFlow Lite). Dzięki temu rozwiązaniu, te same modele .tflite, które są używane na platformach Android i iOS, mogą być teraz uruchamiane lokalnie w przeglądarce internetowej, wykorzystując technologie takie jak WebAssembly, WebGPU oraz eksperymentalne WebNN.

Uruchamianie wnioskowania AI bezpośrednio w przeglądarce niesie ze sobą szereg korzyści. Google podkreśla przede wszystkim zwiększoną prywatność użytkowników, ponieważ dane nie opuszczają urządzenia. Dodatkowo, eliminuje to koszty związane z utrzymaniem serwerów oraz zapewnia ultraniskie opóźnienia w działaniu aplikacji.

Jak działa LiteRT.js?

LiteRT.js nie wprowadza nowego formatu modeli, lecz stanowi skompilowaną wersję istniejącego, natywnego środowiska wykonawczego Google do WebAssembly, udostępnioną następnie dla JavaScriptu. W przeciwieństwie do wcześniejszych rozwiązań AI dla sieci, takich jak TensorFlow.js, które opierały się na jądach opartych na JavaScript, LiteRT.js dostarcza natywne, wieloplatformowe środowisko wykonawcze z zachowanymi optymalizacjami. Oznacza to, że aplikacje webowe mogą korzystać z ulepszeń wydajności, usprawnień kwantyzacji i optymalizacji sprzętowych, które zostały opracowane dla systemów Android, iOS i komputerów stacjonarnych.

Środowisko wykonawcze LiteRT.js obsługuje trzy główne backendy:

  • WebAssembly (Wasm): Podstawowy backend, zapewniający szeroki zakres obsługiwanych operatorów.
  • WebGPU: Wykorzystuje moc obliczeniową karty graficznej, oferując znaczące przyspieszenie.
  • WebNN: Eksperymentalny backend, który ma na celu wykorzystanie dedykowanych jednostek przetwarzania neuronowego (NPU).

Istnieją dwie kluczowe zasady dotyczące delegowania zadań do akceleratorów. Po pierwsze, LiteRT.js nie wspiera częściowej delegacji – graf obliczeniowy nie może być dzielony między CPU a GPU. Po drugie, delegacja jest zasadą „wszystko albo nic” dla danego modelu. Jeśli model nie może być w pełni delegowany do wybranego akceleratora, LiteRT automatycznie wraca do wykonywania kodu w WebAssembly, gdzie ścieżka CPU oferuje najszerszą obsługę operatorów.

Wyniki wydajności i konwersja modeli

Google przedstawiło dwa odrębne zestawy wyników testów wydajnościowych:

  • W porównaniu do innych środowisk wykonawczych dla sieci, LiteRT.js jest do 3 razy szybszy w wnioskowaniu na CPU i GPU. Dotyczy to klasycznych modeli wizji komputerowej i przetwarzania audio.
  • W porównaniu do własnego wykonania na CPU, użycie GPU lub NPU zapewnia 5-60-krotne przyspieszenie. Jest to szczególnie widoczne w wymagających zadaniach w czasie rzeczywistym, takich jak śledzenie obiektów czy transkrypcja audio.

Oba benchmarki przeprowadzono w kontrolowanym środowisku przeglądarki na 2024 MacBooku Pro z Apple Silicon M4. Google zaznacza, że wyniki mogą się różnić w zależności od lokalnego GPU, dławienia termicznego i optymalizacji sterowników. Warto zauważyć, że krążąca w sieci informacja o „10-krotnym” przyspieszeniu nie pojawiła się w oficjalnym ogłoszeniu.

Konwersja modeli PyTorch do formatu .tflite jest możliwa za pomocą narzędzia LiteRT Torch w jednym kroku. Wymaga to jednak spełnienia ścisłych warunków, takich jak eksportowalność modelu za pomocą torch.export.export (czyli TorchDynamo-exportable), brak warunkowych gałęzi Pythona zależnych od wartości tensorów w czasie wykonania oraz brak dynamicznych wymiarów wejściowych lub wyjściowych, w tym wymiaru wsadowego.

Do optymalizacji rozmiaru modeli służy AI Edge Quantizer, który konfiguruje schematy kwantyzacji dla różnych warstw. Gotowe, wstępnie wytrenowane modele .tflite są również dostępne na Kaggle i w społeczności LiteRT Hugging Face.

Integracja z TensorFlow.js i zarządzanie pamięcią

Google podkreśla, że LiteRT.js i TensorFlow.js nie wykluczają się wzajemnie. LiteRT.js jest pozycjonowane jako zamiennik dla TF.js Graph Models, a nie całej biblioteki. TensorFlow.js pozostaje zalecanym narzędziem do zadań przed- i po-przetwarzania danych. Pakiet @litertjs/tfjs-interop umożliwia przekazywanie tensorów między tymi dwoma bibliotekami za pomocą funkcji runWithTfjsTensors.

Ważnym aspektem, na który należy zwrócić uwagę, jest ręczne zarządzanie pamięcią w LiteRT.js. Każdy obiekt Tensor musi być jawnie usunięty za pomocą metody .delete(), aby uniknąć wycieków pamięci urządzenia. Fragment kodu przedstawiony w ogłoszeniu Google pomijał ten istotny krok.

LiteRT.js stanowi znaczący krok w kierunku demokratyzacji dostępu do zaawansowanych możliwości AI bezpośrednio w przeglądarce. Umożliwiając uruchamianie złożonych modeli na urządzeniu użytkownika, Google otwiera drzwi dla tworzenia bardziej prywatnych, responsywnych i efektywnych aplikacji webowych, które mogą wykorzystywać moc obliczeniową lokalnego sprzętu, jednocześnie minimalizując obciążenie serwerów i koszty operacyjne.

Źródło: marktechpost.com

Udostępnij

Komentarze

Zaloguj się, aby dołączyć do dyskusji.

Nikt jeszcze nie skomentował. Bądź pierwszy!

Czytaj dalej

Amazon wykorzystuje AI do walki z oszustwami, Alexa pomoże rozpoznać scamy
Google DeepMind stawia na innowacje, ignorując ryzyko rynkowe i etyczne
Meta Superintelligence Labs wprowadza Muse Voice Transcribe – jeden model dla transkrypcji, diaryzacji i detekcji końca
BenchMIRT: Nowe spojrzenie na to, co mierzą benchmarki LLM
Model Astra od OpenAI: Przełom w cyberbezpieczeństwie czy nowe zagrożenie?
Google wprowadza agentowe rozumienie wideo do modeli Gemini Flash, obniżając koszty i zwiększając dokładność

Bądź na bieżąco ze światem AI

Najważniejsze newsy, recenzje i poradniki — raz w tygodniu, prosto na maila. Bez spamu.