Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

LoRA (Low-Rank Adaptation)

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

LoRA, сокращение от Low-Rank Adaptation, — это метод эффективной по числу параметров тонкой настройки (PEFT), который адаптирует большую предварительно обученную модель к новой задаче: исходные веса замораживаются, а рядом с выбранными слоями обучается небольшая пара матриц. Их произведение — это низкоранговое обновление, которое прибавляется к замороженным весам, поэтому градиенты получают лишь ничтожное число параметров. Метод представили Ху и соавторы из Microsoft в 2021 году. LoRA сократила число обучаемых параметров GPT-3 175B в 10 000 раз, а объём памяти GPU для обучения — в 3 раза по сравнению с полной тонкой настройкой с использованием Adam, при этом качество на RoBERTa, DeBERTa, GPT-2 и GPT-3 не уступало полной тонкой настройке или превосходило её. Сейчас этот метод широко применяют для адаптации больших языковых моделей (LLM), диффузионных моделей и визуальных трансформеров на скромном оборудовании. LoRa — это протокол дальней радиосвязи для устройств IoT, не имеющий отношения к этому методу.

Как работает LoRA#

Тонкая настройка изменяет предварительно обученную матрицу весов W размера d × k с помощью некоторого обновления ΔW. LoRA предполагает, что это обновление имеет низкий внутренний ранг, поэтому его можно представить как произведение двух узких матриц: ΔW = B × A, где A имеет размер r × k, B — d × r, а ранг r намного меньше d или k. Выход слоя становится равен h = Wx + (α / r) × BAx, где α — фиксированная константа масштабирования. Матрицу A инициализируют малыми случайными значениями, а B — нулями, поэтому обучение начинается точно с предварительно обученной модели. Во время обратного распространения ошибки обновляются только A и B; кроме того, для всех замороженных весов не нужно хранить состояние оптимизатора.

Для проекции размером 4096 × 4096 полная тонкая настройка обучает около 16,8 миллиона весов, а адаптер ранга 8 — 8 × (4096 + 4096) = 65 536. Приведённый ниже скрипт на PyTorch создаёт такой адаптер и объединяет его с замороженным слоем:

import torch
from torch import nn

# A frozen pretrained 4096 x 4096 projection, like one in a transformer attention block
base = nn.Linear(4096, 4096).requires_grad_(False)

# LoRA's trainable rank-8 update: B @ A, scaled by alpha / r
# B starts at zero, so the adapted layer initially matches the pretrained one
r, alpha = 8, 16
A = nn.Parameter(torch.randn(r, 4096) * 0.01)
B = nn.Parameter(torch.zeros(4096, r))
trainable = A.numel() + B.numel()
total = trainable + sum(p.numel() for p in base.parameters())
print(f"Trainable: {trainable:,} of {total:,} parameters ({trainable / total:.2%})")

# After training, merge the update into the base weight so inference costs nothing extra
nn.init.normal_(B, std=0.01)  # stand-in for trained values
x = torch.randn(2, 4096)
adapted = base(x) + (alpha / r) * (x @ A.T @ B.T)
merged = nn.functional.linear(x, base.weight + (alpha / r) * B @ A, base.bias)
print(f"Merged layer matches adapter output: {torch.allclose(adapted, merged, atol=1e-5)}")

Адаптер обучает 65 536 из 16 846 848 параметров слоя — 0,39%; при этом сворачивание B × A в W даёт те же выходы, что и отдельное применение адаптера. Поэтому объединённые модели LoRA работают ровно так же быстро, как исходная модель. Это преимущество перед более ранними адаптерными слоями, которые добавляют вычисления при каждом прямом проходе.

Применение LoRA на практике#

В исходной статье адаптировались только проекции запроса и значения механизма внимания в трансформере, а сейчас многие рецепты охватывают каждый линейный слой. Ранг и α — основные гиперпараметры: в библиотеке Hugging Face PEFT по умолчанию используются r = 8 и α = 8. Поскольку базовая модель остаётся неизменной, при развёртывании можно хранить одну её копию и подключать или отключать небольшие адаптеры для отдельных задач. При ранге 4 для проекций запроса и значения GPT-3 175B размер каждой адаптированной контрольной точки сократился с 350 ГБ примерно до 35 МБ — приблизительно в 10 000 раз.

  • Языковые модели: Команды адаптируют открытые LLM к предметной области, стилю или формату инструкций на одном GPU, часто сочетая LoRA с данными для настройки на инструкции.
  • Генерация изображений: Файлы LoRA обучают Stable Diffusion и похожие модели воспроизводить персонажей, продукты или художественные стили; такие файлы распространяют и объединяют отдельно от базовой контрольной точки.
  • Визуальные и мультимодальные модели: Адаптеры специализируют визуальные трансформеры и визуально-языковые модели (VLM) для работы с медицинскими, промышленными изображениями и документами без повторного обучения базовой сети.

Варианты#

  • QLoRA: Замораживает базовую модель с 4-битной точностью NormalFloat и обучает поверх неё адаптеры LoRA. Деттмерс и соавторы применили этот метод для тонкой настройки модели с 65 миллиардами параметров на одном GPU с 48 ГБ памяти, сохранив производительность полной тонкой настройки с 16-битной точностью.
  • DoRA: Разделяет каждый предварительно обученный вес на модуль и направление, применяя LoRA только к направлению. Это сокращает разрыв в точности с полной тонкой настройкой при тех же затратах на инференс.
  • Эффективная по числу параметров тонкая настройка: Общее название методов, которые обучают лишь небольшую часть модели. Замораживание слоёв — самый простой из таких методов; в Ultralytics YOLO он доступен через аргумент обучения freeze: первые N слоёв модели YOLO26 остаются с предварительно обученными весами, а остальные обучаются.
  • Полная тонкая настройка: обновляет все веса и сохраняет полную копию модели для каждой задачи. В программировании и математике полная тонкая настройка значительно превзошла стандартный LoRA, а LoRA в меньшей степени подвержен катастрофическому забыванию других навыков базовой модели.
  • Настройка промпта: Обучает мягкие эмбеддинги промпта, которые добавляются в начало входных данных, при этом все веса модели остаются замороженными.
  • Перенос обучения: Общая идея повторного использования знаний, полученных при решении одной задачи, для другой. LoRA — один из эффективных способов это сделать.
  • Объединение моделей: Объединяет веса моделей, отдельно прошедших тонкую настройку; распространённый вариант — объединить несколько адаптеров LoRA с одной базовой моделью.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

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

Компьютерное зрение в сельском хозяйстве

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

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения