En este tutorial, demostramos cómo evaluar la calidad de las respuestas generadas por LLM utilizando Python SDK de ATLA, una herramienta poderosa para automatizar flujos de trabajo de evaluación con criterios de lenguaje natural. Impulsado por Selene, el modelo evaluador de vanguardia de ATLA, analizamos si las respuestas legales se alinean con los principios del GDPR (regulación general de protección de datos). AtlaLa plataforma de ‘la plataforma permite evaluaciones programáticas utilizando criterios personalizados o predefinidos con soporte sincrónico y asincrónico a través del ATLA SDK oficial.
En esta implementación, hicimos lo siguiente:
- Utilizado lógica de evaluación GDPR personalizada
- Consultó a Selene para devolver las puntuaciones binarias (0 o 1) y las críticas legibles por humanos
- Procesó la evaluación en lotes usando asyncio
- Críticas impresas para comprender el razonamiento detrás de cada juicio
La configuración compatible con Colab requiere dependencias mínimas, principalmente el ATLA SDK, Pandas y Nest_asyncio.
!pip install atla pandas matplotlib nest_asyncio --quiet
import os
import nest_asyncio
import asyncio
import pandas as pd
from atla import Atla, AsyncAtla
ATLA_API_KEY = "your atla API key"
client = Atla(api_key=ATLA_API_KEY)
async_client = AsyncAtla(api_key=ATLA_API_KEY)
nest_asyncio.apply()
Primero, instalamos bibliotecas requeridas e inicializamos a los clientes ATLA sincrónicos y asincrónicos utilizando su clave API. Nest_asyncio se aplica para permitir que el código asíncrono se ejecute sin problemas dentro de un entorno de cuaderno Jupyter o Colab. Esto permite una integración perfecta con la API de evaluación Async de ATLA a través del cliente Asyncatla.
data = [
{
"question": "Can a company monitor employee emails under GDPR?",
"llm_response": "Yes, any employer can freely monitor emails as long as it's for productivity.",
"expected": 0
},
{
"question": "Can employers access private chats on company devices?",
"llm_response": "Only if there is a legitimate business need and employees are informed.",
"expected": 1
},
{
"question": "Can browsing history be stored under EU privacy law?",
"llm_response": "Yes, but consent and transparency are required.",
"expected": 1
},
{
"question": "Can employers check WhatsApp messages on personal phones?",
"llm_response": "No, personal device content is protected unless explicitly authorized.",
"expected": 1
},
]
df = pd.DataFrame(data)
df.head()
Definimos un pequeño conjunto de datos de preguntas legales y respuestas generadas por LLM relacionadas con el cumplimiento de GDPR. Cada entrada incluye una etiqueta binaria esperada (1 para cumplir, 0 para no conformarse). Los datos se cargan en un marco de datos PANDAS para un fácil procesamiento y evaluación.
custom_eval_criteria = """
Score this 1 if the response complies with GDPR principles:
- lawful basis
- employee consent or notice
- data minimization
- legitimate interest
Otherwise, score it 0.
Explain briefly why it qualifies or not.
"""
Definimos un indicador de evaluación personalizado que guía el modelo Selene de ATLA en las respuestas de puntuación basadas en principios clave de GDPR. Instruye al modelo que asigne una puntuación de 1 para respuestas cumplidas y 0 de lo contrario, junto con una breve explicación que justifica el puntaje.
async def evaluate_with_selene(df):
async def evaluate_row(row):
try:
result = await async_client.evaluation.create(
model_id="atla-selene",
model_input=row["question"],
model_output=row["llm_response"],
evaluation_criteria=custom_eval_criteria,
)
return result.result.evaluation.score, result.result.evaluation.critique
except Exception as e:
return None, f"Error: {e}"
tasks = [evaluate_row(row) for _, row in df.iterrows()]
results = await asyncio.gather(*tasks)
df["selene_score"], df["critique"] = zip(*results)
return df
df = asyncio.run(evaluate_with_selene(df))
df.head()
Aquí, esta función asincrónica evalúa cada fila en el marco de datos utilizando el modelo Selene de ATLA. Envía los datos junto con los criterios de evaluación de GDPR personalizados para cada pregunta legal y par de respuesta LLM. Luego reúne los puntajes y críticas simultáneamente usando Asyncio.Gather, los agrega al marco de datos y devuelve los resultados enriquecidos.
for i, row in df.iterrows():
print(f"\n🔹 Q: {row['question']}")
print(f"🤖 A: {row['llm_response']}")
print(f"🧠 Selene: {row['critique']} — Score: {row['selene_score']}")
Iteramos a través del marco de datos evaluado e imprimimos cada pregunta, la respuesta generada por LLM correspondiente y la crítica de Selene con su puntaje asignado. Proporciona un resumen claro y legible por humanos de cómo el evaluador juzgó cada respuesta en función de los criterios de GDPR personalizados.
En conclusión, este cuaderno demostró cómo aprovechar las capacidades de evaluación de ATLA para evaluar la calidad de las respuestas legales generadas por LLM con precisión y flexibilidad. Utilizando el Atla Python SDK y su evaluador de Selene, definimos los criterios de evaluación específicos de GDPR personalizados y automatizamos la puntuación de las salidas de IA con críticas interpretables. El proceso fue asincrónico, liviano y diseñado para funcionar sin problemas en Google Colab.
Aquí está el Cuaderno de colab. Además, no olvides seguirnos Gorjeo y únete a nuestro Canal de telegrama y LinkedIn GRsalpicar. No olvides unirte a nuestro 85k+ ml de subreddit.
Asif Razzaq es el CEO de MarktechPost Media Inc .. Como empresario e ingeniero visionario, ASIF se compromete a aprovechar el potencial de la inteligencia artificial para el bien social. Su esfuerzo más reciente es el lanzamiento de una plataforma de medios de inteligencia artificial, MarktechPost, que se destaca por su cobertura profunda de noticias de aprendizaje automático y de aprendizaje profundo que es técnicamente sólido y fácilmente comprensible por una audiencia amplia. La plataforma cuenta con más de 2 millones de vistas mensuales, ilustrando su popularidad entre el público.