¿Cómo implementar funciones de evaluación en código?
Para adentrarnos en el mundo de la programación avanzada, es esencial comprender cómo evaluar funciones a través de la programación. En este contenido, desglosaremos los pasos dados para crear evaluaciones mediante un ejemplo práctico de un agente en PlatziStore. Abordaremos cómo usar datasets, modelos de evaluación, bibliotecas y algoritmos para lograr una evaluación completa.
¿Qué es un archivo de evaluación en Python?
El primer paso en la implementación es crear un archivo de Python dedicado a la evaluación. En nuestro proyecto de PlatziStore, este archivo se llama evaluation.py. Aquí es donde se integrarán distintas funciones y se realizará la evaluación, utilizando un dataset previamente generado.
import json
# Otros imports necesarios basados en el contexto del archivo
¿Cómo configurar el cliente OpenAI y las herramientas necesarias?
Para simular las condiciones del agente, es crucial inicializar correctamente los clientes y herramientas necesarias, como el cliente de OpenAI y las variables de entorno.
import openai
# Inicializa el cliente de OpenAIopenai_client = openai.OpenAI
# Configura las variables de entorno
¿Cómo definir el comportamiento esperado usando el modelo?
Para evaluar las respuestas del agente, creamos criterios de evaluación fundamentales:
Kines: Evalúa si la respuesta se expresa de manera efusiva.
Emoji Checker: Verifica si la respuesta contiene emojis.
Función de evaluación de Kines
La función de Kines compara las respuestas generadas por el agente con respuestas de referencia dentro del dataset.
defevaluate_kines(output, reference_output):# Llama al modelo de OpenAI con un prompt específico respuesta = openai.Completion.create( model="4O-mini",# Otros parámetros necesarios)return{"kines": respuesta_score
}
Función de evaluación de emojis
Esta función determina si existen emojis en la respuesta.
defevaluate_contains_emoji(output): emojis =['🙂','😃','😊','😍']# Lista de emojis comunes contiene_emoji =any(emoji in output for emoji in emojis)return{"contains_emoji": contiene_emoji
}
¿Cómo usar el dataset con evaluadores?
El paso final en la configuración de la evaluación es llamar y aplicar el dataset usando los evaluadores que hemos definido.
dataset_name ="platzi_store_dataset_v2"defrun_evaluations():# Asigna el dataset y los evaluadores evaluators ={"kines": evaluate_kines,"contains_emoji": evaluate_contains_emoji
}# Configura el experimento experiment ={"target":"emulated_agent","dataset_name": dataset_name,"evaluators": evaluators,"description":"Evaluación de amabilidad y presencia de emojis"}return experiment
¿Cómo personalizar y optimizar las evaluaciones?
Es beneficioso ajustar los parámetros de las evaluaciones para ahorrar tiempo y recursos. Configurar correctamente la concurrencia y asegurar que los parámetros pasados sean correctos es crucial para obtener resultados válidos.
Con estos pasos, hemos implementado un sistema de evaluación para agentes en PlatziStore. Evaluar adecuadamente es primordial para optimizar respuestas y mejorar la interacción con los usuarios. Continúa explorando y experimentando para perfeccionar tus habilidades en la implementación de evaluaciones complejas y precisas. ¡Sigue aprendiendo e innovando!
Todo muy útil, pero en la vida real, evaluando un LLM, utilizado en un chatbot por ejemplo, es imposible tener un dataset, con la tupla (pregunta, respuesta_correcta) ya que hay miles de formas de hacer una misma pregunta (ejemplo: precio del iphone 14, tienes el precio del iphone 14? cuanto cuesta el iphone 14?, etc etc)
Entonces la duda que tengo y por la cual estoy tomando este curso, es si se puede evaluar el llm de manera live?
Es decir, suponte que yo hago RAG, y tengo que el precio del iphone 14 es 100 usd, entonces le puedo decir al evaluador que
como input va a tener
mire la pregunta
mire la respuesta
y que mire como fuente de informacion:
el chat history
el documento de donde vive esa informacion de iphone 14 = 100 usd
y que a partir de ese input y esa informacion donde vive la respuesta esperada, mida que tan accurate es la respuesta.
Me explico?
Hola, si se puede realizar en langsmith, lo he hecho, se llama evaluaciones online el concepto