1
1
# ` wasi-nn `
2
2
3
3
A proposed [ WebAssembly System Interface] ( https://github.com/WebAssembly/WASI ) API for machine
4
- learning (ML), also known as neural networks .
4
+ learning (ML).
5
5
6
6
### Current Phase
7
7
@@ -11,8 +11,8 @@ learning (ML), also known as neural networks.
11
11
12
12
### Champions
13
13
14
- - Andrew Brown
15
- - Mingqiu Sun
14
+ - [ Andrew Brown ] : https://github.com/abrown
15
+ - [ Mingqiu Sun ] : https://github.com/mingqiusun
16
16
17
17
### Phase 4 Advancement Criteria
18
18
@@ -24,23 +24,18 @@ learning (ML), also known as neural networks.
24
24
- [ Goals] ( #goals )
25
25
- [ Non-goals] ( #non-goals )
26
26
- [ API walk-through] ( #api-walk-through )
27
- - [ Use case 1] ( #use-case-1 )
28
- - [ Use case 2] ( #use-case-2 )
29
27
- [ Detailed design discussion] ( #detailed-design-discussion )
30
- - [[ Tricky design choice 1]] ( #tricky-design-choice-1 )
31
- - [[ Tricky design choice 2]] ( #tricky-design-choice-2 )
32
28
- [ Considered alternatives] ( #considered-alternatives )
33
- - [[ Alternative 1]] ( #alternative-1 )
34
- - [[ Alternative 2]] ( #alternative-2 )
35
29
- [ Stakeholder Interest & Feedback] ( #stakeholder-interest--feedback )
36
30
- [ References & acknowledgements] ( #references--acknowledgements )
37
31
38
32
### Introduction
39
33
40
- ` wasi-nn ` is a WASI API for performing ML inference. ML models are typically trained
41
- using a large data set, resulting in one or more files that describe the model's weights. The model
42
- is then used to compute an "inference," e.g., the probabilities of classifying an image as a set of
43
- tags. This API is concerned initially with inference, not training.
34
+ ` wasi-nn ` is a WASI API for performing ML inference. Its name derives from the fact that ML models
35
+ are also known as neural networks (` nn ` ). ML models are typically trained using a large data set,
36
+ resulting in one or more files that describe the model's weights. The model is then used to compute
37
+ an "inference," e.g., the probabilities of classifying an image as a set of tags. This API is
38
+ concerned initially with inference, not training.
44
39
45
40
Why expose ML inference as a WASI API? Though the functionality of inference can be encoded into
46
41
WebAssembly, there are two primary motivations for ` wasi-nn ` :
@@ -115,7 +110,7 @@ used to solve the given problem.
115
110
116
111
### Detailed design discussion
117
112
118
- For the details of the API, see [ wasi-nn.wit.md] .
113
+ For the details of the API, see [ wasi-nn.wit.md] ( wasi-nn.wit.md ) .
119
114
120
115
<!--
121
116
This section should mostly refer to the .wit.md file that specifies the API. This section is for
@@ -148,9 +143,9 @@ More "tricky" design choices fit here.
148
143
There are other ways to perform ML inference from a WebAssembly program:
149
144
150
145
1 . a user could specify a __ custom host API__ for ML tasks; this is similar to the approach taken
151
- [ here] ( TODO ) . The advantages and disadvantages are in line with other "spec vs. custom"
152
- trade-offs: the user can precisely tailor the API to their use case, etc., but will not be able
153
- to switch easily between implementations.
146
+ [ here] ( https://github.com/second-state/wasmedge_tensorflow_interface ) . The advantages and
147
+ disadvantages are in line with other "spec vs. custom" trade-offs: the user can precisely tailor
148
+ the API to their use case, etc., but will not be able to switch easily between implementations.
154
149
2 . a user could __ compile a framework and/or model to WebAssembly__ ; this is similar to
155
150
[ here] ( https://github.com/sonos/tract ) and
156
151
[ here] ( https://blog.tensorflow.org/2020/03/introducing-webassembly-backend-for-tensorflow-js.html ) .
@@ -173,4 +168,4 @@ Many thanks for valuable feedback and advice from:
173
168
174
169
- [ Brian Jones] ( https://github.com/brianjjones )
175
170
- [ Radu Matei] ( https://github.com/radu-matei )
176
- - [ Steve Schoettler] ( TODO )
171
+ - [ Steve Schoettler] ( https://github.com/stevelr )
0 commit comments