Contact emails
[email protected], [email protected], [email protected], 
[email protected]


Explainer
https://github.com/webmachinelearning/webnn/blob/main/explainer.md


Specification
https://webmachinelearning.github.io/webnn


Design docs

https://docs.google.com/document/d/1kIc5NO1PU1DbGHKOsnan-tEhV01L6_K3OLA5g0o4Ts4/edit?resourcekey=0-ltUDiDZqxKgARhtNqsGJeg


Summary
WebNN seeks to enable web applications and frameworks to take advantage of 
native operating system services for machine learning and the underlying 
hardware capabilities available on a user's computer to implement consistent, 
efficient, and reliable ML experiences on the web.


Blink component
Blink>WebML


Web Feature ID
webnn


TAG review
https://github.com/w3ctag/design-reviews/issues/933


TAG review status
Issues addressed


Origin Trial documentation link
https://webnn.io/en/learn/get-started/quickstart


Risks




Interoperability and Compatibility
Aside from the risk that other browsers do not implement (which is trending 
towards unlikely given that Edge is planning to ship alongside Chrome and 
Firefox is planning to implement) the primary interoperability risk is that a 
WebNN implementation needs to abstract over the ML acceleration capabilities of 
the underlying platform and hardware. The specification mitigates this risk by 
defining a set of ML operations which must be supported and provides a feature 
detection mechanism for discovering additional operations that may be 
optionally supported. This allows developers to write broadly interoperable 
code by using only the required operations or design their applications to 
adapt to additional capabilities at runtime.

Gecko: Positive 
(https://github.com/mozilla/standards-positions/issues/1215#issuecomment-3520278819)

WebKit: No signal (https://github.com/WebKit/standards-positions/issues/486) 
Apple is participating in the WebML WG but has made no public statements about 
implementation.

Web developers: Positive Microsoft's ONNX runtime includes an execution 
provider for WebNN (https://onnxruntime.ai/docs/tutorials/web/ep-webnn.html). 
Google's LiteRT.js framework has announced that they are working on WebNN 
support (https://youtu.be/HAjotVloAvI?t=219).

Other signals: The WebNN implementation in Chromium is a collaboration between 
Google, Intel, and Microsoft. Edge will be launching WebNN at the same time as 
Chrome.


Ergonomics
For some use cases, particularly real-time ML processing of video, integration 
between WebNN and WebGPU is required. Support for this has been prototyped on 
some platforms as an `exportToGPU()` method that takes an `MLTensor` and makes 
it available as a `GPUBuffer` but this is not yet available on all platforms.


Activation
Most developers don't write JavaScript or WebGPU shader code to execute their 
ML models by hand. Instead frameworks such as LiteRT.js, ONNX Runtime Web, 
WebLLM or Transformers.js are used. Support for WebNN in these frameworks 
(already starting to appear) will be a large factor in the adoption of this API.


Security
The primary security risk is exposing the underlying platform frameworks to 
potentially malicious content. This is mitigated through sandboxing of the GPU 
process and fuzz testing. The risks are similar to WebGPU, though the 
expressiveness of WebNN is lower than WGSL.


WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it 
has potentially high risk for Android WebView-based applications?
This is a new API.



Goals for experimentation
No information provided


Ongoing technical constraints
WebNN can currently execute models on CPU across all platforms but support for 
GPU and NPU execution is more limited. This will expand as development 
continues.


Debuggability
There is currently no special DevTools support for this API beyond regular 
JavaScript debugging. A feature we have considered (and prototyped via an 
internal extension and the --webnn-coreml-dump-model, --webnn-ort-dump-model, 
and --webnn-tflite-dump-model browser flags) is inspecting graphs constructed 
by a site and exporting them in the underlying platform format so that they can 
be inspected with other tools.


Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, 
ChromeOS, Android, and Android WebView)?
Yes


Is this feature fully tested by web-platform-tests?
Yes
https://wpt.fyi/results/webnn?label=master&label=experimental&aligned&q=webnn


DevTrial instructions
https://webnn.io/en/learn/get-started/installation


Flag name on about://flags
web-machine-learning-neural-network


Finch feature name
WebMachineLearningNeuralNetwork


Requires code in //chrome?
True


Tracking bug
https://issues.chromium.org/issues/40206287


Estimated milestones


Origin trial desktop first 145

Origin trial desktop last 147

DevTrial on desktop 125

Origin trial Android first 145

Origin trial Android last 147

DevTrial on Android 125

Origin trial WebView first 145

Origin trial WebView last 147




Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5176273954144256?gate=5186064701194240


Links to previous Intent discussions
Intent to Prototype: 
https://groups.google.com/a/chromium.org/g/blink-dev/c/PD6TDMDS9mg



This intent message was generated by Chrome Platform Status.

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6945ac6d.050a0220.26ff8f.0461.GAE%40google.com.

Reply via email to