KI & Agents
WebNNWebGPUONNX RuntimeTransformers.jsNPUClient-Side ML
🌐 English translation in progress – displaying original German guide.

WebNN – Maschinelles Lernen lokal im Browser

WebNN-Leitfaden: Maschinelles Lernen hardwarebeschleunigt per NPU und WebGPU direkt im Browser ausführen – mit 0 € Serverkosten und 100 % Privatsphäre.

LKLukas Kopischke
Last updated on

Du möchtest deinen Nutzern Webcam-Hintergrundunschärfe, Live-Sprachtranskription oder eine semantische Volltextsuche anbieten. Doch sobald du jeden Videoframe oder Tastenanschlag an eine Cloud-API wie OpenAI oder Replicate schickst, explodieren deine monatlichen Serverkosten. Gleichzeitig rebelliert der Datenschutz: Medizinische Befunde, private Notizen oder Webcam-Streams dürfen europäische Endgeräte aus DSGVO-Gründen oft gar nicht verlassen. Reine CPU-JavaScript-Lösungen wiederum lassen den Laptop-Lüfter aufheulen und frieren das User Interface ein.

WebNN (Web Neural Network API) ist ein offener -Standard, der Web-Applikationen direkten, hardwarebeschleunigten Zugriff auf , Grafikkarten (GPUs) und optimierte CPU-Befehlssätze gewährt. Statt KI- über teure Cloud-Server abzuwickeln, führt der Browser vortrainierte -Modelle lokal über systemnahe Frameworks wie , oder OpenVINO aus. Das garantiert null Serverkosten, minimale Latenzen unter 15 Millisekunden und 100 % DSGVO-konforme Datensouveränität.

Das Architektur-Prinzip

WebNN verlagert maschinelles Lernen dorthin, wo Daten entstehen: Direkt auf die NPU des Endgeräts – für Null-Euro-Serverkosten, lüfterlosen Dauerbetrieb und garantierte Privatsphäre.

WebNN & Hardware-Capability AuditorLive Werkbank
Prüfe live in deinem Browser, welche Schnittstellen (WebNN, WebGPU, WASM SIMD, Web Worker) für lokale KI bereitstehen.
Dein Live-Browser-Diagnosebericht0 von 4 aktiv

Prüft live in diesem Tab, welche Hardware-Beschleuniger für In-Browser Machine Learning einsatzbereit sind.

W3C WebNN API (navigator.ml) INAKTIV

Prüfe 'ml' Eigenschaft auf navigator...

WebGPU Schnittstelle (navigator.gpu) INAKTIV

Prüfe GPU-Adapter und WGSL-Compute...

WebAssembly SIMD (Vektorbefehle) INAKTIV

Prüfe 128-Bit SIMD CPU-Beschleunigung...

Web Worker & Offscreen Support INAKTIV

Prüfe Multithreading-Fähigkeit für ruckelfreie UI...

Live In-Browser Audio-Pipeline (Mikrofon-Test)

Erlebe, wie der Browser Audio lokal als PCM-Puffer abtastet – die Grundlage für Speech-to-Text (Whisper).

Audio-Pegel (Inaktiv)
On-Device Audio-Telemetrie○ BEREIT
Sample-Rate48.000 Hz
Puffer-FormatFloat32 PCM
Latenz< 8 ms
Spracherkennung:○ Bereit für Sprache
Praxis-Code: So bindest du die geprüfte Kaskade ein
webnn-feature-detection.ts
TYPESCRIPT
1// Robuste Feature Detection für WebNN und WebGPU
2export async function getBestAvailableBackend(): Promise<'webnn' | 'webgpu' | 'wasm'> {
3 // 1. Prüfe W3C WebNN (NPU-Beschleunigung)
4 if (typeof navigator !== 'undefined' && 'ml' in navigator) {
5 try {
6 const ml = (navigator as any).ml;
7 const context = await ml.createContext({ deviceType: 'npu' });
8 if (context) return 'webnn';
9 } catch {
10 // NPU nicht verfügbar, versuche nächsten Provider
11 }
12 }
13
14 // 2. Fallback auf WebGPU (Grafikkarte)
15 if (typeof navigator !== 'undefined' && 'gpu' in navigator) {
16 const adapter = await navigator.gpu.requestAdapter();
17 if (adapter) return 'webgpu';
18 }
19
20 // 3. Universeller Fallback: WebAssembly auf der CPU
21 return 'wasm';
22}

Was brauche ich? (Prerequisites & Setup)

  • Browser-Support: Chromium-basierter Browser (Chrome oder Edge ab Version 125+) mit aktivierter WebNN-Unterstützung via chrome://flags/#enable-web-machine-learning-neural-network.
  • Runtime-Bibliotheken: @huggingface/transformers (v3+) für intuitive High-Level Pipelines oder onnxruntime-web/experimental für direkten Zugriff auf den WebNN Execution Provider.
  • Modell-Format: Standardisierte .onnx-Modelle, idealerweise durch auf 8-Bit (q8/int8) verkleinert.

Wie kann ich das prüfen? (Verification & Audit)

  • Browser-Schnittstelle: In der DevTools-Console prüfen: typeof navigator.ml !== "undefined".
  • Hardware-Kontext: Ausführen von await navigator.ml.createContext({ deviceType: "npu" }) und den Rückgabewert inspizieren.
  • Execution Provider Logging: In ONNX Runtime ort.env.logLevel = 'verbose' setzen und in der Konsole prüfen, ob Operatoren auf WebNN oder Fallback (WASM) laufen.

Typische Anwendungsfälle (Use Cases)

  • Echtzeit-Videoverarbeitung: Hintergrund-Weichzeichner (Background Blur), virtuelle Greenscreens und Face-Tracking in WebRTC-Videokonferenzen mit 60 FPS.
  • Sensible Dokumenten- & Textanalyse: Lokale Vektor-Embeddings, semantische Suche und Spam-/Sentiment-Filter direkt im Browser ohne Datenabfluss.
  • Offline-Sprachassistenten: Sprach-zu-Text-Transkription (z. B. Whisper) im Zug oder Funkloch ohne Cloud-Abhängigkeit und ohne API-Keys.

Hardware-Pfade & Cloud im Direktvergleich

Statt grober Vermutungen zeigt die Gegenüberstellung klar, warum WebNN mit NPU-Unterstützung die Spielregeln für Web-Anwendungen verändert:

Ausführungs-PfadTypische LatenzServer-Kosten (100k Hits)Energiebedarf (TDP)Privatsphäre & DSGVOOffline-Fähig
WebNN (NPU)4 – 15 ms0,00 €1,5 Watt (lüfterlos)100 % lokal auf GerätJa (Zero Cloud)
WebGPU (GPU)12 – 28 ms0,00 €15 – 35 Watt100 % lokal auf GerätJa (Zero Cloud)
WASM (CPU SIMD)70 – 160 ms0,00 €25 – 45 Watt100 % lokal auf GerätJa (Zero Cloud)
Cloud API (Server)250 – 600 ms~150 – 450 €0 W (Lokal) / Netz aktivDrittserver verarbeitet DatenNein (Netzwerk-Pflicht)
Warum die NPU der Gamechanger ist

Grafikkarten (WebGPU) sind zwar extrem schnell, ziehen aber bis zu 35 Watt und lassen Laptop-Lüfter bei Dauerbetrieb anspringen. Die benötigt nur 1,5 Watt. Dadurch können Web-Apps Kamera-Filter oder Voice-Transkripte permanent im Hintergrund ausführen, ohne den Akku leerzusaugen.


Das 3-Schichten-Modell: Vom Low-Level-Graph zur 1-Zeilen-Pipeline

Niemand muss neuronale Netzwerkgraphen wie Matrix-Multiplikationen (mlContext.matmul()) oder Faltungen von Hand schreiben. Die moderne Web-ML-Architektur teilt sich in drei Schichten:

1. High-Level UI

Transformers.js

Hugging Face Pipelines kapseln Modell-Download, Tokenizer und Post-Processing. Eine Zeile Code reicht für Sentiment-Analyse, Bildklassifizierung oder Feature-Extraction.

2. Execution Provider

ONNX Runtime Web

Das Runtime-Herzstück: Es lädt das kompilierte .onnx-Modell, orchestriert den Speicher und wählt automatisch den besten Hardware-Beschleuniger (WebNN > WebGPU > WASM).

3. Native Hardware

W3C WebNN / NPU

Der Browser kommuniziert über standardisierte OS-Treiber direkt mit den Rechenkernen: DirectML (Windows), CoreML (macOS) oder OpenVINO (Intel/Linux).


Schnellstart: Lokale KI-Pipeline mit Transformers.js

Das Hugging Face Ökosystem macht die Integration im Browser so einfach wie ein herkömmliches npm-Paket:

TYPESCRIPT
1import { pipeline } from "@huggingface/transformers";
2
3// 1. Pipeline mit Hardwarebeschleunigung initialisieren
4const classifier = await pipeline(
5 "sentiment-analysis",
6 "Xenova/distilbert-base-uncased-finetuned-sst-2-english",
7 {
8 device: "webgpu", // Nutzt WebGPU / WebNN Provider in ONNX Runtime Web
9 dtype: "q8", // 8-Bit Quantisierung: spart 75 % Speicherplatz
10 }
11);
12
13// 2. Sofortige Inferenz direkt im Client ausführen (< 10 Millisekunden)
14const result = await classifier("WebNN bringt echte KI-Power ohne Serverkosten in den Browser!");
15
16console.log(result);
17// [{ label: 'POSITIVE', score: 0.9997 }]
Best Practice: Inferenz in Web Workern kapseln

Führe rechenintensive Modelle immer in einem dedizierten Web Worker aus. Dadurch bleibt der Browser-Main-Thread vollkommen unberührt, Scroll-Events laufen flüssig und die Interaction to Next Paint (INP) bleibt bei unter 50 Millisekunden.


Architektonische Best Practices: Do's & Don'ts

Empfohlen (Best Practice)
  • Quantisierte Modelle einsetzen: Nutzen von q8 oder q4 Quantisierungen, um Modellgewichte auf unter 40 MB zu reduzieren.
  • Inferenz im Web Worker: Entkopplung von UI-Renderings und Modell-Berechnung zur Schonung der Web Vitals.
  • Intelligentes Cache-Management: Modelle via Cache API / IndexedDB lokal sichern, damit sie nur einmalig geladen werden.
  • Robuste Fallback-Kette: Kaskade von WebNN (NPU) zu WebGPU und schließlich zu WASM (CPU) konfigurieren.
Zu vermeiden (Anti-Pattern)
  • Unquantisierte 500-MB-Gewichte: Gewaltige FP32-Modelle ungefragt beim initialen Page Load über Mobilfunk laden.
  • Inferenz im Main Thread: Blockieren des JavaScript-Event-Loops während kontinuierlicher Matrix-Multiplikationen.
  • Verzicht auf Ladezustände: Nutzer ohne Progress-Bar oder Skeleton im Unklaren über den einmaligen Modell-Download lassen.

Agent System Prompt: WebNN Auditor & Integration

Agent Prompt
WebNN Integration & Audit PromptZiel: Claude / Cursor / Antigravity
Nutze diesen Prompt in deiner IDE, um lokale In-Browser-KI performant und absturzsicher in dein Projekt einzubinden.

Du bist ein erfahrener Frontend- und ML-Architekt. Integriere ein lokales KI-Modell im Browser nach modernen WebNN- und ONNX-Standards:

  1. Prüfe die Verfügbarkeit von navigator.ml und binde @huggingface/transformers oder onnxruntime-web ein.
  2. Lagere die gesamte Inferenz-Logik in einen typisierten Web Worker aus (Comlink oder postMessage).
  3. Konfiguriere eine Fallback-Kaskade: WebNN (NPU) -> WebGPU -> WASM (CPU).
  4. Nutze quantisierte Modelle (q8 oder int8) und implementiere ein Caching über die Cache Storage API.
  5. Stelle sicher, dass die UI während des Ladens eindeutige Fortschrittsanzeigen (Download % und Inferenz-Status) bietet.

Offizielle Spezifikationen & Primärquellen

Für tiefergehende Spezifikationen, Browser-Roadmaps und Implementierungs-Details:


Verwandte Themen im Digital Garden

Diese Konzepte greifen direkt in lokale In-Browser-KI und moderne Frontend-Architektur über:


Checkliste: WebNN & In-Browser ML in der Praxis

  • Feature-Support verifiziert: Browser unterstützt navigator.ml oder fällt sauber auf WebGPU / WASM zurück.
  • Modell quantisiert & komprimiert: Modellgröße liegt im Idealfall unter 50 MB mit 8-Bit-Gewichten.
  • Web Worker im Einsatz: Schwere Matrixberechnungen laufen im Hintergrund-Thread (INP < 50 ms).
  • Offline-Caching aktiv: Modellgewichte werden in Cache API oder IndexedDB persistiert.
  • Transparenter Ladezustand: Nutzer sieht einen Ladebalken beim ersten Initialisieren des Modells.
  • Primärquellen verlinkt: Relevante Spezifikationen und Nachbarthemen im Garten sind verknüpft.