Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Windows Machine Learning (ML) ayuda a los desarrolladores de aplicaciones de Windows de C#, C++y Python a ejecutar modelos ONNX localmente en toda la variedad de hardware del equipo Windows, incluidas las CPU, las GPU y las NPUs. Windows ML abstrae los proveedores de hardware y ejecución, por lo que puede centrarse en escribir el código. Además, Windows ML se actualiza automáticamente para admitir las NPUs, LAS GPU y las CPU más recientes a medida que se publican.
Importante
Las API de Windows ML son actualmente experimentales y no se admiten para su uso en entornos de producción. Las aplicaciones que prueban estas API no deben publicarse en Microsoft Store.
Versiones de Windows comptibles
Windows ML funciona en todos los equipos con Windows 11 que ejecutan la versión 24H2 (compilación 26100) o posterior.
Hardware admitido
Windows ML funciona en todo el hardware de PC x64 y ARM64, incluso en equipos que no tienen NPU o GPU, lo que significa que puede llegar a cientos de millones de dispositivos Windows en el mercado. Esto podría significar mantener ligeras las cargas de trabajo; pero hay iGPUs lo suficientemente eficaces como para controlar cargas de trabajo pesadas.
Conversión de modelos a ONNX
Puedes convertir modelos de otros formatos a ONNX para que puedas usarlos con Windows ML. Consulte los documentos de Visual Studio Code AI Toolkit sobre cómo convertir modelos al formato ONNX para obtener más información.
¿Qué desafíos aborda Windows ML?
Diversidad de hardware
Como desarrollador de IA que trabaja en Windows, el primer desafío que Windows ML aborda es la diversidad de hardware. Sí, es una ventaja del ecosistema de Windows que los usuarios pueden elegir el hardware que mejor se adapte a ellos. Pero sin Windows ML, te resultaría difícil, como desarrollador al crear experiencias de IA, admitir toda esa diversidad de hardware. Muchas de las aplicaciones líderes actuales que se ejecutan en Windows eligen publicarse solo en un solo proveedor de hardware a la vez. Sólo intel; sólo Qualcomm; sólo AMD; solo gpu discretas por ahora. Y eso limita considerablemente el número de dispositivos en los que esas aplicaciones se pueden ejecutar.
Despliegue de dependencias
A continuación, hay el problema de implementar todas las dependencias que necesita. Para enviar experiencias de inteligencia artificial en la aplicación, la aplicación debe enviar e implementar tres elementos.
- Los modelos de inteligencia artificial que desea ejecutar.
- Tiempo de ejecución que permite realizar inferencias en esos modelos.
- Herramientas y controladores específicos del proveedor que ayudan al entorno de ejecución elegido a comunicarse con el silicio.
La aplicación necesita esas cosas y también las necesita para mantenerlas y actualizarse. Cuando se lanza una nueva versión del entorno de ejecución o se soluciona un error crítico en él, es necesario actualizar la aplicación en consecuencia. Sin Windows ML, como desarrollador de aplicaciones, tendrías que tomar posesión de todas esas dependencias. Se convertirán en parte de tu aplicación y la carga de mantener todo te caería.
Aprovechamiento del hardware local
Y, a continuación, hay el problema de poner en funcionamiento el hardware local en el que se ejecuta la aplicación. ¿Deben ejecutarse las cargas de trabajo de IA en CPU, GPU o NPU? Si usa diferentes modelos de IA, ¿cuáles se ejecutan mejor en qué procesadores? Este problema se vuelve muy complejo rápidamente. Y sin Windows ML, depende de usted escribir y mantener la lógica difícil que primero detecta lo que está disponible en el dispositivo actual e intenta sacar el máximo rendimiento de él.
Windows ML en Microsoft.Windows.AI.MachineLearning
resuelve todos estos problemas.
- El tiempo de ejecución no necesita estar dentro de la aplicación.
- El proveedor de ejecución (EP) está seleccionado para los usuarios automáticamente en función del hardware que esté disponible para ellos. Las sobrescrituras de desarrollador pueden seleccionarse.
- Windows ML gestiona las dependencias en tiempo de ejecución; trasladando la carga fuera de tu aplicación hacia Windows ML y los EPs.
- Windows ML ayuda a equilibrar la carga en el dispositivo cliente y elige el hardware adecuado para la ejecución de la carga de trabajo de IA.
Información general detallada
Windows ML en Microsoft.Windows.AI.MachineLearning
funciona como el núcleo de inferencia de IA de Windows AI Foundry. Por lo tanto, si usa las API de Inteligencia artificial de Windows para acceder a los modelos integrados en Windows, o si usa la lista creciente de modelos Foundry listos para usar con Foundry Local (consulte Introducción a Foundry Local), ejecutará las cargas de trabajo de IA en Windows ML probablemente sin conocerlo.
Y si trae sus propios modelos, o si necesita un alto grado de control específico sobre cómo tiene lugar la inferencia de modelos, puede usar Windows ML directamente llamando a sus API. Consulte Las API de Windows ML (Microsoft.Windows.AI.MachineLearning).
Basado en el entorno de ejecución de ONNX
Windows ML se basa en una versión bifurcada y especializada del entorno de ejecución de ONNX. Al hacerlo, algunas mejoras específicas de Windows permiten mejorar el rendimiento. También se ha optimizado en torno a los modelos estándar de QDQ de ONNX, lo que permite centrarnos en lograr el mejor rendimiento de inferencia en el dispositivo local sin necesidad de ampliar los modelos innecesariamente.
OnNX Runtime se comunica con silicon a través de proveedores de ejecución (EPs), que sirven como una capa de traducción entre el tiempo de ejecución y los controladores de hardware. Hemos realizado el trabajo del proveedor de ejecución que hicimos con Windows Click to Do y NPUs, lo combinamos con nuevos proveedores de ejecución para GPU y lo encapsulamos en un único marco de Windows ML que ahora ofrece la promesa de habilitar cargas de trabajo de INTELIGENCIA ARTIFICIAL que pueden tener como destino cualquier hardware entre CPU, GPU y NPU. Cada tipo de procesador es un ciudadano de primera clase que es totalmente compatible con los controladores más recientes y los proveedores de ejecución de ONNX Runtime de los cuatro principales proveedores de silicio de IA (AMD, Intel, NVIDIA y Qualcomm). Esos tipos de procesador están en el mismo nivel: solo tiene que escribir en Windows ML con modelos QDQ de ONNX para escalar las cargas de trabajo de IA de forma segura en todos los tipos de hardware.
Empaquetado e implementación
Después de agregar una referencia a Windows ML al proyecto e instalar la aplicación en el equipo del cliente:
- Descargamos la versión más reciente de Windows ML, para asegurarnos de que el entorno de ejecución está instalado correctamente junto con la aplicación.
- A continuación, detectamos el hardware de la máquina específica en la que está instalada la aplicación y descargamos los proveedores de ejecución adecuados necesarios para ese equipo.
Por lo tanto, no es necesario incluir sus propios proveedores de ejecución dentro del paquete de la aplicación. De hecho, no es necesario preocuparse por los proveedores de ejecución en absoluto, ni por el envío de compilaciones personalizadas de entornos de ejecución de IA diseñados específicamente para AMD o Intel o NVIDIA o Qualcomm o cualquier otra familia de hardware específica. Simplemente llamas a las API de Windows ML, luego alimentas un modelo con formato correcto y nos encargamos del resto, aprovisionando automáticamente todo lo necesario en el hardware de destino y manteniendo todo actualizado.
El resultado es que simplifica considerablemente las dependencias de las que tiene que administrar y preocuparse. Y es posible gracias al nivel de interacción que hemos obtenido con socios de hardware como AMD, Intel, NVIDIA y Qualcomm. Esos asociados seguirán proporcionando proveedores de ejecución para Windows ML y los enviarán a Microsoft cuando tengan actualizaciones o silicio nuevo que introduzcan en el mercado.
Microsoft certificará los nuevos proveedores de ejecución (EPs) para asegurarse de que no haya regresiones a la precisión de inferencia. Y, a continuación, asumiremos la responsabilidad de desplegar esos EP en las máquinas de destino en nombre de los proveedores de hardware, y facilitaremos que el ecosistema de Windows ML como un todo se mantenga al corriente y actualizado.
Es un enfoque diferente del enfoque adoptado por tecnologías como DirectML y DirectX; donde Microsoft abstrae las API sobre los cambios del ecosistema de hardware. En su lugar, con Windows ML, estamos cambiando el panorama para permitir a los proveedores de hardware introducir rápidamente y directamente nuevas tecnologías de silicio, con soporte inmediato de ejecución desde el primer día para ese hardware a medida que llega al mercado.
Rendimiento
El rendimiento es más que la velocidad de reloj pura. Sí, muchas cargas de trabajo de inteligencia artificial son costosas a nivel computacional. Pero a medida que la inteligencia artificial se vuelve omnipresente en las experiencias de la aplicación, hay una necesidad de un tiempo de ejecución que pueda optimizar la inferencia de una manera que conserve la vida útil de la batería al tiempo que mantiene un alto grado de precisión. Para que la inteligencia artificial genere resultados buenos y precisos.
Normalmente, las cargas de trabajo de IA se dividen en uno de los dos cubos:
- Inteligencia artificial ambiental. La inteligencia artificial se está produciendo silenciosamente en segundo plano a medida que los usuarios interactúan con la aplicación.
- IA explícita. Los usuarios saben que han iniciado una tarea de inteligencia artificial, que suele ser un tipo de escenario de IA generativa (genAI).
Las cargas de trabajo de inteligencia artificial ambiental se pueden derivar a un procesador NPU dedicado con más de 40 TOPS de capacidad de procesamiento, y un consumo de energía que suele situarse en el rango de los vatios. De este modo, Windows ML es perfecto para cargas de trabajo de inteligencia artificial ambiental. En la mayoría de los casos, los usuarios de las aplicaciones sentirán la magia de la inteligencia artificial sin tener que esperar y sin tener que preocuparse por la duración de la batería de su PC.
Muchas tareas de inteligencia artificial que requieren un gran poder de cálculo pueden beneficiarse mejor de una GPU dedicada. La versión 2018 de Windows ML se basa en directML EP para controlar las cargas de trabajo de GPU; y eso aumenta el número de capas entre el modelo y el silicio. Windows ML en Microsoft.Windows.AI.MachineLearning
no tiene la capa de DirectML. En su lugar, funciona directamente con proveedores de ejecución dedicados para la GPU, ofreciéndole un rendimiento directo sobre el hardware, comparable a los SDK dedicados del pasado, como TensorRT para RTX, AI Engine Direct y la extensión de Intel para PyTorch. Hemos diseñado Windows ML para ofrecer un rendimiento de GPU líder en su clase, manteniendo las ventajas de escribir código una vez y ejecutarlo en cualquier lugar que ofrecía la solución anterior basada en DirectML.
En ambos casos anteriores, todos los aspectos del rendimiento son importantes. Velocidad pura del reloj, duración de la batería y precisión. Para que el usuario obtenga resultados realmente buenos.
Todo esto le abre una amplia gama de experiencias y escenarios con tecnología de inteligencia artificial. Puede ejecutar cargas de trabajo y agentes de inteligencia artificial ambiental en NPU dedicadas; o ejecute cargas de trabajo en GPU integradas para mantener libre la GPU discreta si es necesario. Y si quiere potencia bruta, puede dirigirse a las dGPU discretas modernas de hoy en día para ejecutar cargas de trabajo más pesadas a las velocidades más rápidas posibles.
¿Qué es un proveedor de ejecución?
Un proveedor de ejecución (EP) es un componente que implementa optimizaciones específicas del hardware para las operaciones de aprendizaje automático (ML). Un EP puede implementar una o varias abstracciones de hardware. Por ejemplo:
- Los proveedores de ejecución de CPU optimizan para procesadores de uso general.
- Los proveedores de ejecución de GPU optimizan la ejecución en procesadores gráficos.
- Los proveedores de ejecución de NPU optimizan para las unidades de procesamiento neuronal.
- Otros proveedores específicos de cada vendedor.
El entorno de ejecución de Windows ML controla la complejidad de administrar esos proveedores de ejecución proporcionando API para hacer lo siguiente:
- Descargue los EP adecuados para el hardware actual.
- Registre EPs dinámicamente en tiempo de ejecución.
- Configurar el comportamiento de EP.
Uso de proveedores de ejecución con Windows ML
El entorno de ejecución de Windows ML proporciona una manera flexible de acceder a los proveedores de ejecución de aprendizaje automático (EP), que pueden optimizar la inferencia del modelo de ML en distintas configuraciones de hardware. Esos EP se distribuyen como paquetes independientes que se pueden actualizar independientemente del sistema operativo.
Proporcionar comentarios sobre Windows ML
Nos encantaría escuchar sus comentarios sobre el uso de Windows ML. Si tiene algún problema, use la aplicación Centro de opiniones en Windows para notificar el problema.
Los comentarios deben enviarse en la categoría Plataforma para desarrolladores:> Windows Machine Learning .