Buenas!
En primer lugar, comenzare diciendo que por fin encontré un hashtag para los posts sobre Windows Machine Learning: [#WinML]. Un pequeño resumen de WindowsML (en realidad de la parte que me interesa a mi)
La API WinML nos permite utilizar modelos entrenados de Machine Learning y realizar inferencias sobre la amplia variedad de hardware (CPU, GPU, VPU). Un ML Expert elegiría un Framework, como CNTK, Caffe2 o Tensorflow, y con el mismo podría construir y entrenar un modelo de ML.
Ese modelo luego se convertiría al formato de Open Neural Network Exchange (ONNX), co-desarrollado entre Microsoft, Facebook y Amazon. A partir de este momento, una aplicación Windows 10 puede utilizar internamente este modelo de ML como una parte más de la App.
Esto de por si es grandioso, sin embargo, hay una nueva capa más específicamente creada para los juegos: DirectML. DirectML está construido sobre Direct3D y representa una capa especial para escenarios de Gaming que provee GPU Hardware Acceleration para las operaciones de WindowsML.
En las referencias he dejado el articulo donde se cubren todos los detalles técnicos de DirectML.
Otro punto interesante de la noticia es el anuncio del soporte para Unity ML-Agents. La integración nativa de WindowsML / DirectML estará disponible para los juegos para Windows 10 creados con Unity 3D.
En lo personal, yo no conocía los Unity Machine Learning Agents. Despues de leer un poco sobre los mismos, me queda claro que en un futuro cercano, los juegos y Apps creados con Unity3D serán completamente diferente a lo que conocemos hoy.
Bonus
Es momento de comenzar a atar cabos y entrar en la zona de especulaciones. Hace un tiempo se hizo publico que la nueva version de Hololens tendrá un nuevo chip específicamente dedicado a operaciones de [Deep Neural Networks]. Desde un punto de vista genérico, Hololens otro tipo de dispositivo Windows 10.
Si asumimos que Hololens V2 utilizara una version de Windows 10 que soporte out of the box las capacidades de Windows ML, pues ya tenemos un Mixed Reality Headset con capacidades impresionantes donde las Apps pueden utilizar ML de forma nativa.
¡Desde el punto de vista de un C# developer, esto es grandioso!
Happy Coding!
Saludos @ Burlington
El Bruno
References
- El Bruno, Hello World en ML o como crear una UWP App que utilice un modelo ONNX local
- El Bruno, Using ONNX models embedded in UWP Apps in Windows 10
- El Bruno, #AI – Open Neural Network Exchange, Facebook and Microsoft help us to change between different AI Frameworks
- El Bruno, Some news on Hololens V2, HPU V2 and how Microsoft choose the hardware path, build their own Chips