En el caso del servicio de evaluación de IA generativa, el conjunto de datos de evaluación suele constar de la respuesta del modelo que quieres evaluar, los datos de entrada utilizados para generar la respuesta y, posiblemente, la respuesta validada en el terreno.
Esquema del conjunto de datos de evaluación
En los casos prácticos habituales de métricas basadas en modelos, el conjunto de datos debe proporcionar la siguiente información:
Tipo de entrada | Contenido del campo de entrada |
---|---|
petición | Entrada del usuario para el modelo o la aplicación de IA generativa. En algunos casos, es opcional. |
response | La respuesta de inferencia de tu LLM que se va a evaluar. |
baseline_model_response (obligatorio para las métricas por pares) | La respuesta de inferencia del LLM de referencia que se usa para comparar tu respuesta del LLM con la evaluación por pares |
Si usas el módulo de evaluación de IA generativa del SDK de Vertex AI para Python, el servicio de evaluación de IA generativa puede generar automáticamente response
y baseline_model_response
con el modelo que hayas especificado.
En otros casos prácticos de evaluación, es posible que tengas que proporcionar más información:
Conversación multiturno o chat
Tipo de entrada | Contenido del campo de entrada |
---|---|
historial | El historial de la conversación entre el usuario y el modelo antes del turno actual. |
petición | Entrada del usuario para el modelo o la aplicación de IA generativa en la conversación actual. |
response | La respuesta de inferencia del LLM que se va a evaluar, que se basa en el historial y en la petición del turno actual. |
baseline_model_response (obligatorio para las métricas por pares) | La respuesta de inferencia del LLM de referencia que se usa para comparar tu respuesta del LLM con la evaluación por pares, que se basa en el historial y en la petición del turno actual. |
Métricas basadas en cálculos
Tu conjunto de datos debe proporcionar una respuesta del modelo de lenguaje extenso y una referencia con la que compararla.
Tipo de entrada | Contenido del campo de entrada |
---|---|
response | La respuesta de inferencia de tu LLM que se va a evaluar. |
referencia | La verdad fundamental con la que comparar la respuesta del LLM. |
Métricas de traducción
Tu conjunto de datos debe proporcionar una respuesta del modelo. En función de tu caso práctico, también debes proporcionar una referencia con la que comparar, una entrada en el idioma de origen o una combinación de ambas.
Tipo de entrada | Contenido del campo de entrada |
---|---|
fuente | Texto de origen en el idioma original del que se ha traducido la predicción. |
response | La respuesta de inferencia de tu LLM que se va a evaluar. |
referencia | La verdad fundamental con la que comparar la respuesta del LLM. Está en el mismo idioma que la respuesta. |
En función de tus casos prácticos, también puedes desglosar la petición del usuario en partes más pequeñas, como instruction
y context
, y combinarlas para hacer inferencias proporcionando una plantilla de petición. También puedes proporcionar la información de referencia o validada en el terreno si es necesario:
Tipo de entrada | Contenido del campo de entrada |
---|---|
instrucción | Parte de la petición de entrada del usuario. Hace referencia a la instrucción de inferencia que se envía a tu LLM. Por ejemplo, "Resume el siguiente texto" es una instrucción. |
context | Entrada del usuario para el modelo o la aplicación de IA generativa en la conversación actual. |
referencia | La verdad fundamental con la que comparar la respuesta del LLM. |
Las entradas obligatorias del conjunto de datos de evaluación deben ser coherentes con tus métricas. Para obtener más información sobre cómo personalizar las métricas, consulta los artículos Definir las métricas de evaluación y Ejecutar la evaluación. Para obtener más información sobre cómo incluir datos de referencia en las métricas basadas en modelos, consulta el artículo Adaptar una plantilla de petición de métrica a tus datos de entrada.
Importar el conjunto de datos de evaluación
Puede importar su conjunto de datos en los siguientes formatos:
Archivo JSONL o CSV almacenado en Cloud Storage
Tabla de BigQuery
Pandas DataFrame
Ejemplos de conjuntos de datos de evaluación
En esta sección se muestran ejemplos de conjuntos de datos con el formato de Pandas DataFrame. Ten en cuenta que aquí solo se muestran varios registros de datos como ejemplo, y que los conjuntos de datos de evaluación suelen tener 100 puntos de datos o más. Para consultar las prácticas recomendadas a la hora de preparar un conjunto de datos, consulta la sección Prácticas recomendadas.
Métricas basadas en modelos de punto a punto
A continuación, se muestra un caso de resumen para demostrar un conjunto de datos de ejemplo de métricas basadas en modelos de puntos:
prompts = [
# Example 1
(
"Summarize the text in one sentence: As part of a comprehensive"
" initiative to tackle urban congestion and foster sustainable urban"
" living, a major city has revealed ambitious plans for an extensive"
" overhaul of its public transportation system. The project aims not"
" only to improve the efficiency and reliability of public transit but"
" also to reduce the city's carbon footprint and promote eco-friendly"
" commuting options. City officials anticipate that this strategic"
" investment will enhance accessibility for residents and visitors"
" alike, ushering in a new era of efficient, environmentally conscious"
" urban transportation."
),
# Example 2
(
"Summarize the text such that a five-year-old can understand: A team of"
" archaeologists has unearthed ancient artifacts shedding light on a"
" previously unknown civilization. The findings challenge existing"
" historical narratives and provide valuable insights into human"
" history."
),
]
responses = [
# Example 1
(
"A major city is revamping its public transportation system to fight"
" congestion, reduce emissions, and make getting around greener and"
" easier."
),
# Example 2
(
"Some people who dig for old things found some very special tools and"
" objects that tell us about people who lived a long, long time ago!"
" What they found is like a new puzzle piece that helps us understand"
" how people used to live."
),
]
eval_dataset = pd.DataFrame({
"prompt": prompts,
"response": responses,
})
Métricas basadas en modelos por pares
En el siguiente ejemplo se muestra un caso de respuesta a preguntas con libro abierto para demostrar un conjunto de datos de ejemplo de métricas basadas en modelos por pares.
prompts = [
# Example 1
(
"Based on the context provided, what is the hardest material? Context:"
" Some might think that steel is the hardest material, or even"
" titanium. However, diamond is actually the hardest material."
),
# Example 2
(
"Based on the context provided, who directed The Godfather? Context:"
" Mario Puzo and Francis Ford Coppola co-wrote the screenplay for The"
" Godfather, and the latter directed it as well."
),
]
responses = [
# Example 1
"Diamond is the hardest material. It is harder than steel or titanium.",
# Example 2
"Francis Ford Coppola directed The Godfather.",
]
baseline_model_responses = [
# Example 1
"Steel is the hardest material.",
# Example 2
"John Smith.",
]
eval_dataset = pd.DataFrame(
{
"prompt": prompts,
"response": responses,
"baseline_model_response": baseline_model_responses,
}
)
Métricas basadas en cálculos
En el caso de las métricas basadas en cálculos, a menudo se requiere reference
.
eval_dataset = pd.DataFrame({
"response": ["The Roman Senate was filled with exuberance due to Pompey's defeat in Asia."],
"reference": ["The Roman Senate was filled with exuberance due to successes against Catiline."],
})
Métricas de uso de herramientas (llamadas de funciones)
En el siguiente ejemplo se muestran los datos de entrada de las métricas de uso de herramientas basadas en cálculos:
json_responses = ["""{
"content": "",
"tool_calls":[{
"name":"get_movie_info",
"arguments": {"movie":"Mission Impossible", "time": "today 7:30PM"}
}]
}"""]
json_references = ["""{
"content": "",
"tool_calls":[{
"name":"book_tickets",
"arguments":{"movie":"Mission Impossible", "time": "today 7:30PM"}
}]
}"""]
eval_dataset = pd.DataFrame({
"response": json_responses,
"reference": json_references,
})
Casos prácticos de traducción
En el siguiente ejemplo se muestran los datos de entrada de las métricas de traducción:
source = [
"Dem Feuer konnte Einhalt geboten werden",
"Schulen und Kindergärten wurden eröffnet.",
]
response = [
"The fire could be stopped",
"Schools and kindergartens were open",
]
reference = [
"They were able to control the fire.",
"Schools and kindergartens opened",
]
eval_dataset = pd.DataFrame({
"source": source,
"response": response,
"reference": reference,
})
Prácticas recomendadas
Sigue estas prácticas recomendadas al definir tu conjunto de datos de evaluación:
- Proporciona ejemplos que representen los tipos de entradas que procesan tus modelos en producción.
- El conjunto de datos debe incluir al menos un ejemplo de evaluación. Recomendamos usar unos 100 ejemplos para obtener métricas agregadas de alta calidad y resultados estadísticamente significativos. Este tamaño ayuda a establecer un nivel de confianza más alto en los resultados de la evaluación agregada, lo que minimiza la influencia de los valores atípicos y asegura que las métricas de rendimiento reflejen las verdaderas capacidades del modelo en diferentes situaciones. La tasa de mejoras de la calidad de las métricas agregadas tiende a disminuir cuando se proporcionan más de 400 ejemplos.
Siguientes pasos
Prueba un cuaderno de ejemplo de evaluación.