IRC log of webmachinelearning on 2023-03-30

Timestamps are in UTC.

14:00:18 [RRSAgent]
RRSAgent has joined #webmachinelearning
14:00:22 [RRSAgent]
logging to https://www.w3.org/2023/03/30-webmachinelearning-irc
14:00:22 [Zakim]
RRSAgent, make logs Public
14:00:23 [Zakim]
please title this meeting ("meeting: ..."), anssik
14:00:23 [ningxin_hu]
ningxin_hu has joined #webmachinelearning
14:00:23 [anssik]
Meeting: WebML WG Teleconference – 30 March 2023
14:00:29 [anssik]
Chair: Anssi
14:00:34 [anssik]
Agenda: https://github.com/webmachinelearning/meetings/blob/main/telcons/2023-03-30-wg-agenda.md
14:00:53 [anssik]
Scribe: Anssi
14:01:02 [anssik]
scribeNick: anssik
14:01:04 [zkis]
zkis has joined #webmachinelearning
14:01:11 [anssik]
Regrets+ Dominique_Hazael-Massieux
14:01:34 [anssik]
ghurlbot, this is webmachinelearning/webnn
14:01:34 [ghurlbot]
anssik, OK.
14:01:36 [anssik]
Present+ Anssi_Kostiainen
14:01:41 [anssik]
Present+ Ningxin_Hu
14:01:45 [anssik]
Present+ Zoltan_Kis
14:02:26 [anssik]
Present+ Chai_Chaoweeraprasit
14:04:36 [anssik]
Present+ Rafael_Cintron
14:04:44 [anssik]
RRSAgent, draft minutes
14:04:45 [RRSAgent]
I have made the request to generate https://www.w3.org/2023/03/30-webmachinelearning-minutes.html anssik
14:04:52 [RafaelCintron]
RafaelCintron has joined #webmachinelearning
14:05:11 [chai]
chai has joined #webmachinelearning
14:05:46 [anssik]
Topic: Web Neural Network API W3C Candidate Recommendation published
14:05:56 [anssik]
-> Web Neural Network API CR, 30 March 2023 https://www.w3.org/TR/2023/CR-webnn-20230330/
14:06:10 [anssik]
-> W3C invites implementations of Web Neural Network API https://www.w3.org/blog/news/archives/9868
14:06:29 [anssik]
-> ▶️ Clapping Sound Effects https://www.youtube.com/watch?v=jDOrc8FmDy4
14:06:33 [chai]
🎉
14:07:16 [ningxin_hu]
Cheers!
14:07:21 [anssik]
anssik: Thank you to all the WG participants for your hard work that made this publication possible!
14:07:37 [anssik]
... this has been a collaboration between lead implementers (thank folks at Microsoft and Google!),
14:08:00 [anssik]
... interoperability at its heart (thanks spec and wpt contributors across companies!),
14:08:24 [anssik]
... with feedback from early adopters, web developers, other WGs (thanks WebGPU WG, WebRTC WG!) informing the effort.
14:08:46 [anssik]
... Now is a time to celebrate. It is no small feat to hit CR so it is OK to be a little proud :)
14:08:59 [anssik]
... Then, about the next steps.
14:09:21 [anssik]
... As a concrete first next step, we should configure Echidna to again allow publications in this post-CR world
14:09:33 [anssik]
... This commit disabled publications temporarily https://github.com/webmachinelearning/webnn/commit/00d3cdd721e7918206808fcc318b27cbf714b4f5
14:09:50 [anssik]
... I assume Dom can help configure Echidna the right way
14:10:10 [anssik]
... about the new spec maturity levels on the W3C Rec Track in this post-CR state, my take:
14:11:06 [anssik]
... for "corrections that do not affect conformance" incl. editorial enhancements we publish a CR Draft:
14:11:11 [anssik]
-> CR Draft https://www.w3.org/2021/Process-20211102/#publishing-crud
14:11:30 [anssik]
... for "corrections that may [...] affect conformance" or add "new features" we published (a new) CR Snapshot
14:11:35 [anssik]
-> CR Snapshot https://www.w3.org/2021/Process-20211102/#publishing-crrs
14:11:52 [anssik]
... OTOH, the W3C Process guidance is "a Candidate Recommendation Snapshot should not be published more often than approximately once every 6 months."
14:12:23 [anssik]
... so my understanding is we should set Echidna to auto-publish CR Drafts similarly to WDs earlier and should put a clock running and ~6 months from now publish a new CR Snapshot
14:12:57 [anssik]
... and prior to CR Snaphot we should seek wide review for any substantive changes made since this initial CR. We only request review for the delta, so more light weight.
14:13:09 [anssik]
RRSAgent, draft minutes
14:13:11 [RRSAgent]
I have made the request to generate https://www.w3.org/2023/03/30-webmachinelearning-minutes.html anssik
14:14:30 [anssik]
q?
14:14:44 [anssik]
Topic: WebNN - WebIDL and Infra standard conventions
14:15:41 [anssik]
anssik: Zoltan has worked on editorial enhancements to align the spec with WebIDL and Infra standard conventions. Now that the CR is out we plan to start integrating these
14:16:09 [anssik]
Subtopic: The constant() method steps
14:16:14 [anssik]
-> Spec: Create an operand for a graph constant https://www.w3.org/TR/webnn/#dom-mlgraphbuilder-constant
14:16:19 [anssik]
-> Spec: Create a single-value operand from the specified number of the specified type https://www.w3.org/TR/webnn/#dom-mlgraphbuilder-constant-value-type
14:16:23 [anssik]
... PR #365
14:16:24 [ghurlbot]
https://github.com/webmachinelearning/webnn/issues/365 -> Pull Request 365 Add the constant() method steps. (zolkis)
14:17:07 [anssik]
Zoltan: thanks Ningxin for reviewing this PR and improving it!
14:17:26 [anssik]
... ready for review, needs two approvals
14:18:01 [anssik]
... constants will add two forms, dependency on MLOperand, MLActivation not needed here
14:18:34 [anssik]
... completed algorithms for all the ops in the spec and have ~50 PRs ready
14:18:49 [anssik]
... bikeshed builds OK, all dependencies addressed
14:20:34 [anssik]
[ Zoltan sharing a preview of the improved constant() ]
14:21:16 [anssik]
Zoltan: we keep track of platform objects for given operands and track reference to operand
14:21:32 [anssik]
... we should add arch diagram to the spec to help explain this
14:22:18 [anssik]
... not detailing the algorithms per se e.g. for conv2d just say what to do with inputs and how to get outputs, that is what we want to accomplish with this
14:22:40 [anssik]
... some algorithms are long such as concat()
14:22:59 [anssik]
... we can factor out parts of the algorithms as needed
14:23:20 [anssik]
... lstm() is more challenging one
14:23:42 [anssik]
... asking for feedback how to split this work to make it easy for reviewers, one PR per op or multiple ops per PR?
14:23:51 [anssik]
anssik: thanks Zoltan!
14:23:54 [anssik]
q?
14:27:07 [chai]
q+
14:27:11 [anssik]
ack chai
14:27:33 [anssik]
chai: my only recommendation for this type of change to get it in sooner rather than later
14:29:12 [anssik]
... because the change affects the overall style and structure of the document, we should get this in soon before we add more content so new changes can follow this modernized convention
14:30:02 [anssik]
Zoltan: the PRs submitted minimize changes so some of the visual changes presented are not in PRs
14:30:35 [anssik]
... Chai, do you prefer to add visual enhancements first?
14:32:13 [anssik]
Chai: you should look at the changes in two categories: 1) any styling or structure changes that affect every op, do this first 2) enhancing each op that need to be enhanced, this you can group as another category
14:32:43 [anssik]
... otherwise people who want to add new PRs will be blocked on not conforming with the latest styling or structural changes
14:33:12 [anssik]
Zoltan: if I change one method at a time e.g. constant() it does not block adding another op with different styling
14:33:30 [anssik]
Chai: you should keep presentation consistent within the entire specification
14:33:47 [anssik]
... if new ops are added, then you'd need to re-style those new ops added
14:33:49 [ningxin_hu]
q+
14:33:59 [anssik]
... prefer styling to be integrated as soon as possible
14:34:21 [ningxin_hu]
+1 to make the structure change first
14:34:28 [anssik]
Zoltan: issue is if no algorithms or internal slots are defined then we'd have empty algorithm and internal slot boxes
14:34:55 [anssik]
Chai: if those are optional, then that can wait, I'm waiting about style changes that apply broadly
14:35:05 [ningxin_hu]
the algorithm and internal slots to be added could be placeholders there
14:35:20 [anssik]
... anything that is a style change should land as soon as possible
14:36:27 [anssik]
q?
14:36:49 [anssik]
ack ningxin_hu
14:37:04 [anssik]
ningxin_hu: thanks Zoltan for this great work, I like the updated visuals!
14:37:33 [anssik]
... I vote for Chai's opinion, make structure changes first, layout each method in this style you have
14:38:58 [anssik]
... I like the algorithm boxes, if not defined yet suggest to make them placeholders
14:39:37 [anssik]
... e.g. lstm could be many PRs, for style changes I recommend land it in one PR
14:39:48 [anssik]
Zoltan: do you like algorithm box like presented?
14:40:34 [anssik]
Present+ Dom
14:40:45 [anssik]
Dom: prefer to have steps name inside the box
14:41:20 [anssik]
Zoltan: Arguments and returns now in prose, options inside the arguments and returns section
14:41:34 [anssik]
... should I move those out to proper definitions of dictionaries?
14:42:04 [anssik]
... this would be for most algorithms the whole thing, without this I will just change with the styling
14:46:52 [anssik]
ningxin_hu: I think moving options out improves readability
14:47:28 [anssik]
... options are kind of a type definition, moving it out into a separate section I think will improve it and can be reused by other adjesent ops
14:47:45 [anssik]
s/adjesent/adjecent
14:48:08 [chai]
q+
14:48:15 [anssik]
Zoltan: I can prep a PR for review and import it to other branches I have
14:48:48 [ningxin_hu]
That's a significant effort, thanks so much Zoltan
14:49:38 [anssik]
ack chai
14:49:57 [anssik]
Chai: thanks for this, it is great!
14:50:10 [anssik]
... on the algorithm section, some can be auto-generated perhaps
14:50:26 [anssik]
Zoltan: I tried it actually
14:50:48 [anssik]
Chai: we're going to add more ops in the future, if we need to add this boilerplate and stay consistent it is a huge amount of work
14:51:02 [anssik]
... it depends on how complex the op is going to be
14:51:09 [anssik]
... very hard to keep them consistent
14:51:34 [anssik]
... need to factor things out and generate common prose
14:51:47 [anssik]
Zoltan: we should refactor things out and reuse whenever possible
14:51:55 [anssik]
... now I think you see the big picture
14:53:05 [anssik]
... this will still be pretty manual process, so need to see what can be factored out, we should do automation exploration
14:53:26 [anssik]
Chai: if the doc is in transient state or inconsistent it will be hard for others to add new things
14:53:53 [dom]
[overtime, we can also add CI jobs to enforce consistency - I've done that in a number of cases in WebRTC]
14:53:57 [anssik]
Zoltan: once we get these PRs in them can borrow updated conventions
14:54:02 [anssik]
q?
14:54:07 [dom]
q+
14:54:46 [anssik]
Chai: optional visibility with <details> would be nice
14:55:04 [anssik]
... original concern was it should be easy for editors to add new stuff
14:55:05 [anssik]
ack dom
14:55:28 [anssik]
dom: I have experiences with specs that add consistency checks as CI jobs once we know what we expect as input and what as output
14:55:47 [anssik]
... Zoltan is willing to do the manual work now, let's try to get that done as soon as possible to not block the rest of the work
14:55:57 [anssik]
... once we have that base established we look into automation opportunities
14:56:20 [anssik]
Zoltan: if we hide sections, is it better to hide algorithm, validation etc.
14:56:41 [anssik]
dom: parameter hiding sounds good, it is the most boring part
14:57:11 [anssik]
Zoltan: need to check if we can make the whole box disappear and auto-hide it
14:57:25 [anssik]
... I got the feedback, we'll look at it next time with an updated PR
14:57:27 [anssik]
q?
14:58:24 [anssik]
Zoltan: I will ping you on an updated PR with visual enhancements and ping you all
14:58:27 [anssik]
q?
14:59:26 [anssik]
Zoltan: PR #365 is ready and welcomes more reviews!
14:59:27 [ghurlbot]
https://github.com/webmachinelearning/webnn/issues/365 -> Pull Request 365 Add the constant() method steps. (zolkis)
15:00:10 [chai]
i'll take a look
15:01:24 [anssik]
anssik: thanks Chai!
15:03:21 [anssik]
RRSAgent, draft minutes
15:03:22 [RRSAgent]
I have made the request to generate https://www.w3.org/2023/03/30-webmachinelearning-minutes.html anssik
17:29:09 [Zakim]
Zakim has left #webmachinelearning