Vamos Sintetizar Passo a Passo: Síntese Iterativa de Conjuntos de Dados com Modelos de Linguagem de Grande Escala por meio da Extrapolação de Erros de Modelos Pequenos
Let's Synthesize Step by Step: Iterative Dataset Synthesis with Large Language Models by Extrapolating Errors from Small Models
October 20, 2023
Autores: Ruida Wang, Wangchunshu Zhou, Mrinmaya Sachan
cs.AI
Resumo
*A Síntese de Dados* é uma abordagem promissora para treinar um modelo pequeno com pouquíssimos dados rotulados. Uma estratégia para a síntese de dados é aproveitar o conhecimento rico de modelos de linguagem grandes para sintetizar exemplos de treinamento pseudo-rotulados para modelos pequenos, tornando possível alcançar eficiência tanto em dados quanto em computação ao mesmo tempo. No entanto, um desafio crucial na síntese de dados é que o conjunto de dados sintetizado frequentemente sofre de uma grande discrepância distribucional em relação à distribuição de dados da *tarefa real*. Assim, neste artigo, propomos *Synthesis Step by Step* (**S3**), um framework de síntese de dados que reduz essa lacuna distribucional ao extrapolar iterativamente os erros cometidos por um modelo pequeno treinado no conjunto de dados sintetizado, utilizando um pequeno conjunto de validação do mundo real e um modelo de linguagem grande. Experimentos extensivos em múltiplas tarefas de NLP mostram que nossa abordagem melhora o desempenho de um modelo pequeno ao reduzir a lacuna entre o conjunto de dados sintético e os dados reais, resultando em uma melhoria significativa em comparação com várias baselines: 9,48% de melhoria em relação ao ZeroGen e 2,73% em relação ao GoldGen, e até 15,17% de melhoria em comparação com o modelo pequeno treinado em dados anotados por humanos.
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.