Важным подходом к обработке естественного языка является обучение крупномасштабных моделей на общих данных и их адаптация к конкретным задачам или областям. Однако по мере того, как мы продолжаем разрабатывать более крупные модели, полное переобучение всех параметров модели становится все более непрактичным. Например, развертывание отдельных экземпляров доработанных моделей на основе GPT-3 175B, каждая из которых имеет 175 миллиардов параметров, чрезвычайно затратно. Чтобы решить эту проблему, мы предлагаем метод, называемый адаптацией низкого ранга (LoRA). LoRA включает в себя замораживание весов предварительно обученной модели и введение обучаемых матриц ранговой декомпозиции в каждый уровень архитектуры Transformer. Этот метод значительно уменьшает количество обучаемых параметров, необходимых для последующих задач. По сравнению с тонкой настройкой GPT-3 175B с помощью Adam, LoRA может уменьшить количество обучаемых параметров в 10 000 раз и в три раза снизить требования к памяти графического процессора. Несмотря на меньшее количество обучаемых параметров, LoRA обеспечивает сравнимое или даже превосходное качество модели по сравнению с такими методами точной настройки, как RoBERTa, DeBERTa, GPT-2 и GPT-3. Примечательно, что LoRA предлагает более высокую пропускную способность обучения и не вносит дополнительную задержку вывода, как это делают адаптеры. Мы также провели эмпирические исследования проблемы нехватки рангов при адаптации языковой модели, что дало представление об эффективности LoRA.

Разве существующие решения недостаточно хороши?

Уровни адаптера вводят задержку вывода

Были разработаны различные типы адаптеров. Мы сосредоточимся на двух конкретных проектах: один, созданный Houlsby et al. в 2019 году, который включает два слоя адаптера на каждый блок трансформатора, и более поздний дизайн Лина и др. в 2020 году, который включает один слой адаптера на блок вместе с дополнительным LayerNorm. Несмотря на то, что можно уменьшить задержку, сокращая слои или используя настройки многозадачности, не существует прямых способов обойти дополнительные вычислительные затраты, связанные с уровнями адаптера. Хотя слои адаптера рассчитаны на небольшое количество параметров (иногда менее 1% от исходной модели) с использованием узкого размера узкого места, это ограничение влияет на FLOP, которые они могут внести. Однако в случае больших нейронных сетей, которые полагаются на аппаратный параллелизм для поддержания низкой задержки, уровни адаптера должны обрабатываться последовательно. Это несоответствие становится заметным в сценариях онлайн-логического вывода, где размер пакета обычно невелик, даже при очень небольшом размере узкого места (см. следующую таблицу). Проблема усугубляется, когда модель сегментируется, как в работах Shoeybi et al. в 2020 г. и Лепихин и др. в 2020 году из-за увеличения глубины, требующей большего количества синхронных операций графического процессора, таких как AllReduce и Broadcast, если только параметры адаптера не будут избыточно сохраняться несколько раз.

Прямая оптимизация подсказки сложна

Существует еще один подход, известный как настройка префикса, который представляет собой особую проблему. Было замечено, что оптимизация настройки префикса является сложной задачей, а ее производительность немонотонно зависит от обучаемых параметров, что согласуется с выводами из исходной статьи. Более того, выделение части длины последовательности для адаптации по своей сути уменьшает длину последовательности, доступную для обработки нижестоящей задачи. Это ограничение заставляет нас полагать, что настройка подсказки может быть менее эффективной по сравнению с альтернативными методами.

Методология

Матрицы обновления с параметрами низкого ранга

Нейронные сети состоят из нескольких плотных слоев, которые выполняют умножение матриц. Матрицы весов в этих слоях обычно имеют полный ранг. Исследование Агаджаняна и соавт. в 2020 году демонстрирует, что предварительно обученные языковые модели имеют низкую «внутреннюю размерность» и могут эффективно обучаться даже при проецировании на меньшее подпространство. Черпая из этого вдохновение, мы выдвигаем гипотезу о том, что обновления веса во время адаптации также демонстрируют низкий «внутренний ранг». Вот различные типы адаптеров, которые были разработаны. Мы сосредоточимся на двух конкретных проектах: один, созданный Houlsby et al. в 2019 году, который включает в себя

Обобщение тонкой настройки чайки

Более общий подход к тонкой настройке позволяет обучать только подмножество предварительно обученных параметров. LoRA делает еще один шаг вперед, не требуя, чтобы накопленные градиентные обновления весовых матриц имели полный ранг во время адаптации. Применяя LoRA ко всем весовым матрицам и обучая все смещения, мы можем достичь уровня выразительности, аналогичного полной точной настройке, установив ранг LoRA равным рангу предварительно обученных весовых матриц. Проще говоря, по мере увеличения количества обучаемых параметров обучение с LoRA приближается к процессу обучения исходной модели, в то время как методы на основе адаптера сходятся к MLP (многослойному персептрону), а методы на основе префиксов сходятся к модели, которая не может обрабатывать длинные входные последовательности.

Нет дополнительной задержки вывода

Во время производственного развертывания можно вычислить и сохранить значение W как W0 + BA, где W0 и BA принадлежат пространству R^(d×k). Затем вывод может быть проведен как обычно. Когда есть необходимость переключиться на другую нисходящую задачу, W0 можно получить путем вычитания BA и последующего добавления отдельного B'A'. Эта операция выполняется быстро и требует минимальных затрат памяти. Важно отметить, что это гарантирует отсутствие дополнительной задержки во время логического вывода по сравнению с точно настроенной моделью, поскольку она изначально разработана таким образом.

В этой статье я кратко излагаю свою точку зрения на бумагу. Я надеюсь, что вы сможете узнать больше об этом после прочтения. Я также предлагаю ссылку на видео о статье, надеюсь, вам понравится!!!!

Если вам понравилась статья, пожалуйста, дайте мне немного 👏, поделитесь статьей и следуйте за мной, чтобы узнать больше о мире мультиагентного обучения с подкреплением. Вы также можете связаться со мной в LinkedIn, Instagram, Facebookи Github.