Parameter-Efficient Fine-Tuning (PEFT)
Тонкая настройка с эффективным использованием параметров (PEFT) адаптирует предварительно обученную модель, обучая небольшой набор добавленных или выбранных весов. Рассматриваются адаптеры, LoRA и заморозка весов.
Дообучение с эффективным использованием параметров (PEFT) адаптирует предварительно обученную модель к новой задаче, обучая лишь небольшую долю ее параметров: либо несколько новых параметров, добавленных в сеть, либо выбранное подмножество существующих, тогда как остальные веса модели остаются замороженными. При полном дообучении обновляется каждый вес. Для большой языковой модели (LLM) с 7 миллиардами параметров это означает хранение градиентов и состояния оптимизатора для всех 7 миллиардов значений и сохранение полной копии модели для каждой задачи. Методы PEFT часто обучают менее 1% параметров, поэтому базовую модель можно адаптировать на одном GPU, а для каждой новой задачи сохранять небольшой файл обученных параметров вместо еще одной полной контрольной точки. В библиотеке PEFT от Hugging Face реализованы наиболее распространенные методы для моделей-трансформеров.
Как работает PEFT#
PEFT основан на переносе обучения: модель, предварительно обученная на обширных данных, уже кодирует общие признаки, поэтому для адаптации к близкой задаче нужно изменить гораздо меньше, чем было затрачено на обучение. Методы делятся на три группы в зависимости от того, какие параметры они обучают.
Аддитивные методы добавляют новые обучаемые модули или входные данные в замороженную сеть. Адаптеры добавляют небольшие узкие слои внутри каждого блока трансформера и уступили полному дообучению всего 0,4% на языковом бенчмарке GLUE, добавляя 3,6% параметров на задачу. Настройка промпта и настройка префикса обучают несколько непрерывных векторов, добавляемых в начало входных данных или активаций каждого слоя.
Селективные методы обучают выбранное подмножество существующих весов. Заморозка базовой сети и обучение только более поздних слоев — самый простой такой метод, а BitFit обучает только смещения.
Методы перепараметризации обучают компактное обновление замороженных матриц весов. LoRA представляет каждое обновление произведением двух матриц низкого ранга и по сравнению с полным дообучением GPT-3 175B уменьшила число обучаемых параметров в 10 000 раз, а использование памяти GPU — в 3 раза. QLoRA обучает адаптеры LoRA поверх базовой квантованной модели с 4-битным представлением, а DoRA разделяет каждый вес на величину и направление и адаптирует направление с помощью LoRA.
Между задачами различаются только небольшие наборы обученных параметров, поэтому одна копия базовой модели может одновременно обслуживать множество задач. Сервер хранит замороженную базовую модель в памяти и применяет адаптер, соответствующий каждому запросу; системы, например S-LoRA, обслуживают таким образом тысячи адаптеров LoRA:
Преимущества и компромиссы#
Градиенты и состояние оптимизатора нужны только для обучаемых параметров, поэтому потребление памяти резко снижается, хотя замороженные веса и активации по-прежнему должны помещаться в GPU. Фиксация предварительно обученных весов также ограничивает переобучение на небольших наборах данных и катастрофическое забывание исходных навыков модели. Компромисс заключается в ограниченной емкости: в исследовании «LoRA учится меньше и забывает меньше» LoRA уступила полному дообучению в программировании и математике, но лучше сохранила исходные возможности базовой модели в задачах за пределами этих областей.
PEFT в компьютерном зрении#
Визуальные трансформеры адаптируются теми же методами. Настройка визуальными промптами обучает дополнительные входные токены для замороженной ViT, задействуя менее 1% параметров и превосходя полное дообучение во многих проведенных тестах. Адаптеры LoRA настраивают Stable Diffusion под новый стиль или объект. Для сверточных моделей обнаружения объектов стандартным селективным подходом служит заморозка. При обучении Ultralytics YOLO26 аргумент freeze прекращает обновление градиентов для первых N слоев и фиксирует статистики пакетной нормализации, а freeze=11 охватывает слои с 0 по 10 — всю базовую сеть YOLO26, — поэтому обучаются только шея и голова обнаружения:
from ultralytics import YOLO
# Загрузи веса YOLO26n, предварительно обученные на COCO
model = YOLO("yolo26n.pt")
# Заморозь слои 0–10 (базовую сеть) и обучай только шею и голову обнаружения
results = model.train(data="coco8.yaml", epochs=5, freeze=11)В журнале обучения для каждого замороженного параметра перед началом первой эпохи указана отдельная строка Freezing layer.
PEFT и связанные термины#
- Полное дообучение: Обновляет каждый вес, что дает максимальные возможности адаптации, но требует больше всего памяти и полной копии модели для каждой задачи. PEFT — это разновидность дообучения, ограничивающая набор изменяемых параметров.
- Линейное зондирование: Обучает только линейный классификатор на замороженных признаках. Это наиболее ограниченный селективный метод, который используют главным образом для оценки того, сколько информации уже содержится в предварительно обученном представлении.
- Проектирование промптов: Меняет поведение модели с помощью написанного вручную текста во входных данных и ничего не обучает. При настройке промпта непрерывные векторы промпта обучаются градиентным спуском.
- Дистилляция знаний: Обучает небольшую модель-ученика имитировать большую модель-учителя, сжимая модель, тогда как PEFT адаптирует существующую модель к новой задаче.
- Объединение моделей: Объединяет обученные веса или адаптеры в одну модель. Обученное обновление LoRA можно добавить в замороженную матрицу весов, которую оно адаптирует, поэтому объединенная модель работает без дополнительных затрат на инференс.










