Коннекционизм.
ЛЕКЦИЯ 7. Обучение без учителя и доводка моделей: от Fine-tuning к Alignment
- 15.11.26 г.
- 9772225665000 26024
Общие положения
В предыдущей лекции мы разобрали математику обучения: функцию потерь, градиентный спуск, Backpropagation, оптимизаторы и переобучение. Мы поняли, как сеть учится.
Но остался вопрос: чему она учится? И главное — как из «сырой» модели, которая просто предсказывает следующий токен, получается ChatGPT, который вежливо отвечает на вопросы, отказывается от вредных запросов и следует инструкциям?
Эта лекция — о переходе от чистой математики к инженерной практике современных LLM. Мы разберем три этапа, которые проходит каждая современная языковая модель: предобучение, supervised fine-tuning и alignment через RLHF. Мы увидим, почему «просто обучить на всех текстах интернета» недостаточно, и как человеческая обратная связь превращает статистического попугая в полезного ассистента.
Термин «стохастический попугай» (stochastic parrot) был предложен Э.Бендер и коллегами в 2021 году для описания языковых моделей, которые статистически предсказывают слова, не понимая их значения. Отметим, что «стохастический попугай» — это критика, а не нейтральное описание. Это важное понятие: оно напоминает, что модель не «думает», а вычисляет вероятности. Задача alignment — сделать так, чтобы этот «попугай» был хотя бы полезным и безопасным.
1. Обучение без учителя и самообучение: как модель учится понимать мир
1.1. Предобучение как первый этап
Предобучение (pre-training) — это первый и, как правило, самый дорогой по вычислениям этап обучения языковой модели. Модель читает триллионы токенов — книги, статьи, код, интернет-страницы — и учится предсказывать следующее слово. Именно на этом этапе она получает знания о языке и мире. По объему вычислений и данных предобучение обычно превышает все последующие этапы вместе взятые.
Предобучение языковых моделей относится к self-supervised learning (самообучению / самоконтролируемому обучению).
1.2. Различие терминов
Важно четко различать три категории:
- Unsupervised learning (обучение без учителя) — меток нет вообще; примеры: кластеризация, PCA;
- Self-supervised learning — метки есть, но они автоматически извлекаются из самих данных (предсказание следующего слова, маскирование токенов); участия человека в разметке нет;
- Supervised learning — метки размечены человеком.
Self-supervised learning занимает промежуточное положение: формально метки существуют, но создаются автоматически. Некоторые исследователи выделяют self-supervised в отдельную категорию, а не считают его промежуточным между supervised и unsupervised. В контексте LLM термин self-supervised стал стандартным.
Аналогия. Ребенок учится говорить, слушая речь взрослых. Никто не дает ему размеченный датасет «правильных» и «неправильных» предложений. Он просто замечает закономерности: после «мама» часто идет «мыла», после «я» — «хочу». Так и языковая модель: она «читает» интернет и учится предсказывать.
На этапе предобучения модель осваивает не только грамматику, но и статистику мира: типичные факты, стили речи, простые рассуждения. Все это — в форме вероятностей, а не осознанного понимания. Модель не «знает» факты в человеческом смысле — она знает, какие последовательности слов вероятны. Если спросить ее: «Кто написал „Войну и мир“?», она ответит «Толстой», потому что в обучающих данных эта последовательность встречалась часто. Но она не «понимает», что такое Толстой или война.
Это не значит, что модель бесполезна. Она может давать правильные ответы, но ее «понимание» — это статистика, а не осознание. Именно поэтому она может галлюцинировать: если статистика подводит, модель уверенно выдает ложь.
1.3. Кластеризация
Кластеризация — это группировка похожих объектов без заранее заданных меток. Это классический пример unsupervised learning.
Пример. Если дать сети тысячи новостных статей без разметки, она может сгруппировать их по темам: спорт, политика, технологии, культура. Никто не говорил ей, какие бывают темы — она нашла их сама.
Применение. Сегментация клиентов, группировка документов, анализ рынка.
1.4. PCA (Principal Component Analysis)
PCA — это классический статистический метод уменьшения размерности данных. Он находит самые важные направления, в которых данные изменяются сильнее всего. Хотя PCA изначально не нейросетевой метод, его можно реализовать и через нейросеть — в виде линейного автокодировщика с одним скрытым слоем.
Аналогия. Представьте, что вы фотографируете трехмерный объект. Вы можете сделать тысячи снимков с разных углов, но для понимания формы достаточно нескольких. PCA находит эти «главные углы».
1.5. Автокодировщики
Автокодировщик — это сеть, которая сжимает данные до компактного «кода», а затем восстанавливает их обратно. (Мы уже встречали его в Лекции 4 как «сжимающую» сеть.)
Применение. Поиск аномалий (если сеть не может восстановить объект — значит, он необычный), удаление шума, уменьшение размерности.
2. Смешанное обучение (Semi-supervised Learning)
2.1. Проблема разметки
Размеченные данные очень дороги. Чтобы обучить модель отличать спам от не-спама, нужно, чтобы человек прочитал тысячи писем и пометил каждое. Это дорого и медленно.
А вот неразмеченных данных — сколько угодно. Весь интернет — это неразмеченный текст.
2.2. Решение
Semi-supervised learning (смешанное / полуконтролируемое обучение) комбинирует оба подхода: сначала сеть учится на неразмеченных данных (unsupervised или self-supervised), потом доводится на размеченных (supervised).
Пример. Вы хотите обучить модель для юридической фирмы. У вас есть миллионы страниц юридических текстов (без разметки) и всего сотня примеров «вопрос–ответ» от юристов (с разметкой). Модель сначала читает все тексты, чтобы понять язык права, а потом дообучается на сотне примеров, чтобы научиться отвечать на вопросы.
3. Fine-tuning: как сделать модель специалистом
3.1. Что это такое
Fine-tuning (дообучение) — это процесс, при котором мы берем предобученную модель и дообучаем ее на своих данных, чтобы она лучше решала конкретную задачу.
Предобученная модель уже «понимает» язык. Она знает грамматику, факты о мире, стили речи. Fine-tuning не учит ее языку заново — он специализирует ее.
Fine-tuning можно применять к любой модели, к которой есть доступ к весам (параметрам) и архитектуре. Чаще всего это именно открытые модели (open-weight), например: Llama 3, Mistral, Qwen (Alibaba) и другие из Hugging Face. У них выложены веса, и сообщество массово делает дообучения под свои задачи. Но даже если модель «открытая», у неё есть лицензия, и она может запрещать коммерческое использование или требовать раскрытия производных моделей.
Instruction tuning — это частный случай SFT (Supervised Fine-Tuning), при котором модель дообучают именно на инструкциях: парах «запрос — желаемый ответ», заданиях на выполнение действий, диалогах. В разных работах термины используют по-разному: иногда instruction tuning считают частным случаем SFT, иногда выделяют как отдельный этап. В контексте современных LLM эти понятия часто используют почти как синонимы.
Аналогия. Вы наняли образованного человека. Он умеет читать, писать, логически мыслить. Но он не знает вашу компанию. Fine-tuning — это как вводный курс для нового сотрудника: он не учит его читать заново, он объясняет, как работают именно ваши процессы.
3.2. Зачем нужен Fine-tuning
Точность. Модель, дообученная на ваших данных, лучше справляется с вашей задачей, чем универсальная.
Стиль и тон. Вы можете научить модель говорить в определенном стиле: официально, дружелюбно, технически.
Формат. Модель может выдавать ответы в нужном формате: JSON, таблица, список.
Экономия. Дообученная модель требует более коротких промптов, потому что она уже «знает», что делать. Это снижает стоимость и задержку.
Дистилляция. Вы можете использовать большую модель, чтобы дообучить маленькую, и получить похожее качество при меньших затратах.
3.3. Как это работает и ограничения
Вы берете предобученную модель и дообучаете ее на парах «вопрос–ответ» из вашей предметной области. Модель корректирует свои веса так, чтобы лучше отвечать на ваши вопросы.
Fine-tuning в первую очередь специализирует то, что модель уже знает, и улучшает доступ к знаниям, которые в ней уже были, но плохо извлекались. Если в данных дообучения есть узкоспециализированная информация, модель может ее частично усвоить. Однако объем такого усвоения ограничен.
Существует большой риск — катастрофическое забывание (catastrophic forgetting). Это ситуация, когда при дообучении на новой задаче модель «забывает» часть того, что знала раньше. Например, если сильно дообучить модель на медицинских текстах, она может хуже отвечать на общие вопросы. Именно поэтому fine-tuning требует осторожности: слишком агрессивное дообучение может исказить общие способности модели.
Для актуальной информации, которая быстро меняется (новости, цены, внутренние документы компании), гораздо надежнее использовать RAG.
RAG (Retrieval-Augmented Generation) — это подход, при котором модель сначала ищет информацию в базе документов, а затем генерирует ответ на основе найденного. RAG не меняет веса модели, он добавляет внешнюю память. Это особенно полезно для знаний, которые устаревают или являются конфиденциальными.
RAG — это не замена fine-tuning, а дополнение. Fine-tuning меняет поведение и стиль модели, RAG добавляет актуальные знания. Их часто используют вместе: дообучают модель на стиле и форматах компании, а актуальные данные подают через RAG.
3.4. Parameter-Efficient Fine-Tuning (PEFT) и LoRA
Дообучать всю модель с миллиардами параметров — дорого. Поэтому используют PEFT (Parameter-Efficient Fine-Tuning): методы, которые дообучают только небольшую часть параметров, а не всю модель. Это позволяет сильно сэкономить память и вычисления.
LoRA (Low-Rank Adaptation) — самый популярный метод. Вместо того чтобы менять все веса, LoRA добавляет небольшие «адаптерные» матрицы, которые обучаются. Это на порядки снижает число обучаемых параметров и существенно уменьшает требования к GPU-памяти.
QLoRA — еще более эффективная версия, которая использует квантизацию (уменьшение точности весов) для дополнительной экономии. Благодаря QLoRA стало возможным дообучать очень большие модели на относительно скромном оборудовании.
4. RLHF: как сделать модель полезной и безопасной
4.1. Проблема
Представьте, что вы обучили модель на всех текстах интернета. Она знает все: и хорошее, и плохое. Она может ответить на вопрос, но может и нахамить. Она может дать полезный совет, но может и сгенерировать вредный контент.
Но модель не выровнена (not aligned) с человеческими ценностями: она оптимизирована на предсказание следующего токена, а не на полезность, безопасность и вежливость.
4.2. Что такое Alignment
Alignment (выравнивание) — это приведение поведения модели в соответствие с человеческими намерениями и ценностями. Мы хотим, чтобы модель была полезной (helpful), честной (honest) и безвредной (harmless).
Alignment — это не только техническая, но и этическая и философская проблема. Чьи ценности мы встраиваем в модель? Западные? Восточные? Корпоративные? Разные культуры и сообщества могут по-разному понимать, что значит «полезно» и «безвредно». Это не абстрактный вопрос. Например, модели, обученные в западных компаниях, могут отказываться обсуждать определенные политические или социальные темы, которые в других культурах считаются нормальными. Это вызывает споры о культурной предвзятости alignment.
Кроме того, alignment — это активная область исследований, а не решенная задача.
RLHF (Reinforcement Learning from Human Feedback) — один из главных практических инструментов alignment на сегодняшний день.
4.3. Как работает RLHF
Процесс состоит из трех этапов.
Этап 1: Supervised Fine-Tuning (SFT) / Instruction Tuning.
Мы берем предобученную модель и дообучаем ее на примерах «правильного» поведения. Люди пишут образцовые ответы на типичные запросы. Модель учится следовать инструкциям (instruction-following).
Этап 2: Обучение модели вознаграждения (Reward Model).
Мы показываем людям несколько ответов модели на один и тот же запрос и просим их ранжировать ответы: какой лучше, какой хуже. На основе этих оценок обучается модель вознаграждения, которая предсказывает, насколько ответ понравится человеку.
Этап 3: Обучение с подкреплением (Reinforcement Learning).
Модель генерирует ответы, а модель вознаграждения оценивает их. Модель обучается так, чтобы максимизировать свою оценку. Обычно используется алгоритм PPO (Proximal Policy Optimization).
Именно по этой схеме обучали InstructGPT: сначала SFT на демонстрациях, затем Reward Model на ранжированиях, затем PPO.
Различие SFT и RLHF.
SFT учит модель имитировать правильные ответы. RLHF учит модель выбирать ответы, которые нравятся людям.
SFT — это «делай как я», RLHF — это «делай то, что принесет лучшую оценку».
Аналогия. Представьте, что вы учите собаку. Сначала вы показываете ей, что делать (SFT). Потом вы хвалите ее за хорошее поведение и ругаете за плохое (Reward Model). Потом она сама начинает предлагать поведение, а вы говорите «да» или «нет» (RL). Постепенно она учится вести себя правильно.
4.4. InstructGPT: доказательство концепции
В 2022 году OpenAI опубликовала статью об InstructGPT — модели, обученной с помощью RLHF. Результат был впечатляющим: модель с 1,3 млрд параметров, обученная с RLHF, нравилась людям больше, чем исходная GPT-3 с 175 млрд параметров.
Это показало, что alignment важнее размера. Маленькая, но выровненная модель может быть полезнее огромной, но «сырой».
4.5. DPO и другие подходы
RLHF сложен: нужно обучать отдельную модель вознаграждения, потом запускать RL, который нестабилен.
DPO (Direct Preference Optimization) — более простой метод. Он не требует отдельной модели вознаграждения. Вместо этого он напрямую оптимизирует модель на парах «предпочтительный ответ — непредпочтительный ответ».
DPO проще в реализации, дешевле и часто дает похожие результаты. Однако у него есть ограничения: он требует качественных парных данных предпочтений (пары ответов на один и тот же запрос, где один помечен как лучший). Сбор таких данных требует участия людей и обходится дорого. Кроме того, на некоторых задачах DPO может быть менее стабильным, чем классический RLHF, и не устраняет проблему reward hacking полностью — скорее заменяет одну форму оптимизации на другую.
Constitutional AI (Anthropic) — метод, при котором модель обучается следовать набору явных принципов («конституции»). Модель сама критикует свои ответы и исправляет их в соответствии с этими принципами. Это снижает зависимость от массовой человеческой разметки предпочтений, но не устраняет человеческий вклад полностью: люди задают сами принципы. Это не отмена alignment, а изменение его формы.
Поле alignment активно развивается. Помимо RLHF, DPO и Constitutional AI существуют, например, RLAIF (Reinforcement Learning from AI Feedback), где оценки дает другая модель, IPO (Identity Preference Optimization), KTO (Kahneman-Tversky Optimization) и другие методы.
4.6. Ограничения RLHF
RLHF имеет ограничения. Модель вознаграждения может быть предвзятой: она учится на оценках конкретных людей, и их предпочтения могут не совпадать с предпочтениями других. Модель может «взломать» reward model — найти способы получать высокие оценки, не будучи полезной. Это называется reward hacking. Например, модель может научиться давать длинные, многословные ответы, потому что оценщики склонны ставить им более высокие оценки, хотя краткий ответ был бы полезнее.
5. Пример
5.1. Обучение студента
Представьте, что вы учите студента писать эссе.
Предобучение — это, как если бы студент прочитал всю библиотеку. Он знает слова, стили, аргументы. Но он еще не умеет писать эссе.
Fine-tuning / Instruction tuning — это, как если бы вы дали ему несколько образцов хороших эссе и сказали: «Пиши так». Он учится структуре, тону, аргументации.
RLHF — это, как если бы вы не просто читали эссе, а обучили помощника, который читает эссе и ставит оценки. Потом студент учится писать так, чтобы помощник ставил высокие оценки.
5.2. Почему это важно
Без alignment модель — это библиотека без библиотекаря. Она знает все, но не умеет помочь. С alignment — это ассистент, который понимает, что вам нужно, и отвечает так, чтобы вы поняли.
6. Base vs Instruct: две версии одной модели
Важно понимать, что Fine-tuning и RLHF — это то, что отличает «сырую» модель (base model) от «выровненной» (instruct/chat model) .
Base model — это модель после предобучения. Она умеет предсказывать следующее слово, но не умеет следовать инструкциям. Если вы дадите ей промпт «Напиши стихотворение про осень», она может продолжить его как список других запросов или как текст из интернета, а не как стихотворение. Base-модель не «понимает», что от нее хотят. Она просто продолжает текст наиболее вероятным образом. Base-модели иногда выдают странные ответы, потому что не «понимают» инструкцию. Если в обучающих данных после фразы «Напиши стихотворение про осень» часто шли другие запросы, она с высокой вероятностью продолжит список запросов.
Instruct model — это модель после SFT (instruction tuning) и RLHF. Она умеет следовать инструкциям, отвечать на вопросы, вести диалог. Instruct-модель «понимает», что от нее хотят, потому что видела много примеров «запрос → ответ». Она не просто продолжает текст, а следует паттерну «выполни инструкцию». Именно поэтому она напишет стихотворение, а не продолжит список.
Указанные различия связаны с открытыми/закрытыми моделями. Открытые модели (Llama, Mistral и др.) часто доступны и в base-, и в instruct-версии. Закрытые модели (GPT-4, Claude и др.) через API обычно предлагаются уже в instruct/chat-варианте. Выбор между base и instruct зависит от задачи: для дальнейшей специализации иногда удобнее base, для готового ассистента — instruct.
Например, Llama 3 и многие другие открытые модели выпускаются в двух версиях: base (только предобучение) и instruct (после SFT и RLHF). Именно instruct-версии используются в чат-ботах. Base-версии чаще применяют для дальнейшего fine-tuning на специфических задачах. Кроме того, base-модели важны для исследований: они позволяют изучать, что модель знает «из коробки», без влияния alignment.
7. Заключение
Мы разобрали путь от «сырой» модели до полезного ассистента. Предобучение (self-supervised) дает модели язык и статистические знания о мире. Fine-tuning и instruction tuning специализируют ее и учат следовать инструкциям. RLHF (и альтернативы вроде DPO, Constitutional AI и других методов) пытаются выровнять ее поведение с человеческими предпочтениями.
Мы увидели, что alignment важнее размера: маленькая, но выровненная модель может быть полезнее огромной, но «сырой». Именно поэтому ChatGPT, а не «сырая» GPT-3, стал революцией. Мы также увидели, что alignment — это не только техническая, но и этическая проблема, что у существующих методов есть ограничения, и что это по-прежнему открытая и быстро развивающаяся область исследований.
В следующей лекции мы перейдем к трансформерам — архитектуре, которая сделала все это возможным. Мы разберем механизм внимания (Self-Attention), архитектуру «Attention is All You Need» и то, почему трансформеры вытеснили RNN.