Desde la aparición de los sistemas de Inteligencia Artificial Generativa que incluyen modelos de lenguaje extensos (LLM), es posible realizar (con algunas restricciones), consultas en lenguaje natural para determinar si la respuesta en lenguaje natural que ha dado el alumno a una determinada cuestión es o no correcta.
Como múltiples autores han venido demostrando, el sistema dista de ser perfecto para un sistema de propósito general, pero se puede utilizar y mejorar su eficacia en muchos casos, alcanzando en ocasiones precisiones optimas en casos concretos. El sistema LLM se comporta mejor cuando se trata de conocimiento general ampliamente aceptado y difundido, pero en los casos de un conocimiento muy especifico o mas avanzado los resultados no son tan buenos.
En Siette se han integrado estos sistemas mediante lo que se denomina un “Patrón LLM”. Al igual que otros patrones de Siette (por ejemplo el patrón de Correspondencia o el patrón Siette), el patrón LLM lo que intenta es determinar si la respuesta que ha dado un alumno encaja con alguna de las opciones de respuesta que ha planteado el profesor. Para ello el patrón LLM construye una consulta al sistema LLM preguntándole cual de las opciones de respuesta encaja mejor con la respuesta dada por el alumno.
El profesor debe incluir en este tipo de preguntas el enunciado, las opciones de respuesta o patrones entre los que el sistema LLM debe escoger y por supuesto la respuesta del alumno que es objeto de clasificación. Opcionalmente se incluye también un ejemplo de respuesta correcta.
Se han implementado varios usos del sistema LLM, el mas simple consiste en clasificar la respuesta de acuerdo a alguno de los patrones, solo uno. También es posible utilizar el sistema LLM para determinar si la respuesta cumple con un conjunto de restricciones dadas (los patrones). En este caso se trataría de un patrón de respuesta múltiple. Por último se pueden usar características propias de los sistemas LLM como el reconocimiento de imágenes, o la corrección de programas de acuerdo a un conjunto de especificaciones.
Por ejemplo, para la pregunta: ¿Que son las rocas igneas? se proponen tres posible patrones de respuesta a elegir: (1) La respuesta es correcta y completa; (2) La respuesta es incompleta. Faltan datos importantes; (3) La respuesta es incorrecta. Dada una respuesta del alumno, el sistema LLM debe determinar cual de estas tres opciones encaja mejor con la respuesta dada.
El uso del patrón LLM esta indicado en aquellos casos en los que la respuesta del alumno sea un texto mas o menos extenso y tenga bastante variabilidad. Es en este caso cuando el patrón LLM cubre una funcionalidad que no puede darse con otro tipo de patrones. Sin embargo, si la respuesta es corta y precisa es mejor utilizar cualquier otro tipo de patrón de Siette,
Una vez realizada esta tarea, el funcionamiento de Siette es el mismo que en el caso de cualquier otra pregunta con patrones. 1). A cada uno de los patrones de respuesta puede asignarse una puntuación distinta, o un refuerzo específico, etc, aunque en el caso de los patrones LLM, lo mas normal es usar también los refuerzos mediante IA, tal como se muestra en el ejemplo anterior.
La consulta al modelo LLM se compone en lenguaje natural, pensando en que es el alumno que realiza el test el que de forma inconsciente realiza esta consulta al sistema. En este caso la consulta por defecto se compone del siguiente texto:
Sea la pregunta: <<enunciado>>. La respuesta que he dado es: <<respuesta>> Una posible respuesta correcta es: <<solucion>> Indica cuál de las siguientes opciones encaja mejor con la respuesta dada: <<opciones>>
Este es el texto en lenguaje natural que se le pasará al sistema LLM. En él se incluyen variables de sesión como «ENUNCIADO» que se instanciarán en tiempo real con el contenido del enunciado de la pregunta.
En el caso de esta consulta, los elementos esenciales son el enunciado, las opciones y la respuesta del alumno. La solución (que se toma del ejemplo de respuesta correcta), no es imprescindible, ya que el sistema LLM puede determinar por si mismo si la respuesta es o no correcta,
Ademas del texto de consulta principal en la consulta al sistema se pueden configurar los siguientes atributos:
Es un texto que indica al modelo LLM como debe comportarse al emitir la respuesta, es decir son instrucciones que se le dan al modelo de GenIA para que se comporte de cierta manera al dar la respuesta, por ejemplo:
Formatea la contestación en HTML, pero no utilices títulos. Si tu contestación incluye formulas incrústalas mediante Mathjax
Las instrucciones también pueden contener variables de sesión y/o variables de perfil que se instancian antes de enviar la consulta al modelo LLM.
Por ejemplo, en las instrucciones puede añadirse esta indicación:
Respondele directamente a <<nombre>>, incluyendo su nombre en la respuesta. Adapta tu respuesta para un niño de <<edad>> años.
Es el modelo de GenIA que se va a utilizar, en el caso de ChatGPT hay distintos modelos que se van desarrollando y mejorando con el tiempo, unos son mas complejos y requieren un mayor coste computacional para un mejor razonamiento y otros mas simples, pero menos costosos en tiempo y recursos.
Siette define un modelo por defecto, pero cada pregunta puede utilizar un modelo diferente.
El parámetro de temperatura se puede proporcionar a cualquiera de la familia de modelos GPT. La temperatura es un número entre 0 y 2, con un valor predeterminado de 1 o 0,7 según el modelo que se elija. La temperatura se utiliza para controlar la aleatoriedad de la salida. Cuando lo configuras más alto, mayor aleatoriedad hay en los resultados, mientras más bajo, los valores son más deterministas. En el contexto de los refuerzo se deben usar valores bajos, en torno a 0,2
El parámetro Top P controla la diversidad de las respuestas de un modelo de GenIA. Varia entre 0 y 1. Define un umbral de probabilidad acumulada y filtra las opciones menos probables. Valores altos (0.9 - 1.0) de este parámetro implica respuestas más variadas y creativas, mientras que valores bajos (0.1 - 0.3) respuestas más predecibles y conservadoras.Se usa para equilibrar creatividad y coherencia en la generación de texto.
Es un parámetro que sirve para controlar el tamaño máximo de la contestación del sistema LLM. En general las respuestas del sistema LLM son cortas de por si, por lo que si se deja el valor por defecto (2024) no afectará a la respuesta del sistema. Si se quiere una respuesta muy corta, se puede disminuir drásticamente este parámetro.
Las preguntas con patrones múltiples son aquellas en las que la respuesta se divide en varias opciones relativamente independientes unas de otras. Cada una de las opciones trata de verificar si se ha respondido a algún aspecto en concreto de la pregunta.
El uso de patrones múltiples tiene ventajas sobre el uso de patrones simples, ya que la evaluación de cada patrón se hace por separado. Una sola consulta al sistema LLM genera una evaluación mas detallada, y por tanto mayores matices en la evaluación. Evidentemente, para que tenga efecto es necesario que el mecanismo de evaluación sea por puntos o mediante TRI
En este ejemplo se hace una pregunta generica sobre el cambio climático que se pasará al agente LLM para su corrección:
Al agente se le va a pedir que determine de entre los siguientes patrones que se han definido en la sección Contenido, cuál de ellos se encaja con la respuesta dada por el alumno.
La siguiente imagen muestra un ejemplo de respuesta a esta pregunta y su corrección por el agente LLM, de acuerdo a la rúbrica que se ha establecido en Siette:
Para generar esta respuesta se ha indicado en la pregunta que se esperan de ella 7 respuestas, pero se ha indicado en la sección de Presentación, que se muestre un único campo de respuesta con 4 filas de texto.
La imagen anterior muestra la respuesta tal como lo hace el Previsulizar|previsualizador, y en ella se incluye la respuesta textual del agente LLM (indicado con “Patron LLM>”) y un ejemplo de respuesta correcta. La respuesta del agente no se muestra en la sesión de evaluación, solo se muestra aquí a efectos de depuración. El ejemplo de respuesta correcta se mostrará solo en caso de que el test se configure para mostrar la solución.
En este caso, las instrucciones que hay que dar al agente LLM son algo diferentes del caso anterior en donde solo había que determinar una única respuesta. En este caso se ha optado por no mostrar al sistema LLM la solución y solicitar que indique las opciones que encajen con el texto de respuesta del alumno.
Sea la pregunta: <<enunciado>>. La respuesta que he dado es: <<respuesta>> Indica cuales de las siguientes opciones encajan con respuesta dada: <<opciones>>
En concreto, para mayor seguridad se le han dado instrucciones concretas de responder solamente con los números asociados a cada una de las opciones de respuesta (que en este caso son cada uno de los patrones). Estos númeración la hace Siette automáticamente al hacer la consulta al sistema LLM
Incluye en tu contestación solo aquellas respuestas que consideres que se mencionan en la respuesta, nombrándolas como (1), (2)...
Otra modalidad de evaluación con patrones LM es el uso de ficheros. Consiste en enviar al agente LLM un fichero para que lo analice y determine a partir de él, el patrón o patrones que mejor encajan con el contenido del fichero.
Para ello, basta con activar la opción Sistema de presentación de la pregunta en la pestaña Avanzado.
Pueden enviarse ficheros de tipo texto, aunque para ello, si no son excesivamente largos, puede optarse por el método descrito anteriormente, usando un único campo de respuesta.
También pueden enviarse imágenes, que se adjuntan mediante un fichero, se guardan en el servidor de Siette y se envían al agente LLM incrustadas en la llamada. De esta forma puede pedirse al sistema LLM que determine si se cumplen o no algunas condiciones que se imponen a la imagen.
Pueden emplearse patrones LLM simples o múltiples. Tras la carga del fichero y la respuesta del agente LLM, el comportamiento de Siette es igual que en los demás patrones.
El siguiente ejemplo ilustra el funcionamiento de este sistema. Se pide que se dibuje un esquema de un autómata finito determinista y mínimo para reconocer el lenguaje de la expresión regular ab(ab)*. La pregunta se escribe con seis patrones a los que se les puede asignar distinta puntuación. Se asignan igualmente seis respuestas, a modo de patrones entre los que el agente LLM debe decidir cuales se cumplen. La pregunta se marca como envío de fichero con el nombre “dibujo.png”. La pregunta se mostrará de la siguiente manera:
El alumno debe subir una imagen, ya se una fotografía de un esquema hecho a mano, una captura de pantalla, un diseño grafico, etc. La imagen se guarda en Siette como en el caso de cualquier otra pregunta de evaluación con ficheros, pero se forma una consulta que se pasa al agente LLM a partir de las instrucciones que se especifican en la paguna, en conreto:
A partir de la imagen "<<respuesta>>" Indica cuál de las siguientes opciones encaja mejor con la imagen recibida: <<opciones>>
que antes de llamar al sistema queda instanciada como:
A partir de la imagen "dibujo.png"
Indica cuál de las siguientes opciones encaja mejor con la imagen recibida:
(0) El dibujo representa un autómata finito
(1) El autómata finito de la imagen reconoce la secuencia ab
(2) El autómata finito de la imagen reconoce el lenguaje que genera la expresión
regular ab(ab)*
(3) El autómata finito del dibujo no reconoce abba
(4) El autómata finito de la imagen reconoce a ab(ab)* con el menor número de
estados posibles.
(5) El autómata finito del dibujo tiene transiciones en todos los estados para
todos los símbolos del alfabeto
El etiquetado de las opciones con números se hace de forma automática. El campo «respuesta» se ha sustituido por el nombre de la imagen, que se adjunta también en la llamada al sistema LLM. Nótese que en este caso no se adjunta el enunciado, ya que pondría en aviso al agente de lo que cabe esperar que contenga la imagen, y según las pruebas realizadas este predisposición de la IA no resulta adecuada en este caso.
Al agente se le dan las siguientes instrucciones:
Describe la imagen y selecciona las opciones que encajan bien con la imagen que te mando. Tras la descripción, añade en tu respuesta la lista de opciones como (1),(2), etc.. según las opciones que encajen con la imagen. Solo dime las opciones que son verdaderas con respecto a la imagen.
Se realizan varias pruebas, la primera de ellas enviando una solución incorrecta:
El sistema actúa correctamente identificando que se trata de un autómata finito, pero que no es el que corresponde a las demás opciones.
Si se envía otra imagen, en este caso un autómata finito determinista pero que no mínimo, detecta que se cumplen algunas condiciones mas:
Finalmente, al enviar una versión correcta identifica correctamente que cumple con todas las restricciones:
En este caso, parece haber funcionado correctamente, pero ha fallado en algunas de las opciones en el caso del autómata parcialmente correcto. 2). En este ejemplo inicialmente se le mostraba el enunciado, y no se le pedía que describiera la imagen, por lo que se obtenían peores resultados. Por otra parte, la descripción de la imagen ayuda a saber si ha identificado correctamente el dibujo. El estado actual de la IA dista de ser perfecto y sus capacidades de deducción son aún limitadas. Por consiguiente, será necesario ajustar las opciones y completar bien las instrucciones si se quieren obtener buenos resultados. El proceso de diseño de preguntas basadas en Patrones LLM requiere práctica y muchas pruebas. Igualmente, una vez que la pregunta se ha dado por correcta, la interacción con diversas soluciones planteadas por los alumnos puede poner de manifiesto problemas en la corrección que deben arreglarse. Para ello pueden redefinirse las opciones o las instrucciones de manera que se consiga una mayor tasa de acierto; y utilizar la opción de volver a corregir sobre las sesiones ya enviadas.
Debe tomarse por tanto con precaución el uso de este tipo de preguntas, que actualmente están en fase experimental. En general en temas especializados como éste aun queda mucho margen de mejora.
aba(ba)* puesto que el estado 2 no es un estado final, si lo fuera, tampoco sería correcto, ya que entonces el lenguaje reconocido sería ab(ab)*|ab(ab)*a