-
Notifications
You must be signed in to change notification settings - Fork 4
/
index.html
527 lines (527 loc) Β· 21.1 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
<!DOCTYPE html>
<html lang="en">
<head>
<title>
Web Machine Learning Community Group Charter
</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="https://www.w3.org/StyleSheets/TR/base">
<style>
body {
max-width: 60em;
margin: auto;
}
*:target {
background-color: yellow;
}
li {
margin-bottom: 9pt;
}
.note, .example {
position: relative;
margin: 1.5em 0 1em;
padding: 1em;
}
.note::before, .example::before {
padding: 0.15em 0.25em;
position: absolute;
top: -0.8em;
left: -0.8em;
}
.note {
background-color: #dfd;
color: green;
font-style: italic;
}
.note::before {
background-color: green;
color: white;
font-style: normal;
content: "Note: ";
}
.remove {
background-color: yellow;
}
header img {
width: 600px;
max-width: 100%;
}
</style>
</head>
<body>
<header>
<img src="https://raw.githubusercontent.com/webmachinelearning/webmachinelearning.github.io/refs/heads/main/logos/webml/logo-webml-white.svg" alt>
<h1>
Web Machine Learning Community Group Charter
</h1>
</header>
<ul>
<li>This Charter: <a href=
"https://webmachinelearning.github.io/charter/">https://webmachinelearning.github.io/charter/</a>
</li>
<li>Previous Charter: <a href="https://github.com/webmachinelearning/charter/blob/215dcf88af40f89e40fc702f4866ee79d0647500/index.html">
215dcf8</a>
</li>
<li>Start Date: 2024-12-09
</li>
<li>Last Modified: <a href=
"https://github.com/webmachinelearning/charter/commits/master">commits/master</a>
</li>
</ul>
<h2 id="goals">
Goals
</h2>
<p>
Machine learning (ML), and especially its subset deep learning, are being
successfully used in native platforms in advanced computationally-heavy
areas such as image recognition, speech recognition, and natural language
processing. The mission of the Web Machine Learning Community Group (WebML
CG) is to make Machine Learning a first-class web citizen by incubating
Web APIs for machine learning inference in the browser and in products using
modern web engines.
</p>
<p>
This Community Group will
develop Web APIs to enable the creation of machine learning web
experiences that are embeddable in the Web of today, and enable
progressive enhancement of existing web applications and frameworks.
</p>
<p>
Historically, the Web has been unable to support advanced on-device
machine learning use cases in a performant manner due in part to lack of
optimized low-level APIs for machine learning. Recent advancements in the
hardware-accelerated <a href="#neural-network-inference">low-level APIs</a>
for neural network inference have demonstrated feasibility and informed
work on complementary higher-level <a href="#task-specific-apis">
task-specific APIs</a>.
</p>
<p>
Following the precepts of the <a href=
"https://extensiblewebmanifesto.org/">Extensible Web Manifesto</a>,
higher-level task-specific APIs can be implemented in terms of the
low-level APIs that use custom models downloaded over the network.
To complement this approach, the Community Group will incubate selected
task-specific APIs to enable reuse of the built-in models that are
distributed as part of the browser or the underlying software platform.
</p>
<h2 id="scope-of-work">
Scope of Work
</h2>
<p class="note">
The scope of work for this Community Group extends beyond the current
scope of the <a href="https://www.w3.org/groups/wg/webmachinelearning/">
Web Machine Learning Working Group</a>. Deliverables incubated in this
Community Group may graduate to the Working Group for standardization.
</p>
<p>
The APIs in scope of this group will not be tied to any particular
platform and will be implementable on top of existing major platform
APIs, such as Android Neural Networks API, Windows DirectML, and
macOS/iOS Metal Performance Shaders and Basic Neural Network Subroutines.
</p>
<p>
Each specification should detail all known security and privacy
implications for implementers, Web authors, and end users.
</p>
<h3 id="neural-network-inference">
Neural network inference
</h3>
<p class="note">
<a href="https://www.w3.org/TR/webnn/">Web Neural Network API</a> has
graduated to the <a href="https://www.w3.org/groups/wg/webmachinelearning/">
Web Machine Learning Working Group</a>.
</p>
<p>
A low-level Web API for neural network inference hardware acceleration that:
</p>
<ul>
<li>Allow to construct a neural network computational graph by common
building blocks, including constant values and base operations such as
convolution, pooling, softmax, normalization, fully connected,
activation, recurrent neural network (RNN) and long short-term memory
(LSTM);
</li>
<li>Allow to compile the neural network to native optimized format for
hardware execution;
</li>
<li>Allow to setup input from various sources on the Web, e.g. array
buffers, media streams, schedule the asynchronous hardware execution, and
retrieve the output when hardware execution completes.
</li>
</ul>
<h3 id="task-specific-apis">
Task-specific APIs
</h3>
<p>
A set of higher-level APIs that:
</p>
<ul>
<li>Detect the language of the given input text;</li>
<li>Translate input text to other languages;</li>
<li>Produce textual summaries of input text;</li>
<li>Produce new textual material given a writing task;</li>
<li>Rephrase input text.</li>
</ul>
<h3 id="prompt-api">
Prompt API
</h3>
<p>
A general-purpose API to prompt a language model directly using common
prompting techniques to accomplish a variety of tasks, including:
</p>
<ul>
<li>Classification, tagging, and keyword extraction of arbitrary text;</li>
<li>Helping users compose text, such as blog posts, reviews, or biographies;</li>
<li>Summarizing, e.g. of articles, user reviews, or chat logs;</li>
<li>Generating titles or headlines from article contents;</li>
<li>Answering questions based on the unstructured contents of a web page;</li>
<li>Translation between languages;</li>
<li>Proofreading.</li>
</ul>
<h3 id="out-of-scope">
Out of Scope
</h3>
<p>
The scope is limited to development of interfaces that expose inference
capabilities of the modern platforms beneficial or purpose-built for ML.
Training capabilities are out of scope due to limited availability of
respective platform APIs.
</p>
<p>
This Community Group will not define any hardware features or algorithms.
</p>
<p>
To avoid overlap with existing work, generic primitives used by
traditional machine learning algorithms such as base linear algebra
operations are out of scope. The WebGL and WebGPU shaders and WebAssembly
SIMD are expected to address these requirements, see the <a href=
"#coordination">Coordination</a> section for details.
</p>
<p>
This Community Group does not attempt to mandate a specific neural
network or Machine Learning model schema or format. Other groups are
expected to address these requirements of this evolving area.
</p>
<h2 id="deliverables">
Deliverables
</h2>
<h3 id="specifications">
Specifications
</h3>
<dl>
<dt>
Web Neural Network API
</dt>
<dd>
A dedicated low-level API for neural network inference hardware acceleration.
</dd>
<dt>
Translator and Language Detector APIs
</dt>
<dd>
A set of APIs for translating and detection language of text.
</dd>
<dt>
Writing Assistance APIs
</dt>
<dd>
A set of APIs to help web users with writing text.
</dd>
<dt>
Prompt API
</dt>
<dd>
An API for prompting browser-provided language models.
</dd>
</dl>
<h3 id="non-normative-reports">
Non-Normative Reports
</h3>
<p>
The group may produce other Community Group Reports within the scope of
this charter but that are not Specifications, for instance use cases,
requirements, or white papers.
</p>
<h3 id="test-suites">
Test Suites and Other Software
</h3>
<p>
The group MAY produce test suites to support the Specifications. Please
see the GitHub LICENSE file for test suite contribution licensing
information.
</p>
<h2 id="coordination">
Coordination
</h2>
<p>
Technical coordination with the following Groups is expected:
</p>
<dl>
<dt>
<a href="https://www.w3.org/groups/wg/webmachinelearning/">Web Machine
Learning Working Group</a>
</dt>
<dd>
The Web Machine Learning Working Group adopted for standardization the
Web Neural Network API incubated in this Community Group. The work in
this Community Group will happen in collaboration with this Working
Group.
</dd>
</dl>
<dl>
<dt>
<a href="https://www.w3.org/community/gpu/">GPU for the Web Community
Group</a>
</dt>
<dd>
The GPU for the Web Community Group defines a Shading Language that may
be used to implement traditional machine learning algorithms
efficiently. The WebML Community Group should coordinate with this
group to avoid overlap.
</dd>
</dl>
<dl>
<dt>
<a href="https://www.w3.org/community/webassembly/">WebAssembly
Community Group</a>
</dt>
<dd>
The WebAssembly Community Group incubates a proposal for a 128-bit SIMD
support in WebAssembly that can be used to implement traditional
machine learning algorithms efficiently. The WebML Community Group
should coordinate with this group to avoid overlap.
</dd>
</dl>
<dl>
<dt>
<a href="https://www.khronos.org/webgl/">WebGL Community Group</a>
</dt>
<dd>
The WebGL Working Group defines a WebGL API that supports the OpenGL ES
Shading Language (GLSL). The GLSL can be used to implement traditional
machine learning algorithms efficiently. Furthermore, this group
incubates a proposal for a WebGL 2.0 Compute specification that aims to
provide an efficient way to run general-purpose GPU (GPGPU) computing
workloads such as machine learning algorithms in the WebGL context.
</dd>
</dl>
<dl>
<dt>
<a href="https://www.w3.org/2011/04/webrtc/">Web Real-Time
Communications Working Group</a>
</dt>
<dd>
The Web Real-Time Communications Working Group defines the MediaStream
API that is one possible inference input data source. The WebML
Community Group should coordinate with this group to ensure its future
work considers <a href=
"https://w3c.github.io/webrtc-nv-use-cases/#machinelearning*">Machine
Learning</a> use cases.
</dd>
</dl>
<dl>
<dt>
<a href="https://www.w3.org/2011/audio/">Audio Working Group</a>
</dt>
<dd>
The Audio Working Group defines the Web Audio API that is one possible
inference input data source. The WebML Community Group should
coordinate with this group to ensure its future work considers Machine
Learning use cases.
</dd>
</dl>
<dl>
<dt>
<a href="https://www.w3.org/das/">Devices and Sensors Working Group</a>
</dt>
<dd>
The Devices and Sensors Working Group defines Sensor APIs that are
possible inference input data sources. The WebML Community Group should
coordinate with this group to ensure its future work considers Machine
Learning use cases.
</dd>
</dl>
<dl>
<dt>
Immersive Web <a href="https://www.w3.org/immersive-web/">Working
Group</a> and <a href=
"https://www.w3.org/community/immersive-web/">Community Group</a>
</dt>
<dd>
The Immersive Web Working Group and Community Group aim to bring
high-performance Virtual Reality (VR) and Augmented Reality (AR)
(collectively known as XR) to the open Web via APIs to interact with XR
devices and sensors in browsers. Some of these use cases involve
machine learning (e.g., object recognition), and so the WebML Community
Group should coordinate with these groups to ensure its work considers
XR use cases.
</dd>
</dl>
<h2 id="process">
Community and Business Group Process
</h2>
<p>
The group operates under the <a href=
"https://www.w3.org/community/about/agreements/">Community and Business
Group Process</a>. Terms in this Charter that conflict with those of the
Community and Business Group Process are void.
</p>
<p>
As with other Community Groups, W3C seeks organizational licensing
commitments under the <a href=
'http://www.w3.org/community/about/agreements/cla/'>W3C Community
Contributor License Agreement (CLA)</a>. When people request to
participate without representing their organization's legal interests,
W3C will in general approve those requests for this group with the
following understanding: W3C will seek and expect an organizational
commitment under the CLA starting with the individual's first request to
make a contribution to a group <a href="#deliverables">Deliverable</a>.
The section on <a href="#contrib">Contribution Mechanics</a> describes
how W3C expects to monitor these contribution requests.
</p>
<p>
The <a href="https://www.w3.org/Consortium/cepc/">W3C Code of Ethics and
Professional Conduct</a> applies to participation in this group.
</p>
<h2 id="worklimit">
Work Limited to Charter Scope
</h2>
<p>
The group will not publish Specifications on topics other than those
listed under <a href="#specifications">Specifications</a> above. See
below for <a href="#charter-change">how to modify the charter</a>.
</p>
<h2 id="contrib">
Contribution Mechanics
</h2>
<p>
Substantive Contributions to Specifications can only be made by Community
Group Participants who have agreed to the <a href=
"http://www.w3.org/community/about/agreements/cla/">W3C Community
Contributor License Agreement (CLA)</a>.
</p>
<p>
Specifications created in the Community Group must use the <a href=
"http://www.w3.org/Consortium/Legal/2015/copyright-software-and-document">
W3C Software and Document License</a>. All other documents produced by
the group should use that License where possible.
</p>
<p>
Community Group participants agree to make all contributions in the
GitHub repo the group is using for the particular document. This may be
in the form of a pull request (preferred), by raising an issue, or by
adding a comment to an existing issue.
</p>
<p id="githublicense">
All Github repositories attached to the Community Group must contain a
copy of the <a href=
"https://github.com/w3c/licenses/blob/master/CG-CONTRIBUTING.md">CONTRIBUTING</a>
and <a href=
"https://github.com/w3c/licenses/blob/master/CG-LICENSE.md">LICENSE</a>
files.
</p>
<h2 id="transparency">
Transparency
</h2>
<p>
The group will conduct all of its technical work in public. If the group
uses GitHub, all technical work will occur in its GitHub repositories
(and not in mailing list discussions). This is to ensure contributions
can be tracked through a software tool.
</p>
<p>
Meetings may be restricted to Community Group participants, but a public
summary or minutes must be posted to the group's public mailing list, or
to a GitHub issue if the group uses GitHub.
</p>
<h2 id="decision">
Decision Process
</h2>
<p>
This group will seek to make decisions where there is consensus. Groups
are free to decide how to make decisions (e.g. Participants who have
earned Committer status for a history of useful contributions assess
consensus, or the Chair assesses consensus, or where consensus isn't
clear there is a Call for Consensus [CfC] to allow multi-day online
feedback for a proposed course of action). It is expected that
participants can earn Committer status through a history of valuable
contributions as is common in open source projects. After discussion and
due consideration of different opinions, a decision should be publicly
recorded (where GitHub is used as the resolution of an Issue).
</p>
<p>
If substantial disagreement remains (e.g. the group is divided) and the
group needs to decide an Issue in order to continue to make progress, the
Committers will choose an alternative that had substantial support (with
a vote of Committers if necessary). Individuals who disagree with the
choice are strongly encouraged to take ownership of their objection by
taking ownership of an alternative fork. This is explicitly allowed (and
preferred to blocking progress) with a goal of letting implementation
experience inform which spec is ultimately chosen by the group to move
ahead with.
</p>
<p>
Any decisions reached at any meeting are tentative and should be recorded
in a GitHub Issue for groups that use GitHub and otherwise on the group's
public mail list. Any group participant may object to a decision reached
at an online or in-person meeting within 7 days of publication of the
decision provided that they include clear technical reasons for their
objection. The Chairs will facilitate discussion to try to resolve the
objection according to the <a href="#decision">decision process</a>.
</p>
<p>
It is the Chairs' responsibility to ensure that the decision process is
fair, respects the consensus of the CG, and does not unreasonably favour
or discriminate against any group participant or their employer.
</p>
<h2 id="chairs">
Chair Selection
</h2>
<p>
Participants in this group choose their Chair(s) and can replace their
Chair(s) at any time using whatever means they prefer. However, if 5
participants, no two from the same organisation, call for an election,
the group must use the following process to replace any current Chair(s)
with a new Chair, consulting the Community Development Lead on election
operations (e.g., voting infrastructure and using <a href=
"https://tools.ietf.org/html/rfc2777">RFC 2777</a>).
</p>
<ol>
<li>Participants announce their candidacies. Participants have 14 days to
announce their candidacies, but this period ends as soon as all
participants have announced their intentions. If there is only one
candidate, that person becomes the Chair. If there are two or more
candidates, there is a vote. Otherwise, nothing changes.
</li>
<li>Participants vote. Participants have 21 days to vote for a single
candidate, but this period ends as soon as all participants have voted.
The individual who receives the most votes, no two from the same
organisation, is elected chair. In case of a tie, RFC2777 is used to
break the tie. An elected Chair may appoint co-Chairs.
</li>
</ol>
<p>
Participants dissatisfied with the outcome of an election may ask the
Community Development Lead to intervene. The Community Development Lead,
after evaluating the election, may take any action including no action.
</p>
<h2 id="charter-change">
Amendments to this Charter
</h2>
<p>
The group can decide to work on a proposed amended charter, editing the
text using the <a href="#decision">Decision Process</a> described above.
The decision on whether to adopt the amended charter is made by
conducting a 30-day vote on the proposed new charter. The new charter, if
approved, takes effect on either the proposed date in the charter itself,
or 7 days after the result of the election is announced, whichever is
later. A new charter must receive 2/3 of the votes cast in the approval
vote to pass. The group may make simple corrections to the charter such
as deliverable dates by the simpler group decision process rather than
this charter amendment process. The group will use the amendment process
for any substantive changes to the goals, scope, deliverables, decision
process or rules for amending the charter.
</p>
</body>
</html>