Medición de la robustez
Puntúe la resistencia frente a ataques.
Medición de la robustez es una lección gratuita de AI Prompt Engineering en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Prompt Engineering, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Prompt Engineering incluye 4 lecciones en total.
La robustez como magnitud medible
La robustez es la resistencia del sistema frente a entradas adversariales, expresada mediante números cuyo seguimiento y comparación puede realizar y que puede utilizar como criterio de aprobación. «Parece seguro» no es una medición; una tasa de éxito de ataques con un intervalo de confianza sí lo es.
Esta lección convierte los hallazgos del red team en métricas rigurosas.
Tasa de éxito de los ataques
La métrica principal es la tasa de éxito de los ataques (ASR): la fracción de casos de ataque que derrotan sus defensas. Cuanto menor sea, mejor. Infórmela de forma global y desglosada por categoría y técnica para saber dónde es vulnerable.
def asr(results):
breaks = sum(1 for r in results if not r['safe'])
return breaks / len(results)
# also compute per-category ASR for diagnosisPonderación por gravedad
Una ASR sin procesar trata por igual una filtración trivial y una extracción masiva de información personal. Calcule una puntuación ponderada por gravedad para que los fallos críticos dominen la métrica y unos pocos fallos de gran impacto no queden ocultos entre muchos casos de bajo impacto que superan la prueba.
W = {'low':1,'medium':3,'high':7,'critical':15}
def weighted_risk(results):
return sum(W[r['severity']] for r in results if not r['safe'])Intervalos de confianza, no estimaciones puntuales
La ASR es una estimación basada en una muestra finita, por lo que debe informar de la incertidumbre. Con suites pequeñas, el intervalo es amplio; una reducción del 8 % al 6 % puede deberse al ruido. Utilice un intervalo de confianza binomial y actúe únicamente sobre los cambios que queden fuera de él.
from statsmodels.stats.proportion import proportion_confint
low, high = proportion_confint(breaks, n, method='wilson')
print(f'ASR {breaks/n:.3f} CI [{low:.3f}, {high:.3f}]')La contraparte de los falsos positivos
La robustez sin usabilidad no sirve de nada. Combine la ASR con la tasa de rechazo excesivo: la fracción de solicitudes benignas bloqueadas por error, medida en un conjunto limpio independiente. Una protección que dispara el rechazo excesivo cambia un fallo por otro.
over_refusal = sum(1 for r in benign_results if r['blocked']) / len(benign_results)
# track ASR and over_refusal together; optimize the frontierEficiencia de los ataques
Mida no solo si un ataque tiene éxito, sino también lo difícil que resulta. Realice un seguimiento de las consultas hasta conseguir la ruptura o de los turnos hasta conseguirla: una ruptura en un solo intento es mucho peor que una que requiere 20 turnos preparados. El aumento del esfuerzo necesario para conseguir una ruptura entre versiones indica una mejora de la robustez, aunque la ASR permanezca estable.
def avg_turns_to_break(results):
succ = [r['turns_used'] for r in results if not r['safe']]
return sum(succ)/len(succ) if succ else float('inf')Calibración del evaluador
Si un evaluador basado en un LLM puntúa el éxito, sus métricas solo serán tan buenas como lo sea el evaluador. Compare periódicamente sus veredictos con etiquetas humanas e informe de la precisión y la exhaustividad del evaluador. Un evaluador demasiado permisivo subestima la ASR y genera una confianza falsa.
judge_acc = mean(judge(r['transcript']) == human[r['id']] for r in audit_set)
assert judge_acc > 0.9, 'recalibrate judge before trusting ASR'Informes estratificados
Un único agregado oculta los riesgos. Segmente las métricas por categoría, técnica, un solo turno frente a múltiples turnos y directo frente a indirecto. Una ASR global del 3 % puede ocultar una ASR del 40 % en el abuso indirecto de herramientas, que es la cifra que debería guiar su hoja de ruta.
Seguimiento de tendencias entre versiones
La robustez es relativa y está limitada en el tiempo. Almacene cada ejecución de la suite identificada por la versión y la configuración del modelo, y represente gráficamente la ASR y el riesgo ponderado entre versiones. El objetivo es una mejora monótona y cero regresiones, supervisadas como cualquier otro SLO de fiabilidad.
history.append({'version': cfg.model_version, 'asr': asr(results),
'weighted': weighted_risk(results), 'over_refusal': over_refusal})Establecimiento de criterios de aprobación
Convierta las métricas en una política. Ejemplo de criterio: la ASR crítica debe ser 0, la ASR global debe estar por debajo del umbral, no debe haber regresiones que superen el intervalo de confianza y el rechazo excesivo debe mantenerse por debajo de su límite. El criterio convierte la robustez en un requisito obligatorio para publicar una versión, no en un elemento opcional.
def passes_gate(m, prev):
return (m['critical_asr'] == 0
and m['asr'] < 0.05
and m['asr'] <= prev['asr'] + ci_margin
and m['over_refusal'] < 0.02)Cuidado con el sobreajuste a la suite
Si ajusta las defensas directamente contra la suite visible, puede superar las pruebas y seguir siendo vulnerable a ataques no observados. Reserve un conjunto privado de ataques, rote los casos y mantenga al modelo atacante explorando. Una puntuación perfecta en una suite estática es una señal de alerta, no una victoria.
Comprobación rápida
Su ASR global es baja, del 3 %, pero las partes interesadas se sorprenden por un incidente real de abuso de herramientas. ¿Qué práctica de medición habría detectado probablemente el riesgo antes?
Resumen
Medición de la robustez:
- La tasa de éxito de los ataques es la métrica principal; pondérela por gravedad.
- Informe de los intervalos de confianza y combine la ASR con el rechazo excesivo.
- Realice un seguimiento de la eficiencia de los ataques (turnos o consultas hasta conseguir una ruptura) y calibre el evaluador.
- Informe de forma estratificada, observe las tendencias entre versiones y aplique criterios de aprobación.
- Reserve ataques privados para evitar el sobreajuste a la suite.
Ha completado el red teaming y la evaluación adversarial, así como el itinerario avanzado de PromptLab.
Preguntas frecuentes
¿La lección «Medición de la robustez» es gratis?
Sí — el texto completo de «Medición de la robustez» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Prompt Engineering, actualiza a CoddyKit PRO. El curso de AI Prompt Engineering incluye 4 lecciones en total.
¿Qué aprenderé en «Medición de la robustez»?
Puntúe la resistencia frente a ataques. Practicas AI Prompt Engineering con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar AI Prompt Engineering?
No se requiere experiencia previa. AI Prompt Engineering en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Medición de la robustez»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de AI Prompt Engineering?
Sí. Cada lección de AI Prompt Engineering incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Fundamentos del red teaming de LLM
- Técnicas de jailbreak
- Construcción de un conjunto de ataques
- Medición de la robustez