huggingface/peft

🤗 PEFT: State-of-the-art Parameter-Efficient Fine-Tuning.

Обучение⭐ 21 706Pythonпоследний релиз: v0.21.0
Открыть на GitHub ↗Сайт проекта ↗

Что это за инструмент

PEFT — это библиотека Hugging Face для эффективной дообучения (fine-tuning) больших языковых моделей путем изменения лишь небольшого числа параметров.

Зачем нужен

Инструмент решает проблему высоких вычислительных и хранилищных затрат при адаптации крупных LLM к конкретным задачам. Он позволяет достигать качества, сравнимого с полным дообучением, но используя значительно меньше ресурсов за счет методов вроде LoRA, Soft prompts и IA3.

Что можно реализовать

  • Адаптация больших моделей (например, Qwen2.5, Bloomz) под специфические домены на потребительском оборудовании
  • Создание компактных адаптеров (размером в мегабайты) вместо хранения полных копий моделей
  • Обучение моделей, которые не помещаются в память GPU, с использованием CPU Offloading
  • Интеграция дообучения в пайплайны с Diffusers для управления разными адаптерами

Ключевые возможности

  • Снижение потребления GPU-памяти в разы (например, тренировка 3B модели требует всего 14.4GB VRAM)
  • Поддержка SOTA методов: LoRA, Soft prompts, IA3 и других
  • Глубокая интеграция с экосистемой Hugging Face (Transformers, Accelerate, Diffusers)
  • Возможность дообучения моделей, которые иначе вызвали бы ошибку Out Of Memory (OOM)
  • Минимальный оверхед: дообучается менее 1% параметров модели

👤 Кому подойдёт: ML-инженеры, разработчики LLM-приложений и исследователи, работающие с большими моделями и ограниченными вычислительными ресурсами

Релизы

v0.21.0minor
🕐 5 дн назад · релиз на GitHub ↗

Релиз v0.21.0: новые методы адаптации (KaSA, ShadowPEFT, Super-Tuning), оптимизатор LoRA и исправления.

  • Added: Добавлен Riemannian-preconditional LoRA optimizer для улучшения обучения признаков без ручной настройки lr.
  • Added: Реализован метод KaSA, выделяющий и обучающий значимые сингулярные значения базовой модели.
  • Added: Появился Super-Tuning с калибровкой без калибровки для распределения бюджета адаптации по весам.
  • Added: Добавлен ShadowPEFT, использующий теневую сеть для адаптации поверх замороженной базовой модели.
  • Fixed: Исправлена ошибка двойного применения масштабирования при комбинировании LoRA-адаптеров через SVD.
  • Fixed: Добавлена строгая проверка: теперь ошибка выбрасывается при добавлении адаптера к несуществующим слоям.
v0.20.0major
🕐 1 мес назад · релиз на GitHub ↗

Релиз PEFT v0.20.0: добавлено 9 новых методов адаптации (HiRA, GLoRA, BEFT и др.) и улучшена инфраструктура.

  • Added: Добавлены 9 новых методов PEFT: HiRA, GLoRA, BEFT, MonteCLoRA, VeLoRA, Uni-LoRA, FRoD, MiCA и DEFT.
  • Added: HiRA использует гадамардово произведение для обновления весов без ограничения ранга.
  • Added: GLoRA расширяет LoRA настройкой весов, активаций и смещений с гибкостью по слоям.
  • Added: BEFT оптимизирует до 0.01% параметров, обучая преимущественно проекции значений.
  • Added: MonteCLoRA повышает устойчивость обучения за счет байесовской репараметризации.
  • Added: Улучшена структура документации и добавлен бенчмарк для генерации изображений.
v0.19.1patch
🕐 5 мес назад · релиз на GitHub ↗

Выпущена версия 0.19.1 библиотеки PEFT с исправлениями ошибок из pull-реквестов #3161 и #3165.

  • Fixed: Исправлена ошибка, описанная в pull-реквесте #3161.
  • Fixed: Исправлена ошибка, описанная в pull-реквесте #3165.