Autor:
(1) Brandon T. Willard, Computação Normal; (2) R´emi Louf, Computação Normal.
Tabela de links
5. Discussão
A indexação de vocabulário introduzida neste artigo remove uma barreira proibitiva de escalonamento em tempo de execução na geração guiada. Naturalmente, há uma compensação entre processamento e memória, mas acreditamos que os custos de memória são relativamente baixos em média e – quando não – podem ser reduzidos através de meios convencionais.
Em nossos testes usando uma versão ligeiramente aumentada da gramática Python, descobrimos que mesmo índices construídos de forma ingênua (ou seja, aqueles contendo analisador não utilizado e redundante e configurações de estado FSM) ainda têm apenas cerca de 50 MB. Além disso, estes índices foram construídos com AFDs não reduzidos, o que implica que existem numerosos estados redundantes que aumentam desnecessariamente o tamanho dos índices. Da mesma forma, se a representação exata das máquinas de estado for um problema, é possível que outras formulações de máquinas de estado com requisitos de memória mais baixos sejam suficientes (por exemplo, NFAs).
As implicações deste trabalho não se limitam à geração de texto neural. Por exemplo, pode-se usar a abordagem de indexação descrita aqui para auxiliar no treinamento ou no ajuste fino de LLMs quando forem necessários resultados estruturados. Também podemos especular que a geração assistida durante o treinamento pode reduzir a necessidade de um modelo para aprender detalhes sintáticos.
Além disso, este método fornece uma forma alternativa de avaliar os modelos atuais. Poderíamos, por exemplo, tentar quantificar a discrepância entre os logits mascarados gerados pelo nosso método e os logits brutos gerados pelo modelo. O que, por sua vez, poderia informar o objetivo de treinamento de um modelo.
Também pode ser possível “levantar” as máscaras computadas por esta abordagem para os próprios modelos de linguagem. Basicamente, as máscaras determinam implicitamente quais cálculos não precisam ser realizados. Nossa formulação atual aplica apenas as máscaras no nível mais baixo, mas, elevando as máscaras ainda mais para dentro da arquitetura do modelo, poderemos modular quais fatias dos parâmetros do modelo são necessárias antes de executar operações desnecessárias sobre elas. Isso tem o potencial de reduzir ainda mais os custos computacionais.
Referências
Luca Beurer-Kellner, Marc Fischer e Martin Vechev. Prompting é programação: uma linguagem de consulta para grandes modelos de linguagem. Procedimentos do ACM em Linguagens de Programação, 7 (PLDI):1946–1969, 2023.
Yihong Dong, Ge Li e Zhi Jin. CODEP: Modelo Seq2Seq gramatical para geração de código de uso geral. Em Anais do 32º Simpósio Internacional ACM SIGSOFT sobre Teste e Análise de Software, ISSTA 2023, páginas 188–198, Nova York, NY, EUA, julho de 2023. Association for Computing Machinery. ISBN 9798400702211.doi:10.1145/3597926. 3598048.
Saibo Geng, Martin Josifosky, Maxime Peyrard e Robert West. Decodificação restrita baseada em gramática flexível para modelos de linguagem, maio de 2023.
Michael Kuchnik, Virginia Smith e George Amvrosiadis. Validando grandes modelos de linguagem com relm. Procedimentos de aprendizado de máquina e sistemas, 5, 2023.
Alexander K. Lew, Tan Zhi-Xuan, Gabriel Grand e Vikash K. Mansinghka. Direção Monte Carlo Sequencial de Grandes Modelos de Linguagem Usando Programas Probabilísticos. Pré-impressão do arXiv arXiv:2306.03081, 2023.
Rémi Louf e Brandon T. Willard. Esboços: Programação de modelo generativo. URL //github.com/normal-computing/outlines.
Microsoft. Orientação. Microsoft, julho de 2023. URL //github.com/microsoft/guidance.
Gabriel Poesia, Oleksandr Polozov, Vu Le, Ashish Tiwari, Gustavo Soares, Christopher Meek e Sumit Gulwani. Synchromesh: geração de código confiável a partir de modelos de linguagem pré-treinados. Pré-impressão do arXiv arXiv:2201.11227, 2022a.
Gabriel Poesia, Oleksandr Polozov, Vu Le, Ashish Tiwari, Gustavo Soares, Christopher Meek e Sumit Gulwani. Synchromesh: geração de código confiável a partir de modelos de linguagem pré-treinados, janeiro de 2022b.
Maxim Rabinovich, Mitchell Stern e Dan Klein. Redes de sintaxe abstrata para geração de código e análise semântica. Pré-impressão do arXiv arXiv:1704.07535, 2017.
Alec Radford, Jeffrey Wu, Rewon Child, David Luan, Dario Amodei e Ilya Sutskever. Os modelos de linguagem são aprendizes multitarefa não supervisionados. Blog OpenAI, 1(8):9, 2019.
Matt Rickard. analisadorLLM, julho de 2023a. URL //github.com/r2d4/parserllm.
Matt Rickard. R2d4/rellm: Estrutura exata de qualquer conclusão de modelo de linguagem., 2023b. URL //github.com/r2d4/rellm.
Torsten Scholak, Nathan Schucher e Dzmitry Bahdanau. PICARD: Análise incremental para decodificação auto-regressiva restrita de modelos de linguagem. Pré-impressão do arXiv arXiv:2109.05093, 2021.
Rico Sennrich, Barry Haddow e Alexandra Birch. Tradução automática neural de palavras raras com unidades de subpalavras. Pré-impressão do arXiv arXiv:1508.07909, 2015.
Michael Sipser. Introdução à Teoria da Computação. Publicação Internacional Thomson, 1996.
Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, \Lukasz Kaiser e Illia Polosukhin. Atenção é tudo que você precisa. Avanços em sistemas de processamento de informações neurais, 30, 2017.
Bailin Wang, Zi Wang, Xuezhi Wang, Yuan Cao, Rif A. Saurous e Yoon Kim. Solicitação gramatical para geração de linguagem específica de domínio com grandes modelos de linguagem, maio de 2023.
Lilian Weng. Geração de texto neural controlável, janeiro de 2021. URL //lilianweng.github.io/posts/ 2021-01-02-controllable-text-generation/.
Agradecimentos
Gostaríamos de agradecer a Dan Gerlanc e Dan Simpson pelo apoio e feedback construtivo.
Este artigo está sob licença CC 4.0.