LoRA (Low-Rank Adaptation) - это эффективная техника, используемая для адаптации больших предварительно обученных моделей машинного обучения (ML), например, используемых для обработки естественного языка (NLP) или компьютерного зрения (CV), к конкретным задачам или наборам данных без переобучения всей модели. Это значительно снижает вычислительные затраты и требования к памяти, связанные с тонкой настройкой массивных моделей, делая продвинутый ИИ более доступным. LoRA относится к методам Parameter-Efficient Fine-Tuning (PEFT), которые нацелены на адаптацию моделей с минимальными изменениями их параметров.
Как работает LoRA
Традиционная тонкая настройка подразумевает обновление всех параметров (или весов модели) предварительно обученной модели на основе новых данных. Для моделей с миллиардами параметров, таких как многие современные LLM или большие модели зрения, этот процесс требует значительных вычислительных ресурсов, в частности GPU памяти и времени. LoRA работает по принципу, подкрепленному исследованиями, согласно которому изменения, необходимые для адаптации модели, часто находятся в низкоразмерном пространстве, а значит, не требуют изменения каждого отдельного веса.
Вместо того чтобы изменять все исходные веса, LoRA замораживает их и вводит меньшие, поддающиеся обучению матрицы "низкого ранга" в определенные слои архитектуры модели, часто в блоки трансформеров (распространенный компонент многих больших моделей, о котором подробнее рассказывается в статье Attention Is All You Need). Только эти вновь добавленные матрицы (часто называемые адаптерами) обновляются в процессе тонкой настройки. Это значительно сокращает количество обучаемых параметров, часто на порядки (например, миллионы вместо миллиардов), но при этом во многих случаях достигается производительность, сопоставимая с полной тонкой настройкой. В оригинальной научной статье LoRA приводятся дополнительные технические подробности о методологии и ее эффективности. Благодаря такому подходу процесс тонкой настройки происходит значительно быстрее и занимает меньше памяти.
Актуальность и преимущества
Основное преимущество LoRA - это его эффективность, что приводит к нескольким ключевым преимуществам:
- Снижение вычислительных затрат: По сравнению с полной тонкой настройкой требуется значительно меньше памятиGPU и вычислительной мощности, что делает возможным адаптацию больших моделей на менее мощном оборудовании.
- Меньше места для хранения: Поскольку исходные веса модели заморожены, для каждой конкретной задачи нужно сохранять только небольшие адаптеры LoRA. Это гораздо эффективнее, чем хранить полную копию точно настроенной модели для каждой задачи.
- Более быстрое переключение между задачами: загрузка разных адаптеров LoRA позволяет быстро переключаться между задачами без загрузки совершенно новых больших моделей.
- Сравнимая производительность: Несмотря на обучение гораздо меньшего количества параметров, LoRA часто достигает уровня точности, схожего с тем, который достигается при полной тонкой настройке на конкретных задачах.
- Обеспечение возможности пограничного развертывания: Снижение требований к ресурсам облегчает адаптацию моделей для сценариев пограничных вычислений, где вычислительная мощность и память ограничены, принося мощные возможности ИИ на такие устройства, как смартфоны или встраиваемые системы(Edge AI explained by Intel).
- Демократизация: Снижает барьер для исследователей и разработчиков, желающих адаптировать современные модели, такие как GPT-4 или Ultralytics YOLO модели.
Применение LoRA
Эффективность LoRA делает его ценным в различных сферах:
- Адаптация больших языковых моделей (LLM): Это один из самых распространенных вариантов использования. Разработчики могут взять массивную предварительно обученную LLM (например, доступную через Hugging Face) и использовать LoRA, чтобы специализировать ее для конкретных приложений, таких как пользовательские чат-боты, системы ответов на вопросы, специфичные для конкретного домена, или улучшение резюмирования текста для определенных типов документов. Библиотеки вроде библиотеки PEFT отHugging Face обеспечивают простую реализацию LoRA.
- Настройка моделей компьютерного зрения: LoRA можно применять к большим моделям компьютерного зрения для решения таких задач, как обнаружение объектов, сегментация изображений или оценка позы. Например, модель Ultralytics YOLO , предварительно обученная на большом наборе данных, таком как COCO, может быть эффективно настроена с помощью LoRA для обнаружения конкретных типов объектов в нишевой области, например исчезающих видов для сохранения дикой природы или специфических дефектов при контроле качества производства. Платформы вроде Ultralytics HUB могут упростить обучение и развертывание таких адаптированных моделей.
LoRA в сравнении со смежными понятиями
Полезно отличать LoRA от других техник адаптации моделей:
- Полная тонкая настройка: Этот метод обновляет все веса предварительно обученной модели на новом наборе данных. Хотя он часто бывает эффективным, он требует значительных вычислительных ресурсов и хранения данных для каждой адаптированной модели. LoRA, напротив, замораживает исходные веса и обучает только небольшие, вводимые адаптивные матрицы. Более подробную информацию ты найдешь в нашем глоссарии по тонкой настройке и в обзоре по тонкой настройке отNVIDIA.
- Настройка подсказок: Эта техника сохраняет веса модели полностью замороженными и вместо этого обучается непрерывным "мягким подсказкам" (векторам, добавляемым к входным вкраплениям), чтобы направлять поведение модели для конкретных задач. В отличие от LoRA, она не изменяет весовые коэффициенты модели, а фокусируется исключительно на адаптации входного представления. Подробнее о настройке подсказок и разработке подсказок.
- Другие методы PEFT: LoRA - это всего лишь одна из методик в более широкой области Parameter-Efficient Fine-Tuning (PEFT). К другим методам относятся Adapter Tuning (похожий, но с немного другой структурой адаптера), Prefix Tuning и IA³, каждый из которых предлагает различные компромиссы в эффективности параметров и производительности.
В итоге LoRA предоставляет мощный и ресурсосберегающий способ настройки больших предварительно обученных базовых моделей для широкого спектра специфических задач как в NLP, так и в компьютерном зрении, делая продвинутый ИИ более практичным и доступным.