Esta es una publicación de blog invitada de Danny Brock, Rajeev Govindan y Krishnaram Kenthapadi en Fiddler AI.
Sus modelos de Amazon SageMaker están activos. Procesa millones de inferencias todos los días y genera mejores resultados comerciales para su organización. Funcionan tan bien como el día en que se lanzaron.
Espera. son ellos Quizás. Tal vez no.
Sin el monitoreo de modelos de clase empresarial, sus modelos pueden quedar en silencio. Es posible que sus equipos de aprendizaje automático (ML) nunca sepan que estos modelos en realidad se han transformado de milagros de generación de ingresos a pasivos que toman decisiones equivocadas que le cuestan tiempo y dinero a su negocio.
No te preocupes. La solución está más cerca de lo que crees.
Fiddler, una solución de gestión del rendimiento de modelos de clase empresarial disponible en AWS Marketplace, proporciona supervisión de modelos e inteligencia artificial explicable para ayudar a los equipos de aprendizaje automático a investigar y solucionar una amplia variedad de problemas de modelos. A través de la supervisión de modelos, la explicabilidad de modelos, el análisis y la detección de sesgos, Fiddler le brinda a su organización un único panel de control fácil de usar para garantizar que sus modelos se comporten como deberían. Y si ese no es el caso, Fiddler también proporciona funcionalidad para ayudarlo a examinar sus modelos para encontrar las causas subyacentes de la degradación del rendimiento.
Esta publicación muestra cómo su equipo de MLOps puede mejorar la productividad de los científicos de datos y reducir el tiempo para detectar problemas en sus modelos implementados en SageMaker mediante la integración con Fiddler Model Performance Management Platform en unos simples pasos.
descripción general de la solución
La siguiente arquitectura de referencia destaca los puntos clave de integración. Fiddler existe como un «secundario» para su flujo de trabajo existente de SageMaker ML.
El resto de esta publicación lo guía a través de los pasos para integrar su modelo de SageMaker con la plataforma de gestión del rendimiento del modelo de Fiddler:
- Asegúrese de que su modelo tenga habilitada la recopilación de datos.
- Cree un entorno de prueba de Fiddler.
- Registre información sobre su modelo en su entorno Fiddler.
- Cree una función de AWS Lambda para publicar la inferencia de SageMaker en Fiddler.
- Explore las capacidades de monitoreo de Fiddler en su entorno de prueba de Fiddler.
requisitos
Esta publicación asume que configuró SageMaker e implementó un punto final modelo. Para obtener información sobre cómo configurar SageMaker para entregar modelos, consulte Entrega de modelos para inferencia. Algunos ejemplos también están disponibles en el repositorio de GitHub.
Asegúrese de que su modelo tenga habilitada la recopilación de datos
En SageMaker Console, navegue hasta el punto final de implementación de su modelo y asegúrese de haber habilitado la recopilación de datos en un depósito de Amazon Simple Storage Service (Amazon S3). Esto guarda las conclusiones (solicitudes y respuestas) que su modelo hace cada día como archivos de línea JSON (.jsonl) en Amazon S3.
Crear un entorno de prueba de Fiddler
Puede solicitar una prueba gratuita desde el sitio web fiddler.ai. Después de completar un breve formulario, Fiddler se comunicará con usted para comprender los detalles de las necesidades de administración del rendimiento de su modelo y tendrá un entorno de prueba listo para usted en unas pocas horas. Puede esperar un entorno dedicado como https://yourcompany.try.fiddler.ai.
Registre información sobre su modelo en su entorno Fiddler
Antes de que pueda comenzar a publicar eventos desde su modelo alojado de SageMaker en Fiddler, debe crear un proyecto en su entorno de prueba de Fiddler y proporcionarle a Fiddler detalles sobre su modelo a través de un paso llamado registro de modelo. Si desea utilizar un cuaderno preconfigurado de Amazon SageMaker Studio en lugar de copiar y pegar los fragmentos de código a continuación, puede consultar el cuaderno de inicio rápido de Fiddler en GitHub. Studio proporciona una única interfaz visual basada en web donde puede completar todos los pasos de desarrollo de ML.
Primero debe instalar el cliente Fiddler Python en su computadora portátil SageMaker e instanciar el cliente Fiddler. Puedes conseguir esos AUTH_TOKEN
del ajustes Page en su entorno de prueba de Fiddler.
A continuación, cree un proyecto en su entorno de prueba de Fiddler:
Ahora cargue su conjunto de datos de entrenamiento. El cuaderno también proporciona un conjunto de datos de muestra para ejecutar los algoritmos de explicabilidad de Fiddler y como base para monitorear las métricas. El conjunto de datos también se usa para generar el esquema para este modelo en Fiddler.
Finalmente, antes de que pueda comenzar a publicar inferencias en Fiddler para monitoreo, análisis de causa raíz y explicaciones, debe registrar su modelo. Vamos a crear uno primero model_info
Objeto que contiene los metadatos sobre su modelo:
Entonces puedes registrar el modelo con tu nuevo model_info
Objeto:
¡Grande! Ahora puede publicar algunos eventos en Fiddler para observar el rendimiento del modelo.
Cree una función Lambda para publicar la inferencia de SageMaker en Fiddler
Con la arquitectura sin servidor fácil de implementar de Lambda, puede crear rápidamente el mecanismo necesario para mover sus inferencias desde el depósito de S3 que configuró previamente a su entorno de prueba de Fiddler recién implementado. Esta función Lambda es responsable de abrir cualquier archivo de registro de eventos JSONL nuevo en el depósito S3 de su modelo, analizar y formatear el contenido JSONL en un marco de datos y luego publicar ese marco de datos de eventos en su entorno de prueba de Fiddler. La siguiente captura de pantalla muestra los detalles del código de nuestra función.
La función Lambda debe configurarse para activar archivos recién creados en su depósito S3. El siguiente tutorial lo guía a través de la creación de un disparador de Amazon EventBridge que invoca la función Lambda cuando se carga un archivo en Amazon S3. La siguiente captura de pantalla muestra la configuración del disparador de nuestra función. Esto facilita garantizar que cada vez que su modelo realice nuevas inferencias, los eventos almacenados en Amazon S3 se carguen en Fiddler para impulsar la observabilidad del modelo que su negocio necesita.
Para simplificar aún más esto, el código de esta función de Lambda está disponible públicamente en la página de documentación de Fiddler. Este ejemplo de código funciona actualmente para modelos de clasificación binaria con entradas estructuradas. Si tiene tipos de modelos con diferentes funciones o tareas, comuníquese con Fiddler para obtener ayuda con cambios menores en el código.
La función de Lambda debe hacer referencia al cliente Fiddler Python. Fiddler ha creado una capa Lambda disponible públicamente a la que puede hacer referencia para asegurarse de que import fiddler as fdl
paso funciona bien. Puede hacer referencia a esta capa mediante un ARN en la región us-west-2: arn:aws:lambda:us-west-2:079310353266:layer:fiddler-client-0814:1
como se muestra en la captura de pantalla a continuación.
También debe especificar las variables de entorno de Lambda para que la función de Lambda sepa cómo conectarse a su entorno de prueba de Fiddler y qué entradas y salidas están contenidas en los archivos .jsonl capturados por su modelo. La siguiente captura de pantalla muestra una lista de las variables de entorno requeridas, que también se pueden encontrar en la página de documentación de Fiddler. Actualice los valores de las variables de entorno para que coincidan con su modelo y conjunto de datos.
Explore las capacidades de monitoreo de Fiddler en su entorno de prueba de Fiddler
¡Lo lograste! Con su base de datos, modelo y tráfico conectados, ahora puede explicar la desviación de datos, los valores atípicos, los errores del modelo, los problemas de datos y las fallas de rendimiento, y compartir paneles con otros. Complete su viaje viendo una demostración de las capacidades de gestión del rendimiento del modelo que ha introducido en su organización.
Las capturas de pantalla de muestra a continuación brindan una idea de los conocimientos del modelo, como la deriva, la detección de valores atípicos, las explicaciones de puntos locales y el análisis del modelo que se encuentra en su entorno de prueba de Fiddler.
Conclusión
Esta publicación enfatizó la necesidad de un monitoreo de modelos de clase empresarial y mostró cómo integrar sus modelos implementados en SageMaker con la plataforma de administración de rendimiento de modelos Fiddler en solo unos pocos pasos. Fiddler proporciona monitoreo de modelos, IA explicable, detección de sesgos y capacidades de análisis de causa raíz y está disponible en AWS Marketplace. Al proporcionar a su equipo de MLOps una consola central fácil de usar para garantizar que sus modelos se comporten como se espera e identificar las causas principales de la degradación del rendimiento, Fiddler puede ayudar a mejorar la productividad de los científicos de datos y reducir el tiempo para identificar y solucionar problemas.
Si desea obtener más información sobre Fiddler, visite fiddler.ai o si prefiere configurar una demostración personalizada y una discusión técnica, envíe un correo electrónico a sales@fiddler.ai.
Sobre los autores
danny brock es ingeniero sénior de soluciones en Fiddler AI. Danny tiene una larga trayectoria en análisis y ML, liderando equipos de preventa y posventa para startups como Endeca e Incorta. En 2012 fundó su propia consultoría de análisis de big data, Branchbird.
Rajeev Govindan es ingeniero sénior de soluciones en Fiddler AI. Rajeev tiene una amplia experiencia en ingeniería de ventas y desarrollo de software en varias empresas, incluida AppDynamics.
Krishnaram Kenthapadi es el científico jefe de Fiddler AI. Anteriormente, fue científico principal en Amazon AWS AI, donde lideró las iniciativas de equidad, explicabilidad, privacidad y comprensión de modelos en la plataforma de Amazon AI, y antes de eso ocupó cargos en LinkedIn AI y Microsoft Research. Krishnaram recibió su doctorado en Ciencias de la Computación de la Universidad de Stanford en 2006.