Решение «дообучать или нет» разбирается отдельно и почти всегда решается в пользу поиска по документам — «RAG или дообучение модели».
Эта статья про другое: что делать, если решение уже принято в пользу дообучения. Как оно устроено технически, чем облегчённые методы отличаются от полного, что нужно подготовить и во что это обходится.
Почему полное дообучение обычно не рассматривают
При полном дообучении меняются все веса модели. Отсюда требования, которые закрывают вариант для большинства:
- память нужна кратно больше, чем для запуска: помимо весов хранятся градиенты и состояние оптимизатора;
- результат — полная копия модели, которую надо где-то держать и обслуживать. Пять дообученных версий — пять полных моделей;
- риск потери общих способностей: модель, интенсивно дообученная на узкой задаче, начинает хуже справляться со всем остальным.
Облегчённые методы решают все три проблемы.
Как устроена LoRA
Идея: не менять исходные веса, а добавить к ним небольшую поправку, и обучать только её.
Поправка устроена компактно — как произведение двух небольших матриц вместо одной большой. Число обучаемых параметров получается на порядки меньше, чем в исходной модели.
Практические следствия:
Памяти нужно намного меньше. Обучается небольшая добавка, а не вся модель.
Результат весит немного. Это не копия модели, а файл поправки — обычно единицы или десятки мегабайт против гигабайт.
Можно держать несколько. Одна базовая модель плюс набор поправок под разные задачи, переключаемых на лету. Для сценария «разные отделы — разные требования к стилю» это решающее преимущество.
Легко откатиться. Не понравилось — отключили поправку, базовая модель не тронута.
Что добавляет QLoRA
То же самое, но базовая модель при обучении хранится в сжатом виде — «Квантизация». Обучаемая поправка при этом остаётся в полной точности.
Смысл один: резко снижаются требования к видеопамяти. Дообучение, требовавшее серверного оборудования, становится возможным на одной карте.
Плата — некоторая потеря качества относительно обучения на несжатой основе и более медленное обучение. На практике для прикладных задач разница обычно приемлема.
Практический ориентир: если у вас одна видеокарта и вы всерьёз рассматриваете дообучение — речь пойдёт о QLoRA.
Что нужно на входе
Здесь проекты и останавливаются, а не на технической части.
Пары «вход — правильный выход». Не документы. Именно примеры того, как модель должна отвечать: вопрос и эталонный ответ, документ и правильно извлечённые поля, обращение и верная категория.
Количество. Порядок — сотни для узкой задачи, тысячи для сложной. Точное число зависит от разнообразия, и меньше качественных примеров лучше, чем больше случайных.
Единообразие. Если примеры составляли разные люди с разным представлением о правильном, модель выучит эту несогласованность. Разметка требует инструкции и проверки на согласие между разметчиками — та же логика, что при построении справочника категорий.
Отдельный проверочный набор, не участвовавший в обучении. Без него нельзя понять, выучила модель закономерность или запомнила примеры.
Кто это делает. Люди, знающие предмет, — ваши сотрудники, а не подрядчик. Это несколько недель работы специалистов, и именно здесь проекты дообучения чаще всего и останавливаются.
Когда даёт результат
Задачи, где дообучение действительно работает лучше промпта:
Устойчивый стиль или тон. То, что трудно описать словами, но легко показать примерами.
Строгий формат вывода, если требование в инструкции соблюдается нестабильно. Хотя здесь сначала стоит попробовать передачу схемы — «Структурированный вывод модели»: это дешевле и часто достаточно.
Профессиональный язык, который модель систематически понимает неверно.
Узкая повторяющаяся задача, где небольшая дообученная модель заменяет крупную. Здесь дообучение окупается экономией на эксплуатации — «Малые модели».
Общий признак прежний: дообучение годится для того, как отвечать, и почти никогда — для того, что отвечать. Фактические знания передаются поиском.
Когда не даёт
Нужны актуальные факты. Дообученная модель помнит момент обучения. Обновление — заново.
Нужна ссылка на источник. Знание растворено в поправке, показать происхождение нельзя.
Нужно разграничение доступа. Дообученная модель знает всё, чему её учили, для всех — «Разграничение доступа в RAG».
Данных мало. На десятках примеров закономерность не выучится, а переобучение на них — вероятно.
Задача меняется часто. Каждое изменение требует нового цикла.
Разбор: дообучение, которое не понадобилось
Задача. Ответы поддержки должны были соответствовать принятому в компании тону: определённая структура, обязательные элементы, отсутствие некоторых оборотов. Промпт с описанием тона соблюдался нестабильно.
Что предполагали. Дообучить модель на архиве хороших ответов — их было около трёх тысяч.
Что сделали сначала. Прежде чем размечать данные, проверили более дешёвые варианты на контрольном наборе из 60 случаев.
Вариант 1: примеры в инструкции. Добавили в промпт восемь реальных примеров хороших ответов. Соблюдение тона выросло заметно — большая часть разрыва закрылась.
Вариант 2: разбить задачу на два шага. Сначала модель формулирует содержание ответа, затем отдельным обращением приводит его к нужной форме по чек-листу. Соблюдение выросло ещё.
Вариант 3: проверка на выходе. Программная проверка обязательных элементов структуры с повтором при несоответствии. Закрыло остаток.
Итог. Три меры вместе дали результат, ради которого затевалось дообучение, за несколько дней вместо недель разметки.
Где дообучение всё-таки понадобилось. Через полгода, когда поток вырос и стоимость стала заметной. Тогда взяли небольшую модель, дообучили её методом QLoRA на накопленных проверенных ответах — их к тому времени было уже около восьми тысяч, и они были размечены самим фактом использования.
Небольшая дообученная модель заменила крупную на этом шаге, стоимость эксплуатации снизилась кратно.
Что стоит забрать. Дообучение оказалось правильным решением — но вторым, а не первым. Сначала были исчерпаны дешёвые способы, а данные для обучения накопились сами в процессе работы, вместо того чтобы размечаться специально.
Практические замечания
Проверяйте, не потеряла ли модель общие способности. Дообученная под узкую задачу модель может хуже справляться с соседними. Проверяется отдельным набором на общие задачи.
Держите базовую модель неизменной. Одно из главных преимуществ подхода — возможность отключить поправку.
Версионируйте поправки вместе с наборами данных, на которых они получены. Иначе через полгода неизвестно, откуда взялась работающая версия.
Считайте полную стоимость. Разметка — основная статья, обучение — небольшая. Плюс повторные циклы при изменениях.
Проверяйте на отдельном наборе, не участвовавшем в обучении. Хороший результат на обучающих примерах не значит ничего.
Частые вопросы
Чем LoRA отличается от полного дообучения?
При полном дообучении меняются все веса модели, и результат — её полная копия, требующая много памяти при обучении и хранении. LoRA обучает небольшую добавку к неизменным весам: памяти нужно намного меньше, результат весит единицы или десятки мегабайт, а базовая модель остаётся нетронутой и добавку можно отключить.
Что даёт QLoRA по сравнению с LoRA?
Базовая модель при обучении хранится в сжатом виде, поэтому требования к видеопамяти резко снижаются: дообучение становится возможным на одной карте вместо серверного оборудования. Плата — небольшая потеря качества и более медленное обучение.
Сколько примеров нужно для дообучения?
Порядок — сотни для узкой задачи, тысячи для сложной, и это должны быть пары «вход — правильный выход», а не документы. Качество примеров важнее количества: несогласованная разметка научит модель этой несогласованности.
Заменит ли дообучение поиск по документам?
Нет. Дообучение передаёт манеру, формат и терминологию, а не фактические знания: обновить их можно только повторным обучением, показать источник нельзя, разграничить доступ невозможно. Для фактов нужен поиск по документам.
Что попробовать до дообучения?
Примеры прямо в инструкции, разбиение задачи на два шага и программную проверку результата с повтором при несоответствии. В моей практике эти меры часто закрывают ту же задачу за дни вместо недель разметки. Дообучение разумно как второй шаг, а не первый.
Можно ли держать несколько дообученных версий?
Да, это одно из главных преимуществ подхода: одна базовая модель плюс набор небольших поправок под разные задачи или подразделения, переключаемых при обращении. При полном дообучении каждая версия была бы отдельной полной копией модели.
Что дальше
Решение о самой необходимости дообучения — «RAG или дообучение модели». Дешёвые альтернативы — «Промпт-инжиниринг в продукте» и «Структурированный вывод модели». Как проверять результат — «Тестирование модели на своей задаче».
Оценка целесообразности дообучения и его проведение — часть работы по разработке и внедрению ИИ.