🧩

Адаптация Низкого Ранга для Моделей

Jul 12, 2024

Лекции: Адаптация Низкого Ранга для Тонкой Настройки Больших Моделей

Введение

  • Тема: Адаптация Низкого Ранга (LORA)
  • Контекст: Тонкая настройка очень больших моделей глубокого обучения
  • Применение: Большие языковые модели (например, GPT-4 с 1.8 триллиона параметров)
  • Проблемы:
    • Настройка большого числа параметров занимает много времени
    • Требования к массивным GPU

Точность и Квантование

Весовые Матрицы и Типы Данных

  • Весовые Матрицы: Состоят из чисел с плавающей запятой, обычно float32
  • Типы Точности:
    • float32 (32 бита)
    • Половинная Точность (float16)

Понижение Точности

  • Компромиссы: Меньшее использование памяти за счет точности
  • Эффекты:
    • Ошибки накопления и округления

Вычисление Памяти

  • Формула: Размер типа данных * Количество весов
  • Дополнительная Память: Необходима для хранения градиентов и скоростей обучения
  • Пример: BLOOM (176 миллиардов параметров) требует около 350GB для инференса*

Смешанная Точность

  • Концепция: Разные части сети используют разные типы данных
  • Влияние на Производительность: Зависит от набора данных; обычно разумное

Квантование

  • Определение: Снижение точности весов модели, вплоть до целого уровня (int8)
  • Преимущество: Поддерживает производительность модели несмотря на понижение точности
  • Техники: Существуют различные методы квантования
  • Оптимальная Точность: Недавние статьи предполагают, что квантование на 4 бита практически оптимально

Производительность GPU

  • FLOPS: Метрика операций с плавающей запятой в секунду
  • Модели Меньшей Точности: Более быстрое обучение, так как они требуют меньше памяти и времени на вычисления

Техники Тонкой Настройки Параметров

Традиционное Трансферное Обучение

  • Метод: Заморозка всех весов, добавление специфической задачи головы
  • Ограничение: Использует только выходные эмбеддинги

Адаптерные Слои

  • Концепция: Добавление новых модулей между существующими слоями
  • Плюсы/Минусы: Улучшенный доступ к внутренним представлениям модели, но увеличивает задержку

Настройка Префикса

  • Метод: Оптимизация входных векторов (префиксов) для языковых моделей
  • Ограничение: Ограниченный контроль над поведением модели

Адаптация Низкого Ранга (LORA)

  • Концепция: Тонкая настройка с помощью поднабора параметров через матричное разложение
  • Мотивация: Эффективная настройка параметров может соответствовать настройке полного пространства
  • Применение: Обычно применяется к весам Внимания в Трансформерах

LORA в Деталях

Ранг Матрицы

  • Определение: Количество независимых строк или столбцов векторов
  • Важность: Улавливает основные свойства данных
  • Матрицы Низкого Ранга: Компактное представление, сниженная сложность

Процесс LORA

  • Основополагающая Статья: Мотивирована исследованием Facebook 2021 года
  • Процесс: Разложение обновлений весов (delta W) через произведение низкоранговых матриц B и A
  • Инициализация: B=0, A инициализируется из нормального распределения

Эффективность

  • Последствия: Эффективное обучение за счет фокусирования на матрицах B и A
  • Реализация: Добавляет результат разложения к выходу оригинальной замороженной модели
  • Скалирующий Фактор: Балансирует изменения относительно весов оригинальной модели

Гиперпараметры

  • Ранг (r): Внутренняя размерность, обычно варьируется от 1 до 64
  • Альфа (α): Контролирует величину обновления весов, балансирует оригинальные и измененные веса
  • Оптимальный Ранг: Зависит от набора данных; требуется эмпирический выбор

Преимущества

  • Сниженные Вычислительные Требования: Эффективное обучение
  • Производительность: Поддерживает высокую производительность с меньшим количеством параметров
  • Модульность: Легко менять веса LORA для различных задач

Практическая Реализация

  • Библиотека: HuggingFace peft библиотека
  • Функции: get_peft_model для легкого применения
  • Конфигурация Гиперпараметров: Указать целевые модули, альфа и ранг
  • Параметры: Сообщает о малом проценте обучаемых параметров (например, 0.19%)
  • Комбинация Квантования: Можно комбинировать LORA с техниками квантования (например, QLoRA с квантованием на 4 бита)

Заключение

  • Резюме: Эффективный и практичный метод для тонкой настройки больших моделей
  • Будущая Работа: Возможны дальнейшие исследования по комбинированию LORA с квантованием и другими техниками