-
Notifications
You must be signed in to change notification settings - Fork 30
Description
after a first iteration on rewriting the form in #850, a lot of idea and improvement were found by @JulienVig. keeping track here.
-
When submitting the form successfully (according to the toaster), I get the error
Uncaught SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data- error toaster added, workaround until [tfjs-core] do not hang on invalid browser files tensorflow/tfjs#8517 is released
-
I would like to add some explanation for each field, maybe when hovering over an "i" or "?" icon as @tomasoignons had implemented
- Epochs: "Number of passes over the data" on hover
- Batch size: "Number of dataset elements to process at once" on hover
- more information for the model.json field, for example explain what is "TFJS", why we are using tensorflow.js, linking tfjs docs, where do download pre-trained models etc
-
Can we make error messages more user-friendly like "Please choose an image type"?
- preliminary work to setup custom messages
-
Regarding Differential Privacy it's not clear that leaving fields blank doesn't use DP, I think we should first ask whether to use DP and if yes ask for values (and make the fields required)
-
I don't think anyone can pick a good value for "Maximum weights difference between each round"... Does it need a unit or naming how the difference is computed (e.g. "per Euclidean distance")?
-
What is the "Size of the noise added to the weights"?
-
"Secure" aggregation is currently only available for Decentralized learning
-
Idem for "Secure Aggregation". Additionally it should only be available when choosing Decentralized Learning and "secure" aggregation type
-
Should "Maximum value of a single weight" be max absolute value or maximum magnitude? It's not clear to me if weight is a scalar, a vector or a tensor, isn't DP clipping the gradient rather than single weight values?
- absolute value, this is not used by DP but by secure aggregation
-
I notice small indents after "Differential Privacy" and "Secure Aggregations" but I don't think it's clear enough that these are headings, consider making the headings' font size bigger rather than adding an indent
-
"Expected data format" has placeholder "Images with [...]" even if the current data type is "tabular" or "text". Anyway I think this fields is more about accepted file format (e.g. for images we accept png jpeg and jpg, tabular only csv, etc) than the data content, isn't it? Though we can add both accepted file extensions and what data should look like.
- hum, the accepted file types are handled by the file selection component but I find it more of an implementation detail as every images are transformed into its raw parts. also, the type of images that we support can vary greatly between node and web (the former supports a bunch: AVIF, TIFF, GIF, WebP, …). placeholder changed but no mention of filetype for now.
-
"How to join after ?" I think having to explain this denotes that we're doing something wrong that isn't intuitive enough. But if we keep it I'd write it "Joining this task".
-
When clicking submit and form validation succeeds, rather than a toaster we should show a loading indicator with "Creating the task..."
-
Refreshing the page empties out the fields which can be annoying. Can we either persist them or have the browser confirm that we want to leave this page?
future reworks
- after successfully filling the form we could have the user connect data and train a model locally for a few epochs to make sure that labels, image dimensions, and would let the user see if the learning rate is okay, if the loss is adequate or diverges etc (so let them go back and forth between the form and the sample training until final validation and uploading the task)
- it would be useful to have a preview of how the task would look like as the user fills the task title, description, sample data url etc before final validation.
- making the form a succession of pages rather than having everything in one page, it would make the experience smoother and less daunting and would hide how choosing the data type changes subsequent questions. I'm attaching a random example that I think looks nice:
https://github.com/user-attachments/assets/37d1eb17-1c17-411b-acd1-95a6da662ac1 - "Joining this task" I think having to explain this denotes that we're doing something wrong that isn't intuitive enough. For example (and probably future work) clicking submit successfully could go to a new page with "Your tasks has been created successfully", and two buttons: "Share this task" with a permalink and "Go to the task".