En el AA de producción, el objetivo no es compilar un solo modelo y, luego, implementarlo. El objetivo es compilar canalizaciones automatizadas para desarrollar, probar e implementar modelos con el tiempo. ¿Por qué? A medida que cambia el mundo, las tendencias en los datos cambian, lo que hace que los modelos en producción se vuelvan obsoletos. Por lo general, los modelos necesitan volver a entrenarse con datos actualizados para seguir entregando predicciones de alta calidad a largo plazo. En otras palabras, te convendrá la forma de reemplazar los modelos inactivos por modelos nuevos.
Sin canalizaciones, el reemplazo de un modelo inactivo es un proceso propenso a errores. Por ejemplo, una vez que un modelo comienza a entregar predicciones erróneas, alguien deberá recopilar y procesar datos nuevos de forma manual, entrenar un modelo nuevo, validar su calidad y, por último, implementarlo. Las canalizaciones de AA automatizan muchos de estos procesos repetitivos, lo que hace que la administración y el mantenimiento de los modelos sean más eficientes y confiables.
Compila canalizaciones
Las canalizaciones de AA organizan los pasos para compilar e implementar modelos en tareas bien definidas. Las canalizaciones tienen una de estas funciones: entregar predicciones o actualizar el modelo.
Entrega de predicciones
La canalización de entrega entrega predicciones. Expone el modelo al mundo real, lo que hace que sea accesible para los usuarios. Por ejemplo, cuando un usuario desea una predicción (cómo será el clima mañana, cuántos minutos tardará en viajar al aeropuerto o una lista de videos recomendados), la canalización de entrega recibe y procesa los datos del usuario, realiza una predicción y, luego, la entrega al usuario.
Actualiza el modelo
Los modelos suelen quedar inactivos casi inmediatamente después de entrar en producción. En términos simples, están haciendo predicciones con información antigua. Sus conjuntos de datos de entrenamiento capturaron el estado del mundo hace un día o, en algunos casos, hace una hora. Es inevitable que el mundo haya cambiado: un usuario miró más videos y necesita una nueva lista de recomendaciones; la lluvia ha provocado que el tráfico se vuelva más lento y los usuarios necesiten estimaciones actualizadas para sus horarios de llegada; una tendencia popular hace que los minoristas soliciten predicciones de inventario actualizadas para ciertos artículos.
Por lo general, los equipos entrenan modelos nuevos mucho antes de que el modelo de producción se vuelva obsoleto. En algunos casos, los equipos entrenan y, luego, implementan nuevos modelos a diario en un ciclo de implementación y entrenamiento continuo. Lo ideal es que se entrene un modelo nuevo mucho antes de que el modelo de producción quede obsoleto.
Las siguientes canalizaciones funcionan en conjunto para entrenar un modelo nuevo:
- Canalización de datos. La canalización procesa datos del usuario para crear conjuntos de datos de entrenamiento y prueba.
- Canalización de entrenamiento. La canalización entrena modelos con los nuevos conjuntos de datos de entrenamiento de la canalización.
- Canalización de validación. La canalización de validación valida el modelo entrenado mediante una comparación con el modelo de producción con conjuntos de datos de prueba que genera la canalización de datos.
En la Figura 4, se ilustran las entradas y salidas de cada canalización de AA.
Canalizaciones de AA
Figura 4. Las canalizaciones automatizan muchos procesos para desarrollar y mantener modelos. Cada canalización muestra sus entradas y salidas.
A un nivel muy general, aquí se muestra cómo las canalizaciones mantienen un modelo nuevo en producción:
Primero, un modelo entra en producción y la canalización de entrega comienza a entregar predicciones.
La canalización de datos comienza de inmediato a recopilar datos para generar nuevos conjuntos de datos de entrenamiento y prueba.
Según un programa o un activador, las canalizaciones de entrenamiento y validación entrenan y validan un modelo nuevo con los conjuntos de datos que genera la canalización de datos.
Cuando la canalización de validación confirma que el modelo nuevo no es peor que el modelo de producción, el modelo nuevo se implementa.
Este proceso se repite continuamente.
Inactividad del modelo y frecuencia de entrenamiento
Casi todos los modelos se vuelven obsoletos. Algunos modelos se vuelven obsoletos más rápido que otros. Por ejemplo, los modelos que recomiendan ropa suelen quedar obsoletos rápidamente porque las preferencias de los consumidores son conocidas por cambiar con frecuencia. Por otro lado, es posible que los modelos que identifican flores nunca se vuelvan obsoletos. Las características identificativas de las flores permanecen estables.
La mayoría de los modelos comienzan a quedar obsoleto inmediatamente después de que se ponen en producción. Te recomendamos que establezcas una frecuencia de entrenamiento que refleje la naturaleza de tus datos. Si los datos son dinámicos, realiza el entrenamiento con frecuencia. Si es menos dinámico, es posible que no necesites entrenarlo con tanta frecuencia.
Entrena modelos antes de que se vuelvan obsoletos. El entrenamiento temprano proporciona un búfer para resolver posibles problemas, por ejemplo, si los datos o la canalización de entrenamiento fallan, o si la calidad del modelo es deficiente.
Una práctica recomendada es entrenar y, luego, implementar modelos nuevos a diario. Al igual que los proyectos de software comunes que tienen un proceso diario de compilación y lanzamiento, las canalizaciones de AA para entrenamiento y validación suelen funcionar mejor cuando se ejecutan a diario.
Canalización de entrega
La canalización de entrega genera y entrega predicciones de dos maneras: en línea o sin conexión.
Predicciones en línea. Las predicciones en línea ocurren en tiempo real, por lo general, mediante el envío de una solicitud a un servidor en línea y la devolución de una predicción. Por ejemplo, cuando un usuario desea una predicción, sus datos se envían al modelo y este muestra la predicción. Por ejemplo, Gmail clasifica los mensajes entrantes en tiempo real mediante predicciones en línea.
Predicciones sin conexión. Las predicciones sin conexión se procesan con anterioridad y almacenan en caché. Para entregar una predicción, la app la encuentra en caché en la base de datos y la muestra. Por ejemplo, un servicio basado en suscripciones podría predecir la tasa de deserción de sus suscriptores. El modelo predice la probabilidad de deserción de cada suscriptor y la almacena en caché. Cuando la app necesita la predicción (por ejemplo, para incentivar a los usuarios que podrían estar a punto de desertar), solo busca la predicción calculada previamente.
En la Figura 5, se muestra cómo se generan y entregan las predicciones en línea y sin conexión.
Predicciones en línea y sin conexión
Figura 5. Las predicciones en línea entregan predicciones en tiempo real. Las predicciones sin conexión se almacenan en caché y se buscan al momento de la entrega.
Posprocesamiento de predicciones
Por lo general, las predicciones se procesan de forma posterior antes de entregarse. Por ejemplo, las predicciones pueden procesarse posteriormente para quitar el contenido sesgado o tóxico. Los resultados de clasificación pueden usar twiddling para reordenar los resultados en lugar de mostrar los resultados sin procesar del modelo, por ejemplo, para impulsar el contenido más confiable, presentar una diversidad de resultados, descender de nivel ciertos resultados (como ciberanzuelo) o quitar resultados por motivos legales.
En la Figura 6, se muestra una canalización de entrega y las tareas típicas involucradas en la entrega de predicciones.
Predicciones posteriores al procesamiento
Figura 6. Canalización de entrega que ilustra las tareas típicas involucradas para entregar predicciones.
Ten en cuenta que el paso de ingeniería de atributos suele compilarse dentro del modelo y no en un proceso independiente y independiente. El código de procesamiento de datos en la canalización de entrega suele ser casi idéntico al código de procesamiento de datos que usa la canalización de datos para crear conjuntos de datos de entrenamiento y prueba.
Almacenamiento de recursos y metadatos
La canalización de entrega debe incorporar un repositorio para registrar las predicciones del modelo y, si es posible, la verdad fundamental.
El registro de predicciones del modelo te permite supervisar la calidad de tu modelo. Si agregas predicciones, puedes supervisar la calidad general de tu modelo y determinar si está comenzando a perder calidad. Por lo general, las predicciones del modelo de producción deben tener el mismo promedio que las etiquetas del conjunto de datos de entrenamiento. Para obtener más información, consulta sesgo de predicción.
Capta la verdad fundamental
En algunos casos, la verdad fundamental solo está disponible mucho más adelante. Por ejemplo, si una app meteorológica predice el clima en seis semanas, la verdad fundamental (cómo es en realidad el clima) no estará disponible durante seis semanas.
Cuando sea posible, pídeles a los usuarios que denuncien la verdad fundamental. Para ello, agrega mecanismos de comentarios a la app. Gmail captura implícitamente los comentarios de los usuarios cuando estos mueven correos electrónicos de su carpeta Recibidos a su carpeta de spam. Sin embargo, esto solo funciona cuando el usuario categoriza correctamente su correo. Cuando los usuarios dejan spam en Recibidos (porque saben que es spam y nunca lo abren), los datos de entrenamiento se vuelven imprecisos. Ese mensaje en particular se etiquetará como "no es spam" cuando debería ser "es spam". En otras palabras, siempre intenta encontrar formas de capturar y registrar la verdad fundamental, pero ten en cuenta las deficiencias que pueden existir en los mecanismos de comentarios.
En la Figura 7, se muestran las predicciones que se entregan a un usuario y se registran en un repositorio.
Predicciones de registro
Figura 7: Predicciones de registros para supervisar la calidad del modelo
Canalizaciones de datos
Las canalizaciones de datos generan conjuntos de datos de entrenamiento y prueba a partir de datos de aplicaciones. Las canalizaciones de entrenamiento y validación usan los conjuntos de datos para entrenar y validar modelos nuevos.
La canalización de datos crea conjuntos de datos de entrenamiento y prueba con los mismos atributos y la misma etiqueta que se usaron originalmente para entrenar el modelo, pero con información más reciente. Por ejemplo, una app de mapas generaría conjuntos de datos de entrenamiento y prueba a partir de tiempos de viajes recientes entre millones de usuarios, junto con otros datos relevantes, como el clima.
Una app de recomendación de videos generaría conjuntos de datos de entrenamiento y prueba que incluyeran los videos en los que un usuario hizo clic de la lista recomendada (junto con los que no hicieron clic), así como otros datos relevantes, como el historial de reproducciones.
En la Figura 8, se ilustra la canalización de datos con datos de la aplicación para generar conjuntos de datos de entrenamiento y prueba.
Canalización de datos
Figura 8: Esta canalización procesa datos de la aplicación con el objetivo de crear conjuntos de datos para las canalizaciones de entrenamiento y validación.
Recopilación y procesamiento de datos
Es probable que las tareas para recopilar y procesar datos en canalizaciones de datos difieran de las de la fase de experimentación (en la que determinaste que tu solución era factible):
Recopilación de datos. Durante la experimentación, la recopilación de datos suele requerir el acceso a los datos guardados. En el caso de las canalizaciones de datos, es posible que la recopilación de datos requiera descubrir y obtener aprobación para acceder a los datos de registros de transmisión.
Si necesitas datos etiquetados por personas (como imágenes médicas), también necesitarás un proceso para recopilarlos y actualizarlos. Si necesitas datos etiquetados por personas, consulta la página CrowdCompute.
Procesamiento de datos. Durante la experimentación, los atributos correctos surgieron de copiar, unir y muestrear los conjuntos de datos de experimentación. Para las canalizaciones de datos, generar esos mismos atributos puede requerir procesos completamente diferentes. Sin embargo, asegúrate de duplicar las transformaciones de datos de la fase de experimentación. Para ello, aplica las mismas operaciones matemáticas a los atributos y las etiquetas.
Almacenamiento de recursos y metadatos
Necesitarás un proceso para almacenar, controlar las versiones y administrar los conjuntos de datos de entrenamiento y prueba. Los repositorios con control de versión proporcionan los siguientes beneficios:
Reproducibilidad. Volver a crear y estandarizar los entornos de entrenamiento de modelos y comparar la calidad de la predicción entre modelos
Cumplimiento. Cumple con los requisitos de cumplimiento normativo para la auditabilidad y la transparencia.
Retención. Establece valores de retención de datos para el tiempo en que se almacenarán los datos.
Administración de accesos. Administra quién puede acceder a tus datos mediante permisos detallados.
Integridad de datos. Hacer un seguimiento de los cambios en los conjuntos de datos y comprenderlos a lo largo del tiempo, lo que facilita el diagnóstico de problemas con tus datos o tu modelo
Visibilidad. Haz que sea fácil para otros encontrar tus conjuntos de datos y atributos. Luego, otros equipos pueden determinar si serían útiles para sus propósitos.
Documenta tus datos
Una buena documentación ayuda a otros a comprender la información clave sobre tus datos, como su tipo, fuente, tamaño y otros metadatos esenciales. En la mayoría de los casos, documentar tus datos en un documento de diseño o g3doc es suficiente. Si planeas compartir o publicar tus datos, usa tarjetas de datos para estructurar la información. Las tarjetas de datos facilitan el descubrimiento y la comprensión de tus conjuntos de datos.
Canalizaciones de entrenamiento y validación
Las canalizaciones de entrenamiento y validación producen modelos nuevos para reemplazar los modelos de producción antes de que se vuelvan obsoletos. El entrenamiento y la validación constantes de los modelos nuevos garantiza que el mejor modelo esté siempre en producción.
La canalización de entrenamiento genera un modelo nuevo a partir de los conjuntos de datos de entrenamiento, y la canalización de validación compara la calidad del modelo nuevo con el de producción mediante conjuntos de datos de prueba.
En la Figura 9, se ilustra la canalización de entrenamiento con un conjunto de datos de entrenamiento para entrenar un modelo nuevo.
Canalización de entrenamiento
Figura 9: La canalización entrena modelos nuevos con el conjunto de datos de entrenamiento más reciente.
Después de entrenar el modelo, la canalización de validación usa conjuntos de datos de prueba para comparar la calidad del modelo de producción con el modelo entrenado.
En general, si el modelo entrenado no es significativamente peor que el modelo de producción, el modelo entrenado entra en producción. Si el modelo entrenado es peor, la infraestructura de supervisión debería crear una alerta. Los modelos entrenados con una peor calidad de predicción podrían indicar posibles problemas con los datos o las canalizaciones de validación. Este enfoque funciona para garantizar que el mejor modelo, entrenado con los datos más recientes, siempre esté en producción.
Almacenamiento de recursos y metadatos
Los modelos y sus metadatos deben almacenarse en repositorios con control de versiones para organizar y realizar un seguimiento de las implementaciones de modelos. Los repositorios de modelos proporcionan los siguientes beneficios:
Seguimiento y evaluación. Realiza un seguimiento de los modelos en producción y comprende sus métricas de calidad de evaluación y predicción.
Proceso de lanzamiento del modelo. Revisa, aprueba, lanza o revierte modelos con facilidad.
Reproducibilidad y depuración. Reproduce los resultados del modelo y depura los problemas con mayor eficacia mediante el seguimiento de los conjuntos de datos y las dependencias de un modelo en todas las implementaciones.
Visibilidad. Haz que sea fácil para otros encontrar tu modelo. Luego, otros equipos pueden determinar si tu modelo (o partes de él) se pueden usar para sus propósitos.
En la Figura 10, se ilustra un modelo validado almacenado en un repositorio de modelos.
Almacenamiento de modelos
Figura 10: Los modelos validados se almacenan en un repositorio de modelos para su seguimiento y visibilidad.
Usa tarjetas de modelo para documentar y compartir información clave sobre el modelo, como su propósito, arquitectura, requisitos de hardware y métricas de evaluación, entre otros.
Desafíos para la compilación de canalizaciones
Cuando compiles canalizaciones, podrías encontrarte con los siguientes desafíos:
Obtén acceso a los datos que necesitas. El acceso a los datos puede requerir justificar por qué lo necesitas. Por ejemplo, es posible que debas explicar cómo se usarán los datos y aclarar cómo se resolverán los problemas de PII. Prepárate para mostrar una prueba de concepto que demuestre cómo tu modelo hace mejores predicciones con acceso a ciertos tipos de datos.
Obtén las funciones adecuadas. En algunos casos, las funciones que se usan en la fase de experimentación no estarán disponibles a partir de los datos en tiempo real. Por lo tanto, cuando experimentes, intenta confirmar que podrás obtener las mismas funciones en producción.
Comprender cómo se recopilan y representan los datos Aprender cómo se recopilaron los datos, quién los recopiló y cómo se recopilaron (junto con otros problemas) puede llevar tiempo y esfuerzo. Es importante comprender los datos a fondo. No uses datos en los que no confíes para entrenar un modelo que podría ir a producción.
Comprende las compensaciones entre esfuerzo, costo y calidad del modelo. La incorporación de un atributo nuevo en una canalización de datos puede requerir mucho esfuerzo. Sin embargo, el atributo adicional puede mejorar solo un poco la calidad del modelo. En otros casos, podría resultar sencillo agregar una nueva función. Sin embargo, los recursos para obtener y almacenar la función pueden ser muy costosos.
Obtener procesamiento. Si necesitas TPU para el reentrenamiento, puede ser difícil obtener la cuota requerida. Además, administrar TPU es complicado. Por ejemplo, es posible que algunas partes del modelo o los datos deban diseñarse específicamente para las TPU dividiendo partes de ellos en varios chips TPU.
Cómo encontrar el conjunto de datos dorado correcto Si los datos cambian con frecuencia, obtener conjuntos de datos de oro con etiquetas coherentes y precisas puede ser un desafío.
Detectar este tipo de problemas durante la experimentación ahorra tiempo. Por ejemplo, no es conveniente desarrollar los mejores atributos y un modelo solo para descubrir que no son viables en producción. Por lo tanto, intenta confirmar lo antes posible que tu solución funcionará dentro de las restricciones de un entorno de producción. Es mejor dedicar tiempo a verificar que una solución funcione, en lugar de tener que volver a la fase de experimentación, ya que la fase de canalización descubrió problemas que no se pueden solucionar.