Por qué el derecho contable es un caso difícil para el RAG
En este ámbito, una norma nunca es solo una norma. Es un artículo, en una versión, vigente entre dos fechas. Por eso el corpus guarda un registro por cada periodo de vigencia de un artículo, y cada consulta lleva una fecha de referencia: la de la sesión o la que se lee en la pregunta. Una herramienta específica devuelve, para un identificador y una fecha, la versión aplicable.
La recuperación es híbrida: un canal léxico (BM25 sobre texto francés normalizado y reducido a sus raíces) y un canal denso (embeddings multilingües), fusionados por rango recíproco, filtrados según la naturaleza de la pregunta (contable, fiscal, auditoría, NIIF) y reordenados después por un cross-encoder. Sobre las 426 preguntas del conjunto de desarrollo, el recall@10 de referencia es de 0,869. El desglose dice más que la media: 0,968 cuando la pregunta nombra el artículo, 0,929 cuando usa vocabulario profesional y 0,692 cuando está formulada como lo haría alguien no especialista. La dificultad no está en la búsqueda. Está en traducir la formulación cotidiana al vocabulario normativo.
El harness: herramientas, un fichero de contexto y un formato de salida obligatorio
El harness es todo lo que se construye alrededor del modelo:
- Ocho herramientas a las que llama el propio modelo: buscar, recorrer el índice, obtener un registro, convertir una cita en texto libre en un identificador, seguir las remisiones, obtener la versión vigente en una fecha, y leer y fijar la fecha de la sesión. Cada herramienta responde con un estado tipado, de modo que una llamada mal formada resulta legible para el modelo y puede corregirse en el turno siguiente.
- Un fichero de contexto que se envía con el primer mensaje: un mapa que traduce las expresiones cotidianas al vocabulario normativo, un procedimiento de decisión, una regla de fechas y un formato de respuesta.
- Un bucle que admite seis llamadas a herramientas; después, el modelo tiene que concluir con lo que ha leído.
- Un formato de salida impuesto cuyas citas son identificadores de registro, no texto libre.
Ese último punto es el que produce la verificabilidad. Un modelo que solo puede citar identificadores que ha abierto no puede citar un artículo que no existe.
Cuarenta y nueve palancas, siete adoptadas
Cada cambio en el sistema —una palanca— se ha medido de forma aislada, frente a un criterio fijado antes de la medición: un bootstrap pareado sobre las preguntas (10 000 remuestreos), con adopción solo si la probabilidad de mejora alcanza 0,95 y ninguna naturaleza ni categoría cae más de 0,05. Nunca se sustituye una métrica por otra a posteriori.
Se han medido cuarenta y nueve palancas y se han adoptado siete. Las mayores mejoras vienen de la pregunta que se envía al motor: reescribirla para añadir los términos normativos que implica eleva el recall@10 de 0,672 a 0,852 (+0,180), y leer la fecha que contiene la pregunta para que la búsqueda se haga sobre los textos vigentes ese día aporta +0,099. La reordenación con el cross-encoder aporta +0,066. Vale la pena quedarse con dos resultados negativos:
- El fichero de contexto completo no supera a uno mínimo con el criterio fijado (+0,022 sobre 77 preguntas, p = 0,78), y un extracto del mapa de vocabulario elegido para cada pregunta empeora la nota.
- En los exámenes y en los documentos reales, la única palanca documental que da resultado es una memoria de casos reales (+0,167 en documentos nunca vistos, confirmado una vez en la partición congelada con +0,054). Generar casos ficticios, no.
Las palancas rechazadas se quedan en el código con su valor neutro, para que un rechazo pueda volver a medirse.
Trece modelos, un solo harness
Cincuenta preguntas con baremo, el mismo harness, el mismo evaluador; 49 preguntas puntuadas. Las respuestas se corrigen a ciegas: el evaluador ve la pregunta, el baremo y la respuesta, pero nunca la cita esperada ni el nombre del modelo. La cadena de evaluación está calibrada con treinta respuestas corregidas a mano.
| Nota /20 | |
|---|---|
| Mejor modelo (GPT-5.6 Luna) | 18,3 |
| Brazo de referencia (Qwen3.8-27B) | 17,9 |
| Modelo más caro (Claude Sonnet 5) | 17,3 |
| Nota más baja | 6,4 |
Los siete primeros modelos se sitúan entre 15,8 y 18,3, a menos de dos márgenes de repetición unos de otros. Conocemos ese margen porque un brazo se repitió de forma idéntica unas horas después: la misma medición se movió 0,07 en una escala de 0 a 1. Las diferencias menores que eso se leen como empates. La dispersión viene sobre todo de los modelos que no saben llevar un bucle de herramientas: uno hace de media 16,5 llamadas por pregunta y consume 2,5 veces los tokens de los demás para sacar la nota más baja; otro se detiene tras 1,4 llamadas.
En cuanto al precio, el orden de las notas se correlaciona con el precio de tarifa de los tokens de salida (Spearman 0,62, p = 0,011), pero no con el coste medido por pregunta (0,23, p = 0,23). Con trece modelos y unos ejes de precio examinados después de la medición, esa tendencia es orientativa, no demostrada.
Un apunte práctico: cerca del 90 % de los tokens de entrada de una pregunta corresponden al fichero de contexto, que se reenvía en cada turno del bucle. Cuando el proveedor guarda ese prefijo en caché, se factura a una décima parte.
Con y sin harness
Los dos mejores modelos se han ejecutado en cuatro configuraciones: solos, con búsqueda web, con el harness y con ambos.
| Respuestas que citan el texto esperado | GPT-5.6 Luna | Qwen3.8-27B |
|---|---|---|
| Solo el modelo | 44 % | 8 % |
| Con búsqueda web | 76 % | 57 % |
| Con el harness | 78 % | 90 % |
Todas las configuraciones superan en nota al modelo por sí solo; el harness y la búsqueda web empatan (16,9 frente a 17,6 en Luna y 17,9 frente a 18,8 en Qwen, por debajo del margen de repetición). La diferencia está en lo que se puede comprobar: con el harness, entre el 98 y el 100 % de las citas remiten al corpus; sin él, entre el 57 y el 75 %.
¿Qué son las citas que no remiten al corpus? En parte se deben a la propia medición —el módulo que resuelve las citas lee texto libre, mientras que el harness cita identificadores—, y por eso las hemos revisado una a una: una vez corregido ese efecto, entre el 66 y el 78 % de las citas sin harness apuntan a un texto del corpus. El resto son números de cuenta citados como si fueran textos (del 11 al 18 %) y, en un 11–16 %, artículos del plan contable con la numeración anterior a 2025, textos que quedan fuera del ámbito del corpus y referencias que no se encuentran.
El mismo experimento con dos modelos baratos, elegidos con una regla fijada de antemano: por sí solos, 9,8 y 9,6 sobre 20, con el texto esperado citado en el 12 % de las respuestas; con el harness, 15,6 y 16,3, y el 73 % y el 76 %. La búsqueda web lleva a uno de ellos a 15,5, pero solo cita el texto esperado en el 48 % de las respuestas, y apenas ayuda al otro (10,4; 14 %).
Lo que esto no demuestra
- Las comparaciones entre modelos se basan en 49 preguntas puntuadas. Dos modelos separados por menos de 0,07 son indistinguibles.
- Aquí, verificabilidad significa que la cita remite a un texto del corpus. No dice que el texto citado respalde la respuesta.
- La abstención —negarse a responder cuando los textos no lo permiten— no se mide en estos experimentos: ninguna de las preguntas puntuadas la requiere.
- Las dos hipótesis se formularon después de las mediciones que las zanjan; solo las palancas se juzgaron con un criterio fijado de antemano.
- Los precios de tarifa cambian; los recuentos de tokens se publican junto a ellos.
La próxima medición se desprende de la segunda limitación: comprobar si las citas que remiten al corpus respaldan de verdad la respuesta a la que acompañan.
Método completo, todas las tablas y el explorador de respuestas: el estudio, en francés.
Volver a la lectura rápida (2 min).