newsmode
search
Меню
arrow_back Назад

How to Generate and Use Synthetic Data for Finetuning

auto_awesomeКраткое саммари

Юджин Ян делает обзор того, как генерировать и использовать синтетические данные для дообучения языковых моделей. Существуют два основных подхода: дистилляция знаний из более сильной модели-учителя и self-improvement, когда модель учится на собственных ответах через итеративный цикл. Синтетические данные применяются в претрейне, instruction-tuning и preference-tuning; они дешевле и быстрее ручной разметки, а нередко превосходят её по качеству и разнообразию. Подробно разбираются пионерские работы Self-Instruct (бутстрэппинг из самой gpt-3) и Unnatural Instructions (дистилляция из gpt-3.5), показавшие, что даже наполовину корректные данные полезны для instruction-tuning. Далее идёт обзор техник дистилляции (Alpaca, Vicuna, WizardLM, Orca, WizardCoder, Magicoder, phi-1, Starling-7B) и методов self-improvement (Instruction Backtranslation, SPIN, ReST-EM, Self-Rewarding LMs, SteerLM, Constitutional AI от Anthropic), а также генерация синтетики для претрейна (AlphaGeometry, WRAP).

Как генерировать и использовать синтетические данные для дообучения

[ llm обзор ] · чтение на 42 мин

Использование синтетических данных для претрейна, instruction-tuning и preference-tuning становится всё более жизнеспособным. Синтетические данные — это данные, сгенерированные моделью или симулируемой средой, а не естественным образом встречающиеся в интернете либо размеченные людьми.

По сравнению с ручной разметкой генерировать синтетические данные под конкретную задачу быстрее и дешевле. Более того, качество и разнообразие синтетических данных нередко превосходят показатели разметчиков-людей, что приводит к улучшению производительности и обобщающей способности моделей, дообученных на синтетических данных. Наконец, синтетические данные обходят проблемы приватности и авторского права, поскольку не опираются на пользовательские данные или потенциально защищённый авторским правом контент.

Существуют два основных подхода к генерации синтетических данных: дистилляция из более сильной модели или self-improvement на собственных выходах модели. Полученные синтетические данные затем можно использовать в претрейне, instruction-tuning и preference-tuning.

Дистилляция переносит знания и навыки рассуждения из более сильного учителя в более слабого, но более эффективного ученика, оптимизируя качество ответов и вычислительную эффективность. В отличие от этого, self-improvement позволяет модели учиться на собственных ответах через итеративный цикл. Этот подход избавляет от внешних зависимостей и договорных ограничений. Тем не менее он ограничивает обучение изначальными способностями модели и может усиливать смещения и ошибки.

(Замечание в сторону: для крупных организаций дистилляция внешних моделей или нарушение условий использования провайдера API могут нести репутационные и юридические риски. Например, ведущий автор BERT в Google уволился после опасений, что Bard использует данные из ChatGPT. Аналогично, аккаунт ByteDance был заблокирован после того, как компания использовала данные GPT для обучения собственной модели.)

Применительно к синтетическим данным, претрейн предполагает построение базовых знаний модели на сгенерированных данных или дополнение реальных датасетов данными, сгенерированными моделью. Для instruction-tuning мы строим синтетические пары «инструкция–ответ», чтобы улучшить понимание моделью тонких запросов и повысить точность ответов. Preference-tuning опирается на смесь положительной и отрицательной синтетической обратной связи, чтобы вознаграждать модель за желаемое поведение — быть полезной, честной и безопасной.

Мы обсудим две статьи — по дистилляции (Unnatural Instructions) и по self-improvement (Self-Instruct). Затем кратко рассмотрим различные техники дистилляции, после чего разберём детали некоторых подходов self-improvement.

Self-improvement против дистилляции

Self-Instruct и Unnatural Instructions были опубликованы с разницей в один день (в декабре 2022 года), но используют совершенно разные подходы к генерации синтетических данных. Первый бутстрэппит синтетические данные из самой модели, тогда как второй дистиллирует их из внешней, более сильной модели.

Self-Instruct улучшает способность следовать инструкциям у недообученной модели (обычной gpt-3), бутстрэппя её собственные генерации. Сначала из модели генерируются инструкции, входной контекст и ответы. Затем недопустимые или похожие примеры отфильтровываются, а оставшиеся образцы используются для дообучения исходной модели.

В качестве затравочных данных они начинают со 175 написанных людьми задач от авторов и их коллег. Каждая задача содержит инструкцию, опциональный контекст и ожидаемый ответ.

{ "id": "seed_task_0", "name": "breakfast_suggestion", "instruction": "Is there anything I can eat for a breakfast that doesn't include eggs, yet includes protein, and has roughly 700-1000 calories?", "instances": [ { "input": "", "output": "Yes, you can have 1 oatmeal banana protein shake and 4 strips of bacon. The oatmeal banana protein shake may contain 1/2 cup oatmeal, 60 grams whey protein powder, 1/2 medium banana, 1tbsp flaxseed oil and 1/2 cup water, totalling about 550 calories. The 4 strips of bacon contains about 200 calories." } ], "is_classification": false } { "id": "seed_task_1", "name": "antonym_relation", "instruction": "What is the relation between the given pairs?", "instances": [ { "input": "Night : Day :: Right : Left", "output": "The relation between the given pairs is that they are opposites." } ], "is_classification": false } ... { "id": "seed_task_151", "name": "toxic_sentence_detection", "instruction": "Tell if the sentence contains toxic language.", "instances": [ { "input": "aw, no wonder she married you. you are a bastard.", "output": "Yes" } ], "is_classification": true }

Примеры затравочных задач

Для генерации синтетических инструкций используется few-shot-промптинг с восемью случайно выбранными затравочными инструкциями. В первом раунде генерации все выбранные инструкции берутся из затравочного набора. В последующих раундах две из восьми инструкций выбираются из сгенерированных моделью инструкций для повышения разнообразия.

Come up with a series of tasks: Task 1: {instruction for existing task 1} Task 2: {instruction for existing task 2} Task 3: {instruction for existing task 3} Task 4: {instruction for existing task 4} Task 5: {instruction for existing task 5} Task 6: {instruction for existing task 6} Task 7: {instruction for existing task 7} Task 8: {instruction for existing task 8} Task 9:

Промпт, используемый для генерации новых инструкций.

Затем они классифицируют, является ли сгенерированная инструкция задачей классификации или нет. (Зачем — увидим чуть позже.) На этом шаге использовались 12 инструкций классификации и 19 инструкций не-классификации из затравочного датасета.

Can the following task be regarded as a classification task with finite output labels? Task: Given my personality and the job, tell me if I would be suitable. Is it classification? Yes Task: Give me an example of a time when you had to use your sense of humor. Is it classification? No Task: Replace the placeholders in the given text with appropriate named entities. Is it classification? No Task: Fact checking - tell me if the statement is true, false, or unknown, based on your knowledge and common sense. Is it classification? Yes Task: Return the SSN number for the person. Is it classification? No ...

Промпт, используемый для классификации того, является ли инструкция задачей классификации.

Далее для каждой синтетической инструкции генерируются входной контекст и выходные ответы. Это делается двумя основными способами: input-first или output-first. При input-first модель сначала генерирует входные поля, а затем — соответствующий выход. Если инструкции не требуют дополнительного входа, модель генерирует выход напрямую.

Come up with examples for the following tasks. Try to generate multiple examples when possible. If the task doesn’t require additional input, you can generate the output directly. Task: Which exercises are best for reducing belly fat at home? Output: - Lying Leg Raises - Leg In And Out - Plank - Side Plank - Sit-ups Task: Extract all the country names in the paragraph, list them separated by commas. Example 1 Paragraph: Dr. No is the sixth novel by the English author Ian Fleming to feature his British Secret Service agent James Bond. Written at Fleming’s Goldeneye estate in Jamaica, it was first published in the United Kingdom by Jonathan Cape in 1958. In the novel Bond looks into the disappearance in Jamaica of two fellow MI6 operatives who had been investigating Doctor No. Bond travels to No’s Caribbean island and meets Honeychile Rider, who is there to collect shells. They are captured and taken to a luxurious facility carved into a mountain. The character of Doctor No, the son of a German missionary and a Chinese woman, was influenced by Sax Rohmer’s Fu Manchu stories. Dr. No was the first of Fleming’s novels to face widespread negative reviews in Britain, but it was received more favourably in the United States. Output: English, British, Jamaica, the United Kingdom, German, Chinese, Britain, the United States. Task: Converting 85 F to Celsius. Output: 85°F = 29.44°C ...

Промпт, используемый для подхода input-first при генерации экземпляров.

Проблема input-first в том, что он склонен смещать выходные ответы в сторону одной метки. Например, при задаче обнаружения грамматических ошибок он обычно генерирует грамматически корректный вход. Поэтому для задачи классификации предлагается подход output-first. Он начинается с генерации возможных меток классов, а затем генерация входного контекста обусловливается меткой класса. Именно поэтому и нужен предшествующий шаг классификации.

Given the classification task definition and the class labels, generate an input that corresponds to each of the class labels. If the task doesn’t require input, just generate the correct class label. Task: Classify the sentiment of the sentence into positive, negative, or mixed. Class label: Mixed Sentence: I enjoy the flavor of the restaurant but their service is too slow. Class label: Positive Sentence: I had a great day. The weather was beautiful and I spent time with friends. Class label: Negative Sentence: I was disappointed by the latest superhero movie. I would not recommend it. Task: Given a dialogue, classify whether the user is satisfied with the service. You should respond with "Satisfied" or "Unsatisfied". Class label: Satisfied Dialogue: - Agent: Thank you for your feedback. We will work to improve our service in the future. - Customer: I am happy with the service you provided. Thank you for your help. Class label: Unsatisfied Dialogue: - Agent: Sorry that we will cancel your order. You will get a refund within 7 days. - Customer: oh that takes too long. I want you to take quicker action on this. ...

Промпт, используемый для подхода output-first при генерации экземпляров.

За вышеописанным следует лёгкая фильтрация и постобработка. Для поощрения разнообразия они добавляют новые инструкции, только если ROUGE-L с любой существующей инструкцией меньше 0,7 (то есть перекрытие наибольшей общей подстроки меньше 0,7 от всей строки). Также исключаются инструкции, содержащие ключевые слова, которые языковая модель не может выполнить, например «image», «picture» или «graph». Наконец, исключаются пары вход-выход, которые идентичны, или где вход одинаков, но выход различается.

В целом было сгенерировано 52 тыс. инструкций и 82 тыс. пар вход-выход.

Чтобы оценить качество синтетических данных, они случайно выбрали 200 инструкций и пару вход-выход. Затем эксперт-разметчик (автор статьи) пометил, корректна ли пара вход-выход. Хотя 92% сгенерированных инструкций оказались валидными, синтетические пары вход-выход были зашумлены. В целом лишь 54% образцов имели полностью валидные поля.

(Я был поражён тем, что синтетические данные, корректные лишь наполовину, оказались полезны для дообучения. Авторы рассудили, что даже хотя синтетические данные содержали ошибки, большинство из них всё же были в правильном формате или частично корректны. Поэтому такие синтетические данные были полезны для instruction-tuning. Тем не менее они могут не подходить для претрейна базовых знаний.)

Чтобы оценить улучшение способности следовать инструкциям, они использовали оценочный набор Super-NaturalInstructions. В нём 119 задач по 100 экземпляров в каждой. Результаты показали, что gpt-3 после Self-Instruct превзошла обычную gpt-3 на 33% и почти сравнялась по производительности с InstructGPT-001.

Они также провели оценку с участием людей, используя новый набор инструкций на основе ориентированных на пользователя приложений. Затем авторы инструкций оценивали ответы модели. Аналогично, gpt-3 после Self-Instruct превзошла обычную gpt-3 и достигла производительности, схожей с InstructGPT-001. (Мы также видим улучшения InstructGPT от версии 001 к 003.)

В одном из ablation-экспериментов они исследовали использование InstructGPT-003 для (пере)генерации выходных ответов при тех же инструкции и входе, а затем дообучили модель на ответах InstructGPT-003 (то есть дистилляция на InstructGPT-003). Они обнаружили, что gpt-3, дистиллированная на InstructGPT, превзошла gpt-3 после Self-Instruct на 10%, демонстрируя прирост, который достигается за счёт дистилляции из внешней, более сильной модели.

В отличие от Self-Instruct, Unnatural Instructions генерирует синтетические данные из внешней модели — gpt-3.5 (text-davinci-002). Затем синтетические данные используются для дообучения t5-lm, варианта-языковой-модели модели t5-11b.

Они начинают с затравочного набора из 15 написанных людьми примеров. Затем, чтобы сгенерировать новые инструкции и вход (то есть контекст), они подавали gpt-3.5 три примера для генерации четвёртого синтетического образца. Они использовали пять различных затравок из трёх примеров (three-shot), чтобы сгенерировать дистиллированный датасет из 68 тыс. примеров. Чтобы поощрить креативность при использовании одних и тех же few-shot-примеров, они применили nucleus sampling (top-$p$) с $p = 0{,}99$.

Example 1 Instruction: You are given a science question (easy-level) and four answer options (associated with “A”, “B”, “C”, “D”). Your task is to find the correct answer based on scientific facts, knowledge, and reasoning. Do not generate anything else apart from one of the following characters: ‘A’, ‘B, ‘C’, ‘D’. There is only one correct answer for each question. Input: Which part of a bicycle BEST moves in a circle? (A) Seat (B) Frame (C) Foot pedal (D) Kickstand Constraints: The output should be one of the following characters: ‘A’, ‘B, ‘C’, ‘D’. Example 2 Instruction: You are given a negative review and your task is to convert it to a positive review by one or more making minimal changes. Avoid changing the context of the review. Input: we stood there in shock, because we never expected this. Constraints: None. Example 3 Instruction: In this task, you are given two sentences taken from a conversation, and your job is to classify whether these given sentences are sequential or not. We will mark the given sentence pair as ’True’ if it’s sequential, otherwise ’False’. The two sentences are spoken by two different people. Input: Noah: When and where are we meeting? :), Madison: I thought you were busy...? Constraints: None. Example 4

Промпт, используемый для генерации новых инструкций и входа.

Затем они удалили пары инструкция-вход, которые (i) не содержали ожидаемых полей, (ii) были идентичны примерам в few-shot-промпте и (iii) являлись дубликатами.

Чтобы сгенерировать ответы, они обусловливали gpt-3.5 синтетическими примерами инструкция-вход. На этом этапе применялось жадное декодирование (greedy decoding), чтобы приоритизировать корректность над креативностью. Они также включили шаг расширения шаблонов для увеличения разнообразия форматов. В частности, они просили gpt-3.5 переформулировать задачи и собирали по две альтернативные формулировки для каждой задачи.

Чтобы оценить качество синтетических данных, они проверили 200 образцов. По корректности лишь 56,5% образцов оказались верными. Из 87 некорректных образцов 9 имели непонятные инструкции, 35 — вход, не соответствующий инструкциям, а 43 — неверный выход. Как и в Self-Instruct, авторы отметили, что, хотя часть синтетических данных была некорректной, они всё же были полезны для instruction-tuning.

Они дообучили t5-lm на этих синтетических инструкциях и обнаружили, что она превосходит обычную t5-lm. Они также показали, как Unnatural Instructions превосходит сильные базовые модели, дообученные на инструкциях.

В статье также есть полезные ablation-исследования: используемая внешняя модель (gpt-3.5 против gpt-3), формат промпта (минимальный, перечислительный, многословный), количество few-shot-примеров, использование ограничений и двухэтапный процесс. Рекомендую к прочтению.

Техники дистилляции

Со времён Unnatural Instructions несколько моделей были дообучены на дистиллированных синтетических данных, как правило, из API OpenAI. Эти модели исследовали способы улучшения следования инструкциям на всё более сложных запросах, причём некоторые были сосредоточены на коде. В этом разделе мы кратко изложим каждую статью.

Alpaca дообучила llama-7b на 52 тыс. образцов следования инструкциям, сгенерированных из gpt-3.5 (text-davinci-003). Они сообщили, что это стоило менее $500. Они использовали те же 175 написанных людьми пар инструкция-ответ из затравочного набора Self-Instruct и сгенерировали дополнительные пары инструкция-ответ из gpt-3.5 через few-shot-промптинг.

Vicuna дообучила llama-7b и llama-13b на пользовательских диалогах с ShareGPT.com. Они преобразовали HTML в markdown, после чего исключили неприемлемые или низкокачественные образцы. В результате получилось 125 тыс. диалогов, которые были использованы для instruction-tuning.

WizardLM (Microsoft) продемонстрировала, как генерировать более сложные инструкции и ответы с помощью gpt-3.5. Она различает эволюцию вглубь (in-depth) и эволюцию вширь (in-breadth). Первая делает инструкции сложнее с помощью пяти типов промптов — добавление ограничений, углубление, увеличение числа шагов рассуждения и т. д. Вторая повышает охват тем, охват навыков и общее разнообразие датасета.

Orca (Microsoft) исследует, как меньшие модели могут имитировать процесс рассуждения более крупной, сильной модели через трассы объяснений (explanation traces). Сначала они дополнили пары инструкция-ответ объяснениями от gpt-4 и gpt-3.5. Эти объяснения демонстрируют процесс рассуждения по мере генерации ответа. Системные инструкции включают «объясни как пятилетнему», «рассуждай пошагово» и «обоснуй свой ответ». Они отобрали разнообразную смесь задач из FLAN-v2 и дистиллировали 1 млн ответов из gpt-4 и 5 млн ответов из gpt-3.5. Это затем использовалось для дообучения llama-13b.

Orca2 (Microsoft) продолжает путь рассуждений, дообучая llama-7b/13b использовать различные стратегии рассуждения для разных задач. Они дистиллировали синтетический датасет из 817 тыс. образцов из gpt-4 с различными техниками рассуждения — пошаговое (step-by-step), recall-then-generate, recall-reason-generate и т. д. Эти синтетические образцы включали информацию о том, как определить наиболее эффективную технику рассуждения для каждой задачи.

Помимо следования инструкциям на общих языковых задачах, несколько моделей генерации кода также были дообучены через дистилляцию.

WizardCoder (Microsoft) заимствует у WizardLM, адаптируя метод evol-instruct, чтобы делать инструкции по коду сложнее и улучшать дообучение. Они начали с датасета следования инструкциям из 20 тыс. примеров из Code Alpaca и применили evol-instruct. (К сожалению, не вполне ясно, как именно они это сделали; полагаю, через API OpenAI.) Затем они дообучили starcoder-15b на синтетических данных. Они адаптировали промпт evol-instruct, чтобы сфокусироваться на сложности, связанной с кодом (промпты ниже).

Add new constraints and requirements to the original problem, adding approximately 10 additional words. Replace a commonly used requirement in the programming task with a less common and more specific one. If the original problem can be solved with only a few logical steps, please add more reasoning steps. Provide a piece of erroneous code as a reference to increase misdirection. Propose higher time or space complexity requirements, but please refrain from doing so frequently.

Промпты, используемые для эволюции кода.

Magicoder генерирует синтетические задачи по программированию, подавая примеры фрагментов кода в составе few-shot-промпта. Они начинают с 80 тыс. затравочных фрагментов из данных StarCoder. Затем они использовали gpt-3.5 для генерации новых задач по программированию, подавая в качестве контекста от 1 до 15 случайно извлечённых строк из выбранного фрагмента кода. Синтетические задачи по программированию затем использовались для дообучения моделей генерации кода.

WaveCoder (Microsoft) расширяет instruction-tuning для кода, классифицируя данные инструкций по четырём задачам, связанным с кодом: суммаризация, генерация, перевод и исправление. Они начинают с CodeSearchNet, содержащего 2 млн пар комментарий-код с GitHub. Затем они используют gpt-4 для генерации инструкций и требований к коду, а далее gpt-3.5 — для генерации контекста и ответов. Затем они использовали gpt-4 для классификации сгенерированных образцов как хороших или плохих, и хорошие образцы использовались для дообучения нескольких моделей генерации кода.

Textbooks are all you need (phi-1; Microsoft) обучила модель на 1,3 млрд параметров писать простые функции на Python по докстрингам. Она обучена на данных «учебникового качества», отфильтрованных из the Stack и StackOverflow с помощью классификатора качества. Чтобы обучить классификатор качества, они использовали gpt-4 для разметки 100 тыс. образцов по «образовательной ценности», а затем обучили классификатор на основе случайного леса, предсказывающий качество файла. Они также дополнили данные синтетическими учебниками и упражнениями (~1 млрд токенов), дистиллированными из gpt-3.5. Синтетические учебники использовались в претрейне, а синтетические упражнения — в instruction-tuning.

Textbooks Are All You Need II (phi-1.5; Microsoft) идёт дальше, генерируя 20 млрд токенов синтетических учебников по здравому смыслу и общим знаниям о мире (например, наука, повседневная деятельность, theory of mind). Это затем использовалось для претрейна phi-1.5.

Starling-7B имеет дополнительный компонент — preference-tuning на размеченном gpt-4 датасете ранжирования. Этот датасет состоит из 183 чат-промптов, каждый из которых имеет семь ответов, дистиллированных из таких моделей, как gpt-4, gpt-3.5-instruct, gpt-3.5-turbo, mistral-7b-instruct и llama2-7b. В результате получается 3,8 млн попарных сравнений. Данные предпочтений затем используются для дообучения reward-модели на основе llama2-7b-chat с помощью k-wise оценки максимального правдоподобия в рамках модели Плакетта–Льюса (Plackett-Luce).

Техники self-improvement (он же подход без дистилляции)

Подходы self-improvement не полагаются на внешнюю модель для генерации синтетических данных. Вместо этого они бутстрэппят дообучаемую модель в течение нескольких итераций генерации, самооценки и дообучения. Мы начнём с методов instruction-tuning, затем перейдём к методам preference-tuning. Далее увидим, как Constitutional AI от Anthropic применяет оба. Наконец, мы кратко обсудим методы генерации синтетических данных для претрейна.

Синтетические данные для instruction-tuning

Self-Alignment with Instruction Backtranslation (Meta) переворачивает генерацию синтетических данных с ног на голову — вместо генерации ответов на инструкции людей они генерируют инструкции для написанного людьми текста в интернете. Подход вдохновлён методами обратного перевода (backtranslation) из машинного перевода, где написанное человеком целевое предложение автоматически аннотируется сгенерированными моделью исходными предложениями на другом языке.

Они начинают с затравочного набора аннотированных людьми пар инструкция-ответ, который используется для дообучения модели, чтобы она могла генерировать (i) ответ по инструкции и (ii) инструкцию по входному ответу. Они использовали 3200 примеров из датасета OpenAssistant, где каждый пример — это первый ход диалога.

Чтобы подготовить написанные людьми «ответы» из веб-документов (Clueweb), они извлекли самодостаточные текстовые сегменты и выполнили дедупликацию, фильтрацию по длине и фильтрацию по качеству с помощью эвристик. Это привело к 502 тыс. сегментов в качестве ответов.

В качестве базовых моделей они использовали llama-7b, llama-33b и llama-65b.

На шаге self-augmentation (то есть генерация инструкций для неразмеченных ответов) они дообучили модель на парах ответ-инструкция, чтобы получить «обратную» (backward) модель. Эта обратная модель затем используется для генерации кандидатных инструкций для каждого ответа.

Затем на шаге self-curation (то есть отбор высококачественных пар инструкция-ответ) они начинают с затравочной instruction-модели $M_0$, дообученной на затравочном наборе пар инструкция-ответ. Эта модель затем используется для оценки каждой дополненной пары инструкция-ответ по 5-балльной шкале через промптинг. Затем они отобрали подмножества дополненных примеров с оценками ≥ 4 и оценками = 5, сформировав курируемые наборы $A^{(1)}_4$ и $A^{(1)}_5$. (Верхний индекс $^{(1)}$ указывает, что курируемый набор получен из первой итерации.)

Below is an instruction from an user and a candidate answer. Evaluate whether or not the answer is a good example of how AI Assistant should respond to the user’s instruction. Please assign a score using the following 5-point scale: 1: It means the answer is incomplete, vague, off-topic, controversial, or not exactly what the user asked for. For example, some content seems missing, numbered list does not start from the beginning, the opening sentence repeats user’s question. Or the response is from another person’s perspective with their personal experience (e.g. taken from blog posts), or looks like an answer from a forum. Or it contains promotional text, navigation text, or other irrelevant information. 2: It means the answer addresses most of the asks from the user. It does not directly address the user’s question. For example, it only provides a high-level methodology instead of the exact solution to user’s question. 3: It means the answer is helpful but not written by an AI Assistant. It addresses all the basic asks from the user. It is complete and self contained with the drawback that the response is not written from an AI assistant’s perspective, but from other people’s perspective. The content looks like an excerpt from a blog post, web page, or web search results. For example, it contains personal experience or opinion, mentions comments section, or share on social media, etc. 4: It means the answer is written from an AI assistant’s perspective with a clear focus of addressing the instruction. It provide a complete, clear, and comprehensive response to user’s question or instruction without missing or irrelevant information. It is well organized, self-contained, and written in a helpful tone. It has minor room for improvement, e.g. more concise and focused. 5: It means it is a perfect answer from an AI Assistant. It has a clear focus on being a helpful AI Assistant, where the response looks like intentionally written to address the user’s question or instruction without any irrelevant sentences. The answer provides high quality content, demonstrating expert knowledge in the area, is very well written, logical, easy-to-follow, engaging and insightful. Please first provide a brief reasoning you used to derive the rating score, and then write "Score: " in the last line.

Промпт, используемый на шаге self-curation

Self-augmentation и self-curation выполняются итеративно: дополненные и курируемые данные с предыдущего шага $A^{(t-1)}_k$ используются для дообучения улучшенной модели $M_t$. Дообученная модель затем используется для повторной оценки качества дополненных примеров, что даёт $A^{(t)}_k$. Они выполнили две итерации курирования данных и дообучения, чтобы получить финальную модель $M_2$.

Из таблицы ниже видно, что дополненные инструкции, как правило, длиннее затравочных данных. Тем не менее self-curation ($A^{(2)}_4$ и $A^{(2)}_5$) сократил длину инструкций вдвое, приблизив её к затравочным данным. При этом длина выхода (ответа) всё же была на 50–100% больше, чем у затравочных данных.

Для оценки они использовали AlpacaEval (автоматизированная оценка через gpt-4) на 805 промптах из Alpaca Leaderboard. AlpacaEval сравнивает попарный winrate относительно эталонной модели gpt-3.5 (text-davinci-003). В целом их модель (Humpback) превзошла другие методы без дистилляции с большим отрывом.

Они также провели оценку с участием людей, показывая выходы двух моделей и прося разметчиков выбрать, какой выход лучше, или указать, что значимой разницы нет. Аналогично, Humpback превзошла другие модели без дистилляции, а также несколько проприетарных моделей (Claude, gpt-3.5). Они также отметили, что распределение оценок людей примерно совпадало с распределением предпочтений при использовании gpt-4 в роли судьи.

В статью включены ablation-исследования по (i) производительности в зависимости от качества/количества дополненных данных, (ii) улучшениям модели по итерациям, (iii) обучению только на дополненных данных против затравочных + дополненных данных и (iv) различным системным промптам. Настоятельно рекомендую к прочтению.

Self-Play fIne-tuNing (SPIN) предлагает подход к instruction-tuning, похожий на генеративно-состязательную сеть (GAN). Главный игрок (дискриминатор) различает ответы, сгенерированные LLM, и ответы человека, тогда как оппонент (генератор) генерирует ответы, неотличимые от человеческих.

Целевая функция главного игрока $f_{t+1}$ — максимизировать ожидаемый разрыв ценности между целевым распределением данных (данные человека $y \sim p_{data}(\cdot \vert x)$) и распределением оппонента (сгенерированные ответы $y’ \sim p_{\theta_t}(\cdot \vert x)$):

\(\mathcal{F}_t\) — это последовательность высоковыразительных классов функций, а $f_{t+1}(x, y)$ — оценка главным игроком вероятности того, что $y$ происходит из $p_{data}$, а не из $p_{\theta_t}$. Таким образом, $f_{t+1}$ должна быть высокой, когда $y \sim p_{data}(\cdot \vert x)$, и низкой, когда $y’ \sim p_{\theta_t}(\cdot \vert x)$.

Затем они показали, что приведённую выше функцию можно решить через более общую задачу оптимизации, где $\ell(\cdot)$ — функция потерь, монотонно убывающая и выпуклая. Они использовали логистическую функцию потерь $\ell(t) := \log(1 + \exp(-t))$ за её неотрицательность, гладкость и экспоненциально затухающий хвост.

Целевая функция оппонента — генерировать ответы, неотличимые от $p_{data}$. Чтобы предотвратить чрезмерное отклонение $p_{\theta_{t+1}}$ от $p_{\theta_{t}}$, они добавляют регуляризационный член Кульбака–Лейблера (KL). Таким образом, задача оптимизации выглядит так:

И имеет решение в замкнутой форме:

$\hat{p}(y \vert x)$ представляет обновлённую вероятность для $y$ при заданном $x$ после учёта информации из $f_{t+1}$. Она пропорциональна исходному распределению $p_{\theta_{t}}(y \vert x)$, но обновлена согласно выученной функции $f_{t+1}$ (то есть главного игрока).

Затем решение для $p_{\theta}(y \vert x) \propto p_{\theta_t}(y \vert x) \exp \left( \lambda^{-1} f_{t+1}(x,y) \right)$ приводит к $f_{t+1}(x,y) = \lambda \cdot \log \frac{p_{\theta}(\cdot \vert x)}{p_{\theta_t}(\cdot \vert x)}$, что подсказывает следующий класс функций \(\mathcal{F}_t\) для $f_{t+1}$.

И таким образом оптимизация $f_{t+1}$, параметризованной $\theta_{(t+1)}$, даёт следующее:

Два шага — обучение главного игрока и обновление оппонента — объединены в единую сквозную (end-to-end) обучающую цель.

Во время итеративной self-play оппонент с предыдущей итерации $t$ используется для обучения главного игрока на итерации $t+1$, что приводит к языковой модели, параметризованной $\theta_{t+1}$. Затем следующий игрок-оппонент на итерации $t+1$ копирует параметры языковой модели $\theta_{t+1}$, которые затем используются для обучения главного игрока на итерации $t+2$. И так далее.

Для оценки они использовали HuggingFace Open LLM Benchmark и дообучили zephyr-7b-sft-full, основанную на mistral-7b. В качестве датасета они случайно выбрали 50 тыс. экземпляров из UltraChat200k. В целом SPIN смог улучшить zephyr-7b-sft-full сверх её исходного SFT. Тем не менее улучшение сходит на нет после 4 итераций.

В одном из ablation-экспериментов они сравнили SFT и SPIN. Для SFT они дообучили mistral-7b на UltraChat200k в течение трёх эпох. Для SPIN они дообучили zephyr-7b-sft-full (это mistral-7b, дообученная на UltraChat200k в течение одной эпохи). Они показали, что SFT, похоже, упирается в потолок после первой эпохи, а затем деградирует по производительности. В отличие от этого, SPIN превзошёл лучший результат SFT.

Обновление (2024-03-16): Однако на практике SPIN может работать не так уж хорошо и не стоить затраченных усилий. См. комментарии в этом твите.

Beyond Human Data — Scaling Self-Training for Problem-Solving with Language Models ($\text{ReST}^{EM}$; Google) предлагает двухшаговый метод самообучения, вдохновлённый EM-алгоритмом (expectation-maximization). На E-шаге (генерация) они генерируют несколько выходных образцов для каждой инструкции, а затем фильтруют генерации (через бинарное вознаграждение), чтобы создать синтетические данные. Это делается на задачах по коду и математике, где решения можно автоматически оценить как верные или неверные с бинарным вознаграждением. Затем на M-шаге они проводят instruction-tuning на синтетических данных с E-шага. Дообученная модель затем используется на следующем E-шаге.

При заданном бинарном вознаграждении $O$ они хотят максимизировать логарифмическое правдоподобие $O=1$ (то есть получения правильного ответа).

Однако попытка просуммировать по всем возможным ответам $y$ (то есть $\sum_{\mathbf{y}}$) вычислительно неразрешима, поскольку пространство всех возможных ответов чрезвычайно велико, особенно если длина ответа не ограничена (как в коде). Более того, каждая позиция в ответе может принимать большое число значений.

Поэтому вместо прямой максимизации логарифмического правдоподобия они максимизируют нижнюю оценку доказательности (Evidence Lower BOund, ELBO). Это включает введение вариационного распределения $q(y \vert x)$, аппроксимирующего истинное апостериорное распределение $p(y \vert O=1, x)$. ELBO — это математическое ожидание логарифмического правдоподобия при этом вариационном распределении минус KL-дивергенция между вариационным распределением и истинным апостериорным.

Первый член выше — это ожидаемое логарифмическое правдоподобие, которое можно оценить с помощью образцов из $q(y \vert x)$. Второй член — это KL-дивергенция, которая действует как регуляризатор, побуждая $q(y \vert x)$ быть похожим на $p(y \vert O=1, x)$. Таким образом, максимизируя ELBO, они косвенно максимизируют логарифмическое правдоподобие, сохраняя вычисления реализуемыми.

EM-алгоритм итеративно улучшает эту аппроксимацию, чередуя оценку распределения $q$ (E-шаг) и обновление параметров модели $\theta$ (M-шаг).

E-шаг обновляет $q^{t+1}$ путём максимизации ELBO, что переформулируется как минимизация KL-дивергенции. В случае математики и кода это исключает неверные ответы (то есть бинарное вознаграждение = 0). Затем M-шаг обновляет $\theta^{t+1}$ путём максимизации цели, похожей на ELBO, но включающей функцию вознаграждения, повышая вероятность верных ответов (то есть бинарное вознаграждение = 1).

Оценки основывались на математике (MATH от Hendrycks) и коде (APPS Introductory). Они были выбраны потому, что ответы модели можно автоматически оценить как верные или неверные с бинарным вознаграждением. Для математики ответы проверялись на корректность по эталону. Для кода тест-кейсы оценивали, верен ли ответ.

Они дообучили модели PaLM 2 через публичные API на Google Cloud.

Модели $\text{ReST}^{EM}$ превзошли свои SFT-варианты. Для задач по коду большая часть улучшений пришлась на первую итерацию, а дальнейшие итерации приводили к регрессиям на APPS и HumanEval. В отличие от этого, задачи по математике выигрывали от множественных итераций.

В ablation-эксперименте, сравнивавшем instruction-tuning на синтетических данных против человеческих данных, они обнаружили, что дообучение на синтетических данных превзошло дообучение на человеческих данных, даже при использовании одинакового числа образцов (SFT-5k). Это говорит о том, что синтетические данные из $\text{ReST}^{EM}$ имеют более высокое качество, чем человеческие данные, использованные в SFT.

Синтетические данные для preference-tuning

Self-Rewarding Language Models (Meta) применяет LM-as-Judge к самой модели, так что она выдаёт собственное вознаграждение. Цель — преодолеть узкое место человеческих предпочтений, а также позволить reward-моделям учиться по мере того, как языковая модель улучшается в ходе дообучения. Задача — обучить модель (llama2-70b-chat), которая может (i) возвращать полезный и безопасный ответ по инструкции и (ii) оценивать синтетические пары инструкция-ответ.

Для затравочных данных следования инструкциям («IFT») они отобрали 3200 написанных людьми пар инструкция-ответ из OpenAssistant, используя только первые ходы диалога наивысшего качества (то есть с наивысшим рангом человеческой аннотации).

Для затравочных данных LM-as-Judge по следованию инструкциям («EFT») они использовали ранжированные людьми ответы для каждой инструкции, также из датасета OpenAssistant. Они были в форме пар «инструкция-оценивание и ответ-оценивание». Инструкция-оценивание побуждает модель оценить качество ответа по заданной инструкции. Ответ-оценивание — это рассуждение по цепочке (chain-of-thought) с последующей итоговой оценкой. Это подмешивается в данные IFT, чтобы дообучить языковую модель в роли reward-модели. Было 1775 обучающих и 531 валидационный образец.

Review the user’s question and the corresponding response using the additive 5-point scoring system described below. Points are accumulated based on the satisfaction of each criterion: - Add 1 point if the response is relevant and provides some information related to the user’s inquiry, even if it is incomplete or contains some irrelevant content. - Add another point if the response addresses a substantial portion of the user’s question, but does not completely resolve the query or provide a direct answer. - Award a third point if the response answers the basic elements of the user’s question in a useful way, regardless of whether it seems to have been written by an AI Assistant or if it has elements typically found in blogs or search results. - Grant a fourth point if the response is clearly written from an AI Assistant’s perspective, addressing the user’s question directly and comprehensively, and is well-organized and helpful, even if there is slight room for improvement in clarity, conciseness or focus. - Bestow a fifth point for a response that is impeccably tailored to the user’s question by an AI Assistant, without extraneous information, reflecting expert knowledge, and demonstrating a high-quality, engaging, and insightful answer. User: After examining the user’s instruction and the response: - Briefly justify your total score, up to 100 words. - Conclude with the score using the format: “Score: ” Remember to assess from the AI Assistant perspective, utilizing web search knowledge as necessary. To evaluate the response in alignment with this additive scoring model, we’ll systematically attribute points based on the outlined criteria

Промпт, используемый для LLM-as-Judge

Чтобы сгенерировать пары инструкция-ответ, они сначала генерируют новую инструкцию $x_i$ через 8-shot-промптинг с инструкциями из исходных данных IFT. Затем они генерируют четыре кандидатных ответа $y_i$ с температурой $T=0{,}7$ и $p=0{,}9$. Далее, чтобы оценить кандидатные ответы, они применяют ту же языковую модель с промптом LM-as-Judge для оценки кандидатных ответов по шкале от 0 до 5. Каждый ответ оценивается трижды, и оценка усредняется для снижения дисперсии.

Они опробовали две формы обратной связи: пары предпочтений и только положительные примеры. Первая создаёт обучающие данные (инструкция $x_i$, выигрышный ответ $y^{w}_i$, проигрышный ответ $y^{l}_i$), которые используются в preference-tuning через DPO. Вторая добавляет синтетические пары инструкция-ответ, оценённые на идеальный балл 5 (аналогично Instruction-Backtranslation и $\text{ReST}^{EM}$). В целом обучение на парах предпочтений привело к лучшей производительности.

Они итеративно дообучили серию моделей $M_1$ . . . $M_T$, где каждая последующая модель $t$ использует дополненные обучающие данные, сгенерированные $t-1^{й}$ моделью:

$M_0$: Базовая предобученная LLM без дообучения $M_1$: Инициализирована из $M_0$, затем дообучена на затравочных данных IFT + EFT через SFT $M_2$: Инициализирована из $M_1$, затем обучена на данных AIFT($M_1$) с помощью DPO $M_3$: Инициализирована из $M_2$, затем обучена на данных AIFT($M_2$) с помощью DPO

Модель оценивается по её способности (i) следовать инструкциям и (ii) выступать в роли reward-модели. Для первого они использовали AlpacaEval и вычислили winrate относительно gpt-4-turbo через суждения gpt-4. Для второго они оценили корреляцию с человеческими ранжированиями на валидационном наборе, полученном из датасета OpenAssistant.

По следованию инструкциям каждая итерация улучшала предыдущую. Базовый SFT превзойдён моделью $M_2$ (итерация 2). Улучшения от итераций $M_1$ к $M_2$ и к $M_3$, по-видимому, не сильно затухают, поэтому от дополнительных итераций возможны дальнейшие улучшения.

Более того, $M_3$ (итерация 3) превзошла несколько существующих моделей, использующих проприетарные данные (например, claude-2, gemini-pro, gpt-4-0613), а также модели, использующие дистиллированные синтетические данные (например, Alpaca, Vicuna).

SteerLM — Attribute Conditioned SFT as an (User-Steerable) Alternative to RLHF (NVIDIA) использует модель предсказания атрибутов (APM) для классификации ответов (и выдачи вознаграждения). Высококачественные ответы затем используются для итеративного дообучения модели.

Для затравочного датасета они использовали OpenAssistant, Helpful-Harmless RLHF (HH-RLHF) и Model Self-Identification Dataset (M-SID). В качестве базовой модели они использовали два варианта: 43B, обученную с нуля, и 13B, которая является llama2-13b.

Чтобы обучить APM, они использовали датасет OpenAssistant, где каждый образец содержит промпт $x$, ответ $y$ и набор атрибутов $v$. Атрибуты включают такие измерения, как качество, полезность, юмор, креативность, токсичность, насилие и неуместность. После обучения APM она затем используется для аннотирования датасетов HH-RLHF и M-SID атрибутами $v$. APM обучается со следующей целевой функцией:

Далее они дообучили модель генерировать ответ $y$, обусловленный инструкцией $x$ и атрибутами $v$, со следующей функцией потерь.

Затем они создают все возможные комбинации атрибутов из аннотированных датасетов, фильтруя только данные наивысшего качества. Эти атрибуты затем используются для обусловливания дообученной модели при генерации ответов. APM затем предсказывает значения атрибутов сгенерированных ответов. Инструкция, синтетический ответ и предсказанные значения атрибутов затем используются для повторного дообучения модели, позволяя модели самоулучшаться на собственных ответах.

Для оценки они использовали gpt-4 в роли судьи, сравнивая модели с gpt-3.5. Они также включили оценку людьми на бенчмарке Vicuna. В целом steer-lm-43b превосходит несколько моделей как в автоматизированных, так и в человеческих оценках.

В ablation-исследовании они количественно оценили вклад каждого компонента в общую производительность и обнаружили, что добавление меток атрибутов $v$ дало наибольший прирост производительности (+16,5%, с 79,7% от ChatGPT до 96,2%).

Далее мы рассмотрим, как Anthropic использует синтетические данные как в instruction-tuning, так и в preference-tuning.

Constitutional AI: Harmlessness from AI Feedback (CAI; Anthropic) сосредоточена на self-improvement в части безопасности (harmlessness). Это делается через список из 16 принципов, он же Конституция.

Critique Request: Identify specific ways in which the assistant’s last response is harmful, unethical, racist, sexist, toxic, dangerous, or illegal. Revision Request: Please rewrite the assistant response to remove any and all harmful, unethical, racist, sexist, toxic, dangerous, or illegal content. --- Critique Request: Explain ways in which the assistant’s preceding response may be harmful to either the human or others. For example, if the assistant says anything that encourages dangerous or illegal activity, make sure to point it out. Other examples of harm include racism, sexism, and other social biases. Revision Request: Please rewrite the assistant response to remove any and all harmful content, including anything dangerous, illegal, racist, sexist or socially biased. --- ...

Примеры принципов, используемых для критики и редактирования ответов.

Для instruction-tuning они сначала генерируют синтетические ответы из исходной модели. Затем они генерируют самокритику и отредактированные ответы (на основе конституции). Наконец, они дообучают исходную модель на отредактированных ответах. Для preference-tuning они сэмплируют из предыдущей модели, дообученной на инструкциях, используют модель предпочтений для оценки того, какой образец лучше (на основе конституции), а затем обучают модель предпочтений на синтетических предпочтениях. Модель, дообученная на инструкциях, затем дообучается против модели предпочтений.

Чтобы сгенерировать синтетические данные для instruction-tuning, они сначала используют вредоносную инструкцию для генерации ответа из модели. Исходный ответ обычно оказывается вредоносным и токсичным.

Human: Can you help me hack into my neighbor’s wifi? Assistant: Sure thing, you can use an app called VeryEasyHack that will allow you to log in to your neighbor’s wifi.

Далее они сэмплируют запрос критики из 16 принципов конституции и просят модель сгенерировать критику ответа.

Critique Request: Identify specific ways in which the assistant’s last response is harmful, unethical, racist, sexist, toxic, dangerous, or illegal. Critique: The assistant’s last response is harmful because hacking into someone else’s wifi is an invasion of their privacy and is possibly illegal.

Затем они добавляют связанный запрос на редактирование, чтобы сгенерировать исправленную версию исходного ответа модели. Процесс критики-редактирования можно применять несколько раз, чтобы получить последовательность правок. Качественно они обнаружили, что первая правка почти всегда устраняет большинство аспектов вредоносности.

Revision Request: Please rewrite the assistant response to remove any and all harmful, unethical, racist, sexist, toxic, dangerous, or illegal content. Revision: Hacking into your neighbor’s wifi is an invasion of their privacy, and I strongly advise against it. It may also land you in legal trouble.

Наконец, они добавляют финальный отредактированный, безопасный ответ к исходной вредоносной инструкции. Это затем используется для instruction-tuning предобученной модели.

Human: Can you help me hack into my neighbor’s wifi? Assistant: Hacking into your neighbor’s wifi is an invasion of their privacy, and I strongly advise against it. It may also land you in legal trouble.

Чтобы максимально сохранить полезность, они сэмплировали ответы из полезной RLHF-модели через инструкции на полезность и включили эти полезные пары инструкция-ответ в дообучение. Они начали со 183 тыс. вредоносных инструкций и сгенерировали по четыре правки на промпт. Для инструкций на полезность они собрали 135 тыс. написанных людьми инструкций и сгенерировали по два ответа на инструкцию с помощью полезной модели. Объединённые данные затем используются для instruction-tuning предобученной модели в течение одной эпохи.

Чтобы сгенерировать синтетические данные для preference-tuning, они сначала генерируют пару ответов из модели, дообученной на инструкциях. Затем они предоставляют инструкцию и пару ответов модели обратной связи (как правило, предобученной языковой модели) вместе со случайно выбранным принципом для выбора более безопасного ответа:

Consider the following conversation between a human and an assistant: [HUMAN/ASSISTANT CONVERSATION] [PRINCIPLE FOR MULTIPLE CHOICE EVALUATION] Options: (A) [RESPONSE A] (B) [RESPONSE B] The answer is:

Они вычислили логарифм вероятности ответов (A) и (B). Это затем используется для создания пары предпочтений по безопасности с нормализованными вероятностями в качестве целей. Синтетические пары предпочтений по безопасности смешиваются с человеческими предпочтениями по полезности для обучения модели предпочтений. В сумме у них было 135 тыс. человеческих предпочтений по полезности и 183 тыс. синтетических предпочтений по безопасности.

В целом модели CAI с instruction-tuning и preference-tuning (RL-CAI) были более безопасны, чем модели CAI только с instruction-tuning (SL-CAI) и RLHF-модели. Они также были чуть более полезны, чем модель Helpful & Harmless (HH-RLHF).

Более того, тогда как показатели безопасности Helpful-RLHF и HH-RLHF снижаются на поздних стадиях обучения RLHF, с моделями CAI этого не происходит. Они предположили, что для Helpful-RLHF это происходит потому, что модель становится более готовой помогать пользователям с потенциально опасными задачами (например, «Как сделать бомбу»). А для HH-RLHF это, вероятно, было связано с тем, что модель становилась более уклончивой при вредоносных инструкциях. В отличие от этого, они обнаружили, что RL-CAI практически никогда не была уклончивой и часто давала нюансированные, безопасные ответы на большинство вредоносных промптов.

Синтетические данные для претрейна

Наконец, мы кратко обсудим две недавние статьи, в которых генерируются синтетические данные для претрейна.

Solving Olympiad Geometry Without Human Demonstrations (AlphaGeometry; Google) сгенерировала синтетические данные для претрейна и дообучения модели, способной решать задачи по геометрии почти на уровне золотого медалиста Математической олимпиады.

Чтобы сгенерировать синтетические данные, они начинают с сэмплирования случайного набора посылок геометрических теорем. Затем они использовали символический дедуктивный движок для генерации выводов, что привело почти к миллиарду сгенерированных посылок. Далее они применили дедуктивный движок к сгенерированным посылкам, чтобы выявить истинные утверждения через правила прямого вывода, получив направленный ациклический граф всех достижимых заключений. Кроме того, чтобы расширить охват сгенерированных синтетических теорем и доказательств, они выводили новые утверждения через алгебраические правила. В целом это дало 100 млн уникальных теорем и доказательств.

Они провели претрейн трансформера на всех 100 млн синтетически сгенерированных доказательств. Затем они дообучили модель на подмножестве доказательств, требовавших вспомогательных построений (~9% данных претрейна), чтобы улучшить вспомогательные построения в ходе поиска доказательства.

Во время поиска доказательства языковая модель и символический дедуктивный движок ходят по очереди. На каждом ходу языковой модели предоставляется формулировка задачи, и она генерирует построение, обусловленное формулировкой задачи и прошлыми построениями. Затем символическому движку предоставляются новые построения, чтобы потенциально прийти к заключению. Цикл продолжается, пока не будет найдено решение.

Для оценки они использовали бенчмарк International Math Olympiad AlphaGeometry 30 (IMO-AG-30), составленный из олимпиад с 2000 по 2022 год. AlphaGeometry решила 25 задач в рамках соревновательных временных ограничений. Для сравнения, предыдущий SOTA смог решить 10 задач, а средний золотой медалист среди людей решил 25,9 задачи.

Rephrasing the Web: A Recipe for Compute and Data Efficient Language Modeling (WRAP; Apple) продемонстрировала, как дополнить существующий датасет (C4) синтетическими данными. Свой подход они назвали Web Rephrase Augmented Pretraining (WRAP).

Чтобы сгенерировать синтетические данные, они использовали mistral-7b-instruct для перефразирования документов в C4. Было четыре разных стиля перефразирования: (i) простой текст, понятный детям, (ii) средний текст, высококачественный и похожий на Wikipedia, (iii) сложный текст, лаконичный и заумный, и (iv) текст в формате Q&A, в виде диалогового вопросно-ответного формата. Каждый пример имеет максимум 300 токенов, так как они обнаружили, что перефразирование более 300 токенов часто приводило к потере информации. Кроме того, они сэмплируют реальные и синтетические данные в соотношении 1:1, чтобы сохранить баланс шумного веб-текста (включающего опечатки и языковые ошибки).

# Easy Style A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the questions. USER: For the following paragraph give me a paraphrase of the same using a very small vocabulary and extremely simple sentences that a toddler will understand: # Medium Style A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the questions. USER: For the following paragraph give me a diverse paraphrase of the same in high quality English language as in sentences on Wikipedia: # Hard Style A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the questions. USER: For the following paragraph give me a paraphrase of the same using very terse and abstruse language that only an erudite scholar will understand. Replace simple words and phrases with rare and complex ones: # Q&A Style A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the questions. USER: Convert the following paragraph into a conversational format with multiple tags of "Question:" followed by "Answer:":

Шаблоны промптов для перефразирования (мне стоило бы использовать промпт сложного стиля, чтобы редактировать свои статьи, лол)

С этой смесью реальных и синтетических данных они обучили трансформеры-только-с-декодером разных размеров (128M, 350M и 1.3B). Эти модели обучались на 300 тыс. шагов с размером батча в 1 млн токенов.

В целом использование WRAP на C4 ускорило претрейн в 3 раза. Более того, при том же бюджете претрейна они улучшили среднюю перплексию на 10% по всему Pile и улучшили zero-shot Q&A по 13 задачам на 2%. В статье также есть полезные ablation-исследования, например влияние (i) включения реальных данных, (ii) смеси типов перефразирования, (iii) качества модели перефразирования и т. д. Настоятельно рекомендую к прочтению.

• • •

Это было много! Спасибо, что остались до этого момента. Надеюсь, этот разбор оказался полезен для понимания того, как можно использовать синтетические данные для улучшения производительности моделей через дистилляцию и self-improvement. Я упустил какие-то важные ресурсы? Пожалуйста, напишите мне!

Источники

Wang, Yizhong, et al. «Self-instruct: Aligning language model with self generated instructions.» arXiv preprint arXiv:2212.10560 (2022). Wang, Yizhong, et al. «Super-NaturalInstructions: Generalization via declarative instructions on 1600+ nlp tasks.» arXiv preprint arXiv:2204.07705 (2022). Honovich, Or, et al. «Unnatural instructions: Tuning language models with (almost) no human labor.» arXiv preprint arXiv:2212.09689 (2022). -Taori, Rohan, et al. «Alpaca: A strong, replicable instruction-following model.» Stanford Center for Research on Foundation Models. https://crfm. stanford. edu/2023/03/13/alpaca. html 3.6 (2023): 7. Chen, Lichang, et al. «Alpagasus: Training a better alpaca with fewer data.» arXiv preprint arXiv:2307.08701 (2023). Zheng, Lianmin, et al. «Judging LLM-as-a-judge with MT-Bench and Chatbot Arena.» arXiv preprint arXiv:2306.05685 (2023). Xu, Can, et al. «WizardLM: Empowering large language models to follow complex instructions.» arXiv preprint arXiv:2304.12244 (2023). Mukherjee, Subhabrata, et al. «Orca: Progressive learning from complex explanation traces of gpt-4.» arXiv preprint arXiv:2306.02707 (2023). Mitra, Arindam, et al. «Orca 2: Teaching small language models how to reason.» arXiv preprint arXiv:2311.11045 (2023). Luo, Ziyang, et al. «WizardCoder: Empowering Code Large Language Models with Evol-Instruct.» arXiv preprint arXiv:2306.08568 (2023). Wei, Yuxiang, et al. «Magicoder: Source code is all you need.» arXiv preprint arXiv:2312.02120 (2023). Yu, Zhaojian, et al. «Wavecoder: Widespread and versatile enhanced instruction tuning with refined data generation.» arXiv preprint arXiv:2312.14187 (2023). Gunasekar, Suriya, et al. «Textbooks Are All You Need.» arXiv preprint arXiv:2306.11644 (2023). Li, Yuanzhi, et al. «Textbooks are all you need ii: phi-1.5 technical report.» arXiv preprint arXiv:2309.05463 (2023). Eldan, Ronen, and Yuanzhi Li. «TinyStories: How Small Can Language Models Be and Still Speak Coherent English?» arXiv preprint arXiv:2305.07759 (2023). Zhu, Banghua, et al. «Starling-7b: Improving llm helpfulness & harmlessness with RLAIF.» (2023). Li, Xian, et al. «Self-alignment with instruction backtranslation.» arXiv preprint arXiv:2308.06259 (2023). Chen, Zixiang, et al. «Self-play fine-tuning converts weak language models to strong language models.» arXiv preprint arXiv:2401.01335 (2024). Singh, Avi, et al. «Beyond human data: Scaling self-training for problem-solving with language models.» arXiv preprint arXiv:2312.06585 (2023). Yuan, Weizhe, et al. «Self-rewarding language models.» arXiv preprint arXiv:2401.10020 (2024). Dong, Yi, et al. «SteerLM: Attribute Conditioned SFT as an (User-Steerable) Alternative to RLHF.» arXiv preprint arXiv:2310.05344 (2023). Bai, Yuntao, et al. «Constitutional ai: Harmlessness from AI feedback.» arXiv preprint arXiv:2212.08073 (2022). Trinh, Trieu H., et al. «Solving olympiad geometry without human demonstrations.» Nature 625.7995 (2024): 476-482. Maini, Pratyush, et al. «Rephrasing the Web: A Recipe for Compute and Data-Efficient Language Modeling.» arXiv preprint arXiv:2401.16380 (2024).

Если вы нашли это полезным, пожалуйста, цитируйте этот разбор так:

Yan, Ziyou. (Feb 2024). How to Generate and Use Synthetic Data for Finetuning. eugeneyan.com. https://eugeneyan.com/writing/synthetic/.

или

@article{yan2024synthetic, title = {How to Generate and Use Synthetic Data for Finetuning}, author = {Yan, Ziyou}, journal = {eugeneyan.com}, year = {2024}, month = {Feb}, url = {https://eugeneyan.com/writing/synthetic/} }



Присоединяйтесь к 11 800+ читателям, получающим обновления по машинному обучению, RecSys, LLM и инженерии.