Un profesor creó un bot para corregir el Examen Estatal Unificado: el modelo etiqueta y el código calcula la nota
Un experto del Examen Estatal Unificado lleva dos años desarrollando un bot de Telegram para corregir respuestas extensas de ciencias sociales. La principal conclusión: el modelo etiqueta correctamente una respuesta según el baremo, pero infla las notas si se le confía el resultado final. Por eso, un código convencional vuelve a calcular las puntuaciones y las revisiones adicionales solo pueden reducirlas. Cada corrección cuesta de media 2,3 centavos y tarda 9 segundos.
Procesado por IA desde Habr AI; editado por Hamidun News
¿Qué ocurre si se confía a un modelo de lenguaje la tarea de puntuar la respuesta extensa de un estudiante? Califica con generosidad: el alumno «en general entiende las ciencias sociales», mientras que los criterios del FIPI son estrictos. Un ejemplo sobre el «país Z» en vez de Rusia obtiene cero, y un esquema que carece de tres puntos obligatorios pierde todo el criterio. Un profesor y experto del Examen Estatal Unificado explicó cómo pasó dos años construyendo un bot que tiene en cuenta estas reglas.
El modelo etiqueta, el código calcula
El principio fundamental es que el modelo no escribe: «Le doy 2 puntos porque…». Rellena un esquema JSON mediante tool_use: qué ejemplos son concretos, qué afirmaciones son correctas y qué puntos del esquema son esenciales. Después entra en acción un código convencional: vuelve a calcular las puntuaciones según los criterios, comprueba todo lo que se puede verificar sin el modelo y ejecuta revisiones adicionales que solo pueden reducir la nota.
Cada tarea tiene su propio complemento: un manejador, un evaluador y una especificación. No existe un prompt universal. El patrón se aprecia en el volumen de código: la tarea 17 ocupa 942 líneas, mientras que las tareas 24 y 25 tienen entre 6.800 y 7.200 líneas cada una. Cuanto más complejos son los criterios, más código hace falta alrededor del modelo, no un prompt más largo.
Cómo evitar castigar una respuesta inocente
En la tarea 19, el modelo consideraba que reformular la función de un organismo público era un ejemplo de su actuación. El autor añadió una segunda llamada con un esquema independiente, pero la primera versión se activaba en todas partes y restaba puntos en ejemplos sobre familias y ciudadanos, aunque el enunciado no mencionara ningún organismo. Ahora la revisión adicional solo se activa cuando el texto de la tarea contiene marcadores explícitos. Además, un ejemplo solo se rechaza si coinciden al menos dos de cuatro indicadores negativos. La lección: la protección contra las notas infladas puede generar a su vez calificaciones demasiado bajas, y el ámbito en el que se activa es tan importante como la propia comprobación.
En la tarea 24, las puntuaciones de los criterios primero y segundo se calculan íntegramente mediante código: se obtienen lemas con pymorphy2 y se comparan con 185 esquemas de referencia. Los encabezados sinónimos, como «atributos» y «características», se normalizan a una única forma. La prueba es sencilla: todos los esquemas de referencia deben recibir la puntuación máxima. Antes de corregir el tratamiento de sinónimos, esto ocurría en 147 de 185 casos; ahora ocurre en todos.
Solo se puede restar un punto por un error factual después de superar cuatro filtros: una lista cerrada de tipos de errores, una cita literal de al menos 8 caracteres, dos ejecuciones independientes y un verificador separado. Este último es necesario porque dos respuestas idénticas del mismo modelo no equivalen a dos opiniones independientes: en los esquemas de referencia, ambas ejecuciones encontraban sistemáticamente el mismo error inexistente.
Un fallo reconocido en vez de un cero inventado
El error más traicionero es el cero silencioso: el modelo no responde, el código introduce un cero y el estudiante ve lo que parece una corrección normal. En la tarea 25 hubo 16 ceros de este tipo en 110 casos, y la mitad coincidieron con la referencia, por lo que aparecieron en las métricas como aciertos exactos. Ahora cualquier fallo activa el indicador ai_unavailable: no se muestra la nota, no se descuenta el intento y el administrador recibe una alerta. El intento gratuito solo se descuenta después de entregar el resultado.
El autor reconoce abiertamente las partes pendientes: en las tareas 21 y 23, un fallo todavía produce una puntuación simplificada, mientras que el modelo de reserva YandexGPT debe activarse manualmente.
Coste y conclusión práctica
Una ejecución de noviembre sobre 393 respuestas generó 497 llamadas y costó 8,87 dólares: una media de 1,26 llamadas, 2,3 centavos y 9 segundos por corrección. Lo más caro no son las evaluaciones largas, sino las revisiones adicionales. La caché del prompt cubre hasta el 66% de la entrada, pero no se activa con los prompts cortos de las tareas 17, 21 y 22.
Para quienes construyen sistemas de evaluación con LLM: obliguen al modelo a responder con una estructura y señales explícitas, mantengan la aritmética en el código, hagan que las revisiones adicionales funcionen en una sola dirección, exijan ejecuciones independientes y distingan un fallo de un cero. En las versiones nuevas de Claude, un tool_choice forzado devuelve un error 400, por lo que hay que enviar auto y pedir al modelo que invoque la herramienta al final del prompt.
- 18 oct 2026TILDE enseña a los robots a partir de modelos fundacionales y mejora el resultado hasta 4,1 veces
- 9 nov 2026Adventists AI presenta Sophon, un modelo de voz que promete responder en 0,31 segundos
- 13 oct 2026DisaggKD traslada al profesor a nodos independientes y acelera la destilación de Qwen3.5-35B-A3B a 9B
- 25 jul 2026Hipergrafo NLI frente a LLM como juez: un método para auditar el razonamiento de la IA sin respuesta de referencia
Preguntas frecuentes sobre la noticia
¿Qué se sabe sobre El modelo etiqueta, el código calcula?
El principio fundamental es que el modelo no escribe: «Le doy 2 puntos porque…». Rellena un esquema JSON mediante tool_use: qué ejemplos son concretos, qué afirmaciones son correctas y qué puntos del esquema son esenciales. Después entra en acción un código convencional: vuelve a calcular las puntuaciones según los criterios, comprueba todo lo que se puede verificar sin el modelo y ejecuta revisiones adicionales que solo pueden reducir la nota.
Cómo evitar castigar una respuesta inocente?
En la tarea 19, el modelo consideraba que reformular la función de un organismo público era un ejemplo de su actuación. El autor añadió una segunda llamada con un esquema independiente, pero la primera versión se activaba en todas partes y restaba puntos en ejemplos sobre familias y ciudadanos, aunque el enunciado no mencionara ningún organismo. Ahora la revisión adicional solo se activa cuando el texto de la tarea contiene marcadores explícitos.
¿Qué se sabe sobre Un fallo reconocido en vez de un cero inventado?
El error más traicionero es el cero silencioso: el modelo no responde, el código introduce un cero y el estudiante ve lo que parece una corrección normal. En la tarea 25 hubo 16 ceros de este tipo en 110 casos, y la mitad coincidieron con la referencia, por lo que aparecieron en las métricas como aciertos exactos. Ahora cualquier fallo activa el indicador ai_unavailable: no se muestra la nota, no se descuenta el intento y el administrador recibe una alerta.
Test Frontier LLMs & Autonomous Agents in One Workspace
Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.
Lo esencial de la IA — una vez por semana
Siete historias que de verdad importaron, elegidas a mano. Sin ruido ni notas de prensa.
¡Listo! Revisa tu correo para la confirmación.