Autores:
(1) Kexun Zhang, UC Santa Barbara y contribución de Equal;
(2) Hongqiao Chen, Escuela Secundaria Northwood y Contribución Igual;
(3) Lei Li, Universidad Carnegie Mellon;
(4) William Yang Wang, UC Santa Bárbara.
Una llamada a una herramienta sintácticamente correcta debe hacer referencia a un nombre de herramienta existente y pasar argumentos que se ajusten al tipo. Motivados por el hecho de que es sencillo verificar la sintaxis de una llamada a una herramienta utilizando una máquina de estados finitos (FSM), proponemos TOOLDEC, un algoritmo de decodificación restringido guiado por una FSM. Durante cada paso de decodificación, el modelo toma muestras de un subconjunto del vocabulario que solo contiene tokens sintácticamente correctos. El FSM que especifica los subconjuntos de tokens se puede construir a partir de la documentación de la herramienta. Por ejemplo, en la Figura 2, se construye un FSM para las funciones add, exp, square y sqrt. La Tabla 2 muestra cómo TOOLDEC responde a la pregunta “el lado de un cuadrado es 5, ¿cuál es su área?” utilizando el FSM. Con la orientación del FSM, TOOLDEC logra los siguientes objetivos:
• Modos de conmutación. Cambie entre "modo de texto" cuando el modelo es libre de generar cualquier texto y "modo de herramienta" cuando el modelo solo puede generar llamadas de herramienta válidas.
• Generación de nombres de herramientas. Al comienzo de una llamada de herramienta, solo genere nombres correctos de herramientas existentes a partir de una lista predefinida de herramientas.
• Pasar argumentos. Pase únicamente argumentos que se ajusten al tipo a la herramienta.
TOOLDEC está guiado por una máquina de estados finitos (FSM). Un FSM es una tupla de 5 (S, V, g, s0, R), que consta de un conjunto de estados finitos S, un alfabeto V, una función de transición g : S ×V → S, un estado inicial s0 y un conjunto de aceptar estados R. En nuestro caso, S y g se construyen a partir de la firma de la herramienta. V es el vocabulario simbólico del modelo de lenguaje. R corresponde a tokens predefinidos que pueden determinar que LM ha completado la tarea, como ''.
En cada paso de decodificación t, TOOLDEC mantiene un estado actual s. Sólo puede generar los tokens permitidos por el FSM, es decir, los tokens para los que se define g(s, ·). Estos
Para construir un trie, insertamos todas las cadenas una por una. Insertar una cadena en un trie significa ir desde la raíz por el camino creado por la cadena y crear nuevos nodos cuando el siguiente paso en el camino no existe. Por ejemplo, mostramos cómo se pueden agregar dos nombres de herramientas más, exp10 y expandir, al trie en la Figura 3.
Tenga en cuenta que la construcción de trie depende de una suposición: no hay dos herramientas que tengan el mismo nombre. Si bien esta es una suposición razonable, podría haber excepciones en aplicaciones reales. En ese caso, podríamos reescribir los nombres de las herramientas para incluir más detalles y eliminar la ambigüedad. Reescribir nombres de herramientas abstractos y difíciles de entender también puede facilitar que el modelo de lenguaje los seleccione por nombre.
Generación de argumentos de herramientas sintácticamente válidos. Los argumentos de la herramienta tienen tipos específicos. Al igual que los argumentos de un programa, deben seguir ciertas reglas gramaticales. Estas reglas pueden especificarse mediante máquinas de estados finitos. Por ejemplo, el "IntFSM" en la Figura 2 representa una máquina de estados finitos que solo acepta literales enteros. Para todos los argumentos de una herramienta, encadenamos sus FSM correspondientes y utilizamos el último estado correspondiente al nombre de la herramienta como estado inicial de esta cadena FSM. Tenga en cuenta que, en la práctica, no es necesario construir explícitamente este FSM. Cualquier corrector gramatical que indique el conjunto de tokens siguientes válidos es suficiente.
Este documento está disponible en arxiv bajo licencia CC 4.0 DEED.