Compartir a través de


Prueba y evaluación de cargas de trabajo de IA en Azure

Este artículo se centra en dos aspectos distintos: evaluar los modelos y probar todo el sistema. La evaluación y las pruebas se usan a menudo indistintamente, pero deben considerarse procesos independientes que usan conjuntos de datos distintos.

La evaluación es una actividad iterativa que se realiza durante la fase de desarrollo. Se centra en la experimentación para encontrar el mejor modelo con el nivel correcto de ajuste. A continuación, evalúe el modelo en función de varias métricas.

Las pruebas incluyen comprobar todo el sistema cuando se introduce un cambio, incluidos el modelo optimizado y los componentes que no son de IA. El objetivo es validar si la carga de trabajo cumple los objetivos identificados y cumple las expectativas del usuario. También es una estrategia de administración de cambios no negociable que evita regresiones de calidad.

Ambas prácticas se acoplan en la implementación real. Todo el proceso incluye enviar solicitudes al modelo, evaluar sus respuestas y tomar una decisión de ir o no-go en función de los datos de prueba. Aunque el proceso no es negociable antes de la producción, se recomienda llevar a cabo el proceso en producción mediante una combinación de datos reales y sintéticos.

El enfoque principal aquí es en las soluciones creadas mediante inteligencia artificial generativa, especialmente escenarios que usan modelos de base. Para obtener instrucciones aplicables a los modelos de entrenamiento y ajuste, vaya directamente a Guía para probar el entrenamiento del modelo y el ajuste preciso.

Uso de métricas de calidad para la evaluación del modelo

Establezca una línea base y mida la calidad del modelo mediante métricas que se alinean con los objetivos empresariales.

Tener procesos que evalúen y cuantifiquen los resultados de la experiencia del usuario en un conjunto de métricas. Por ejemplo, Groundedness evalúa si la respuesta de un modelo generativo es compatible con el contexto proporcionado, en lugar de fabricado. Supongamos que una firma legal desarrolla un asistente de inteligencia artificial que cita los estatutos. Sin una validación adecuada, podría extraerse de documentos obsoletos o mal clasificados, lo que da lugar a consecuencias graves. Una puntuación de base alta ayuda a garantizar que la salida del modelo permanece alineada con el material de origen de confianza.

Seleccione y priorice las métricas en función de su caso de uso específico, superviselas continuamente y úselas como puertas de decisión para la optimización y la implementación del modelo. Evite confiar en una sola métrica, use una combinación para capturar diferentes dimensiones de calidad. Por ejemplo, incluso si un modelo muestra una base sólida, puede producir salidas sesgadas. Incorpore evaluaciones de equidad para resultados más equilibrados y responsables.

Para obtener información sobre las métricas, consulte Supervisión de descripciones de métricas de evaluación y casos de uso.

Uso de los datos adecuados para la evaluación

Refinar el modelo a través de un proceso iterativo mediante datos de evaluación. Este conjunto de datos, que a menudo se conoce como el conjunto de datos dorado consta de pares de salida de entrada de confianza, normalmente creados o validados por seres humanos. Actúa como punto de referencia objetivo para evaluar el rendimiento del modelo con respecto a las métricas de calidad definidas.

Asegúrese de que el conjunto de datos sea representativo del dominio o la tarea, con diversos ejemplos de alta calidad y un ruido mínimo. Un tamaño limitado de muestra puede dar lugar a una mala calidad de evaluación, por lo que considere la posibilidad de generar datos sintéticos cuando los datos de muestra carecen de suficiente diversidad o cobertura para mejorar el equilibrio y la integridad.

Validación de flujos de trabajo agente

A medida que las arquitecturas evolucionan para usar la inteligencia artificial, la funcionalidad que una vez se controló mediante código determinista ahora se descarga en los agentes de IA. Estos agentes toman decisiones a menudo con comportamiento dinámico.

Considere una aplicación agente en la que el propio orquestador se implementa como agente. A diferencia de la orquestación tradicional, los agentes pueden invocar herramientas, interpretar avisos, colaborar con otros agentes y adaptarse en tiempo real, lo que hace que sean más flexibles, pero más difíciles de validar.

Este tipo de arquitectura presenta nuevos desafíos para las pruebas y la evaluación. Dado que los agentes funcionan de forma no determinista, las pruebas estáticas tradicionales no son suficientes. La estrategia de pruebas debe validar el flujo completo de la entrada del usuario a la respuesta final, incluida la recuperación de datos en tierra , la invocación de herramientas y la generación de respuestas. Por ejemplo

  • Compruebe que los agentes llaman a herramientas externas, API y otros agentes correctamente. Use dependencias ficticias para validar que los datos se pasan correctamente. Simulación de errores de herramienta o agente para probar la confiabilidad en el comportamiento.

  • Diseñe pruebas basadas en escenarios mediante avisos predefinidos y salidas esperadas. Dado que las salidas pueden variar, evalúe los resultados mediante la puntuación automatizada con otro modelo. Use también la revisión basada en humanos, especialmente para tareas sensibles o subjetivas.

  • Integre herramientas de seguridad de contenido para detectar salidas perjudiciales, sesgadas o inapropiadas. Incluya ejercicios de formación de equipos rojos para identificar comportamientos inesperados o vulnerabilidades de jailbreak. Supervise la imparcialidad, la transparencia y el cumplimiento de los estándares éticos.

Desde una perspectiva de herramientas, considere el SDK de evaluación de Azure AI, que admite comprobaciones como:

  • Resolución de intenciones: ¿el agente o orquestador entiende correctamente la solicitud del usuario?
  • Precisión de la llamada a la herramienta: ¿Se llaman las herramientas correctas, con los parámetros correctos?
  • Cumplimiento de tareas: ¿la salida final se alinea con la tarea asignada y los pasos de razonamiento anteriores?

Además, realice pruebas de carga y rendimiento normales. Evalúe la capacidad del agente para escalar en solicitudes simultáneas, controlar rutas de ejecución largas y administrar interacciones entre varios agentes. Supervise continuamente las regresiones tanto en la lógica como en el rendimiento a medida que el sistema evoluciona a través de versiones iterativas.

Prueba de los aspectos de seguridad

Proteja los flujos de trabajo agente mediante el control del acceso, la validación de todas las entradas y el comportamiento del agente de supervisión para evitar acciones incorrectas o no deseadas.

  • Pruebas de jailbreak. Pruebe siempre los intentos de jailbreak. Los atacantes suelen dirigirse primero a la capa de orquestación, que analiza y reenvía las solicitudes al modelo. Si no se filtran entradas malintencionadas, pueden poner en peligro el comportamiento del modelo.

  • Seguridad del contenido. En las aplicaciones basadas en chat, ejecute los mensajes del usuario y el contexto de puesta en tierra a través de un servicio de seguridad de contenido.

  • Seguridad de los puntos de conexión. En el caso de las interfaces RESTful, aplique una autenticación sólida y pruebe exhaustivamente los controles de seguridad para evitar el acceso no autorizado.

Hay otras bibliotecas de código abierto disponibles, como Scikit-learn, el módulo torch.testing de PyTorch, FairML para pruebas de sesgo y equidad, y Análisis de modelos de TensorFlow para la evaluación del modelo.

Compensación. Probar este código tiene implicaciones de costo. Por ejemplo, si usa Azure OpenAI para hospedar el punto de conexión de inferencia, las pruebas de esfuerzo son una práctica común que puede ayudarle a determinar los límites del sistema. Sin embargo, Azure OpenAI cobra por cada llamada, lo que puede hacer que las pruebas de esfuerzo extensas sean costosas. Una manera de optimizar los cargos es utilizar los PTUs no utilizados de Azure OpenAI en un entorno de prueba. Como alternativa, puede simular el punto de conexión de inferencia mediante herramientas como Proxy de desarrollo.

Prueba del comportamiento determinista

En algunas arquitecturas, puede usar lógica determinista para habilitar la orquestación. Por ejemplo, en lugar de un orquestador de agente no determinista, puede optar por tener un orquestador que use código estático para administrar el flujo de ejecución, como interpretar la intención del usuario, consultar el índice para poner en tierra los datos y llamar al punto de conexión de inferencia del modelo.

Desde una perspectiva de prueba, trate este código como cualquier componente crítico del sistema: ejecutar pruebas funcionales, confiabilidad y rendimiento, especialmente en su lógica de enrutamiento. Aplique pruebas unitarias a componentes deterministas, especialmente si usa marcos de agente como kernel semántico de Microsoft o LangChain. Estas pruebas validan plantillas de solicitud, lógica de selección de herramientas, formato de datos y árboles de decisión, aislados de la variabilidad en tiempo de ejecución.

Probar el extremo de inferencia

Los puntos de conexión de inferencia exponen los modelos generativos a través de las API REST y deben probarse más allá de la precisión del modelo. Tanto si usa plataformas PaaS como servidores autohospedados, pruebe el punto de conexión como cualquier otro punto de conexión para garantizar la confiabilidad, escalabilidad y seguridad.

  • Pruebas funcionales e de integración. Valide el control de solicitudes, la estructura de respuestas y la integración con otros componentes.

  • Pruebas de rendimiento y carga. Simulación de condiciones realistas para evaluar el rendimiento, la latencia y el uso de recursos. En el caso de los puntos de conexión de inferencia de PaaS, céntrese en las métricas de nivel de token (tokens/s o tokens/min), que son más significativos que los tamaños de solicitud tradicionales de las API REST.

  • Escalado y optimización de GPU. Pruebe bajo carga variable para determinar la SKU de GPU correcta o la configuración de escalado automático. Evite el sobreaprovisionamiento mediante la supervisión del uso real de GPU.

    Inconveniente. Los SKU de GPU son caros. Es importante comprobar continuamente si los recursos de GPU están infrautilizados y los derechos, siempre que sea posible. Después de realizar ajustes, pruebe el uso de recursos para mantener el equilibrio entre la eficiencia de los costos y la optimización del rendimiento.

  • Control de errores. Simulación de limitación, como errores HTTP 429, tiempos de espera de back-end y falta de disponibilidad del servicio. Compruebe que el cliente controla los reintentos, el retroceso y la interrupción del circuito correctamente.

  • Seguridad y seguridad del contenido. En el caso de los puntos de conexión públicos o autohospedados, realice pruebas de penetración y valide los controles de acceso. Use herramientas de moderación de contenido como Seguridad de contenido de Azure AI para probar y filtrar entradas y salidas no seguras.

Prueba del flujo de trabajo de datos en tierra

La relevancia de un modelo de IA generativa depende de la calidad e integridad de sus datos de base. Los datos en tierra se pueden inicializar en el modelo mediante canalizaciones de procesamiento de datos. Estos datos se preprocesan, fragmentan e indexan antes de alcanzar el modelo. El modelo consulta el índice en tiempo real durante la interacción del usuario, lo que hace que el rendimiento de la indexación y la precisión sean fundamentales para la experiencia del usuario. Integre las pruebas tempranas y las mantenga durante todo el ciclo de vida del sistema.

Las canalizaciones de datos mal probadas pueden provocar resultados incoherentes y preocupaciones transversales, como las infracciones de seguridad. Para garantizar una experiencia de alta calidad, pruebe todo el flujo de datos, incluidos los documentos de origen, el preprocesamiento, la lógica de orquestación y el propio índice. Entre las consideraciones clave de las pruebas se incluyen las siguientes:

  • Pruebas funcionales e de integración. Compruebe que todos los datos se cargan correctamente y completamente. Asegúrese de que la canalización controla los datos que faltan, están vacíos o sintéticos según lo previsto.

  • Compatibilidad del esquema de índice. Pruebe los cambios de esquema para garantizar la compatibilidad con versiones anteriores. Cualquier cambio de campo o documento debe conservar la compatibilidad con formatos de datos más antiguos.

  • Preprocesamiento y pruebas de orquestación. La preparación de datos en tierra implica preprocesamiento, fragmentación e inserción de cálculos, a menudo orquestados por herramientas como conjuntos de aptitudes de Azure AI Search. Pruebe la canalización de orquestación para asegurarse de que todos los pasos se ejecutan correctamente y los datos resultantes son precisos y pertinentes.

  • Actualización de datos y comprobaciones de calidad. Incluya pruebas para datos obsoletos, errores de coincidencia de control de versiones, artefactos sintéticos y tablas vacías o parciales. Actualice las consultas o la configuración del índice según sea necesario para reflejar los datos más actuales y limpios.

  • Prueba de carga de índices. Los índices pueden comportarse de forma diferente en cargas variables. Pruebe el rendimiento de las consultas en escenarios de uso realistas para informar a las decisiones sobre el escalado, las SKU de proceso y los requisitos de almacenamiento.

  • Pruebas de seguridad. Si los documentos tienen particiones con controles de acceso, pruebe rigurosamente esos controles. Asegúrese de que cada usuario o rol solo accede al contenido permitido para mantener la confidencialidad y el cumplimiento.

Instrucciones para probar el entrenamiento del modelo y el ajuste preciso

De forma similar a los modelos de inteligencia artificial generativa, use varios tipos de pruebas en distintas fases del ciclo de vida de desarrollo y en distintos componentes y flujos del sistema. Tanto como sea práctico, desarrolle recursos de carga de trabajo teniendo en cuenta las pruebas. Por ejemplo, al realizar la manipulación de datos y cambiar la forma de los datos de origen para la ingeniería de características, siga los procedimientos recomendados de codificación y asegúrese de estructurar el código para admitir pruebas.

Evaluación del modelo

Aplique una estrategia de baselining durante el entrenamiento del modelo para medir y comparar la calidad del modelo. Evalúe el rendimiento de varias combinaciones de modelos, parámetros y características mediante métricas bien definidas. Estas métricas proporcionan puntuaciones objetivas controladas por datos que puede comparar de forma iterativa entre versiones y configuraciones para identificar el modelo de mejor rendimiento.

Para obtener más información, consulte Métricas de regresión y previsión.

Datos para evaluar y probar

Particione los datos de origen en tres conjuntos de datos distintos: entrenamiento, evaluación y pruebas. Use el conjunto de datos de entrenamiento para compilar el modelo, el conjunto de datos de evaluación para ajustarlo y el conjunto de datos de prueba para validar el rendimiento final.

Asegúrese de que cada conjunto de datos contiene datos de alta calidad para reducir el ruido. Use casos de prueba en canalizaciones de datos para aplicar la calidad y complementarlos con datos sintéticos cuando las muestras reales están limitadas, en dominios como la detección de fraudes, donde las instancias de fraude reales son poco frecuentes y proporcionan datos limitados para entrenar modelos confiables.

Mantenga todos los conjuntos de datos separados y no superpuestos para mantener la objectividad y evitar el sesgo en las predicciones. No reutilice los datos de entrenamiento para los datos de evaluación o evaluación para las pruebas.

Prueba del flujo de trabajo de entrenamiento y ajuste preciso

  • Tecnologías de canalización de datos. Combine pruebas funcionales, de carga y de rendimiento mediante datos sintéticos para evaluar la escalabilidad y tomar decisiones fundamentadas sobre el ajuste de tamaño o la idoneidad del producto, las SKU necesarias y la integración del sistema.

  • Flujo de trabajo de ingesta. Pruebe las canalizaciones ETL/ELT de un extremo a otro para asegurarse de que ingieren datos de forma confiable y que los datos son de alta calidad. Además, pruebe la integración con todos los sistemas conectados y supervise las dependencias externas. Use datos sintéticos para validar el procesamiento de un extremo a otro, especialmente para cargas de trabajo complejas o de gran volumen.

    Pruebe los trabajos programados para validar que las tareas de ingesta se completan a tiempo y devuelven volúmenes esperados.

  • Calidad de los datos en la ingesta. Compruebe que la limpieza y el procesamiento de datos incluyan pruebas para confirmar que las funciones de manipulación de datos según lo previsto. Incluya comprobaciones de integridad, actualización, coherencia del esquema, unicidad y relevancia. Compruebe también que los datos estructurados se ingieren sin duplicados, valores que faltan o entradas no válidas.

  • Integridad de características y etiquetas. Compruebe que las características se calculan correctamente y las etiquetas se asignan con precisión, especialmente cuando se usan reglas complejas. Compruebe si hay fugas de datos para evitar que la información futura o derivada de etiquetas contamine los datos de entrenamiento. Además, compruebe que las divisiones de datos son adecuadas para evitar muestras sesgadas o superpuestas, ya que incluso la pérdida sutil puede dañar el rendimiento del modelo.

  • Pruebas de hiperparámetros. Las pruebas de hiperparámetros son un proceso iterativo en el que los parámetros del modelo se ajustan para cumplir los objetivos de precisión en función del caso de uso de la carga de trabajo. Esto implica entrenar repetidamente en los datos seleccionados y evaluar los datos de prueba para validar el rendimiento. Comience con un conjunto de datos más pequeño para evaluar rápidamente el comportamiento del modelo y, a continuación, escale las pruebas al conjunto completo. Tenga en cuenta el equilibrio entre la precisión del modelo y el costo computacional y el tiempo necesario para el entrenamiento y la evaluación repetidos.

  • Calidad del código. Al entrenar modelos mediante código personalizado, como con el script pyTorch, ejecute pruebas de carga durante la fase de diseño para evaluar los requisitos de proceso y seleccionar las SKU adecuadas. Use pruebas unitarias para detectar regresiones durante el desarrollo y confiar en pruebas manuales cuando la automatización no sea factible. Dado que estos scripts se ejecutan dentro de flujos de trabajo, agregue pruebas de integración para comprobar que los scripts se ejecutan de forma confiable dentro de la canalización.

  • Punto de conexión de inferencia. Esta API REST proporciona acceso al modelo de aprendizaje automático entrenado para realizar predicciones. El modelo se implementa en un entorno con un punto de conexión que puede recibir datos de entrada por lotes o en tiempo real, procesarlos y devolver predicciones. Al igual que cualquier otra API, asegúrese de que el punto de conexión de inferencia se somete a pruebas funcionales, de rendimiento y de seguridad, compruebe que devuelve resultados precisos, controla la carga esperada y sigue siendo seguro contra el uso incorrecto.

  • Pruebas de sitio en directo. Amplíe las pruebas funcionales al sistema activo. Ejecute pruebas programadas para validar volúmenes de datos, detectar registros que faltan o duplicados y confirmar la actualización de los datos. Use datos sintéticos para validar de forma segura las transformaciones y la lógica de un extremo a otro en condiciones de producción. Incorpore pruebas A/B para evaluar nuevas experiencias y evitar regresiones de calidad antes de la implementación completa. Configure las alertas para desencadenar una investigación inmediata cuando se produzca un error en las pruebas.

Integre las pruebas de datos en canalizaciones de CI/CD mediante la automatización de pruebas unitarias y funcionales, especialmente durante los cambios de código o las actualizaciones de canalización. Agregue comprobaciones de calidad antes del reentrenamiento y use implementaciones en paralelo para probar de forma segura en producción. Configure alertas para errores de prueba o anomalías de ingesta.

Nota:

Las pruebas y la supervisión sirven para diferentes propósitos. Realice pruebas para evaluar los posibles cambios en el sistema, normalmente antes de implementar los cambios. Llevar a cabo la supervisión continuamente para evaluar el estado general del sistema.

Pruebas para la descomposición del modelo

Todos los modelos se degradan con el tiempo debido a cambios internos y externos en la carga de trabajo. Este descenso en la calidad del modelo, conocido como decaimiento del modelo, puede producirse de dos maneras:

  • El desfase de datos se produce cuando cambian los datos de entrada, lo que hace que el modelo esté obsoleto. Por ejemplo, un modelo que predice patrones de votación pasa a ser irrelevante debido a cambios demográficos después de la redistricción.

  • El desfase del concepto se produce cuando cambian las condiciones externas, lo que hace que las predicciones del modelo ya no reflejen la realidad. Por ejemplo, un modelo que predice tendencias de ventas deja de ser irrelevante porque hay un cambio en el comportamiento del consumidor después de que un competidor inicie un nuevo producto.

Para detectar la descomposición, use pruebas automatizadas para comparar predicciones con los resultados reales y supervisar el desfase mediante métricas estadísticas. Los comentarios de los usuarios, por ejemplo, el uso de pulgares hacia arriba o hacia abajo, también es una señal valiosa para identificar problemas. Cuando se detecta un posible deterioro, el equipo de operaciones debe alertar a los científicos de datos para investigar y determinar las causas principales y los pasos siguientes.

Herramientas de prueba

Tenga en cuenta estos recursos de Azure:

  • Recopilador de datos de Azure Machine Learning para el registro en tiempo real de datos de entrada y salida para los modelos implementados en puntos de conexión en línea administrados o de Kubernetes.

  • Supervisión de modelos de Azure Machine Learning para la supervisión automatizada mediante la comparación de datos de inferencia en tiempo real con conjuntos de datos de referencia para realizar un seguimiento del desfase y otras métricas de rendimiento. Consulte los procedimientos recomendados para obtener más recomendaciones.

Pasos siguientes