14:49:44 RRSAgent has joined #webmachinelearning 14:49:44 logging to https://www.w3.org/2022/02/24-webmachinelearning-irc 14:49:47 RRSAgent, make logs Public 14:49:48 please title this meeting ("meeting: ..."), anssik 14:49:54 Meeting: WebML WG Teleconference – 24 February 2022 14:49:59 Chair: Anssi 14:50:06 Agenda: https://github.com/webmachinelearning/meetings/blob/main/telcons/2022-02-24-wg-agenda.md 14:50:12 Scribe: Anssi 14:50:17 scribeNick: anssik 14:51:32 Present+ Anssi_Kostiainen 14:51:38 RRSAgent, draft minutes 14:51:38 I have made the request to generate https://www.w3.org/2022/02/24-webmachinelearning-minutes.html anssik 14:59:47 ningxin_hu has joined #webmachinelearning 15:00:49 Present+ 15:00:51 Present+ ningxin_hu 15:01:36 Present+ Ganesan_Ramalingam 15:01:52 Present+ James_Fletcher 15:01:59 Present+ Chai_Chaoweeraprasit 15:02:10 chai has joined #webmachinelearning 15:02:44 Present+ Jonathan_Bingham 15:02:56 scribe+ 15:02:58 Topic: Announcements 15:03:10 Jonathan has joined #webmachinelearning 15:03:12 scribe+ Jonathan 15:03:28 Present+ Rafael_Cintron 15:03:32 Subtopic: Survey about TPAC 2022 15:03:33 i'm getting coffee, so i'll let Dom/Anssi start with the scribing 15:03:45 bbcjames has joined #webmachinelearning 15:04:01 anssi: tpac 2022 plans - a few weeks a survey was sent to the chairs to figure out what we would like to do for the next TPAC 15:04:12 ... tentatively scheduled Sep 12-16 in Vancouver, as a hybrid meetnig 15:04:15 s/nig/ing/ 15:04:35 ... lots of uncertainty on whether that meeting can be held in person vs a fully virtual meeting as the previous 2 years 15:05:11 ... If you feel like sharing (possibly privately) about your ability to be in Vancouver or lack thereof, this would help me to inform W3C TPAC organizers 15:05:18 RafaelCintron has joined #webmachinelearning 15:05:19 ... ideally before our next meeting 15:05:54 ... my observations on this: this WG hasn't met in person yet, but we've been executing above my expectations given the environment - thank you everyone 15:06:02 ... we had a short CG F2F back in 2019 15:06:20 ... that's our only physical meeting experience 15:06:41 ... TPAC is useful for x-group interactions and making informal connections, which can help resolve challenging issues 15:07:04 rama has joined #webmachinelearning 15:07:52 dom: none of us can predict the future, any information on personal willingness, company policies is welcome 15:08:27 Subtopic: Update on Ethical Considerations 15:08:35 anssi: an update from James on ethical considerations 15:09:01 James: a reminder on the process I proposed in December for our work on ethical considerations: 15:09:20 ... first a literature review, consultation with experts and stakeholders, leading to a set of guiding principles 15:09:48 ... that could be used as a draft note, and then a set of discussions where these principles would be reviewed & brainstormed on 15:10:05 Present+ Raviraj_Pinnamaraju 15:10:07 ... to identify high level risks & mitigations 15:10:15 RRSAgent, draft minutes 15:10:15 I have made the request to generate https://www.w3.org/2022/02/24-webmachinelearning-minutes.html anssik 15:10:21 ... integrate the outcomes of the sessions into a note that would be presented to the group 15:10:47 ... literature review is ongoing, we'll have a draft of guiding principles available next week on github 15:11:02 ... the review & brainstorm sessions would be end of March or early April 15:11:28 ... we could have the updated draft WG note around April 21st 15:12:03 anssi: I'll work with you & Dom in circulating the invitation to these sessions 15:12:12 ... eager as others to see drafts! 15:12:14 q? 15:12:36 ... Thanks James! more on this soon 15:12:42 Topic: Security review response 15:13:17 -> Update Security Considerations per review feedback https://github.com/webmachinelearning/webnn/pull/251 15:13:27 anssi: thanks to everyone who provided input & feedback 15:13:38 -> PR Preview: Guidelines for new operations https://pr-preview.s3.amazonaws.com/webmachinelearning/webnn/pull/251.html#security-new-ops 15:13:43 ... I've added a commit to this pull request with guidelines for new operations 15:13:57 ... incorporating also input from the ONNX TPAC session 15:14:36 -> General Security Questions https://github.com/webmachinelearning/webnn/issues/241 15:14:44 Subtopic: Notion that the API introduces a new scripting language 15:14:57 anssik: WG asked: "The group did not agree with the notion that the API introduces a new scripting language and wants to understand what aspects of the API are of concern?" 15:15:12 ... Alex responded: 15:15:17 ... "My security concern is that the network is compiled into a program that is entirely under an attackers control. While not as powerful as javascript it is likely powerful enough to make some exploits easier as a result. It argues for careful implementation, and avoiding introducing too much control of control-flow at the API side. Hopefully these concerns can be considered as new operations are introduced." 15:15:45 anssik: can we formulate this into an informative note for security considerations? 15:17:10 dom: briefly looked at this, not still fully clear what would typically mitigate this problem? 15:17:29 ... conceptually understand where the reviewer comes from with expressiveness of the API and concerns around that 15:17:31 q? 15:17:55 ... the reviewer seems to want some additional information to think about the security properties of the API 15:18:56 chai: we takes security very seriously in my team working on Windows; when we go through security review, we start by identifying the threats that the system may be exposed to 15:19:14 ... that includes understanding what data comes in & out the system, and whether it should be treated as trusted or untrusted 15:19:53 ... e.g. a PDF displayed in a browser is considered untrusted because the attacker may be in control of the content to exploit vulnerabilities 15:20:19 ... in the context of WebNN API, a legitimate question is whether any data that can be produced by someone in your browser through WebNN can be considered untrusted 15:21:08 Present+ Rachel_Yager 15:21:33 ... another question is whether a format that would feed into WebNN is vulnerable to attacks - e.g. does it give ability to change boundary checks that can lead e.g. to buffer overruns 15:21:50 ... In practice, the only time you attack the system is when you make it _execute_ something 15:22:10 ... WebNN, as I clarified in #243, is not about executing the data - it's about defining the data 15:22:36 ... the graph builder interface doesn't execute anything, it constructs a piece of data 15:22:51 ... the attack is limited to when you bind the data to the graph before your execute it in the compute method 15:23:37 ... assuming an untrusted ML model, the question is how to harden the compute method 15:24:32 ... the key is ensuring that compute honors the boundary of data 15:24:58 ... where compute needs to fail if these boundaries aren't respected 15:25:23 ... That's how I look at security in general, not sure how it maps to the feedback we got 15:25:33 anssi: this could be part of our security considerations section 15:25:33 q+ 15:26:28 ... part of our goal is to ensure anyone evaluating the spec can determine the answer to that kind of questions we're getting 15:27:05 -> General Security Questions https://github.com/webmachinelearning/webnn/issues/241 15:27:36 q? 15:28:37 ack dom 15:29:20 dom: building on what was said, two things we want to do: 1) provide all the information we can to implementers so they avoid security bugs 2) surface information that help security reviewers make assessment on the risks 15:30:49 ... we should explain how the API is sufficiently hardened, principles behind the design should be explicit in the spec so reviewers and implementers can feel confident 15:31:11 ... Anssi's proposal to add Chai's model in the Security Considerations would be great 15:32:29 -> Update Security Considerations per review feedback PR #251 https://github.com/webmachinelearning/webnn/pull/251 15:32:54 q? 15:32:57 anssi: this PR is where we hope to address these issues - providing feedback on it would be very useful 15:33:05 Subtopic: Operation level metadata 15:33:10 anssik: WG asked: "The group was not sure what "operation level metadata" exactly means in this context? (Would addressing #243 satisfy all "operation level metadata" requirements?)" 15:33:26 ... Alex responded: "Yes, that would be a helpful step." 15:33:34 -> Op metadata that helps avoid implementation mistakes https://github.com/webmachinelearning/webnn/issues/243 15:33:49 anssik: I notice Chai clarified in #243 the MLGraphBuilder API isn't a data execution API, but rather a data definition API. Thanks for that input. 15:33:59 q+ 15:34:02 ack dom 15:34:40 dom: in terms of data definition vs. model execution -- what errors implementers must identify and fail on for each? 15:34:47 q+ 15:35:09 ... I think making this distinction is important, but the question is when we compile or compute when we need to fail, can we be explicit when? 15:35:10 ack chai 15:36:00 chai: adding the buffer-metadata to the description of operations feels redundant 15:36:29 ... eventually, you'll compare the size of the data you receive with the one you're expecting to receive, you fail 15:36:43 ... graph builder defines the size of data you expect to receive 15:37:03 ... the size of each buffer within each location within the graph is already defined 15:37:36 ... the problem of lack of metadata; the implementation will have to walk the graph to calculate the shape of the data 15:37:48 q+ 15:38:01 chai: the important part is when you call compute 15:38:05 q? 15:38:21 q+ 15:38:22 ack dom 15:39:28 dom: if you're doing security analysis of a spec, having an easy way to figure out what op creates a risk for computation because the shape may change between input and output, that may make it easier to write your attack test suite to verify you haven't missed something 15:39:37 ... not sure if metadata approach is a practical one 15:39:55 ... trying to say, not just guiding implementers only, but guiding reviewers 15:40:23 q? 15:40:50 chai: the graph builder approach is actually a very robust approach to harden this problem space 15:41:43 ... because you don't specific the size of the output of the ahead of time, instead based on the operation semantics 15:42:04 ... the output size is not in control of the attacker with such a model 15:42:56 ... this allows to calculate output size at every single step of the graph 15:43:07 ... adding metadata is a security hole 15:43:07 q+ 15:43:11 q? 15:43:14 qq+ 15:43:22 ack dom 15:43:22 dom, you wanted to react to dom 15:44:15 dom: we are not required for data itself to provide metadata 15:44:33 chai: in that case read the definition of each op 15:44:55 dom: not needing to dive into each op algorithm to understand if boundary risks might be created 15:45:58 q? 15:46:01 chai: for simple operations, it's trivial, for complex operations like conv2d or recurring networks, you can't simplify it 15:46:04 ack ningxin_hu 15:46:04 q- 15:46:22 Present+ Wang_Xiaojian 15:46:36 ningxin_hu: for conv2d, we have a formula to calculate the output size based on the parameters of the operations 15:46:56 ... would this be useful to the reviewers, or for machine processing? 15:47:56 q? 15:48:41 dom: perhaps highlighting such formulas in the spec would work? 15:49:05 Subtopic: Running timeable things out of process 15:49:18 anssik: WG asked: "The group would like to understand how running timeable things out of process works as a mitigation?" 15:49:24 ... Alex responded: "This is a concern of lower importance - mainly adding an ipc step will confuse any accidental high precision timers. Realistically there is not a lot to be done here!" 15:49:55 q? 15:50:04 q+ 15:50:16 dom: IPC step mitigates the issue, but is it guaranteed to happen in all implementations? 15:50:20 ack RafaelCintron 15:50:49 RafaelCintron: I agree with Dom, we should not add IPC as a mitigation 15:51:42 dom: my suggestion is to mention the problem and mention the same mitigations as with high precision timing might apply here 15:52:09 q? 15:52:20 Subtopic: Next step: Wide review for security 15:52:37 -> Wide review tracker https://github.com/webmachinelearning/webnn/issues/239 15:53:10 -> https://w3c.github.io/hr-time/#sec-security Security Considerations of "High Resolution Time" spec 15:53:12 -> Update Security Considerations per review feedback PR #251 https://github.com/webmachinelearning/webnn/pull/251 15:53:19 -> Responses to the Self-Review Questionnaire: Security and Privacy https://github.com/webmachinelearning/webnn/issues/119 15:53:48 -> All security-tracker issues https://github.com/webmachinelearning/webnn/issues?q=label%3Asecurity-tracker+ 15:54:28 anssi: we have ongoing discussions on all issues except for #175 15:54:47 -> WebGPU Security Considerations https://gpuweb.github.io/gpuweb/#security-considerations 15:55:11 ... the WebGPU WG has done quite a good job on this topic, we should re-use what we can from them 15:55:36 Rafael: I know the WebGPU has gone through Google internal security review, and is about to go through the W3C review 15:55:51 ... it has been under TAG review for quite some time 15:56:16 anssi: overall, it feels we're on good track to resolve these security issues 15:56:36 q? 15:56:38 ... once the pull request lands and hopefully addresses the issues, we can start the W3C security review 15:56:48 Topic: Candidate Recommendation technical scope 15:57:19 Subtopic: The baseline implementation of WebNN ops [cr] 15:57:23 -> The baseline implementation of WebNN ops https://github.com/webmachinelearning/webnn/issues/245 15:57:38 -> WebML WG Teleconference - 10 February 2022 resolutions https://www.w3.org/2022/02/10-webmachinelearning-minutes.html#ResolutionSummary 15:57:47 ... review in progress, anything to report Ningxin? 15:57:56 q? 15:58:17 ningxin_hu: we're waiting for a review from chai & his team on the conv2d implementation 15:58:21 Subtopic: Should WebNN support async APIs? [cr] 15:58:28 -> Should WebNN support async APIs? https://github.com/webmachinelearning/webnn/issues/230 15:59:06 chai: I'm working on a PR for this 15:59:21 anssi: thanks, very important work 15:59:22 Subtopic: Should restrict the sync APIs to only exist in Workers? [cr] 15:59:32 -> Should restrict the sync APIs to only exist in Workers? https://github.com/webmachinelearning/webnn/issues/229 16:00:06 anssik: on our 13 January 2022 call we decided to request feedback from ML framework authors, how this proposed change would impact the frameworks, in particular their Wasm backends. 16:00:09 ... no responses received 16:00:13 ... any new information to be shared? 16:00:18 ... are we still happy to keep this issue in scope for CR? 16:00:21 -> https://www.w3.org/2022/01/13-webmachinelearning-minutes.html#t03 WebML WG Teleconference – 13 January 2022 16:00:30 q? 16:00:37 Subtopic: Integration with real-time video processing [cr] 16:00:41 -> Integration with real-time video processing https://github.com/webmachinelearning/webnn/issues/226 16:00:55 anssik: it seems the outstanding topic is the support for async API and interaction with GPU timeline, these changes will have an API shape impact 16:01:05 ... is it fair to say this issue #226 is blocked on issue "Should WebNN support async APIs? #230" 16:01:11 -> Should WebNN support async APIs? #230 https://github.com/webmachinelearning/webnn/issues/230 16:01:20 anssik: Ningxin, do you want to give an update on the Chromium prototype for WebNN/WebGU interop? 16:01:28 -> [Chromium Prototype] WebNN / WebGPU interop #929 https://github.com/otcshare/webnn-native/issues/929 16:01:57 q? 16:02:38 ningxin_hu: formulating a plan for the prototyping assignment, working on that along with spec discussion 16:02:39 q? 16:02:44 Subtopic: Add method steps to operations [cr] 16:02:46 i should have a PR out for #230 soon. 16:02:54 -> Add method steps to operations https://github.com/webmachinelearning/webnn/issues/210 16:03:07 anssik: this is just work that needs to happen, any questions to be recorded in the issue 16:04:10 q? 16:04:40 anssik: Thanks everyone for joining and for your contributions! 16:04:45 RRSAgent, draft minutes 16:04:45 I have made the request to generate https://www.w3.org/2022/02/24-webmachinelearning-minutes.html anssik