Aigest.
Newsy

Hugging Face udostępnia @huggingface/kernels: 207 zoptymalizowanych kerneli WebGPU dla lokalnej AI

Hugging Face wprowadza @huggingface/kernels, bibliotekę do ładowania i uruchamiania zoptymalizowanych kerneli WebGPU, wraz z kolekcją 207 operacji dla szybszego wnioskowania AI w przeglądarkach.

RA

Udostępnij
Hugging Face udostępnia @huggingface/kernels: 207 zoptymalizowanych kerneli WebGPU dla lokalnej AI
Fot. Hugging Face

Zespół WebAI w Hugging Face ogłosił wydanie @huggingface/kernels, minimalistycznej biblioteki umożliwiającej ładowanie i uruchamianie zoptymalizowanych kerneli WebGPU bezpośrednio z Hugging Face Hub. Towarzyszy jej początkowa kolekcja 207 kerneli dostępnych pod adresem huggingface.co/webgpu-kernels, co stanowi pierwszy krok w kierunku maksymalnego przyspieszenia i ułatwienia wnioskowania modeli AI w przeglądarkach.

Fundament dla szybkiego wnioskowania w przeglądarkach

Celem inicjatywy jest stworzenie wielowarstwowego rozwiązania, które obejmuje zarówno przeglądarkowe reprezentacje modeli, efektywne plany wykonawcze dla środowisk uruchomieniowych, jak i optymalizację operacji GPU. Nowo udostępniona kolekcja kerneli pokrywa operacje wykorzystywane w szerokiej gamie architektur uczenia maszynowego. Każdy kernel jest publikowany jako kompletny, wersjonowany pakiet, zawierający interfejs, szablony shaderów, przypadki testowe poprawności, przypadki testowe wydajności oraz instrukcje użytkowania, wszystko to dostępne na Hubie.

Równocześnie uruchomiono Fleet, czyli przeglądarkowy pakiet do testowania i benchmarkowania GPU, który uruchamia i ocenia kernele na sprzęcie użytkownika. Fleet umożliwia społeczności współtworzenie danych dotyczących wydajności i poprawności z różnorodnych urządzeń, co jest niemożliwe do osiągnięcia w tradycyjnym laboratorium testowym. Za zgodą użytkownika, każde uruchomienie dodaje prywatne dane, które pomagają w identyfikacji błędów, poprawie wariantów kerneli i podejmowaniu lepszych decyzji optymalizacyjnych dla rzeczywistego sprzętu.

Kluczowe cechy rozwiązania to:

  • 207 kerneli WebGPU opublikowanych jako indywidualne repozytoria w organizacji webgpu-kernels na licencji Apache-2.0.
  • Ładowarka JavaScript, @huggingface/kernels, która pobiera, przygotowuje i uruchamia kernele bezpośrednio z Hubu.
  • Jawne kontrakty i odtwarzalne dowody dla każdego kernela, w tym manifesty, testy poprawności, przypadki benchmarkowe i szablony shaderów WGSL.
  • Fleet, narzędzie do benchmarkowania w przeglądarce, które gromadzi dane o poprawności i wydajności z rzeczywistych GPU, aby pomóc w ulepszaniu kerneli.

Dlaczego kernele są tak ważne?

Model działający w przeglądarce ostatecznie sprowadza się do sekwencji operacji GPU, takich jak mnożenie macierzy, normalizacje czy konwolucje. WebGPU udostępnia te operacje w nowoczesnych przeglądarkach za pośrednictwem przenośnego API, a WGSL zapewnia wspólny język dla shaderów. Jednak przenośność nie oznacza automatycznie wysokiej wydajności. Dwa shadery implementujące tę samą operację mogą zachowywać się zupełnie inaczej na różnych akceleratorach, w zależności od rozmiarów grup roboczych, wzorców dostępu do pamięci, wektoryzacji czy strategii fuzji. Najlepszy wybór może również zmieniać się w zależności od kształtu danych wejściowych, urządzenia, przeglądarki i dostępnych funkcji WebGPU.

Kernele stanowią zatem fundamentalną warstwę szybkiego wnioskowania w przeglądarce. Wyższe warstwy środowisk uruchomieniowych mogą być tylko tak wydajne, jak operacje, które wykonują. Dzięki temu, że operacje te są indywidualnie wykrywalne, testowalne, benchmarkowalne i wersjonowane, można niezależnie ulepszać podstawę, zachowując stabilny kontrakt dla wyższych warstw.

Każdy kernel w kolekcji posiada własne repozytorium i kartę, która dokumentuje semantykę operacji, wejścia, wyjścia, atrybuty, obsługiwane typy danych, pliki źródłowe oraz gotowy do uruchomienia przykład @huggingface/kernels. Na przykład, ai.onnx.Add implementuje dodawanie element-wise z wielokierunkowym rozgłaszaniem, co jest jedną z najprostszych operacji w sieciach neuronowych. Repozytorium zawiera wszystkie artefakty potrzebne do zrozumienia i oceny implementacji, co przekształca shader w artefakt oprogramowania wielokrotnego użytku.

Jak szybkie są nowe kernele?

Hugging Face przeprowadziło porównanie swojej kolekcji kerneli z ORT WebGPU na Apple M4 GPU, wykorzystując ONNX Runtime Web 1.30.0-dev.20260826-b1f76d586a. Spośród 1756 przypadków testowych dla wszystkich 207 operacji, wybrano 809, gdzie obie strony generowały zgodne wyniki i wiarygodne czasy. W tych porównaniach kernele Hugging Face okazały się 2,57x szybsze (średnia geometryczna) i 1,90x szybsze (mediana), z 629 zwycięstwami, 176 porażkami i 4 remisami.

Niektóre indywidualne zwycięstwa były znacznie większe. Szczególnie trudny przypadek biliniowego Einsum (i,ij,j o rozmiarze 4096) działał w 0,136 ms z kernelem Hugging Face w porównaniu do 1396 ms z ORT WebGPU, co oznacza ponad 10 000x szybsze działanie. Sumowanie wierszowe CumSum dla [256, 4096] było 301x szybsze, osiągając 0,016 ms w porównaniu do 4,784 ms. Są to jednak przypadki nietypowe, pokazujące potencjał specjalizowanych kerneli w sytuacjach, gdy ogólna implementacja napotyka na wolne ścieżki.

Pomiar dotyczył wyłącznie pracy wykonanej na GPU, z wyłączeniem czasu na konfigurację, taką jak ładowanie kerneli czy kompilacja shaderów. Wyniki te są porównaniem wydajności pojedynczych operacji, a nie kompletnych modeli. Dokładna wydajność będzie się różnić w zależności od GPU i przeglądarki, dlatego narzędzie Fleet jest kluczowe dla uzyskania szerszego obrazu.

Budowanie wspólnego fundamentu dla WebAI

Początkowe 207 kerneli to dopiero początek. Niezależne publikowanie kerneli na Hubie tworzy wspólne miejsce do inspekcji kontraktów, porównywania implementacji, reprodukowania testów poprawności i poprawy wydajności, bez konieczności osadzania każdego shadera bezpośrednio w każdym środowisku uruchomieniowym. Kolekcja ta jest częścią szerszego ekosystemu kerneli na Hubie, obok kerneli dla CUDA, ROCm, Metal i innych platform.

To niskopoziomowy fundament dla kolejnych kroków w rozwoju stosu wnioskowania w przeglądarkach. Hugging Face planuje połączyć te kernele z narzędziami modelowania wyższego poziomu, rozszerzać pokrycie operacji i ułatwiać szybkie lokalne wnioskowanie w całym ekosystemie WebAI. Inicjatywa ta ma potencjał znacząco przyspieszyć rozwój aplikacji AI działających bezpośrednio w przeglądarce, otwierając nowe możliwości dla deweloperów i użytkowników końcowych.

Źródło: huggingface.co

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.