Чекпойнт и LoRA: в чём разница?

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

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

У термина «чекпойнт» два связанных значения

Во время обучения чекпойнт — это сохранённое состояние, по которому можно оценить или возобновить работу. Он может содержать веса модели, состояние оптимизатора и планировщика, состояние генератора случайных чисел и метаданные обучения. Чекпойнт для инференса часто является более компактным экспортом весов и конфигурации, необходимых для загрузки модели.

В сообществах Stable Diffusion «чекпойнт» также служит сокращённым названием основного файла модели, выбираемого в интерфейсе. Это не гарантирует встраивание каждой зависимости. Конвейеру всё равно могут требоваться VAE, текстовый кодировщик, токенизатор или конфигурация приложения либо сопутствующего пакета. Всегда определяйте «полноту» относительно загрузчика, который намерены восстановить.

LoRA — обученное обновление, а не вторая полная модель

Low-Rank Adaptation сохраняет предобученные веса замороженными и обучает низкоранговое обновление выбранных слоёв. Во время инференса фреймворк может динамически применить это обновление к базе или объединить его с производной копией. Адаптер мал, потому что хранит обновление, а не потому, что тайно сжимает каждый вес базы.

Эта зависимость — главное различие между чекпойнтом и LoRA. Нельзя считать, что портретная LoRA, обученная для одного семейства Stable Diffusion, будет работать с другой архитектурой. Адаптер языковой модели также зависит от базы и целевых модулей, описанных конфигурацией.

Практическое сравнение

ВопросЧекпойнтLoRA
Что хранитсяШирокое состояние модели; иногда дополнительное состояние обученияВеса и конфигурация низкорангового адаптера
Может ли работать самостоятельно?Часто загружается как основная модель в предназначенном конвейереНет; нужны совместимая база и загрузчик
Типичное использованиеБазовая модель, полное дообучение, контрольный этап или точка возобновленияЭффективная специализация, адаптация стиля, субъекта или задачи
ХранилищеОбычно гораздо больше, поскольку представляет значительно больше состоянияОбычно значительно меньше, поскольку обучаются только выбранные обновления
Вопрос восстановленияЕсть ли у меня полный пакет или состояние обучения, необходимое для работы?Есть ли у меня точная совместимая база, конфигурация адаптера и веса?

Становится ли LoRA чекпойнтом после объединения?

Объединение адаптера с базой создаёт производные веса. Инструмент может сохранить их в файл, обычно называемый чекпойнтом, но результат не является исходной базой и не обязательно сохраняет чистое обратимое разделение базы и адаптера. На него могут повлиять операции с плавающей запятой, преобразование dtype и параметры экспорта.

Храните необъединённый адаптер и точную базу, если хотите менять силу, комбинировать адаптеры или воспроизводить объединение. Также храните объединённый артефакт, когда важен именно этот файл развёртывания. Не удаляйте исходники лишь потому, что объединённый файл однажды успешно загрузился.

Что сохранять во время дообучения

Во время активного запуска промежуточные чекпойнты полезны для оценки и восстановления после прерывания. После завершения сохраняйте этапы, отвечающие на реальный вопрос: выбранный финальный адаптер, один или несколько обоснованных чекпойнтов для сравнения, конфигурацию, учебный код или команду, ссылку на набор данных и запись оценки. Руководство по учебным чекпойнтам LoRA рассматривает это как решение о воспроизводимости, а не правило «хранить всё».

Финальный адаптер — не состояние для возобновления обучения. Экспортированных весов LoRA может хватать для инференса, но в них может отсутствовать состояние оптимизатора и планировщика, необходимое для точного продолжения обучения.

Архивируйте семейства, а не отдельные имена файлов

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

Tensor Archive помогает хранить и проверять выбранные локальные тензоры как связанное семейство. Приложение не угадывает совместимость по имени файла, не реконструирует отсутствующее состояние обучения и не превращает LoRA в автономную базовую модель.

Продолжите с имеющимся артефактом

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

Источники

Храните базу и её адаптеры вместе.Скачать бесплатно ↓