Перейти к содержанию
Публикация AiManual

PEFT-методы для дообучения LLM: как сэкономить вычислительные ресурсы и память

PEFT-методы сокращают обучаемые параметры до 0,2% и уменьшают чекпоинты с 40 ГБ до нескольких мегабайт. Разбираем LoRA, Prefix Tuning и практические примеры для

Коротко

Что будет в материале

  1. 01

    Проблема полного дообучения больших языковых моделей

  2. 02

    Что такое PEFT и какие методы включает

  3. 03

    Как PEFT экономит вычислительные ресурсы и память

  4. 04

    Практические примеры применения PEFT

Дообучение большой языковой модели на собственных данных часто упирается в железо. Полный fine-tuning модели OPT-6.7B требует около 40 ГБ только для хранения чекпоинтов, а обучение на GPU с 11 ГБ памяти становится невозможным. Библиотека PEFT от Hugging Face решает эту проблему: она сокращает число обучаемых параметров до 0,2% от общего объема, позволяет достичь производительности, сопоставимой с полным дообучением, и уменьшает размер чекпоинтов с 40 ГБ до нескольких мегабайт.

PEFT (Parameter-Efficient Fine-Tuning) - это семейство методов для адаптации больших предобученных моделей к новым задачам. Вместо обновления всех весов модель обучает лишь небольшое подмножество параметров. Основные методы: LoRA, Prefix Tuning, Prompt Tuning и P-Tuning. На практике это означает, что модели T0_3B (3 млрд параметров) и OPT-6.7B (6,7 млрд) дообучаются на GPU с 11 ГБ памяти без потери качества.

Проблема полного дообучения больших языковых моделей

Полный fine-tuning обновляет все веса модели. Для LLM с миллиардами параметров это создает три проблемы. Первая - вычислительные ресурсы: обучение требует GPU с большим объемом памяти, часто недоступным для независимых разработчиков и небольших команд. Вторая - хранение: каждый чекпоинт модели OPT-6.7B занимает около 40 ГБ, что делает распространение и версионирование дорогим. Третья - катастрофическое забывание: при дообучении на новых данных модель теряет общие знания, полученные на предобучении.

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

Что такое PEFT и какие методы включает

PEFT - это библиотека Hugging Face, которая предоставляет реализации нескольких методов эффективного дообучения. Все они объединены одной идеей: заморозить базовую модель и обучать только небольшой набор новых параметров. Это позволяет адаптировать модель к новой задаче с минимальными затратами.

LoRA: низкоранговая адаптация

LoRA (Low-Rank Adaptation) - самый популярный метод в семействе PEFT. Он вводит обучаемые низкоранговые матрицы в слои внимания. Вместо обновления полной матрицы весов LoRA обучает две небольшие матрицы, произведение которых аппроксимирует нужное обновление. Это сокращает количество обучаемых параметров до 0,2% от общего объема модели.

На практике LoRA позволяет дообучать модели масштаба OPT-6.7B на GPU с 11 ГБ памяти. Исходные веса остаются замороженными, а обучаются только адаптеры. После обучения можно сохранить только эти адаптеры, что уменьшает размер чекпоинта с десятков гигабайт до нескольких мегабайт.

Prefix Tuning, Prompt Tuning и P-Tuning

Prefix Tuning добавляет обучаемые векторы к ключам и значениям в каждом слое трансформера. Эти виртуальные токены настраиваются под конкретную задачу, а базовая модель не меняется. Prompt Tuning обучает только эмбеддинги промпта, которые подаются на вход модели. P-Tuning использует обучаемые эмбеддинги в непрерывном пространстве, что дает больше гибкости при настройке.

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

Как PEFT экономит вычислительные ресурсы и память

Эксперименты с моделями T0_3B и OPT-6.7B показывают конкретные цифры. Дообучение на GPU с 11 ГБ памяти становится возможным, потому что PEFT обучает лишь 0,2% параметров. Полный fine-tuning этих моделей потребовал бы GPU с памятью от 40 ГБ и выше.

Размер чекпоинтов сокращается с 40 ГБ до нескольких мегабайт. Это упрощает хранение, версионирование и распространение моделей. Вместо передачи полной копии модели можно передать только адаптер, который накладывается на базовую модель.

Сравнение с полным дообучением по производительности

PEFT-подход достигает производительности, сопоставимой с полным дообучением. В упомянутых экспериментах модели T0_3B и OPT-6.7B с адаптерами LoRA показывали результаты, близкие к полному fine-tuning, при этом затраты на обучение были кратно ниже. Это развеивает сомнение, что экономия ресурсов обязательно ведет к потере качества.

Практические примеры применения PEFT

PEFT универсален: он работает и с текстовыми моделями, и с генеративными моделями изображений. Два примера ниже показывают, как применить библиотеку в реальных задачах.

Настройка LoRA для seq2seq-моделей

Для seq2seq-моделей, таких как T5 или BART, LoRA настраивается через конфигурацию с параметрами ранга и альфы. Процесс выглядит так: загружается базовая модель, создается конфигурация LoRA с нужным рангом, модель оборачивается в PEFT-обертку и обучается на задаче перевода или суммаризации. Обучение проходит на одном GPU, а сохраняется только адаптер.

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

DreamBooth для Stable Diffusion

DreamBooth использует PEFT для персонализации Stable Diffusion. Пользователь подготавливает несколько изображений субъекта, обучает LoRA-адаптер на этих изображениях и затем генерирует новые изображения с этим субъектом. Обучение занимает минуты на потребительском GPU, а не часы.

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

Преимущества PEFT помимо экономии ресурсов

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

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

Если вас интересует, как снизить затраты на инференс после дообучения, обратите внимание на дистилляцию LLM. Она позволяет сжать модель без потери качества и запускать её на менее мощном железе.

Как начать использовать PEFT на практике

Библиотека PEFT устанавливается через pip и интегрируется с Hugging Face Transformers. Базовый сценарий: установить библиотеку, импортировать нужный метод, создать конфигурацию и обернуть модель. Далее модель обучается через стандартный Trainer.

Документация доступна на сайте Hugging Face. Для первого эксперимента достаточно выбрать LoRA с рангом 8 или 16, загрузить базовую модель и запустить обучение на небольшом датасете. Такой подход позволяет быстро оценить эффект PEFT на конкретной задаче.

Если вы работаете с локальными моделями и ограниченной памятью, изучите методы эффективного обучения LLM. Они дополняют PEFT и помогают строить экономичные пайплайны.

Ограничения и подводные камни PEFT

PEFT подходит не для всех задач. Если требуется значительное изменение поведения модели или обучение всех параметров, адаптеры могут не дать нужного результата. Выбор гиперпараметров - ранг LoRA, длина префикса, скорость обучения - требует экспериментов. Неудачный выбор может привести к недобучению или нестабильности.

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

Подписаться на канал