Настройка модели под присмотром SFT
Пост-обучение нейросети.
И так — пост-обучение!
Цель данного этапа: задать нейросети паттерн общения. Но как выбрать его, этот паттерн и как понять что он правильный?
На самом деле, у каждого из нас этот паттерн базово есть, ведь мы все коммуницируем по разному.
Причём тут человек.
Замечал 🤔: кто-то любит поговорить о погоде, а только потом перейти к делу. При этом формулирует мысли пространно и растекается. Другой же общается чётко, ясно и сразу по делу.
Третий просто тупой, но такое пост-обучение нам не нужно.
Каждый из этих паттернов общения подходит для эффективного выполнения разных задач и определяется информационным метаболизмом человека.
Вот и нейросеть можно научить следовать определенному паттерну коммуникации, формулировать предложения по разному. А зависит это напрямую от датасета, многих тысяч пар «вопрос — ответ».
— Помнишь, на этапе пре-обучения, в качестве датасета мы берём просто всю выгрузку из интернета. На данном этапе так делать не надо.
На этапе обучения под присмотром, надо писать датасет буквально руками. Сажаешь копирайтеров, ставишь правильно задачу и даёшь спецам время стучать по клавиатуре. Данный этап пост-обучения критично важен, чтоб нейросеть начала общаться по человечески. По этому такой датасет должен быть органический, как твои овощи на обед.
Это правда важно!
Ведь как специалисты напишут ответы, так потом нейросеть и будет отвечать всем всегда.
Даже так — то, в каком стиле мы получаем ответы модели зависит от стиля конкретного человека-копирайтера, который следовал каким-то корпоративным инструкциям, созданным компанией разработчиком модели.
Веса модели.
Ок, но ведь на пре-обучении мы уже настроили веса, как теперь происходит это пост-обучение?
Тут есть разные технологии, для простоты давай так.
Вот у нас есть веса с пре-обучения, это 100%. Мы берём 1% от этих весов и в процессе пост-обучения немного их меняем так, чтоб вероятности прогноза токенов чуть-чуть изменились и модель по другому ставила слова в предложение. Она ведь смысловую связь как бы уже знает. По этому менять больший процент весов смысла мало, да ещё и можно деградировать (испортить) базовую модель.
Тут надо аккуратно 🔍
Если использовать современные библиотеки и фреймворки, то эффективность изменения этого 1% весов будет эквивалентна 95% эффективности, которую мы бы получили, меняя все 100% весов. Только это обучение проходит быстро и для моделей с 7b параметров, возможно даже с домашнего ПК на nvidia 2080 8gb памяти.
И вот в процессе работы модели, прошедшей пост-обучение, мы берём 99% оригинальных весов, накладываем ещё 1% до-настроенных весов и получаем магию — из 2 летнего ребенка с большой эрудицией, модель стала 12 летним ребенком, которая и много знает и уже умеет объясняться в понятной форме.
Такое пост-обучение можно проводить с уже полностью готовыми моделями.
Пример прикладной задачи.
Есть какая-нибудь модель типа Yandex GPT или llama 3 или Qwen. Ты хочешь взять такую модель за основу и сделать чат-бота для корпоративного портала. Однако тебе мало того, что она отвечает на вопросы сотрудников, рассказывает про документы и пункты правил. Ты хочешь чтоб она при этом использовала корпоративную культуру — ценности, парадигмы и тд.
Вот тут как раз обучение под присмотром и поможет.
Её ответы из:
— “Могу поставить вам встречу на понедельник в 16:00, у других участников это время свободно!”
превратятся в:
— “Здравый смысл - это важно. По вашему вопросу встречу можно сделать короткой, всем участникам удобно в понедельник в 16:00, ставлю на 15 минут. Сова с тобой!🦉”
Оп!