Un juez que nadie ha comprobado
Probar un juez LLM, un modelo de lenguaje que puntúa respuestas, es comparar sus notas con las que una persona dio a las mismas respuestas. Importa porque un juez es un modelo, y un modelo puede inclinarse por la primera respuesta o por la más larga sin avisarte.
La tienda ya tiene notas de juez para sus respuestas. Antes de fiarse, necesita saber cuánto coinciden con las de las personas.
Al final de esta lección
Nota
Puedo probar un juez contra notas dadas por una persona.
Palabras clave
| Palabra | Qué significa |
|---|---|
| Conjunto de calibración | respuestas puntuadas por una persona para probar al juez |
| Acuerdo | la parte de notas en que juez y persona coinciden |
| Sesgo de posición | una inclinación por el primer o el segundo hueco |
| Sesgo de longitud | una inclinación por las respuestas más largas |
| Intercambio | juzgar de nuevo una pareja con las dos respuestas cambiadas |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Prueba al juez con un conjunto de calibración
Elige de diez a treinta respuestas. Una persona las puntúa con la misma rúbrica, sin ver las notas del juez. Luego el juez puntúa las mismas respuestas.
El acuerdo es la parte de respuestas donde las dos notas coinciden. Cuenta también las que difieren en un punto como mucho: 2 frente a 3 es un fallo pequeño, y 1 frente a 3 uno grande.
Ejemplo resuelto: cinco respuestas, dos series de notas
| Respuesta | Persona | Juez | Coincidencia |
|---|---|---|---|
| 1 | 3 | 3 | exacta |
| 2 | 1 | 1 | exacta |
| 3 | 2 | 3 | a un punto |
| 4 | 1 | 3 | fallo de dos |
| 5 | 2 | 2 | exacta |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Dos sesgos que buscar
Sesgo de posición: ante dos respuestas, el juez tiende a elegir el primer hueco. Pruébalo con un intercambio: pregunta otra vez con las respuestas cambiadas. Un juez justo elige el otro hueco la segunda vez.
Sesgo de longitud: el juez da a las respuestas largas mejores notas que las personas. Compara su diferencia media en las largas y en las cortas.
Escribe los datos de calibración
docker exec -w /home/node/project agent sh -c "printf '%s\n' '// Un conjunto de calibración: diez respuestas que una persona puntuó de 1 a 3, y que luego puntuó el juez.' 'const human = [3, 1, 2, 2, 1, 2, 3, 1, 1, 2];' 'const judge = [3, 1, 2, 3, 2, 2, 3, 3, 1, 3];' 'const words = [14, 5, 6, 16, 4, 5, 17, 12, 6, 15];' '// Seis parejas, cada una juzgada dos veces con las dos respuestas intercambiadas. El hueco que eligió cada vez.' 'const first = [\"A\", \"A\", \"A\", \"B\", \"A\", \"A\"];' 'const second = [\"B\", \"A\", \"A\", \"A\", \"A\", \"B\"];' 'function percent(count, total) {' ' return Math.floor(count * 100 / total);' '}' 'module.exports = { human, judge, words, first, second, percent };' > calib.js"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Escribe el script de medida, parte 1
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { human, judge, words, first, second, percent } = require(\"./calib\");' 'const longest = 12;' 'let exact = 0;' 'let near = 0;' 'let longGap = 0;' 'let longCount = 0;' 'let shortGap = 0;' 'let shortCount = 0;' 'for (let at = 0; at < human.length; at = at + 1) {' ' const gap = judge[at] - human[at];' ' if (gap === 0) exact = exact + 1;' ' if (Math.abs(gap) <= 1) near = near + 1;' ' if (words[at] >= longest) { longGap = longGap + gap; longCount = longCount + 1; }' ' else { shortGap = shortGap + gap; shortCount = shortCount + 1; }' '}' > measure5.js"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Escribe el script de medida, parte 2
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'let same = 0;' 'for (let at = 0; at < first.length; at = at + 1) {' ' if (first[at] === second[at]) same = same + 1;' '}' 'function comma(number) { return number.toFixed(1).replace(\".\", \",\"); }' >> measure5.js"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Escribe el script de medida, parte 3
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'console.log(\"Acuerdo: \" + percent(exact, human.length) + \" por ciento exacto, \" + percent(near, human.length) + \" por ciento a un punto\");' 'console.log(\"Diferencia media en respuestas largas: \" + comma(longGap / longCount) + \" y en cortas: \" + comma(shortGap / shortCount));' 'console.log(\"Mismo hueco las dos veces: \" + same + \" de \" + first.length);' 'const flags = [];' 'if (percent(exact, human.length) < 70) flags.push(\"acuerdo bajo\");' 'if (percent(same, first.length) > 30) flags.push(\"sesgo de posición\");' 'if (longGap / longCount > 0.5) flags.push(\"sesgo de longitud\");' 'console.log(\"Avisos: \" + (flags.length ? flags.join(\", \") : \"ninguno\"));' >> measure5.js"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Mide al juez
docker exec -w /home/node/project agent node measure5.jsSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Lo que muestra la medida
| Línea | Qué muestra |
|---|---|
| Acuerdo | 60 por ciento exacto, 90 por ciento a un punto |
| Diferencia media | 0,8 en respuestas largas y 0,2 en cortas |
| Mismo hueco | 3 parejas de 6, una inclinación por el primer hueco |
| Avisos | acuerdo bajo, sesgo de posición, sesgo de longitud |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Pruébalo
Consejo
En calib.js cambia la segunda lista por la opuesta de la primera: B, B, B, A, B, B. Ejecuta otra vez. El aviso de sesgo de posición debe desaparecer.
Un error frecuente
Advertencia
Mucha gente cree que un juez que coincide con las personas casi siempre merece confianza en todas partes. El acuerdo vale solo para casos parecidos al conjunto de calibración. Mídelo otra vez tras cualquier cambio de rúbrica, de juez o de tipo de respuesta.