paint-brush
Geração guiada eficiente para modelos de linguagem grande: amostragem LLM e geração guiadapor@textmodels
109 leituras

Geração guiada eficiente para modelos de linguagem grande: amostragem LLM e geração guiada

Muito longo; Para ler

Os pesquisadores propõem uma estrutura de máquina de estados finitos para geração de texto, oferecendo controle preciso e melhor desempenho.
featured image - Geração guiada eficiente para modelos de linguagem grande: amostragem LLM e geração guiada
Writings, Papers and Blogs on Text Models HackerNoon profile picture
0-item

Autor:

(1) Brandon T. Willard, Computação Normal;

(2) R´emi Louf, Computação Normal.

Tabela de links

2. Amostragem LLM e Geração Guiada

Seja St = (s1 . . . st) represente uma sequência de t tokens com st ∈ V, V um vocabulário e |V| = N. Os vocabulários, V, são compostos de strings de um alfabeto fixo [Sennrich et al., 2015] e N é frequentemente da ordem de 104 ou maior.


Definimos o próximo token st+1 como a seguinte variável aleatória:



2.1 Sequências de amostragem

Sejam F ⊂ P (V), onde P é o operador powerset, subconjuntos de strings multi-token que terminam com um token especial EOS ∈ V. A tarefa de geração de texto é extrair amostras de F.


Vários procedimentos foram considerados para gerar elementos de F. A decodificação gananciosa consiste em gerar tokens recursivamente, escolhendo o token com maior probabilidade em cada etapa. A pesquisa em feixe também gera tokens recursivamente, usando uma heurística para encontrar o modo de distribuição. Mais recentemente, a amostragem SMC também tem sido usada para gerar sequências [Lew et al., 2023].



O procedimento de amostragem é descrito em geral pelo Algoritmo 1. Freqüentemente chamado de amostragem multinomial, o procedimento gera recursivamente novos tokens por amostragem da distribuição categórica definida acima até que o token EOS seja encontrado.

2.2 Geração orientadora


• amostras de dígitos,


• strings que correspondem à expressão regular [a-zA-Z],


• e strings que analisam de acordo com uma gramática especificada (por exemplo, Python, SQL, etc.)


O procedimento de amostragem com mascaramento é um simples aumento do Algoritmo 1 e é fornecido no Algoritmo 2.


O cálculo de m na linha 2.5 é realizado implicitamente sobre todos os elementos de V. Além do cálculo de α, esta etapa é facilmente a mais cara. No caso de mascaramento guiado por expressões regulares – e casos mais sofisticados que esse – o suporte e, portanto, m dependerão necessariamente dos tokens amostrados anteriormente. A geração guiada desse tipo é, em última análise, um problema iterativo de correspondência ou análise e não é diretamente passível de abordagens padrão que exigem acesso antecipado a uma string completa. Em alguns casos, a correspondência ou análise parcial pode ser realizada desde o início da sequência amostrada em cada iteração, mas isto tem um custo que cresce pelo menos linearmente junto com o custo O(N) de sua aplicação em todo o vocabulário.


Isso nos leva às principais questões deste trabalho: como podemos combinar ou analisar strings incompletas de forma eficiente de acordo com uma expressão regular ou CFG e determinar as máscaras m em cada iteração do Algoritmo 2?



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