Auteur:
(1) Brandon T. Willard, informatique normale ;
(2) Rémi Louf, Informatique normale.
L'indexation du vocabulaire introduite dans cet article supprime une barrière de mise à l'échelle prohibitive au moment de l'exécution dans la génération guidée. Naturellement, cela implique un compromis entre le traitement et la mémoire, mais nous pensons que les coûts de mémoire sont en moyenne relativement faibles et, dans le cas contraire, peuvent être réduits par des moyens conventionnels.
Dans nos tests utilisant une version légèrement augmentée de la grammaire Python, nous constatons que même les index construits naïvement (c'est-à-dire ceux contenant un analyseur inutilisé et redondant et des configurations d'état FSM) ne font encore qu'environ 50 Mo. De plus, ces indices ont été construits avec des DFA non réduits, ce qui implique qu'il existe de nombreux états redondants augmentant inutilement la taille des indices. De même, si la représentation exacte des machines à états pose un jour un problème, il est possible que d'autres formulations de machines à états nécessitant moins de mémoire suffisent (par exemple les NFA).
Les implications de ce travail ne se limitent pas à la génération de textes neuronaux. Par exemple, on pourrait utiliser l'approche d'indexation décrite ici pour aider à la formation ou au réglage fin des LLM lorsque des résultats structurés sont requis. Nous pouvons également spéculer que la génération assistée pendant la formation pourrait réduire le besoin d'un modèle pour apprendre les détails syntaxiques.
De plus, cette méthode offre une manière alternative d’évaluer les modèles actuels. On pourrait, par exemple, tenter de quantifier l'écart entre les logits masqués générés par notre méthode et les logits bruts générés par le modèle. Ce qui pourrait à son tour éclairer l’objectif de formation d’un modèle.
Il peut également être possible de « lever » les masques calculés par cette approche dans les modèles de langage eux-mêmes. Fondamentalement, les masques déterminent implicitement quels calculs ne doivent pas être effectués. Notre formulation actuelle n'applique les masques qu'au niveau le plus bas, mais, en élevant les masques plus haut dans l'architecture du modèle, nous pourrons peut-être moduler quelles tranches des paramètres du modèle sont nécessaires avant d'effectuer inutilement des opérations sur celles-ci. Cela a le potentiel de réduire davantage les coûts de calcul.
Luca Beurer-Kellner, Marc Fischer et Martin Vechev. L'invite, c'est la programmation : un langage de requête pour les grands modèles de langage. Actes de l'ACM sur les langages de programmation, 7 (PLDI) : 1946-1969, 2023.
Yihong Dong, Ge Li et Zhi Jin. CODEP : modèle grammatical Seq2Seq pour la génération de code à usage général. Dans Actes du 32e Symposium international ACM SIGSOFT sur les tests et analyses de logiciels, ISSTA 2023, pages 188-198, New York, NY, États-Unis, juillet 2023. Association for Computing Machinery. ISBN 9798400702211. est ce que je: 10.1145/3597926. 3598048.
Saibo Geng, Martin Josifosky, Maxime Peyrard et Robert West. Décodage contraint flexible basé sur la grammaire pour les modèles linguistiques, mai 2023.
Michael Kuchnik, Virginia Smith et George Amvrosiadis. Validation de grands modèles de langage avec relm. Actes de Machine Learning and Systems, 5, 2023.
Alexander K. Lew, Tan Zhi-Xuan, Gabriel Grand et Vikash K. Mansinghka. Pilotage séquentiel de Monte Carlo de grands modèles de langage à l'aide de programmes probabilistes. Préimpression arXiv arXiv :2306.03081, 2023.
Rémi Louf et Brandon T. Willard. Aperçus : Programmation de modèles génératifs. URL https://github.com/normal-computing/outlines.
Microsoft. Conseils. Microsoft, juillet 2023. URL https://github.com/microsoft/guidance.
Gabriel Poesia, Oleksandr Polozov, Vu Le, Ashish Tiwari, Gustavo Soares, Christopher Meek et Sumit Gulwani. Synchromesh : génération de code fiable à partir de modèles de langage pré-entraînés. Préimpression arXiv arXiv :2201.11227, 2022a.
Gabriel Poesia, Oleksandr Polozov, Vu Le, Ashish Tiwari, Gustavo Soares, Christopher Meek et Sumit Gulwani. Synchromesh : génération de code fiable à partir de modèles de langage pré-entraînés, janvier 2022b.
Maxim Rabinovitch, Mitchell Stern et Dan Klein. Réseaux de syntaxe abstraite pour la génération de code et l'analyse sémantique. Préimpression arXiv arXiv : 1704.07535, 2017.
Alec Radford, Jeffrey Wu, Rewon Child, David Luan, Dario Amodei et Ilya Sutskever. Les modèles linguistiques sont des apprenants multitâches non supervisés. Blogue OpenAI, 1(8):9, 2019.
Matt Rickard. parserLLM, juillet 2023a. URL https://github.com/r2d4/parserllm.
Matt Rickard. R2d4/rellm : structure exacte à partir de tout achèvement de modèle de langage., 2023b. URL https://github.com/r2d4/rellm.
Torsten Scholak, Nathan Schucher et Dzmitry Bahdanau. PICARD : analyse incrémentielle pour le décodage auto-régressif contraint à partir de modèles de langage. Préimpression arXiv arXiv :2109.05093, 2021.
Rico Sennrich, Barry Haddow et Alexandra Birch. Traduction automatique neuronale de mots rares avec des unités de sous-mots. Préimpression arXiv arXiv : 1508.07909, 2015.
Michel Sipser. Introduction à la théorie du calcul. Éditions internationales Thomson, 1996.
Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, \Lukasz Kaiser et Illia Polosukhin. L'attention est tout ce dont vous avez besoin. Avancées dans les systèmes de traitement de l'information neuronale, 30, 2017.
Bailin Wang, Zi Wang, Xuezhi Wang, Yuan Cao, Rif A. Saurous et Yoon Kim. Invites grammaticales pour la génération de langages spécifiques à un domaine avec de grands modèles de langage, mai 2023.
Lilian Weng. Génération de texte neuronal contrôlable, janvier 2021. URL https://lilianweng.github.io/posts/2021-01-02-controllable-text-generation/.
Nous tenons à remercier Dan Gerlanc et Dan Simpson pour leur soutien et leurs commentaires constructifs.
Cet article est disponible sur arxiv sous licence CC 4.0.