Compartir a través de


Seguimiento de MLflow para agentes

Importante

Esta característica está en versión preliminar pública.

En este artículo se describe el seguimiento de MLflow y los escenarios en los que resulta útil evaluar las aplicaciones de IA generativa en un sistema de inteligencia artificial.

En el desarrollo de software, el seguimiento conlleva la grabación de secuencias de eventos como sesiones de usuario o flujos de solicitudes. En el contexto de los sistemas de IA, el seguimiento suele hacer referencia a las interacciones que se tienen con un sistema de inteligencia artificial. Un seguimiento de ejemplo de un sistema de IA podría ser similar a instrumentar las entradas y los parámetros de una aplicación RAG que incluya un mensaje de usuario con aviso, una búsqueda vectorial y una interfaz con el modelo de IA generativa.

¿En qué consiste el seguimiento de MLflow?

Con el seguimiento de MLflow, puede registrar, analizar y comparar seguimientos en distintas versiones de aplicaciones de IA generativa. Permite depurar el código de Python de IA generativa y realizar un seguimiento de las entradas y respuestas. Si lo hace, puede ayudarle a detectar condiciones o parámetros que contribuyen a un rendimiento deficiente de la aplicación. El seguimiento de MLflow está estrechamente integrado con las herramientas y la infraestructura de Databricks, lo que le permite almacenar y mostrar todos los seguimientos en cuadernos de Databricks o la interfaz de usuario del experimento de MLflow mientras se ejecuta el código.

Al desarrollar sistemas de IA en Databricks mediante bibliotecas como LangChain, LlamaIndex, OpenAI, o PyFunc personalizable, el seguimiento de MLflow le permite ver todos los eventos y salidas intermedias de cada paso del agente. Puede ver fácilmente las consultas, qué modelos y recuperadores se usaron, qué documentos se recuperaron para aumentar la respuesta, el tiempo empleado y la salida final. Por ejemplo, si el modelo presenta alucinaciones, puede inspeccionar rápidamente cada paso que llevó a la alucinación.

¿Por qué conviene usar el seguimiento de MLflow?

El seguimiento de MLflow proporciona varias ventajas para ayudarle a realizar un seguimiento del flujo de trabajo de desarrollo. Por ejemplo, puede hacer lo siguiente:

  • Revise una visualización de seguimiento interactiva y utilice la herramienta de investigación para diagnosticar problemas en el desarrollo.
  • Compruebe que las plantillas de solicitud y los límites de protección generan resultados razonables.
  • Explore y minimice el impacto de la latencia de diferentes marcos, modelos, tamaños de fragmentos y prácticas de desarrollo de software.
  • Mida los costes de la aplicación mediante el seguimiento del uso de tokens de diferentes modelos.
  • Establezca conjuntos de datos de pruebas comparativas (“golden”) para evaluar el rendimiento de diferentes versiones.
  • Almacene seguimientos de los puntos de conexión del modelo de producción para depurar problemas y realice revisiones y evaluaciones sin conexión.

Instalación de seguimiento de MLflow

El seguimiento de MLflow está disponible en las versiones 2.13.0 y posteriores de MLflow.

%pip install mlflow>=2.13.0 -qqqU
%restart_python

Como alternativa, puede %pip install databricks-agents para instalar la versión más reciente de databricks-agents que incluye una versión de MLflow compatible.

Uso del seguimiento de MLflow en el desarrollo

El seguimiento de MLflow le ayuda a analizar problemas de rendimiento y a acelerar el ciclo de desarrollo del agente. En las secciones siguientes se supone que está realizando el desarrollo del agente y el seguimiento de MLflow desde un cuaderno.

Nota:

En el entorno del cuaderno, el seguimiento de MLflow puede agregar hasta unos segundos de sobrecarga al tiempo de ejecución del agente. Esto proviene principalmente de la latencia de los seguimientos de registro al experimento de MLflow. En el punto de conexión del modelo de producción, el seguimiento de MLflow tiene un impacto mucho menor en el rendimiento. Consulte Uso del seguimiento de MLflow en producción.

Nota:

A partir de Databricks Runtime 15.4 LTS ML, el seguimiento de MLflow está habilitado de forma predeterminada en cuadernos. Para deshabilitar el seguimiento, por ejemplo con LangChain, puede ejecutar mlflow.langchain.autolog(log_traces=False) en el cuaderno.

Adición de seguimientos a su agente

El seguimiento de MLflow proporciona tres maneras diferentes de usar seguimientos con la aplicación de IA generativa con seguimientos. Consulte Adición de seguimientos a los agentes para obtener ejemplos de uso de estos métodos. Para ver detalles de referencia de API, consulte la documentación de MLflow.

API Caso de uso recomendado Descripción
Registro automático de MLflow Desarrollo en bibliotecas integradas de GenAI El registro automático instrumenta automáticamente los seguimientos de marcos de código abierto populares, como LangChain, LlamaIndex y OpenAI. Al agregar mlflow.<library>.autolog() al principio del cuaderno, MLflow registra automáticamente los seguimientos de cada paso de la ejecución del agente.
API fluidas Agente personalizado con Pyfunc API con poco código para instrumentar sistemas de inteligencia artificial sin preocuparse por la estructura de árbol del seguimiento. MLflow determina la estructura de árbol primario-secundario adecuada (intervalos) en función de la pila de Python.
API de cliente de MLflow Casos de uso avanzados, como multiproceso MLflowClient implementa API más granulares y seguras para subprocesos en casos de uso avanzados. Estas API no administran la relación de elementos primarios y secundarios de los intervalos, por lo que debe especificarla manualmente para construir la estructura de seguimiento que quiera. Para ello, se requiere más código, pero ofrece un mejor control sobre el ciclo de vida de seguimiento, especialmente en los casos de uso multiproceso.

Se recomienda en casos de uso que requieren más control, como aplicaciones multiproceso o instrumentación basada en devolución de llamada.

Revisar seguimientos

Después de ejecutar el agente instrumentado, puede revisar los seguimientos generados de maneras diferentes:

  • La visualización de seguimiento se representa en línea en la salida de la celda.
  • Los seguimientos se registran en el experimento de MLflow. Puede revisar la lista completa de seguimientos históricos y buscarlos en la pestaña Traces de la página Experimento. Cuando el agente se ejecuta en una ejecución de MLflow activa, también puede encontrar los seguimientos en la página Ejecutar.
  • Recupere los seguimientos mediante programación con la API search_traces().

Uso del seguimiento de MLflow en producción

El seguimiento de MLflow también se integra con Mosaic AI Model Serving, lo que le permite depurar problemas de forma eficaz, supervisar el rendimiento y crear un conjunto de datos dorado para la evaluación sin conexión. Cuando el seguimiento de MLflow está habilitado para el punto de conexión de servicio, los seguimientos se registran en una tabla de inferencia debajo de la columna response.

Para habilitar el seguimiento de MLflow para el punto de conexión de servicio, debe establecer la variable de entorno ENABLE_MLFLOW_TRACING en la configuración del punto de conexión en True. Consulte Incorporación de variables de entorno de texto sin formato para ver cómo implementar un punto de conexión con variables de entorno personalizadas. Si ha implementado el agente mediante la API de deploy(), los seguimientos se registran automáticamente en una tabla de inferencia. Consulte Implementación de un agente para una aplicación de IA generativa.

Nota:

La escritura de seguimientos en una tabla de inferencia se realiza de forma asíncrona, por lo que no agrega la misma sobrecarga que en el entorno del cuaderno durante el desarrollo. Sin embargo, podría introducir cierta sobrecarga en la velocidad de respuesta del punto de conexión, especialmente cuando el tamaño de seguimiento de cada solicitud de inferencia es grande. Databricks no garantiza ningún acuerdo de nivel de servicio (SLA) para el impacto real de latencia en el punto de conexión del modelo, ya que depende en gran medida del entorno y de la implementación del modelo. Databricks recomienda probar el rendimiento del punto de conexión y obtener información sobre la sobrecarga de seguimiento antes de realizar la implementación en una aplicación de producción.

En la siguiente tabla se proporciona una indicación aproximada del impacto en la latencia de inferencia para diferentes tamaños de seguimiento.

Tamaño de seguimiento por solicitud Impacto en la latencia (ms)
~10 KB ~ 1 ms
~ 1 MB 50 ~ 100 ms
10 MB 150 ms ~

Limitaciones

  • El seguimiento de MLflow está disponible en cuadernos de Databricks, trabajos de cuadernos y servicio de modelos.

  • Es posible que el registro automático de LangChain no admita todas las API de predicción de LangChain. Consulte la documentación de MLflow para obtener la lista completa de las API admitidas.