Tiene Jesús Alfaro una entrada en su blog, Por qué la AI generativa es menos útil para lidiar con cuestiones jurídicas que en otros ámbitos, cuyo contenido no es enteramente fiel a su rótulo. Aunque aporta razones de peso (y que no voy a cuestionar) sobre los problemas que plantean los LLMs a la hora de resolver cuestiones jurídicas, no acaba de explicar qué cosa concreta los hace precisamente menos útiles que en otros campos. Es decir, aunque anuncia una comparación, luego no la realiza expresamente. El objetivo de esta entrada es comparar el uso de los LLMs en el ámbito del derecho —basándome necesariamente en la entrada anterior en tanto que mi experiencia en esa disciplina es nula— con otros que conozco mejor, matemáticas y programación, para acabar proponiendo una síntesis (en el sentido dialéctico del término).

Es ocioso recordar la utilidad de los LLMs para programar. En cuanto a las matemáticas, quien consulte esto, esto o esto puede hacerse una idea de hasta qué punto son competentes en la materia hoy en día.

Fragmentación

De los problemas que plantea Alfaro en su entrada hay uno que podría considerarse específico del derecho (siempre vs matemáticas y programación y teniendo en cuenta las salvedades que expongo más abajo): la fragmentación. Aunque se refiere a él específicamente en el séptimo punto,

La diversidad de ordenamientos incrementa la complejidad.

también hay referencias implícitas a esa fragmentación cuando alude a los falsos amigos en la traducción de términos jurídicos, a la traslación de términos de otros reglamentos o a la dependencia con respecto al contexto normativo.

La fragmentación puede ser temporal o geográfica (sin excluir el tertio). El derecho está fragmentado en las dos direcciones: cambia de jurisdicción en jurisdicción, cambia de década en década. En cambio, con permiso de Lakatos, las matemáticas son iguales en Oslo y en Tombuctú y los grupos abelianos de hoy siguen siendo como los de los años cuarenta del siglo pasado.

Sin embargo, en el mundo de la programación sí existe una doble fragmentación análoga a la del derecho. Por un lado, existen muchos lenguajes de programación, muchos de ellos similares. Aunque entiendo que es mucho más fácil para un LLM mantener la coherencia programando (y no saltar de Python a Typescript o de Java a C++) que razonando sobre la legislación mercantil (y no saltar subrepticia e inopinadamente de la española a la ecuatoriana). Queda admitido que es tal vez la dificultad más seria que advierto hoy. Aunque el hecho de que, típicamente, legislaciones distintas están redactadas en idiomas distintos, puede contribuir a reducir el riesgo de contaminación cruzada.

Porque la otra, la fragmentación temporal, no es en absoluto específica del derecho. Está también presente —y cuántas veces la hemos sufrido— en el mundo de la programación: ¿cuántas veces nos han sugerido los LLMs líneas de código que funcionaban en versiones anteriores y ya obsoletas? Y sin embargo…

Estructuración

Dos de las dificultades que señala Alfaro hacen referencia a la estructura de la argumentación jurídica. Por ejemplo, escribe (cuarto problema):

Un jurista estructura un razonamiento conforme a fuentes, jerarquía normativa, interpretación y hechos.

O en el octavo:

El Derecho presenta una estructura fuertemente sistemática: las normas forman parte de instituciones, las instituciones de áreas, y todo ello se articula mediante principios. Los modelos generativos no representan esa estructura. La similitud lingüística entre expresiones no implica equivalencia funcional.

Que me lleva a pensar, de repente, en los Elementos de Euclides y en las habituales secuencias de definiciones, lemas, teoremas y corolarios habitual en matemáticas. O en la estructura de un problema de programación complejo. Cuando uno quiere construir una aplicación no trivial, el prompt eficaz no es

construye una aplicación que haga tal cosa

sino que, más bien, uno comienza solicitando una estructura, un andamiaje, que luego ir completando iterativa e interactivamente. Que los argumentos jurídicos se atengan a estructuras prefijadas no es un impedimento para la eficacia del uso de los LLMs sino todo lo contrario. Tal vez, habida cuenta de la estructura subyacente, los juristas deberían aprender de las buenas prácticas de los programadores para modularizar explícitamente sus razonamientos cuando utilicen LLMs para ello (y también, podría añadirse, cuando no).

Otras cuestiones

Otras dos cuestiones que plantea Alfaro son las alucinaciones y la baja calidad de gran parte del material de entrenamiento. Del segundo, poco sé. Pero me extrañaría que la proporción de señal y ruido fuese mucho más feliz en Python que en derecho penal. Eso sí, admito que la fragmentación puede contribuir a exacerbar el problema: supongo que no es lo mismo un ratio entre señal y ruido del 10% cuando el denominador es 1e6 que cuando es 1e9.

Por su lado, las alucinaciones no son patrimonio exclusivo del derecho, por más que dichos casos sean más notorios (y trascendentes, supongo). Pero una manera idónea para paliar el problema que suponen es recurrir a la modularización a la que se refería la sección anterior: hace que las consultas sean mucho más acotadas y específicas, reduciendo el riesgo de desvaríos.

La gran omisión

Para el asunto de esta entrada, la gran diferencia entre, por un lado, el derecho y, por el otro, las matemáticas y la programación, es el de la existencia de herramientas más o menos automáticas de validación. El papel, el medio de la argumentación jurídica, todo lo soporta; pero tanto las matemáticas como los programas tienen —más propiamente, suelen tener— criterios de validez mucho más estrictos y operativizables. En programación, hay (o puede haber) tests que el código tiene que pasar correctamente. El caso de JustHTML5 es un ejemplo de libro de la interacción entre el desarrollo con LLMs y el uso masivo de tests para el generar código robusto. Sobre el uso de LLMs y verificadores formales en matemáticas, puede consultarse esto.

Sin embargo, ¿existe un sistema razonablemente automático que valide total o parcialmente un argumento jurídico? Sospecho que no.

La síntesis

Hemos partido de una tesis: la de la inadecuación de los LLMs para lidiar con cuestiones jurídicas, la he contrapuesto con su uso en otros ámbitos donde son mucho más eficaces y creo que cabe esbozar una síntesis optimista: el uso de los LLMs en el ámbito del derecho podría ser más fructífero si:

  • Se usasen aprovechando explícitamente las restricciones estructurales que rigen en la disciplina.
  • Las propuestas generadas por los LLMs pudieran ser sometidas a una validación fiable dentro de unos rangos razonables de tolerancia.

Por un sistema de validación específico para el derecho pienso en una herramienta (independiente del LLM original, tal vez un LLM independiente u otro subproceso del mismo) que fuese capaz de:

  • Verificar que las citas y referencias existen realmente.
  • Comprobar si las citas y referencias están desactualizadas.
  • Confirmar que los argumentos concretos (p.e., el uso de un determinado artículo) son coherentes con la práctica habitual.

Es decir, someter la totalidad del argumento a una serie de herramientas (sospecho que aún inexistentes) que hagan una única cosa (pero que la hagan bien) y que operen como el equivalente de los tests en las otras dos disciplinas consideradas en esta entrada. Los LLMs tienden a especular más cuando se enfrentan a tareas abiertas y ambiguas que cuando se les plantea cuestiones específicas y acotadas.

Un sistema de esa naturaleza, que yo sepa, no existe. Sospecho que quien lo construya ganará una envidiable cantidad de dinero.