General
¿Cómo puedo integrar la IA en mi aplicación cliente de Windows?
Se puede realizar la integración de la IA en una aplicación de Windows mediante dos métodos principales: un modelo local o un modelo basado en la nube. En la opción de modelo local, tiene la opción de usar un modelo preexistente o entrenar el suyo propio mediante plataformas como TensorFlow o PyTorch y luego incorporarlo en la aplicación a través de OnnxRuntime. El Windows Copilot Runtime ofrece API para diferentes funciones, como el OCR o por medio del modelo Phi Silica. Por otro lado, si se hospeda el modelo en la nube y se accede a él a través de una API REST, es posible optimizar la aplicación mediante la delegación de tareas que consumen muchos recursos en la nube. Consulte Usar modelos de Machine Learning en una aplicación de Windows para obtener más información.
¿Qué lenguajes de programación son los mejores para desarrollar IA en aplicaciones cliente de Windows?
Puede utilizar el lenguaje de programación que prefiera. Por ejemplo, C# se usa generalmente para crear aplicaciones cliente de Windows. Si necesita tener más control sobre los detalles de bajo nivel, C++ es una excelente opción. También tiene la opción de usar Python. También puede usar el Subsistema de Windows para Linux (WSL) para ejecutar herramientas de inteligencia artificial basadas en Linux en Windows.
¿Cuáles son los mejores modelos de inteligencia artificial para aplicaciones cliente de Windows?
Se recomienda usar OnnxRuntime.
¿Cómo debo controlar la privacidad y la seguridad de los datos al usar IA en aplicaciones cliente de Windows?
Respetar la privacidad y la seguridad de los datos de los usuarios es esencial al desarrollar aplicaciones con tecnología de IA. Debe seguir los procedimientos recomendados para el control de los datos, como el cifrado de datos confidenciales, el uso de conexiones seguras y la obtención del consentimiento del usuario antes de recopilar los datos. También debe ser transparente sobre el uso que hace de los datos y dar a los usuarios control sobre sus datos. Lea también Desarrollo de aplicaciones y características de IA generativa responsable en Windows.
¿Cuáles son los requisitos del sistema para ejecutar IA en aplicaciones cliente de Windows?
Los requisitos del sistema de las aplicaciones de Windows que usan IA dependen de la complejidad del modelo de IA y de la aceleración de hardware usada. En el caso de modelos simples, una CPU moderna puede ser suficiente, pero en los modelos más complejos, es posible que sea necesario usar una GPU o una NPU. También debe tener en cuenta los requisitos de memoria y almacenamiento de la aplicación, así como el ancho de banda de red necesario para los servicios de IA basados en la nube.
¿Cómo optimizar el rendimiento de la IA en las aplicaciones cliente de Windows?
Para optimizar el rendimiento de la IA en las aplicaciones de Windows, debe considerar la posibilidad de usar la aceleración de hardware, como GPU o NPU, para acelerar la inferencia del modelo. Los portátiles con Windows Copilot+ están optimizados para cargas de trabajo basadas en IA y pueden hacer que aumente el rendimiento de las tareas de IA significativamente. Consulte también Información general sobre el kit de herramientas de IA de Visual Studio Code.
¿Puedo usar modelos de IA ya entrenados en mi aplicación cliente de Windows?
Sí, puede usar modelos de IA entrenados previamente en una aplicación de Windows. Puede descargar modelos entrenados previamente de Internet o usar un servicio de IA basado en la nube para acceder a modelos ya entrenados previamente. Puede integrar estos modelos en la aplicación mediante una plataforma como OnnxRuntime.
¿Qué es DirectML?
DirectML es una API de bajo nivel para el aprendizaje automático que proporciona aceleración de GPU para tareas comunes de aprendizaje automático en una amplia gama de controladores y hardware compatibles, incluidas todas las GPU compatibles con DirectX 12 de proveedores como AMD, Intel, NVIDIA y Qualcomm.
¿Qué es ONNX?
El formato Open Network Neural Exchange (ONNX) es un estándar abierto para representar modelos de aprendizaje automático (ML). Los marcos de modelos de ML populares, como TensorFlow, PyTorch, SciKit-Learn, Keras, Chainer, MATLAB, etc. se pueden exportar o convertir al formato ONNX estándar. Una vez que en el formato ONNX, el modelo se puede ejecutar en varias plataformas y dispositivos. ONNX es bueno para usar un modelo de ML en un formato diferente al que se entrenó.
¿Qué es ORT?
OnnxRuntime, u ORT, es una herramienta de tiempo de ejecución unificada para ejecutar modelos en diferentes plataformas (PyTorch, TensorFlow, etc.) que admite aceleradores de hardware (CPU, GPU o NPU de dispositivos).
¿Cómo difiere ONNX de otros marcos de aprendizaje automático, como PyTorch o TensorFlow?
PyTorch y TensorFlow se usan para desarrollar, entrenar y ejecutar modelos de aprendizaje profundo usados en aplicaciones de inteligencia artificial (IA). PyTorch se usa a menudo para la investigación, TensorFlow se usa a menudo para la implementación del sector, y ONNX es un formato de intercambio de modelos estandarizado que puentea la brecha, lo que le permite cambiar entre marcos según sea necesario y compatible entre plataformas.
¿Qué es una NPU? ¿En qué difiere de una CPU o GPU?
Una unidad de procesamiento neuronal o NPU es un chip de IA dedicado diseñado específicamente para realizar tareas de IA. El foco de una NPU difiere del de una CPU o GPU. Una unidad de procesamiento central, o CPU, es el procesador principal de un equipo, responsable de ejecutar instrucciones y cálculos de uso general. Una unidad de procesamiento de gráficos, o GPU, es un procesador especializado diseñado para representar gráficos y optimizado para el procesamiento paralelo. Es capaz de representar imágenes complejas para tareas de edición y juegos de vídeo.
Las NPU están diseñadas para acelerar los algoritmos de aprendizaje profundo y pueden quitar parte del trabajo de la CPU o GPU de un equipo, por lo que el dispositivo puede funcionar de forma más eficaz. Las NPU están diseñadas específicamente para acelerar las tareas de red neuronal. Destacan en el procesamiento de grandes cantidades de datos en paralelo, por lo que son idóneas para tareas comunes de IA, como el reconocimiento de imágenes o el procesamiento de lenguaje natural. Por ejemplo, durante una tarea de reconocimiento de imágenes, la NPU puede ser responsable de la detección de objetos o la aceleración de imágenes, mientras que la GPU asume la responsabilidad de la representación de imágenes.
¿Cómo puedo averiguar qué tipo de CPU, GPU o NPU tiene mi dispositivo?
Para comprobar el tipo de CPU, GPU o NPU en el dispositivo Windows y cómo funciona, abra el Administrador de tareas (Ctrl + Alt + Eliminar) y, a continuación, seleccione la pestaña Rendimiento y podrá ver la CPU, memoria, Wi-Fi, GPU o NPU de la máquina, junto con información sobre la velocidad, la tasa de uso y otros datos.
¿Qué es WinML?
WinML o Windows Machine Learning es una API de alto nivel para implementar modelos de aprendizaje automático acelerados por hardware (ML) en dispositivos Windows que permiten a los desarrolladores usar las funcionalidades del dispositivo para realizar la inferencia de modelos. El enfoque se centra en la carga, el enlace y la evaluación del modelo. WinML utiliza el formato del modelo ONNX.
Conceptos útiles de IA
¿Qué es un modelo de lenguaje grande (LLM)?
Un LLM es un tipo de modelo de aprendizaje automático (Machine Learning, ML) conocido por la capacidad de lograr la generación y comprensión del lenguaje de uso general. Los LLM son redes neuronales artificiales que adquieren funcionalidades mediante el aprendizaje de relaciones estadísticas de grandes cantidades de documentos de texto durante un proceso intensivo de entrenamiento auto supervisado y semi supervisado de forma computacional. Los LLM se suelen usar para la generación de texto, una forma de IA generativa que, dadas algunas entradas de texto, genera palabras (o "tokens") que es más probable que creen oraciones coherentes y contextualmente relevantes a cambio. También hay modelos de lenguaje pequeños (SLM) que tienen menos parámetros y una capacidad más limitada, pero pueden ser más eficientes (requieren menos recursos computacionales), rentables e idóneos para dominios específicos.
¿Qué es el entrenamiento de modelos de ML?
En Machine Learning, el entrenamiento de modelos implica alimentar un conjunto de datos en un modelo (LLM o SLM), lo que le permite aprender de los datos para que el modelo pueda realizar predicciones o decisiones basadas en esos datos, reconociendo patrones. También puede implicar ajustar los parámetros del modelo de forma iterativa para optimizar su rendimiento.
¿Qué es la inferencia?
El proceso de uso de un modelo de aprendizaje automático entrenado para realizar predicciones o clasificaciones en datos nuevos y no vistos se denomina "Inferencia". Una vez entrenado un modelo de lenguaje en un conjunto de datos, aprendiendo sus patrones y relaciones subyacentes, está listo para aplicar este conocimiento a escenarios reales. La inferencia es el momento de verdad de un modelo de IA, una prueba de lo bien que puede aplicar información aprendida durante el entrenamiento para realizar una predicción o resolver una tarea. El proceso de usar un modelo existente para la inferencia es diferente de la fase de entrenamiento, que requiere el uso de datos de entrenamiento y validación para desarrollar el modelo y ajustar sus parámetros.
¿Qué es el ajuste preciso del modelo de ML?
El ajuste preciso es un paso fundamental en el aprendizaje automático en el que se adapta un modelo entrenado previamente para realizar una tarea específica. En lugar de entrenar un modelo desde cero, el ajuste se inicia con un modelo existente (normalmente entrenado en un conjunto de datos grande) y ajusta sus parámetros mediante un conjunto de datos más pequeño y específico de la tarea. Al realizar el ajuste, el modelo aprende características específicas de tareas al tiempo que conserva los conocimientos generales adquiridos durante el entrenamiento previo, lo que da lugar a un rendimiento mejorado para aplicaciones específicas.
¿Qué es la ingeniería de solicitudes?
La ingeniería de solicitudes es un enfoque estratégico que se usa con la IA generativa para dar forma al comportamiento y las respuestas de un modelo de lenguaje. Implica la creación cuidadosa de solicitudes de entrada o consultas para lograr el resultado deseado de un modelo de lenguaje (como GPT-3 o GPT-4). Al diseñar una solicitud eficaz, puede guiar un modelo de ML para generar el tipo de respuesta que desee. Entre las técnicas se incluyen ajustar el texto, especificar el contexto o usar códigos de control para influir en la salida del modelo.
¿Qué es la aceleración de hardware (en lo que respecta al entrenamiento del modelo de ML)?
La aceleración de hardware hace referencia al uso de hardware informático especializado diseñado para acelerar las aplicaciones de inteligencia artificial más allá de lo que se puede lograr con las CPU de uso general. La aceleración de hardware mejora la velocidad, la eficiencia energética y el rendimiento general de las tareas de aprendizaje automático, como los modelos de entrenamiento, la realización de predicciones o la descarga de cálculos en componentes de hardware dedicados que destacan en el procesamiento paralelo para cargas de trabajo de aprendizaje profundo. Las GPU y las NPU son ejemplos de aceleradores de hardware.
¿Cuáles son las diferencias entre un Científico de datos, un ingeniero de ML y un desarrollador de aplicaciones que quiere aplicar características de IA en su aplicación?
El proceso de creación y uso de modelos de ML implica tres roles principales: Científicos de datos: responsable de definir el problema, recopilar y analizar los datos, elegir y entrenar el algoritmo de ML y evaluar e interpretar los resultados. Usan herramientas como Python, R, Jupyter Notebook, TensorFlow, PyTorch y scikit-learn para realizar estas tareas. Ingenieros de ML: responsable de implementar, supervisar y mantener los modelos de ML en entornos de producción. Usan herramientas como Docker, Kubernetes, Azure ML, AWS SageMaker y Google Cloud AI Platform para garantizar la escalabilidad, confiabilidad y seguridad de los modelos de ML. Desarrolladores de aplicaciones: responsable de integrar los modelos de ML en la lógica de la aplicación, la interfaz de usuario y la experiencia de usuario. Utilizan herramientas como Windows Copilot Runtime, OnnxRuntime o API REST y procesan la entrada del usuario y el resultado generado del modelo. Cada rol implica diferentes responsabilidades y aptitudes, pero se requiere colaboración y comunicación entre estos roles para lograr los mejores resultados. Dependiendo del tamaño y la complejidad del proyecto, estos roles se pueden realizar por la misma persona o por equipos diferentes.