¿Qué es la evaluación del agente de Mosaic AI?

Importante

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

En este artículo se proporciona información general sobre cómo trabajar con la evaluación del agente de Mosaic AI. La evaluación del agente ayuda a los desarrolladores a evaluar la calidad, el costo y la latencia de las aplicaciones de IA generativas, incluidas las aplicaciones y cadenas RAG. La evaluación del agente está diseñada para identificar problemas de calidad y determinar la causa principal de esos problemas. Las funcionalidades de evaluación del agente se unifican en las fases de desarrollo, almacenamiento provisional y producción del ciclo de vida de MLOps, y todas las métricas y datos de evaluación se registran en ejecuciones de MLflow.

Agent Evaluation integra técnicas de evaluación avanzadas respaldadas por investigaciones en un SDK y una interfaz de usuario fáciles de usar que se integra con lakehouse, MLflow y otros componentes de Databricks Data Intelligence Platform. Desarrollado en colaboración con la investigación de mosaic AI, esta tecnología propietaria ofrece un enfoque completo para analizar y mejorar el rendimiento del agente.

Diagrama de LLMOps que muestra la evaluación

Las aplicaciones de IA agente son complejas e implican muchos componentes diferentes. Evaluar el rendimiento de estas aplicaciones no es tan sencillo como evaluar el rendimiento de los modelos de ML tradicionales. Las métricas cualitativas y cuantitativas que se usan para evaluar la calidad son intrínsecamente más complejas. La evaluación del agente incluye jueces de LLM y métricas de agente para evaluar la calidad de la recuperación y la solicitud, así como las métricas de rendimiento generales, como la latencia y el costo del token.

Cómo usar la evaluación del agente

En el código siguiente se muestra cómo llamar y probar la evaluación del agente en las salidas generadas anteriormente. Devuelve un DataFrame con puntuaciones de evaluación calculadas por los jueces de LLM que forman parte de la evaluación del agente.

Puede copiar y pegar lo siguiente en el cuaderno de Databricks existente:

%pip install mlflow databricks-agents
dbutils.library.restartPython()

import mlflow
import pandas as pd

examples =  {
    "request": [
      {
      # Recommended `messages` format
        "messages": [{
          "role": "user",
          "content": "Spark is a data analytics framework."
        }],
      },
      # Primitive string format
      # Note: Using a primitive string is discouraged. The string will be wrapped in the
      # OpenAI messages format before being passed to your agent.
      "How do I convert a Spark DataFrame to Pandas?"
    ],
    "response": [
        "Spark is a data analytics framework.",
        "This is not possible as Spark is not a panda.",
    ],
    "retrieved_context": [ # Optional, needed for judging groundedness.
        [{"doc_uri": "doc1.txt", "content": "In 2013, Spark, a data analytics framework, was open sourced by UC Berkeley's AMPLab."}],
        [{"doc_uri": "doc2.txt", "content": "To convert a Spark DataFrame to Pandas, you can use toPandas()"}],
    ],
    "expected_response": [ # Optional, needed for judging correctness.
        "Spark is a data analytics framework.",
        "To convert a Spark DataFrame to Pandas, you can use the toPandas() method.",
    ]
}

result = mlflow.evaluate(
    data=pd.DataFrame(examples),    # Your evaluation set
    # model=logged_model.model_uri, # If you have an MLFlow model. `retrieved_context` and `response` will be obtained from calling the model.
    model_type="databricks-agent",  # Enable Mosaic AI Agent Evaluation
)

# Review the evaluation results in the MLFLow UI (see console output), or access them in place:
display(result.tables['eval_results'])

Como alternativa, puede importar y ejecutar el siguiente cuaderno en el área de trabajo de Databricks:

Cuaderno de ejemplo de evaluación del agente de Mosaic AI

Obtener el cuaderno

Entradas y salidas de evaluación del agente

En el diagrama siguiente se muestra información general de las entradas aceptadas por La evaluación del agente y las salidas correspondientes generadas por La evaluación del agente.

agent_eval_data_flows

Entradas

Para obtener más información sobre la entrada esperada para la evaluación del agente, incluidos los nombres de campo y los tipos de datos, consulte el esquema de entrada. Algunos de los campos son los siguientes:

  • Consulta del usuario (request): entrada al agente (pregunta o consulta del usuario). Por ejemplo, "¿Qué es RAG?".
  • Respuesta del agente (response): respuesta generada por el agente. Por ejemplo, "La generación aumentada de recuperación es ...".
  • Respuesta esperada (): (expected_responseopcional) Respuesta de verdad (correcta).
  • Seguimiento de MLflow (): (traceopcional) El seguimiento de MLflow del agente, desde el que La evaluación del agente extrae salidas intermedias, como el contexto recuperado o las llamadas a herramientas. Como alternativa, puede proporcionar estas salidas intermedias directamente.

Salidas

En función de estas entradas, La evaluación del agente genera dos tipos de salidas:

  1. Resultados de evaluación (por fila): para cada fila proporcionada como entrada, La evaluación del agente genera una fila de salida correspondiente que contiene una evaluación detallada de la calidad, el costo y la latencia del agente.
    • Los jueces de LLM comprueban diferentes aspectos de la calidad, como la exactitud o la base, lo que genera una puntuación yes/no y justificación escrita para esa puntuación. Para obtener más información, consulte Cómo la evaluación del agente evalúa la calidad, el costo y la latencia.
    • Las evaluaciones de los jueces de LLM se combinan para generar una puntuación general que indica si esa fila "pasa" (es de alta calidad) o "falla" (tiene un problema de calidad).
      • En el caso de las filas con errores, se identifica una causa principal. Cada causa principal corresponde a la evaluación de un juez LLM específico, lo que le permite usar la justificación del juez para identificar posibles correcciones.
    • El costo y la latencia se extraen del seguimiento de MLflow. Para obtener más información, consulte Cómo se evalúan los costos y la latencia.
  2. Métricas (puntuaciones de agregado): puntuaciones agregadas que resumen la calidad, el costo y la latencia del agente en todas las filas de entrada. Entre ellas se incluyen métricas como el porcentaje de respuestas correctas, el recuento medio de tokens, la latencia media y mucho más. Para más información, consulte Cómo se evalúan los costos y la latencia y Cómo se agregan las métricas en el nivel de una ejecución de MLflow para la calidad, el costo y la latencia.

Desarrollo (evaluación sin conexión) y producción (supervisión en línea)

La evaluación del agente está diseñada para ser coherente entre los entornos de desarrollo (sin conexión) y producción (en línea). Este diseño permite una transición sin problemas del desarrollo a la producción, lo que le permite iterar, evaluar, implementar y supervisar rápidamente aplicaciones agenticas de alta calidad.

La principal diferencia entre el desarrollo y la producción es que, en producción, no tiene etiquetas de verdad básica, mientras que en el desarrollo, opcionalmente puede usar etiquetas de verdad básica. El uso de etiquetas de verdad básica permite a la evaluación del agente calcular métricas de calidad adicionales.

Desarrollo (sin conexión)

agent_eval_overview_dev

En desarrollo, y requests expected_responses proceden de un conjunto de evaluación. Un conjunto de evaluación es una colección de entradas representativas que el agente debe poder controlar con precisión. Para obtener más información sobre los conjuntos de evaluación, vea Conjuntos de evaluación.

Para obtener response y trace, Agent Evaluation puede llamar al código del agente para generar estas salidas para cada fila del conjunto de evaluación. Como alternativa, puede generar estas salidas usted mismo y pasarlas a evaluación del agente. Consulte Cómo proporcionar una entrada a una ejecución de evaluación para obtener más información.

Producción (en línea)

agent_eval_overview_prod

En producción, todas las entradas a la evaluación del agente proceden de los registros de producción.

Si usa Mosaic AI Agent Framework para implementar la aplicación de IA, la evaluación del agente se puede configurar para recopilar automáticamente estas entradas de las tablas de inferencia mejoradas por el agente y actualizar continuamente un panel de supervisión. Para obtener más información, consulte Cómo supervisar la calidad del agente en el tráfico de producción.

Si implementa el agente fuera de Azure Databricks, puede ETL los registros en el esquema de entrada necesario y configurar de forma similar un panel de supervisión.

Establecimiento de una prueba comparativa de calidad con un conjunto de evaluación

Para medir la calidad de una aplicación de inteligencia artificial en desarrollo (sin conexión), debe definir un conjunto de evaluación, es decir, un conjunto de preguntas representativas y respuestas opcionales de verdad básica. Si la aplicación implica un paso de recuperación, como en los flujos de trabajo RAG, opcionalmente puede proporcionar documentos auxiliares en los que espera que se base la respuesta.

Para más información sobre los conjuntos de evaluación, incluidas las dependencias de métricas y los procedimientos recomendados, consulte Conjuntos de evaluación. Para ver el esquema necesario, consulte Esquema de entrada de evaluación del agente.

Ejecuciones de evaluación

Para obtener más información sobre cómo ejecutar una evaluación, consulte Ejecución de una evaluación y visualización de los resultados. La evaluación del agente admite dos opciones para proporcionar la salida de la cadena:

  • Puede ejecutar la aplicación como parte de la ejecución de evaluación. La aplicación genera resultados para cada entrada del conjunto de evaluación.
  • Puede proporcionar la salida de una ejecución anterior de la aplicación.

Para obtener información detallada y explicación de cuándo usar cada opción, consulte Cómo proporcionar la entrada a una ejecución de evaluación.

Obtención de comentarios humanos sobre la calidad de una aplicación de GenAI

La aplicación de revisión de Databricks facilita la recopilación de comentarios sobre la calidad de una aplicación de inteligencia artificial de los revisores humanos. Para obtener más detalles, consulte Obtención de comentarios sobre la calidad de una aplicación de agente.

Disponibilidad geográfica de las características del asistente

La Evaluación del agente de Mosaic AI es un Servicio designado que usa geoáreas para administrar la residencia de los datos al procesar el contenido de los clientes. Para obtener más información sobre la disponibilidad de la Evaluación del agente en distintas áreas geográficas, vea Servicios designados de Databricks.

Precios

Para obtener información sobre los precios, consulte los precios de la evaluación del agente de Mosaic AI.

Limitación

La Evaluación del agente no está disponible en las áreas de trabajo habilitadas para HIPAA.

Información sobre los modelos que impulsan los jueces de LLM

  • Los jueces de LLM pueden usar servicios de terceros para evaluar las aplicaciones de GenAI, incluido Azure OpenAI operado por Microsoft.
  • Para Azure OpenAI, Databricks ha optado por no realizar la supervisión de abusos, por lo que no se almacenan solicitudes ni respuestas con Azure OpenAI.
  • En el caso de las áreas de trabajo de la Unión Europea (UE), los jueces de LLM usan modelos hospedados en la UE. Todas las demás regiones usan modelos hospedados en Estados Unidos.
  • La deshabilitación de las características de asistencia de IA con tecnología de Azure AI impide que el juez de LLM llame a modelos con tecnología de Azure AI.
  • Los datos enviados al juez de LLM no se usan para ningún entrenamiento del modelo.
  • Los jueces de LLM están pensados para ayudar a los clientes a evaluar sus aplicaciones RAG, y los resultados de los jueces de LLM no deben utilizarse para entrenar, mejorar o ajustar un LLM.