Synthétisons étape par étape : Synthèse itérative de jeux de données avec des modèles de langage massifs en extrapolant les erreurs des petits modèles
Let's Synthesize Step by Step: Iterative Dataset Synthesis with Large Language Models by Extrapolating Errors from Small Models
October 20, 2023
Auteurs: Ruida Wang, Wangchunshu Zhou, Mrinmaya Sachan
cs.AI
Résumé
La *synthèse de données* est une approche prometteuse pour entraîner un petit modèle avec très peu de données annotées. Une méthode pour la synthèse de données consiste à exploiter les connaissances riches des grands modèles de langage pour générer des exemples d'entraînement pseudo-étiquetés pour les petits modèles, permettant ainsi d'atteindre à la fois une efficacité en termes de données et de calcul. Cependant, un défi majeur dans la synthèse de données est que l'ensemble de données synthétisé souffre souvent d'un écart distributionnel important par rapport à la distribution des données de la *tâche réelle*. Ainsi, dans cet article, nous proposons *Synthesis Step by Step* (**S3**), un cadre de synthèse de données qui réduit cet écart distributionnel en extrapolant itérativement les erreurs commises par un petit modèle entraîné sur l'ensemble de données synthétisé, en utilisant un petit ensemble de validation réel et un grand modèle de langage. Des expériences approfondies sur plusieurs tâches de traitement du langage naturel montrent que notre approche améliore les performances d'un petit modèle en réduisant l'écart entre l'ensemble de données synthétique et les données réelles, ce qui se traduit par une amélioration significative par rapport à plusieurs méthodes de référence : une amélioration de 9,48 % par rapport à ZeroGen et de 2,73 % par rapport à GoldGen, et jusqu'à 15,17 % par rapport au petit modèle entraîné sur des données annotées par des humains.
English
*Data Synthesis* is a promising way to train a small model with very little
labeled data. One approach for data synthesis is to leverage the rich knowledge
from large language models to synthesize pseudo training examples for small
models, making it possible to achieve both data and compute efficiency at the
same time. However, a key challenge in data synthesis is that the synthesized
dataset often suffers from a large distributional discrepancy from the *real
task* data distribution. Thus, in this paper, we propose *Synthesis Step by
Step* (**S3**), a data synthesis framework that shrinks this distribution gap
by iteratively extrapolating the errors made by a small model trained on the
synthesized dataset on a small real-world validation dataset using a large
language model. Extensive experiments on multiple NLP tasks show that our
approach improves the performance of a small model by reducing the gap between
the synthetic dataset and the real data, resulting in significant improvement
compared to several baselines: 9.48% improvement compared to ZeroGen and 2.73%
compared to GoldGen, and at most 15.17% improvement compared to the small model
trained on human-annotated data.