En este documento se recogen algunas directrices para ayudarte a evaluar, asegurar y controlar la calidad al crear soluciones de aprendizaje automático (ML) predictivas. Ofrece sugerencias para cada paso del proceso, desde el desarrollo de modelos de aprendizaje automático hasta el despliegue de sistemas de entrenamiento y de servicio en producción. Este documento amplía la información que se trata en la guía para profesionales de MLOps y destaca y resume los aspectos de calidad de cada proceso del ciclo de vida de MLOps.
Este documento está dirigido a cualquier persona que participe en la creación, el despliegue y el funcionamiento de soluciones de aprendizaje automático. En este documento se da por supuesto que conoces MLOps en general. No se presupone que tengas conocimientos sobre ninguna plataforma de aprendizaje automático específica.
Descripción general de la calidad de las soluciones de aprendizaje automático
En la ingeniería de software, se han desarrollado muchos estándares, procesos, herramientas y prácticas para asegurar la calidad del software. El objetivo es asegurarse de que el software funcione correctamente en producción y de que cumpla los requisitos funcionales y no funcionales. Estas prácticas abarcan temas como las pruebas de software, la verificación y validación de software, y el registro y la monitorización de software. En DevOps, estas prácticas suelen integrarse y automatizarse en los procesos de CI/CD.
MLOps es un conjunto de procesos y funciones estandarizados para crear, desplegar y operar sistemas de aprendizaje automático de forma rápida y fiable. Al igual que otras soluciones de software, las soluciones de software de aprendizaje automático requieren que integres estas prácticas de calidad de software y las apliques a lo largo del ciclo de vida de MLOps. Al aplicar estas prácticas, te aseguras de que tus modelos sean fiables y predecibles, y de que se ajusten a tus requisitos.
Sin embargo, las tareas de crear, implementar y operar sistemas de aprendizaje automático presentan retos adicionales que requieren ciertas prácticas de calidad que pueden no ser relevantes para otros sistemas de software. Además de las características de la mayoría de los otros sistemas de software, los sistemas de aprendizaje automático tienen las siguientes características:
Sistemas dependientes de los datos. La calidad de los modelos entrenados y de sus predicciones depende de la validez de los datos que se usan para el entrenamiento y que se envían en las solicitudes de predicción. Cualquier sistema de software depende de datos válidos, pero los sistemas de aprendizaje automático deducen la lógica para la toma de decisiones a partir de los datos automáticamente, por lo que dependen especialmente de la calidad de los datos.
Sistemas de servicio de entrenamiento duales. Las cargas de trabajo de aprendizaje automático suelen constar de dos sistemas de producción distintos, pero relacionados: el sistema de entrenamiento y el sistema de servicio. Un flujo de procesamiento de entrenamiento continuo genera modelos recién entrenados que se despliegan para ofrecer predicciones. Cada sistema requiere un conjunto diferente de prácticas de calidad que equilibren la eficacia y la eficiencia para producir y mantener un modelo de alto rendimiento en producción. Además, las incoherencias entre estos dos sistemas provocan errores y un rendimiento predictivo deficiente.
Propensa a la obsolescencia. Los modelos suelen deteriorarse después de implementarse en producción porque no se adaptan a los cambios del entorno que representan, como los cambios estacionales en el comportamiento de compra. Los modelos también pueden no adaptarse a los cambios en los datos, como nuevos productos y ubicaciones. Por lo tanto, hacer un seguimiento de la eficacia del modelo en producción es un reto adicional para los sistemas de aprendizaje automático.
Sistemas de toma de decisiones automatizados. A diferencia de otros sistemas de software, en los que las acciones se codifican manualmente para un conjunto de requisitos y reglas de negocio, los modelos de aprendizaje automático aprenden reglas a partir de los datos para tomar una decisión. Los sesgos implícitos en los datos pueden provocar que los modelos produzcan resultados injustos.
Cuando un modelo de aprendizaje automático desplegado genera predicciones incorrectas, la mala calidad del aprendizaje automático puede deberse a una amplia gama de problemas. Algunos de estos problemas pueden surgir de los errores típicos que se producen en cualquier programa. Sin embargo, los problemas específicos del aprendizaje automático también pueden incluir sesgos y anomalías en los datos, así como la ausencia de procedimientos adecuados de evaluación y validación de modelos como parte del proceso de entrenamiento. Otro posible problema es que el formato de los datos no sea coherente entre la interfaz integrada del modelo y la API de servicio. Además, el rendimiento del modelo se reduce con el tiempo, incluso sin estos problemas, y puede fallar de forma silenciosa si no se monitoriza correctamente. Por lo tanto, debes incluir diferentes tipos de pruebas y monitorización para los modelos y sistemas de aprendizaje automático durante el desarrollo, la implementación y la producción.
Directrices de calidad para el desarrollo de modelos
Cuando desarrollas un modelo de aprendizaje automático durante la fase de experimentación, tienes los dos conjuntos de métricas objetivo siguientes que puedes usar para evaluar el rendimiento del modelo:
- Las métricas de optimización del modelo. Esta métrica refleja la eficacia predictiva del modelo. La métrica incluye la precisión y la medida F en las tareas de clasificación, el error medio del porcentaje absoluto en las tareas de regresión y previsión, el gain acumulativo con descuento en las tareas de ranking y las puntuaciones de perplejidad y BLEU en los modelos de lenguaje. Cuanto mejor sea el valor de esta métrica, mejor será el modelo para una tarea determinada. En algunos casos prácticos, para garantizar la equidad, es importante conseguir una eficacia predictiva similar en diferentes porciones de los datos, por ejemplo, en diferentes datos demográficos de los clientes.
- Las métricas de satisfacción del modelo. Esta métrica refleja una restricción operativa que debe cumplir el modelo, como la latencia de predicción. Defines un umbral de latencia con un valor concreto, como 200 milisegundos. No se acepta ningún modelo que no alcance el umbral. Otro ejemplo de métrica de satisfacción es el tamaño del modelo, que es importante cuando quieres desplegar tu modelo en hardware de bajo consumo, como dispositivos móviles y dispositivos insertados.
Durante la experimentación, desarrollas, entrenas, evalúas y depuras tu modelo para mejorar su eficacia con respecto a las métricas de optimización, sin superar los umbrales de las métricas de satisfacción.
Directrices para la experimentación
- Tener umbrales predefinidos y fijos para optimizar las métricas y para satisfacerlas.
- Implementa una rutina de evaluación optimizada que toma un modelo y datos y genera un conjunto de métricas de evaluación. Implementa la rutina para que funcione independientemente del tipo de modelo (por ejemplo, árboles de decisión o redes neuronales) o del framework del modelo (por ejemplo, TensorFlow o Scikit-learn).
- Asegúrate de que tienes un modelo de referencia con el que comparar. Esta base se puede componer de heurísticas codificadas o puede ser un modelo sencillo que prediga el valor objetivo medio o modal. Usa el modelo de referencia para comprobar el rendimiento del modelo de aprendizaje automático. Si el modelo de AA no es mejor que el modelo de referencia, significa que hay un problema fundamental en el modelo de AA.
- Monitoriza todos los experimentos que se han realizado para ayudarte con la reproducibilidad y la mejora incremental. En cada experimento, almacena los valores de los hiperparámetros, la selección de funciones y las semillas aleatorias.
Directrices de calidad de los datos
- Aborda los problemas de desequilibrio de clases en las primeras fases de tus experimentos eligiendo la métrica de evaluación adecuada. Además, aplica técnicas como la asignación de un peso mayor a las instancias de la clase minoritaria o la reducción del muestreo de las instancias de la clase mayoritaria.
- Asegúrate de que conoces la fuente de datos que vas a usar y realiza el preprocesamiento de datos y la ingeniería de funciones pertinentes para preparar el conjunto de datos de entrenamiento. Este tipo de proceso debe ser repetible y automatizable.
- Asegúrate de tener una división de datos de prueba (de retención) independiente para la evaluación final del modelo. El conjunto de datos de prueba no debe verse durante el entrenamiento y no debe usarse para ajustar los hiperparámetros.
- Asegúrate de que las divisiones de entrenamiento, validación y prueba sean igualmente representativas de tus datos de entrada. El muestreo de una división de prueba de este tipo depende de la naturaleza de los datos y de la tarea de aprendizaje automático en cuestión. Por ejemplo, la división estratificada es pertinente para las tareas de clasificación, mientras que la división cronológica es pertinente para las tareas de series temporales.
- Asegúrate de que las divisiones de validación y prueba se preprocesen por separado de la división de datos de entrenamiento. Si las divisiones se preprocesan en una mezcla, se produce una filtración de datos. Por ejemplo, cuando usas estadísticas para transformar datos con el fin de normalizar o agrupar en contenedores características numéricas, calcula las estadísticas a partir de los datos de entrenamiento y aplícalas para normalizar las divisiones de validación y prueba.
- Genera un esquema de conjunto de datos que incluya los tipos de datos y algunas propiedades estadísticas de las características. Puedes usar este esquema para encontrar datos anómalos o no válidos durante la experimentación y el entrenamiento.
- Asegúrate de que los datos de entrenamiento se barajen correctamente en lotes, pero que también sigan cumpliendo los requisitos de entrenamiento del modelo. Por ejemplo, esta tarea se puede aplicar a distribuciones de instancias positivas y negativas.
- Tener un conjunto de datos de validación independiente para el ajuste de hiperparámetros y la selección de modelos. También puede usar el conjunto de datos de validación para detener el entrenamiento antes de tiempo. De lo contrario, puedes dejar que el modelo se entrene durante todo el conjunto de iteraciones máximas. Sin embargo, solo se debe guardar una nueva instantánea del modelo si su rendimiento en el conjunto de datos de validación mejora en comparación con la instantánea anterior.
Directrices de calidad de los modelos
- Asegúrate de que tus modelos no tengan ningún problema fundamental que les impida aprender ninguna relación entre las entradas y las salidas. Puedes conseguir este objetivo entrenando el modelo con muy pocos ejemplos. Si el modelo no alcanza una alta precisión en estos ejemplos, puede que haya un error en la implementación del modelo o en la rutina de entrenamiento.
- Cuando entrenes redes neuronales, monitoriza los valores
NaN
de la pérdida y el porcentaje de pesos que tienen valores cero durante el entrenamiento del modelo. Estos valoresNaN
o cero pueden indicar que se han producido cálculos aritméticos erróneos o que los gradientes se han desvanecido o han explotado. Visualizar los cambios en la distribución de los valores de los pesos a lo largo del tiempo puede ayudarte a detectar los cambios internos de las covariables que ralentizan el entrenamiento. Puedes aplicar la normalización por lotes para reducir esta pérdida de velocidad. - Compara el rendimiento de tu modelo con los datos de entrenamiento y con los datos de prueba para saber si tu modelo está sobreajustado o subajustado. Si se produce alguno de estos problemas, haz las mejoras correspondientes. Por ejemplo, si hay un ajuste insuficiente, puedes aumentar la capacidad de aprendizaje del modelo. Si se ha producido un sobreajuste, puedes aplicar la regularización.
- Analiza las instancias clasificadas incorrectamente, sobre todo las que tienen una alta confianza en la predicción y las clases que más se confunden en la matriz de confusión multiclase. Estos errores pueden indicar que los ejemplos de entrenamiento están mal etiquetados. Los errores también pueden identificar una oportunidad para preprocesar los datos, como eliminar valores atípicos o crear nuevas funciones que ayuden a discriminar entre esas clases.
- Analiza las puntuaciones de importancia de las características y elimina las que no aporten una mejora suficiente a la calidad del modelo. Se prefieren los modelos parsimoniosos a los complejos.
Directrices de calidad para la implementación de flujos de procesamiento de entrenamiento
A medida que implementes tu modelo y tu flujo de procesamiento de entrenamiento de modelos, tendrás que crear un conjunto de pruebas en una rutina de CI/CD. Estas pruebas se ejecutan automáticamente cuando envías nuevos cambios de código o antes de desplegar tu flujo de entrenamiento en el entorno de destino.
Directrices
- Realiza pruebas unitarias de la función de ingeniería de características.
- Realiza pruebas unitarias de la codificación de las entradas del modelo.
- Prueba de forma independiente las unidades de los módulos implementados por el usuario (personalizados) de los modelos. Por ejemplo, prueba las unidades de las capas de convolución y de pooling de gráficos personalizadas, o las capas de atención personalizadas.
- Realiza pruebas unitarias de las funciones de evaluación o de pérdida personalizadas.
- Realiza pruebas unitarias de los tipos y las formas de salida de tu modelo con las entradas esperadas.
- Realiza pruebas unitarias para comprobar que la función
fit
del modelo funciona sin errores en un par de pequeños lotes de datos. Las pruebas deben comprobar que la pérdida disminuye y que el tiempo de ejecución del paso de entrenamiento es el esperado. Haces estas comprobaciones porque los cambios en el código del modelo pueden introducir errores que ralenticen el proceso de entrenamiento. - Realiza pruebas unitarias de las funciones de guardado y carga del modelo.
- Realiza pruebas unitarias de las interfaces de servicio del modelo exportado con entradas sin procesar y con salidas esperadas.
- Prueba los componentes de los pasos de la canalización con entradas simuladas y con artefactos de salida.
- Despliega la canalización en un entorno de prueba y realiza pruebas de integración de la canalización completa. Para este proceso, utiliza algunos datos de prueba para asegurarte de que el flujo de trabajo se ejecuta correctamente y de que produce los artefactos esperados.
- Usa el despliegue de sombra cuando despliegues una nueva versión de la canalización de entrenamiento en el entorno de producción. Una implementación fantasma te ayuda a asegurarte de que la versión de la canalización que acabas de implementar se ejecute en datos reales en paralelo a la versión anterior.
Directrices de calidad para el entrenamiento continuo
El proceso de entrenamiento continuo consiste en orquestar y automatizar la ejecución de flujos de procesamiento de entrenamiento. Los flujos de trabajo de entrenamiento típicos incluyen pasos como la ingestión y la división de datos, la transformación de datos, el entrenamiento de modelos, la evaluación de modelos y el registro de modelos. Algunas canalizaciones de entrenamiento constan de flujos de trabajo más complejos. Entre las tareas adicionales se incluyen el entrenamiento de modelos autosupervisados que usan datos sin etiquetar o la creación de un índice de vecinos más cercanos aproximado para los embeddings. La entrada principal de cualquier proceso de entrenamiento son los nuevos datos de entrenamiento, y la salida principal es un nuevo modelo candidato para implementar en producción.
El flujo de entrenamiento se ejecuta automáticamente en producción según una programación (por ejemplo, diaria o semanal) o en función de un activador (por ejemplo, cuando hay nuevos datos etiquetados disponibles). Por lo tanto, debe añadir pasos de control de calidad al flujo de trabajo de entrenamiento, concretamente pasos de validación de datos y de validación de modelos. Estos pasos validan las entradas y las salidas de las pipelines.
El paso de validación de datos se añade después del paso de ingestión de datos en el flujo de trabajo de entrenamiento. En el paso de validación de datos, se crea un perfil de los nuevos datos de entrenamiento de entrada que se ingieren en el flujo de procesamiento. Durante la creación de perfiles, la canalización usa un esquema de datos predefinido, que se creó durante el proceso de desarrollo del aprendizaje automático, para detectar anomalías. En función del caso práctico, puede ignorar o eliminar algunos registros no válidos del conjunto de datos. Sin embargo, puede que haya otros problemas en los datos recién ingeridos que detengan la ejecución del flujo de entrenamiento, por lo que debes identificarlos y solucionarlos.
Directrices para la validación de datos
- Verifica que las características de los datos de entrenamiento extraídos estén completas y que coincidan con el esquema esperado, es decir, que no falten ni se hayan añadido características. También debe verificar que las funciones coincidan con los volúmenes previstos.
- Valida los tipos de datos y las formas de las características del conjunto de datos que se ingieren en la canalización de entrenamiento.
- Verifica que los formatos de determinadas funciones (por ejemplo, fechas, horas, URLs, códigos postales y direcciones IP) coincidan con las expresiones regulares esperadas. También debes verificar que las funciones se encuentren dentro de los intervalos válidos.
- Valida la fracción máxima de los valores que faltan de cada característica. Si faltan muchos valores de una característica concreta, puede afectar al entrenamiento del modelo. Los valores que faltan suelen indicar que la fuente de la función no es fiable.
- Valida los dominios de las entidades de entrada. Por ejemplo, comprueba si hay cambios en el vocabulario de las características categóricas o en el intervalo de las características numéricas y ajusta el preprocesamiento de los datos en consecuencia. Por ejemplo, los intervalos de las funciones numéricas pueden cambiar si una actualización del sistema upstream que rellena las funciones usa unidades de medida diferentes. Por ejemplo, el sistema upstream puede cambiar la moneda de dólares a yenes o las distancias de kilómetros a metros.
- Verifica que las distribuciones de cada función se ajusten a tus expectativas.
Por ejemplo, puede comprobar que el valor más habitual de una característica del tipo de pago es
cash
y que este tipo de pago representa el 50% de todos los valores. Sin embargo, esta prueba puede fallar si se produce un cambio en el tipo de pago más habitual acredit_card
. Un cambio externo como este puede requerir cambios en tu modelo.
Añade un paso de validación del modelo antes del paso de registro del modelo para asegurarte de que solo se registren para la implementación en producción los modelos que cumplan los criterios de validación.
Directrices para la validación de modelos
- Para la evaluación final del modelo, usa una división de prueba independiente que no se haya usado para entrenar el modelo ni para ajustar los hiperparámetros.
- Puntuamos el modelo candidato con los datos de prueba divididos, calculamos las métricas de evaluación pertinentes y verificamos que el modelo candidato supera los umbrales de calidad predefinidos.
- Asegúrate de que la división de los datos de prueba sea representativa de los datos en su conjunto para tener en cuenta los diferentes patrones de datos. En el caso de los datos de series temporales, asegúrate de que la división de prueba contenga datos más recientes que la división de entrenamiento.
- Prueba la calidad del modelo en segmentos de datos importantes, como los usuarios por país o las películas por género. Al hacer pruebas con datos segmentados, evitas que los problemas de rendimiento detallados se oculten con una métrica de resumen global.
- Evalúa el modelo actual (campeón) con los datos de prueba y compáralo con el modelo candidato (retador) que genera la canalización de entrenamiento.
- Valida el modelo con indicadores de equidad para detectar sesgos implícitos. Por ejemplo, los sesgos implícitos pueden deberse a una diversidad insuficiente en los datos de entrenamiento. Los indicadores de equidad pueden revelar problemas de causa raíz que debes solucionar antes de implementar el modelo en producción.
Durante el entrenamiento continuo, puedes validar el modelo con métricas de optimización y de satisfacción. También puedes validar el modelo solo con las métricas de optimización y aplazar la validación con la métrica de satisfacción hasta la fase de implementación del modelo. Si tienes previsto implementar variaciones del mismo modelo en diferentes entornos o cargas de trabajo, puede ser más adecuado aplazar la validación con respecto a la métrica de satisfacción. Es posible que se necesiten umbrales de métricas de satisfacción diferentes para distintos entornos o cargas de trabajo de servicio (como entornos en la nube frente a entornos en el dispositivo, o entornos en tiempo real frente a entornos de servicio por lotes). Si vas a implementar en varios entornos, tu canalización de entrenamiento continuo puede entrenar dos o más modelos, donde cada modelo se optimiza para su entorno de implementación de destino. Para obtener más información y un ejemplo, consulta Despliegues duales en Vertex AI.
A medida que pones en producción más flujos de procesamiento de entrenamiento continuo con flujos de trabajo complejos, debes monitorizar los metadatos y los artefactos que generan las ejecuciones del flujo de procesamiento. El seguimiento de esta información te ayuda a rastrear y depurar cualquier problema que pueda surgir en producción. El seguimiento de la información también te ayuda a reproducir los resultados de las canalizaciones para que puedas mejorar su implementación en iteraciones posteriores del desarrollo de aprendizaje automático.
Directrices para monitorizar metadatos y artefactos de aprendizaje automático
- Monitoriza el linaje del código fuente, los flujos de procesamiento implementados, los componentes de los flujos de procesamiento, las ejecuciones de flujos de procesamiento, el conjunto de datos en uso y los artefactos producidos.
- Monitoriza los hiperparámetros y las configuraciones de las ejecuciones de la canalización.
- Monitoriza las entradas y los artefactos de salida clave de los pasos de la canalización, como las estadísticas del conjunto de datos, las anomalías del conjunto de datos (si las hay), los datos y los esquemas transformados, los puntos de control del modelo y los resultados de la evaluación del modelo.
- Monitoriza que los pasos de la canalización condicional se ejecuten en respuesta a las condiciones y asegúrate de que se puedan observar añadiendo mecanismos de alteración por si no se ejecutan pasos clave o si fallan.
Directrices de calidad para la implementación de modelos
Supongamos que tienes un modelo entrenado que se ha validado desde la perspectiva de las métricas de optimización y que se ha aprobado desde la perspectiva de la gestión de modelos (como se describe más adelante en la sección Gestión de modelos). El modelo se almacena en el registro de modelos y está listo para implementarse en producción. En este punto, debes implementar una serie de pruebas para verificar que el modelo es adecuado para publicarse en su entorno de destino. También debes automatizar estas pruebas en una rutina de CI/CD de modelos.
Directrices
- Verifica que el artefacto del modelo se pueda cargar e invocar correctamente con sus dependencias de tiempo de ejecución. Para llevar a cabo esta verificación, puedes poner en marcha el modelo en una versión aislada del entorno de servicio. Esta verificación te ayuda a asegurarte de que las operaciones y los binarios que usa el modelo están presentes en el entorno.
- Valida las métricas de satisfacción del modelo (si las hay) en un entorno de staging, como el tamaño y la latencia del modelo.
- Realiza pruebas unitarias de las interfaces de servicio de artefactos de modelo en un entorno de staging con entradas sin procesar y con salidas esperadas.
- Realiza pruebas unitarias del artefacto del modelo en un entorno de staging para un conjunto de casos típicos y extremos de solicitudes de predicción. Por ejemplo, una prueba unitaria de una instancia de solicitud en la que todas las funciones se hayan definido como
None
. - Realiza una prueba de humo de la API del servicio del modelo después de que se haya desplegado en su entorno de destino. Para realizar esta prueba, envía una sola instancia o un lote de instancias al servicio del modelo y valida la respuesta del servicio.
- Prueba la versión del modelo recién implementada en un pequeño flujo de datos de servicio activos. Esta prueba se asegura de que el nuevo servicio de modelo no produzca errores antes de que el modelo se exponga a un gran número de usuarios.
- Prueba en un entorno de staging en el que puedas volver a una versión anterior del modelo de servicio de forma rápida y segura.
- Realiza experimentos online para probar el modelo recién entrenado con un pequeño subconjunto de la población de servicio. Esta prueba mide el rendimiento del nuevo modelo en comparación con el actual. Después de comparar el rendimiento del nuevo modelo con el del modelo actual, puede que decidas lanzar el nuevo modelo por completo para que responda a todas tus solicitudes de predicción activas. Entre las técnicas de experimentación online se incluyen las pruebas A/B y los bandidos multiarmados (MAB).
Directrices de calidad para el servicio de modelos
El rendimiento predictivo de los modelos de aprendizaje automático que se han desplegado y están en producción suele disminuir con el tiempo. Este deterioro puede deberse a las incoherencias que se han introducido entre las funciones de servicio y las funciones que espera el modelo. Estas incoherencias se denominan sesgo de entrenamiento-publicación. Por ejemplo, un modelo de recomendación puede esperar un valor de entrada alfanumérico para una función, como el código del producto visto más recientemente. Sin embargo, durante la publicación se envía el nombre del producto en lugar del código del producto debido a una actualización de la aplicación que usa el servicio del modelo.
Además, el modelo puede quedar obsoleto a medida que las propiedades estadísticas de los datos de servicio cambian con el tiempo y los patrones que ha aprendido el modelo desplegado ya no son precisos. En ambos casos, el modelo ya no puede proporcionar predicciones precisas.
Para evitar que el rendimiento predictivo del modelo se deteriore, debes monitorizar continuamente su eficacia. La monitorización te permite verificar de forma periódica y proactiva que el rendimiento del modelo no se vea afectado.
Directrices
- Registra una muestra de las cargas útiles de solicitud y respuesta de las solicitudes de servicio en un almacén de datos para analizarlas periódicamente. La solicitud es la instancia de entrada y la respuesta es la predicción que genera el modelo para esa instancia de datos.
- Implementa un proceso automatizado que cree un perfil de los datos de solicitud y respuesta almacenados calculando estadísticas descriptivas. Calcula y almacena estas estadísticas de servicio a intervalos regulares.
- Identifica la desviación entre el entrenamiento y el servicio causada por el cambio y la deriva de los datos comparando las estadísticas de los datos de servicio con las estadísticas de referencia de los datos de entrenamiento. Además, analiza cómo cambian las estadísticas de datos de servicio a lo largo del tiempo.
- Identifica la deriva de conceptos analizando cómo cambian las atribuciones de características de las predicciones a lo largo del tiempo.
- Identifica las instancias de datos de servicio que se consideran valores atípicos con respecto a los datos de entrenamiento. Para encontrar estos valores atípicos, usa técnicas de detección de novedades y monitoriza cómo cambia el porcentaje de valores atípicos en los datos de servicio a lo largo del tiempo.
- Define alertas para cuando el modelo alcance umbrales de puntuación de sesgo en las principales características predictivas de tu conjunto de datos.
- Si hay etiquetas disponibles (es decir, validadas en el terreno), combina las etiquetas verdaderas con las etiquetas predichas de las instancias de servicio para realizar una evaluación continua. Este enfoque es similar al sistema de evaluación que implementas como prueba A/B durante la experimentación online. La evaluación continua puede identificar no solo la capacidad predictiva de tu modelo en producción, sino también con qué tipo de solicitudes funciona bien y con cuáles no.
- Define objetivos para las métricas del sistema que te interesen y mide el rendimiento de los modelos en función de esos objetivos.
- Monitoriza la eficiencia del servicio para asegurarte de que tu modelo se puede usar en producción a gran escala. Esta monitorización también te ayuda a predecir y gestionar la planificación de la capacidad, así como a estimar el coste de tu infraestructura de servicio. Monitoriza las métricas de eficiencia, como el uso de la CPU, el uso de la GPU, el uso de la memoria, la latencia del servicio, el rendimiento y la tasa de errores.
Gobernanza de modelos
La gobernanza de modelos es una función esencial en las empresas que proporciona directrices y procesos para ayudar a los empleados a implementar los principios de la IA de la empresa. Estos principios pueden incluir evitar modelos que creen o refuercen sesgos, así como poder justificar las decisiones tomadas por la IA. La función de gobernanza de modelos se asegura de que haya una persona en el proceso. La revisión humana es especialmente importante en el caso de las cargas de trabajo sensibles y de alto impacto (a menudo, las que están orientadas a los usuarios). Entre las cargas de trabajo de este tipo se incluyen la puntuación del riesgo crediticio, la clasificación de candidatos a un puesto de trabajo, la aprobación de pólizas de seguros y la propagación de información en redes sociales.
Directrices
- Tener una matriz de asignación de responsabilidades para cada modelo por tarea. La matriz debe tener en cuenta los equipos multidisciplinares (líneas de negocio, ingeniería de datos, ciencia de datos, ingeniería de aprendizaje automático, riesgos y cumplimiento, etc.) en toda la jerarquía de la organización.
- Mantener la documentación y los informes del modelo en el registro de modelos vinculado a la versión de un modelo. Por ejemplo, puedes usar tarjetas de modelo. Estos metadatos incluyen información sobre los datos que se han usado para entrenar el modelo, sobre el rendimiento del modelo y sobre las limitaciones conocidas.
- Implementa un proceso de revisión del modelo antes de aprobar su implementación en producción. En este tipo de proceso, se conservan versiones de la lista de comprobación del modelo, la documentación complementaria y cualquier información adicional que puedan solicitar las partes interesadas.
- Evalúa el modelo con conjuntos de datos de referencia (también conocidos como conjuntos de datos de referencia), que abarcan tanto casos estándar como casos límite. Además, valida el modelo con indicadores de equidad para detectar sesgos implícitos.
- Explica a los usuarios del modelo el comportamiento predictivo del modelo en su conjunto y en instancias de entrada de muestra específicas. Al proporcionarnos esa información, nos ayudas a conocer las funciones importantes y el posible comportamiento no deseado del modelo.
- Analiza el comportamiento predictivo del modelo con herramientas de análisis hipotético para comprender la importancia de las diferentes características de los datos. Este análisis también puede ayudarte a visualizar el comportamiento del modelo en varios modelos y subconjuntos de datos de entrada.
- Prueba el modelo frente a ataques adversarios para asegurarte de que es robusto y no se puede aprovechar en producción.
- Monitoriza las alertas sobre el rendimiento predictivo de los modelos que están en producción, los cambios en los conjuntos de datos y la deriva. Configura las alertas para notificar a las partes interesadas del modelo.
- Gestionar la experimentación, el lanzamiento y la restauración de modelos online.
Siguientes pasos
- Lee el artículo The ML Test Score: A Rubric for ML Production Readiness and Technical Debt Reduction (La puntuación de las pruebas de aprendizaje automático: una rúbrica para evaluar la preparación de la producción de aprendizaje automático y reducir la deuda técnica) de Google Research.
- Lee la guía breve para ejecutar sistemas de aprendizaje automático en producción de O'Reilly.
- Consulta las reglas del aprendizaje automático.
- Prueba el curso Pruebas y depuración en aprendizaje automático.
- Lee el artículo Validación de datos en el aprendizaje automático.
- Consulta el repositorio de código E2E MLOps on Google Cloud.
- Para obtener una descripción general de los principios y las recomendaciones de arquitectura específicos de las cargas de trabajo de IA y aprendizaje automático en Google Cloud, consulta la sección Perspectiva de IA y aprendizaje automático del framework Well-Architected.
- Para ver más arquitecturas de referencia, diagramas y prácticas recomendadas, consulta el centro de arquitectura de Cloud.
Colaboradores
Autor: Mike Styer | Arquitecto de soluciones de IA generativa
Otro colaborador: Amanda Brinhosa | Ingeniera de clientes