paint-brush
Uso de ferramenta generalizável e livre de erros de sintaxe para LLMs: ToolDecpor@textmodels
155 leituras

Uso de ferramenta generalizável e livre de erros de sintaxe para LLMs: ToolDec

Muito longo; Para ler

Os pesquisadores propõem o TOOLDEC, uma decodificação guiada por máquina de estado finito para LLMs, reduzindo erros e melhorando o uso da ferramenta.
featured image - Uso de ferramenta generalizável e livre de erros de sintaxe para LLMs: ToolDec
Writings, Papers and Blogs on Text Models HackerNoon profile picture
0-item

Autores:

(1) Kexun Zhang, UC Santa Bárbara e contribuição igual;

(2) Hongqiao Chen, Northwood High School e contribuição igual;

(3) Lei Li, Universidade Carnegie Mellon;

(4) William Yang Wang,UC Santa Bárbara.

Tabela de links

3. TOOLDEC: USO DA FERRAMENTA LLM VIA DECODIFICAÇÃO DE ESTADO FINITO

Uma chamada de ferramenta sintaticamente correta precisa fazer referência a um nome de ferramenta existente e passar argumentos em conformidade com o tipo. Motivados pelo fato de ser simples verificar a sintaxe de uma chamada de ferramenta usando uma máquina de estados finitos (FSM), propomos o TOOLDEC, um algoritmo de decodificação restrita guiado por uma FSM. Durante cada etapa de decodificação, o modelo faz amostras de um subconjunto do vocabulário que contém apenas tokens sintaticamente corretos. O FSM que especifica os subconjuntos de tokens pode ser construído a partir da documentação da ferramenta. Por exemplo, na Figura 2, um FSM é construído para as funções add, exp, square e sqrt. A Tabela 2 mostra como o TOOLDEC responde à pergunta “o lado de um quadrado é 5, qual é a sua área?” usando o FSM. Com a orientação do FSM, a TOOLDEC atinge os seguintes objetivos:


• Modos de comutação. Alterne entre “modo de texto” quando o modelo está livre para gerar qualquer texto e “modo de ferramenta” quando o modelo só pode gerar chamadas de ferramenta válidas.


• Gerando Nomes de Ferramentas. No início de uma chamada de ferramenta, gere apenas nomes corretos de ferramentas existentes a partir de uma lista predefinida de ferramentas.


• Passando argumentos. Passe apenas argumentos em conformidade com o tipo para a ferramenta.

3.1 DECODIFICAÇÃO DE ESTADOS FINITOS

TOOLDEC é guiado por uma máquina de estados finitos (FSM). Um FSM é uma tupla de 5 (S, V, g, s0, R), consistindo de um conjunto de estados finitos S, um alfabeto V , uma função de transição g : S ×V → S, um estado inicial s0 e um conjunto de aceitando estados R. No nosso caso, S e g são construídos a partir da assinatura da ferramenta. V é o vocabulário simbólico do modelo de linguagem. R corresponde a tokens predefinidos que podem determinar se o LM completou a tarefa, como ''.


Figura 2: Uma máquina de estados finitos para TOOLDEC construída para funções matemáticas add, exp, square, sqrt que aceitam números inteiros como argumentos. Os nomes das ferramentas são representados por uma estrutura tri. “IntFSM” é um submódulo que analisa inteiros.


A cada etapa de decodificação t, o TOOLDEC mantém um estado atual s. Ele só pode gerar os tokens permitidos pelo FSM, ou seja, os tokens para os quais g(s, ·) está definido. Esses


Tabela 2: Como o TOOLDEC utiliza o FSM da Figura 2 para responder à pergunta “o lado de um quadrado é 5, qual é a sua área?”. A cada passo de tempo, o estado na máquina corresponde a um conjunto de próximos tokens válidos. Zeramos todos os outros tokens e normalizamos novamente a próxima distribuição de tokens, forçando o LLM a amostrar apenas tokens válidos.


3.2 CONSTRUINDO SGSAS QUE GARANTEM CHAMADAS DE FERRAMENTA SINTATICAMENTE CORRETAS



Para construir um teste, inserimos todas as strings nele, uma por uma. Inserir uma string em um try significa ir da raiz até o caminho feito pela string e criar novos nós quando a próxima etapa do caminho não existir. Por exemplo, mostramos como mais dois nomes de ferramentas, exp10 e expand, podem ser adicionados ao teste na Figura 3.


Observe que a construção de try depende de uma suposição: não existem duas ferramentas com o mesmo nome. Embora esta seja uma suposição razoável, pode haver exceções em aplicações reais. Nesse caso, poderíamos reescrever os nomes das ferramentas para incluir mais detalhes para eliminá-los. Reescrever nomes de ferramentas abstratos e difíceis de entender também pode tornar mais fácil para o modelo de linguagem selecioná-los por nome.


Gerando argumentos de ferramenta sintaticamente válidos. Os argumentos da ferramenta têm tipos especificados. Assim como os argumentos de um programa, eles precisam seguir certas regras gramaticais. Estas regras podem ser especificadas por máquinas de estados finitos. Por exemplo, o “IntFSM” na Figura 2 representa uma máquina de estado finito que aceita apenas literais inteiros. Para todos os argumentos de uma ferramenta, encadeamos seus FSMs correspondentes e usamos o último estado correspondente ao nome da ferramenta como o estado inicial desta cadeia de FSM. Observe que, na prática, não é necessário construir explicitamente este FSM. Qualquer verificador gramatical que informe o conjunto de próximos tokens válidos é suficiente.



Este artigo está disponível no arxiv sob licença CC 4.0 DEED.