La inteligencia artificial ejecutada en local en Windows 11 ya no es cosa de laboratorios ni de grandes empresas. Hoy puedes correr modelos avanzados directamente en tu PC, sin depender de la nube, aprovechando CPU, GPU y hasta la NPU si tu equipo es de última generación. Y la pieza clave para conseguirlo de forma sencilla es ONNX Runtime integrado con Windows ML y .NET.
En las siguientes líneas vamos a ver, con calma pero sin rodeos, cómo usar IA local con ONNX Runtime en Windows 11: qué es ONNX y su runtime, cómo encaja con Windows ML, qué necesitas instalar, cómo montar ejemplos reales en .NET/WinUI 3, cómo aprovechar DirectML y la aceleración por hardware y qué escenarios prácticos puedes cubrir (clasificación de imágenes, voz a texto, modelos de lenguaje locales, RAG, etc.). Verás que hay algo de código, pero el foco está en que entiendas el flujo completo de cargar, preparar y ejecutar modelos ONNX en tu máquina.
Qué es ONNX y qué papel juega ONNX Runtime en Windows 11
El estándar ONNX (Open Neural Network Exchange) es un formato abierto pensado para describir modelos de redes neuronales de manera interoperable. Dicho rápido: puedes entrenar un modelo en PyTorch o TensorFlow, exportarlo a ONNX y luego usarlo en Windows, en la nube, en la web o donde quieras, sin reescribir todo desde cero.
Un modelo ONNX incluye la estructura de la red (capas, conexiones, tipos de operación), los pesos resultantes del entrenamiento y la definición de las entradas y salidas. Gracias a esto, herramientas y runtimes distintos pueden entender exactamente qué datos esperan, cómo procesarlos y qué devuelven. Por ejemplo, un modelo de clasificación de imágenes recibe una imagen preprocesada y devuelve un vector de probabilidades para cada clase.
Sobre ese formato estándar se apoya ONNX Runtime, que es un motor de ejecución optimizado para correr esos modelos en múltiples plataformas. Este runtime ofrece una API uniforme para:
- Cargar modelos ONNX desde disco o memoria.
- Crear sesiones de inferencia con diferentes opciones de ejecución.
- Conectar proveedores de ejecución (Execution Providers) para CPU, GPU y NPU.
- Alimentar el modelo con tensores de entrada y recuperar los tensores de salida.
En Windows 11, ONNX Runtime se integra de forma nativa a través de Windows ML y del ecosistema de Windows App SDK y DirectML, lo que permite que tus aplicaciones de escritorio, ya sean en C#, WinUI 3, WPF o incluso aplicaciones web con WebNN, saquen partido de aceleración hardware sin complicarte la vida con drivers y SDKs específicos de cada fabricante.
Ventajas de usar IA en local frente a la nube
Trabajar con modelos de IA en local en Windows 11 tiene varias ventajas muy claras respecto a depender exclusivamente de servicios remotos como ChatGPT, Gemini u otros:
En primer lugar, la privacidad y confidencialidad de los datos mejora de forma drástica, porque el procesamiento se hace en tu propio dispositivo. Cuando ejecutas un modelo ONNX en tu PC, tus documentos, audios, imágenes o registros médicos no salen de tu red, lo que reduce muchísimo el riesgo de filtraciones o usos indebidos de la información.
También está el factor coste y control. Al no depender de peticiones continuas a una API de pago en la nube, evitas sorpresas en la factura y puedes desplegar soluciones que funcionen a gran escala en una organización sin tener que multiplicar los gastos de suscripción. Inviertes en el hardware una vez y lo exprimes al máximo con ONNX Runtime y Windows ML.
La baja latencia es otro punto fuerte. Si haces inferencias de visión por computador, asistentes contextuales o reconocimiento de voz, cada ida y vuelta a la nube suma milisegundos. Ejecutar el modelo en local reduce el tiempo de respuesta y mejora la sensación de fluidez, algo crítico en aplicaciones interactivas o en dispositivos perimetrales.
Por último, pero no menos importante, está la independencia de la conexión a Internet. Si tu app debe funcionar en un avión, en una fábrica aislada o en cualquier entorno con red limitada, tener los modelos en ONNX embebidos en la propia aplicación (por ejemplo, dentro de la MSIX) te asegura que la IA seguirá funcionando sin pestañear, como en PhotoPrism con IA local.
Windows ML, ONNX Runtime y DirectML: cómo encaja todo
En el ecosistema moderno de Windows 11, Windows ML actúa como una capa de middleware que unifica la gestión de CPU, GPU y NPU para inferencia de modelos de IA. Su misión es coordinar los recursos de hardware disponibles para que la ejecución de modelos ONNX sea lo más eficiente posible, sin que tú tengas que pelearte con detalles de cada chip.
Windows ML está estrechamente integrado con ONNX Runtime: reutiliza sus API, se apoya en sus Execution Providers (EP) y delega en él la parte de compilación y optimización del modelo. Microsoft, además, se ocupa de distribuir y mantener tanto ONNX Runtime como los EP de los distintos fabricantes, lo que aligera mucho el empaquetado de tus aplicaciones y reduce dependencias externas.
Un componente clave en este puzzle es DirectML, la capa de abstracción que permite ejecutar modelos de ML aprovechando la GPU (y la NPU en equipos compatibles) de forma unificada. ONNX Runtime ofrece un EP específico para DirectML, de modo que puedes crear sesiones de inferencia que automáticamente usen CPU, GPU o NPU según lo que haya disponible en el equipo.
Grandes fabricantes como AMD, Intel, NVIDIA y Qualcomm colaboran con Microsoft para proporcionar EPs optimizados: AMD integra Ryzen AI, Intel combina OpenVINO con Windows ML, NVIDIA proporciona TensorRT para GPUs RTX y Qualcomm ajusta la NPU de Snapdragon X. Gracias a esto, los mismos modelos ONNX pueden aprovechar hardware muy diverso sin que tengas que cambiar tu código de alto nivel; si necesitas ajustar el equipo, aprende a configurar perfiles de rendimiento.
Todo esto llega empaquetado en el Windows App SDK (a partir de la versión 1.8.1) y se soporta oficialmente en dispositivos con Windows 11 24H2 o superior, lo que convierte al sistema operativo en una plataforma muy sólida para experiencias de IA local en producción.
Requisitos previos para usar IA local con ONNX Runtime en Windows 11
Para empezar a ejecutar modelos ONNX en local en Windows 11 desde tus aplicaciones .NET, conviene revisar algunos requisitos básicos de entorno y herramientas:
A nivel de sistema, necesitarás Windows 11 actualizado (idealmente build 22621 o superior) y, si vas a desplegar apps modernas, trabajar con el Windows App SDK y proyectos WinUI 3 empaquetados en MSIX. Esto te da acceso a las APIs de Windows ML, DirectML y a las funcionalidades de integración de IA más recientes.
En cuanto al entorno de desarrollo, la opción más habitual es usar Visual Studio 2022 o superior con la carga de trabajo de desarrollo de escritorio .NET activada. A partir de ahí podrás crear proyectos WinUI 3, WPF, .NET MAUI o incluso apps de consola en C# o VB.NET que referencien ONNX Runtime y Windows ML.
En el plano de dependencias, hay varios paquetes NuGet clave que se repiten en la mayoría de escenarios: Microsoft.ML.OnnxRuntime para CPU, Microsoft.ML.OnnxRuntime.DirectML si quieres tirar de GPU con DirectML, Microsoft.AI.MachineLearning para trabajar con Windows ML en WinUI 3, y librerías como SixLabors.ImageSharp o similares para preprocesar imágenes de entrada.
Por supuesto, también te hará falta al menos un modelo ONNX compatible. Puedes descargar modelos preentrenados desde el ONNX Model Zoo (por ejemplo, ResNet, SqueezeNet, modelos de clasificación, detección de objetos o NLP), o bien convertir tus propios modelos desde PyTorch o TensorFlow usando herramientas como AI Toolkit para VS Code, tf2onnx u onnxruntime-tools.
En el hardware, aunque ONNX Runtime está optimizado para CPU y funciona perfectamente sin GPU, notarás una mejora clara al aprovechar aceleradores locales como GPU o NPU, sobre todo con modelos grandes (modelos de lenguaje, Stable Diffusion, Whisper, etc.). Consulta nuestro checklist esencial de hardware.
Cómo instalar y usar ONNX Runtime en proyectos .NET y WinUI 3

Una de las formas más directas de empezar a usar ONNX Runtime en Windows 11 es crear una aplicación de escritorio en .NET. El patrón básico se repite tanto en C# como en VB.NET: referencia el paquete, carga el modelo, prepara las entradas y ejecuta la sesión de inferencia.
En un proyecto tradicional de .NET (por ejemplo, una app de consola o una aplicación de escritorio clásica), el flujo típico es añadir el paquete Microsoft.ML.OnnxRuntime desde el Administrador de paquetes NuGet de Visual Studio, y después crear una InferenceSession a partir de la ruta a tu archivo .onnx. Esa sesión es la que vas a reutilizar cada vez que quieras realizar una predicción.
En el caso de una aplicación WinUI 3 de escritorio con Windows App SDK, el proceso es similar, pero habitualmente combinarás ONNX Runtime con otras librerías de soporte. Por ejemplo, una demo típica de clasificación de imágenes puede incluir:
- Microsoft.ML.OnnxRuntime y Microsoft.ML.OnnxRuntime.Managed para la ejecución del modelo.
- SixLabors.ImageSharp para cargar, redimensionar y normalizar imágenes.
- SharpDX.DXGI si quieres seleccionar explícitamente un adaptador gráfico para DirectML.
Dentro de la ventana principal (por ejemplo, MainWindow.xaml.cs) sueles crear un método de inicialización del modelo que configure las SessionOptions, el proveedor de ejecución (CPU o DirectML) y la ruta al modelo ONNX. De este modo, tu aplicación arranca, inicializa la sesión una sola vez y luego reutiliza esa sesión para cada llamada de inferencia, maximizando el rendimiento.
Si prefieres trabajar con Windows ML directamente en un proyecto WinUI 3, añadirás el paquete Microsoft.AI.MachineLearning y copiarás tu modelo ONNX (por ejemplo, modelo_mnist.onnx o un modelo de clasificación de imágenes) a una carpeta como Assets/ML y configurarás sus propiedades para que se incluya en la salida de compilación como contenido.
Ejemplo práctico: clasificación de imágenes con ONNX Runtime y DirectML
Un ejemplo clásico y muy ilustrativo de IA local con ONNX Runtime en Windows 11 es la clasificación de imágenes usando un modelo como ResNet50 o SqueezeNet. El flujo conceptual es siempre el mismo, aunque el código pueda variar según el framework que utilices.
En una app WinUI 3, puedes diseñar una interfaz sencilla con un botón para seleccionar una foto, un control Image para mostrar la imagen elegida y un TextBlock para listar las predicciones. El usuario hace clic en el botón, se abre un FileOpenPicker, se selecciona una imagen y, en segundo plano, el programa la procesa y la pasa al modelo ONNX.
El preprocesado de la imagen suele implicar cargarla en formato RGB de 24 bits, redimensionarla al tamaño que espera el modelo (por ejemplo, 224×224 píxeles), recortar si hace falta y normalizar los valores de cada canal según las medias y desviaciones estándar indicadas en la documentación del modelo. Con ImageSharp, esto se traduce en redimensionar la imagen, recorrer fila a fila los píxeles y rellenar un DenseTensor<float> con los valores normalizados.
Después de preparar el tensor, se crea un OrtValue a partir de la memoria del tensor (sin copias innecesarias), se construye un diccionario con las entradas del modelo (normalmente un único tensor llamado algo como «data» o similar) y se invoca al método Run de la InferenceSession. La salida suele ser un tensor de probabilidades por clase, que puedes postprocesar usando una softmax para que los valores estén en y sumen 1.
Finalmente, ordenas las probabilidades de mayor a menor, te quedas con las 10 etiquetas con más confianza y las presentas en pantalla. Para ello se suele usar una clase auxiliar (por ejemplo, Prediction con propiedades Label y Confidence) y una tabla de etiquetas (LabelMap) que mapea cada índice de salida a una clase semántica (perro, coche, teclado, etc.).
Este tipo de ejemplo demuestra cómo ONNX Runtime, DirectML y WinUI 3 encajan para ofrecer una experiencia de IA local con UI moderna, aceleración por hardware y sin necesidad de conexión constante a Internet.
Trabajar con Windows ML y modelos ONNX en WinUI 3
Además de usar ONNX Runtime “puro”, puedes apoyarte en Windows ML dentro de un proyecto WinUI 3 para beneficiarte de la integración nativa con el sistema operativo. Este enfoque es muy útil cuando quieres empaquetar tu aplicación en MSIX, usar el Windows App SDK y garantizar un comportamiento coherente en dispositivos Windows 11 modernos.
El proceso típico consiste en agregar el paquete Microsoft.AI.MachineLearning al proyecto, copiar tu modelo ONNX (por ejemplo, modelo_mnist.onnx o un modelo de clasificación de imágenes) a una carpeta como Assets/ML y configurar sus propiedades para que se incluya en la salida de compilación como contenido.
Desde el código C#, cargas el modelo usando las APIs de Windows ML, creas una sesión y preparas los datos de entrada en el formato que espera (por ejemplo, un tensor con la imagen 28×28 en escala de grises para MNIST, o una imagen 224×224 para un modelo de visión más complejo). La sesión se encarga de usar DirectML y la aceleración de hardware de manera transparente si el dispositivo lo soporta.
Una vez realizada la inferencia, trabajas con las salidas para obtener el valor con mayor probabilidad (por ejemplo, el dígito más probable en el caso de MNIST) o un conjunto de probabilidades que puedes mostrar en la interfaz. Todo ello se integra sin fricciones con la UI XAML de WinUI 3, permitiéndote actualizar controles visuales con los resultados de la IA.
Windows ML, además, se encarga de gestionar proveedores de ejecución y de coordinar el uso de CPU, GPU y NPU según el hardware disponible, sin que tengas que cambiar tus modelos ni reorganizar drásticamente tu código.
Modelos de lenguaje locales, RAG y otros ejemplos avanzados
La IA local en Windows 11 no se limita a la visión por computador. Con ONNX Runtime y DirectML también puedes ejecutar modelos de lenguaje (LLM) convertidos a ONNX, modelos de voz a texto como Whisper, o arquitecturas de segmentación y generación de imágenes como Stable Diffusion.
Microsoft mantiene una serie de ejemplos oficiales y la AI Dev Gallery, una aplicación abierta con más de 25 demos interactivas que muestran cómo integrar modelos locales en apps reales: desde editores de audio impulsados por IA que indexan fragmentos según una consulta textual, hasta apps de notas inteligentes que usan modelos como Phi-3 para resumen, autocompletado y razonamiento offline.
Un patrón muy relevante es la Generación Aumentada por Recuperación (RAG), en la que combinas un modelo de lenguaje local con una base de conocimientos externa. Por ejemplo, una app WPF puede cargar un PDF, trocearlo y vectorizarlo con un modelo de incrustaciones (embeddings) local, almacenar esos vectores y, en tiempo de consulta, recuperar los fragmentos más relevantes para que el modelo de lenguaje genere respuestas basadas en datos reales, sin tener que tocar los pesos del modelo.
Estos ejemplos demuestran que puedes construir asistentes contextuales, sistemas de búsqueda semántica, transcripción de audio y chatbots de propósito específico que funcionen completamente en local en Windows 11, aprovechando ONNX Runtime y DirectML para mantener el rendimiento bajo control.
Además, hay proyectos de referencia para correr modelos como Phi-3, Llama 3 o Mistral optimizados con DirectML, tanto en formato ONNX como directamente desde PyTorch, usando aplicaciones ligeras (por ejemplo, con interfaz web estilo Gradio) para probar el rendimiento y ajustar la configuración antes de integrarlos en una aplicación final.
IA acelerada por hardware en la web con ONNX Runtime Web y WebNN
Otra vía interesante para usar IA local con ONNX Runtime en Windows 11 es el entorno web, apoyándote en ONNX Runtime Web y la API WebNN. En este contexto, modelos pesados como Stable Diffusion, Segment Anything o Whisper pueden ejecutarse directamente en la GPU o NPU del dispositivo a través de DirectML, pero desde una aplicación web moderna.
Hay demos públicas que muestran, por ejemplo, Stable Diffusion Turbo generando imágenes a partir de texto en apenas unos segundos mediante WebNN y DirectML en equipos con capacidades de IA avanzadas. Lo mismo ocurre con Segment Anything, que permite recortar cualquier objeto de una imagen subida por el usuario, o con Whisper Base, que convierte voz a texto localmente en el navegador.
En estos escenarios, ONNX Runtime Web se encarga de cargar el modelo ONNX en el contexto del navegador, gestionar los tensores de entrada y salida y hablar con WebNN para que este derive la ejecución hacia DirectML en el dispositivo Windows 11. El resultado es que puedes ofrecer experiencias de IA ricas sin necesidad de enviar audio, imágenes o texto a un servidor remoto.
Esta combinación convierte a Windows 11 en una plataforma muy potente no solo para aplicaciones de escritorio nativas, sino también para aplicaciones web con inferencia híbrida, donde parte de la lógica reside en la nube y parte se ejecuta directamente en el equipo del usuario.
Para desarrolladores que ya usan tecnologías web (JavaScript, frameworks SPA, etc.), este enfoque es una forma cómoda de sin necesidad de reescribir toda la aplicación dar el salto a la IA local sin necesidad de reescribir toda la aplicación en .NET o C#.
Buenas prácticas, seguridad y desarrollo responsable
Al integrar características de IA en aplicaciones de Windows, Microsoft recomienda seguir una serie de pautas de desarrollo responsable, especialmente en el contexto de modelos generativos y procesamiento de contenido sensible. No se trata solo de rendimiento, sino también de minimizar posibles daños o usos inadecuados.
Las API de Windows AI incorporan mecanismos de moderación de contenido de texto a través de servicios como Microsoft Foundry, lo que ayuda a filtrar resultados potencialmente problemáticos. Aunque estés trabajando con modelos locales, conviene aplicar capas adicionales de validación de entrada y de revisión de salida en dominios críticos (finanzas, salud, seguridad, etc.).
Desde el punto de vista de diseño de la aplicación, es recomendable validar las entradas antes de lanzar la inferencia (tamaños de imagen, tipos de archivo, longitud de texto), gestionar caídas de la GPU o falta de aceleración con rutas alternativas por CPU, y evitar cargar el modelo repetidamente en cada petición. Mantener la sesión de inferencia viva y reutilizarla es clave para un buen rendimiento.
También es importante considerar la optimización de los modelos ONNX: técnicas como la cuantización, la poda o la fusión de operaciones pueden reducir el tamaño del modelo y mejorar la velocidad sin sacrificar demasiado la precisión. Herramientas como el AI Toolkit para VS Code o la propia infraestructura de compilación de ONNX Runtime (incluyendo las nuevas APIs de compilación introducidas en versiones recientes) están pensadas para facilitar este proceso.
Por último, no olvides revisar la disponibilidad del hardware y del modo desarrollador en el dispositivo en el que vayas a desplegar tus apps, especialmente si vas a probar en equipos de usuarios finales, kioscos, dispositivos industriales o entornos con políticas de seguridad estrictas.
Con todos estos componentes bien alineados —ONNX como formato estándar, ONNX Runtime y Windows ML como motores de ejecución, DirectML y los EP de AMD, Intel, NVIDIA y Qualcomm para aprovechar CPU, GPU y NPU, y herramientas como AI Dev Gallery o AI Toolkit— Windows 11 se convierte en una plataforma muy potente para construir aplicaciones de IA local, privadas, rápidas y listas para producción, desde simples clasificadores de imágenes hasta asistentes complejos basados en modelos de lenguaje y RAG.