Синтезируем шаг за шагом: Итеративный синтез наборов данных с использованием крупных языковых моделей путем экстраполяции ошибок небольших моделей
Let's Synthesize Step by Step: Iterative Dataset Synthesis with Large Language Models by Extrapolating Errors from Small Models
October 20, 2023
Авторы: Ruida Wang, Wangchunshu Zhou, Mrinmaya Sachan
cs.AI
Аннотация
*Синтез данных* представляет собой перспективный способ обучения небольшой модели с использованием минимального количества размеченных данных. Один из подходов к синтезу данных заключается в использовании богатых знаний крупных языковых моделей для создания псевдо-обучающих примеров для небольших моделей, что позволяет одновременно достичь эффективности как в использовании данных, так и в вычислительных ресурсах. Однако ключевой проблемой при синтезе данных является то, что синтезированный набор данных часто значительно отличается по распределению от распределения данных *реальной задачи*. В связи с этим в данной статье мы предлагаем *Синтез Шаг за Шагом* (**S3**), фреймворк для синтеза данных, который сокращает этот разрыв в распределении путем итеративного исправления ошибок, допущенных небольшой моделью, обученной на синтезированном наборе данных, с использованием небольшого реального валидационного набора данных и крупной языковой модели. Эксперименты на множестве задач обработки естественного языка показывают, что наш подход улучшает производительность небольшой модели, сокращая разрыв между синтезированным набором данных и реальными данными, что приводит к значительному улучшению по сравнению с несколькими базовыми методами: улучшение на 9,48% по сравнению с ZeroGen и на 2,73% по сравнению с GoldGen, а также максимальное улучшение на 15,17% по сравнению с небольшой моделью, обученной на данных, размеченных человеком.
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.