The State of JS Inference in Browsers Last time I looked at ONNX was 2+ years ago. It was basically nowhere. Now I decided to export our models from silero-models to ONNX and TensorFlow. After fixing numerous issues, tldr - vanilla ONNX (via onnx-runtime)…
ONNX and OpenVino hubs are designed to make models built by other people load / work using "1 line" of code with a semblance of everything being done properly in legal terms, but there is very little incentive for model creators to share models there.
TF and Torch hubs may actually help with discovery and they are low-maintenance.
All of this is kind obvious, if you compare my conclusions with strategies of companies maintaining these, especially the no-GPL mumo-jumbo by Intel.
- Looks like it is mostly community-driven - Their submission process is mostly biased towards community uploading third-party research artefacts, though - Though description format is plain md, it is mostly geared towards people packaging third-party research artefacts - You MUST upload all of your models / artefacts / datasets to their git-lfs storage - All in all of this mostly implies between the lines that your models will not be updated / will be hard to maintain - What is most sinful - if you follow their format entirely, there is no connection between you and your model's users - they will just see ONNX hub repo folders and will never care about you - No legal problems per se, but I cannot see any motivation for independent companies to share models there - you essentially upload whole packages there and they are gone for good (I believe that links inside of github are not properly indexed, but git-lfs is NOT indexed by web-crawlers for sure) - In the end, even if you do not care about this sort of thing, and you are 100% altruistic, this git-lfs basically implies that you have to re-upload your updated models on each update, create a PR, etc etc - I am just lazy to do this for each model
Open Vino models
- Well, their docs format are decent - A bit too much focus, again, on hosting third-party research artefacts and too much belief that all datasets are free and public (and that leaderboards matter) - The big problem is that they essentially also want you to package something and relinquish all rights to this - It is also supported by the fact that GPL licenses are NOT allowed - So, what is my motivation to contribute as an independent company? Well, there is very little
- A lot of confusion and legacy between old TF / Keras / Hub models / SavedModels - Instructions are like 10 separate documents, but after looking at examples it is kind of easy ... but the docs are very ... non-intuitive - ~1000 models published, most of them by Google, most of them just very niche research artefacts - Overall structure consists of models and collections. Nice tagging, nice web UI to look through the models, I see why there is so much hassle with format documents - Zero traffic from there though =( - Core models and community models are separated ... so I believe this is the reason. Also PyTorch hosts its hub on their main domain, whereas TF created a separate one ... you see what I mean =) - I could fit PyTorch logic there as well, so it is nice after all! - No focus on licensing - you can just add any license you want
So, I read the docs for all of them, created PRs for 3 of them, in the end our models were accepted to PyTorch Hub and TF Hub.
PyTorch Hub
- Instructions are literally 4 steps long - The way the models are packaged and distributed is beautiful, clean, minimalistic and easy to use and maintain. Some great mind really designed it - Essentially you just host your model, add a special file to your repo, torch hub just pull your repo behind the scenes and loads the model. It is embarrassingly easy - I was greeted by Soumith Chintala himself - After publishing, our models got a decent surge of traffic - cool! - No focus on licensing or any similar sort of bs - you just share your models
Last time I looked at ONNX was 2+ years ago. It was basically nowhere. Now I decided to export our models from silero-models to ONNX and TensorFlow.
After fixing numerous issues, tldr - vanilla ONNX (via onnx-runtime) and TF models just work without looking under the hood. Ofc, I have not tested all of the teased back-ends for onnx-runtime, but it works at least on x86 w/o any issues out-of-the-box.
As for running in browsers ... my bet was on onnx.js (PyTorch => ONNX), but it looks like it is still early. Some issues I created - 1, 2. Interestingly, similar issues were addressed in onnx-tensorrt.
As for TF, I do not believe it is a go-to option just because you need to transform your model 3 times (PyTorch => ONNX => TF => TF js).
Such things looks like Sisyphus' tasks, but in the long run ecosystem evolves, which is cool.
ДОКЛАД NVIDIA "Fast training with AMP/TF32 using TensorCores on NVIDIA GPU" на Data Fest + СЕССИЯ Q&A
Денис Тимонин, AI Solutions Architect в NVIDIA, расскажет об одном из самых эффективных методов ускорения обучения и инференса нейросетей - применении смешанной точности. В своем докладе Денис разберет статью “Mixed Precision Training” от NVIDIA и Baidu Research и расскажет о деталях работы с точностью формата TensorFloat32. Также мы обсудим алгоритмы, которые применяются при обучении с помощью смешанной точности и поговорим об аппаратных решениях, которые обеспечивают высокую скорость работы для форматов данных в нейросетях. В первой части доклада мы разберем числа с плавающей точкой, мотивацию за обучением в смешанной точности, тензорные ядра, а также обучим сложную нейросеть StarGAN V2 (CVPR 2020) в режиме Automatic Mixed precision (AMP). Во второй части погрузимся в оптимизацию работы с тензорными ядрами: разберем трюки для быстрого обучения в высокоуровневых фреймворках, C++ API, а так же научимся подбирать правильные размеры данных и слоев в нейросети для наибыстрейшего обучения.
It used to be a standard narrative "TF = production". But I guess a more correct one would be "Google has invested billions in marketing and it has huge captive audience".
Lately I spent some time reading TF tutorials ... and they are so needlessly difficult - they fucking invent a protocol for everything! For what PyTorch hub achieves in 4 steps, TF hub requires you to read 10 markdown docs ... written in corporate language.
So, why is this important? Because proper competition makes everything shine brighter.
Why TF 2.0? Because PyTorch 1.0 ( ͡° ͜ʖ ͡°). Now it looks like Google and Nvidia have a new real competitors in ML inference market together with Intel (which afaik is losing in general, but that is another story).
- Silero STT models release on Torch hub - Oculus Quest 2, now $100 cheaper at $300 - Nvidia 30?0 close to release (see above a detailed commentary on Tim's post) - Fast.ai book - Benchmarking Deep Learning Optimizers - Language-Agnostic BERT Sentence Embedding + new Transformer LASER - Are we done with ImageNet?
We are proud to announce that we have released our high-quality (i.e. on par with premium Google models) speech-to-text Models for the following languages:
- English - German - Spanish
Why this is a big deal:
- STT Research is typically focused on huge compute budgets - Pre-trained models and recipes did not generalize well, were difficult to use even as-is, relied on obsolete tech - Until now STT community lacked easy to use high quality production grade STT models
How we solve it:
- We publish a set of pre-trained high-quality models for popular languages - Our models are embarrassingly easy to use - Our models are fast and can be run on commodity hardware
Even if you do not work with STT, please give us a star / share!