RI
PC

Anotación humana

Calibración del LLM-as-a-judge contra anotador humano

Protocolo de 2 fases (anotación ciega → reconciliación con taxonomía E1-E5) sobre 484 TTPs estratificados (sesión 19). Justifica empíricamente la decisión arquitectónica de descartar el juez v1 y validar v2. Anotador único defendido como expert oracle dado el carácter cerrado de la ontología ATT&CK.

Esfuerzo de anotación
484
TTPs anotados manualmente · 384 stratified (conf=0.75) + 100 control (conf=1.0).
Fiabilidad v1
α = −0.145
Krippendorff ordinal sobre stratified. Peor que aleatorio: el v1 quedó descartado.
Sobreaceptación v1
198 FP
de 294 rechazos humanos, el v1 había aceptado 198 (67.3% FP).
Diagnóstico de fallo
79% E1
de los 236 errores tipificados, 187 son abstracción vaga (E1). Único defecto dominante.

Distribución del sample anotado

tabla calibration_sample

Diseño stratified-by-LLM-verdict sobre conf=0.75 + grupo de control aleatorio sobre conf=1.0. El control valida (o refuta) la suposición arquitectónica "conf=1.0 = TTP inequívoco".

Stratified · conf=0.75 · N=384

Estratificado por veredicto v1: 285 accept (74.1%), 62 reject (16.2%), 37 uncertain (9.7%).

Control · conf=1.0 · N=100

Hallazgo crítico: humano acepta solo 41% de conf=1.0 — la suposición arquitectónica "inequívoco" estaba rota.

Matriz de confusión · humano ↔ LLM v1 (Qwen 2.5 14B)

stratified · N=384

Diagonal = acuerdo (en verde). Off-diagonal accept↔reject = error de calibración. La gran masa está en la celda human=reject / v1=accept (198 casos): el v1 aceptaba sistemáticamente lo que el humano rechazaba.

v1: accept v1: reject v1: uncertain v1: (none) total
Acuerdo crudo
Krippendorff αK v1 (ordinal, N=384)
−0.1452
peor que aleatorio
Krippendorff αK v2 (combined, N=377)
0.5738
moderado · estratificada (Obj. 3): 0.6461 (N=278)
Salto v1 → v2
+0.719

Taxonomía de errores tipificados

codificados durante la fase 2 de reconciliación

Codificación Likert tras revelar el veredicto del LLM. Cada desacuerdo recibe un código E1-E5 que explica el modo de fallo. E1 (abstracción vaga) domina abrumadoramente.

Krippendorff αK por fuente

krippendorff_segmented.py · per_source.csv · N≥10

Acuerdo humano↔juez por fuente, en los cortes v1 y v2. El v2 mejora en todas las fuentes, con heterogeneidad notable entre ellas; la diferencia no dibuja una jerarquía nítida de calidad por tipo de fuente (las categorías se entrelazan).

Fuente N (v2) αK v1 αK v2 α v2 (escala −1 → +1)

Quote viewer · 484 anotaciones

Navegación por las anotaciones individuales. Útil para inspeccionar ejemplos concretos de cada categoría de error o de los acuerdos.

Datos en vivo desde calibration_sample. α por fuente del CSV canónico per_source.csv que regenera krippendorff_segmented.py (cortes v1 y v2, N≥10).