Что такое LoRA? Настройка ИИ с помощью крошечного дообучения
Переобучать гигантский ИИ с нуля слишком дорого, но хочется настроить его под себя; LoRA (Low-Rank Adaptation) исполняет это желание, замораживая исходную модель и обучая лишь крошечную навесную деталь (адаптер), сокращая обучаемые параметры примерно на 90%. LoRA делает файнтюнинг заметно дешевле и быстрее и чрезвычайно популярна в генерации изображений вроде Stable Diffusion как маленький файл, добавляющий персонажа или стиль. Статья объясняет её через аналогию заплатки. LoRA — флагман параметрически эффективного файнтюнинга (PEFT): огромные исходные веса остаются замороженными, в каждый слой вставляется небольшая навесная матрица, и обучается только она (W = W0 + BA, где W0 заморожена, а BA — небольшая добавленная часть). В основе — открытие, что адаптация ИИ не требует больших изменений (достаточно низкого ранга). Преимущества: примерно на 90% меньше обучаемых параметров (по сообщениям, в 10,000x раз меньше на масштабе GPT-3), меньше памяти GPU (примерно в 3x раза), быстрее и дешевле обучение, без задержки при инференсе после слияния адаптера и ниже риск переобучения. Главная сила — сменные адаптеры: держите одну общую базу и мгновенно меняйте маленькие файлы LoRA (в несколько МБ) под каждый случай (поддержка, тон компании, конкретный персонаж). Многие впервые встречают LoRA в генерации изображений, где широко распространяются LoRA для Stable Diffusion, обучённые персонажу, стилю или объекту (добавить стиль, обучить персонажу, лёгкие и удобные для обмена). QLoRA сочетается с квантизацией, обучая LoRA поверх базы на 4-bit ради ~4x меньшей памяти, чем стандартная LoRA, позволяя дообучать огромные модели на потребительском GPU (иногда CPU) с минимальной потерей точности. По сравнению с полным файнтюнингом (обучение всех весов) LoRA отличается обучаемыми весами, стоимостью, результатом и областью применения; для большинства задач LoRA достаточно. Базу оставь как есть, приправляй понемногу. Цифры взяты из публичных материалов, ориентировочно.