Технология сжатия снова обновляется, давая возможность большим моделям поместиться в мобильные телефоны.

Источник изображения: Создано Unbounded AI

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

Например, маленькая LLaMA имеет 7B параметров, а ее версия FP16 имеет размер 14 ГБ, в то время как мобильные устройства имеют только 18 ГБ DRAM. Таким образом, сжатие LLM за счет оптимизации времени обучения (например, разреживания, квантования или весовой кластеризации) является ключевым шагом для развертывания LLM на устройстве. Однако оптимизация времени обучения LLM очень дорога из-за размера модели и затрат вычислительных ресурсов. DKM, один из алгоритмов SOTA для весовой кластеризации, требует чрезмерного времени на обучение кластеризации с переменным весом из-за необходимости анализа взаимодействия между всеми весами и всеми возможными вариантами кластеризации.

Поэтому многие существующие методы сжатия LLM, такие как GTPQ и AWQ, полагаются на оптимизацию после обучения. В этой статье исследователи предлагают методы оптимизации памяти для достижения взвешенной по времени обучения кластеризации и ее применения в DKM, также известном как eDKM.

Методы, используемые в этой статье, включают тензорную оркестровку между устройствами, а также уникальность и сегментирование весовой матрицы. При использовании eDKM для точной настройки модели LLaMA 7B и сжатия ее до 3 бит на весовой коэффициент исследователи добились примерно 130-кратного сокращения объема памяти стека декодера, что лучше, чем существующая технология 3-битного сжатия.

Улучшение эффективности использования памяти DKM

Как показано на рисунке 1, популярными методами оптимизации веса являются сокращение, квантование и нормализация.Эти методы оптимизируют исходный вес W и получают вес

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

Кластеризация весов — это нелинейная дискретизация весов, при которой матрица весов сжимается в справочную таблицу и список индексов низкой точности справочной таблицы, которые могут обрабатывать современные ускорители вывода. DKM выполняет дифференцируемую кластеризацию весов, анализируя взаимодействие между весами (обозначенными W) и центральными точками (обозначаемыми C), и находит компромисс между степенью сжатия и точностью.

Таким образом, использование DKM для сжатия LLM дает результаты высокого качества. Однако карта внимания, создаваемая в процессе расчета DKM, велика, а сложность памяти для прямого/обратного прохода равна O (|W||C|) (т. е. матрица на рисунке 1), что особенно сложно для LLM. сжатие. . Например, модель LLaMA 7B, которая вычисляет карты внимания только для 4-битной весовой кластеризации, требует как минимум 224 ГБ памяти.

*Рисунок 1: Обзор системы оптимизации веса. В DKM система внутренне создает карту внимания, которую можно кластеризовать по дифференцируемым весам. *

Поэтому исследователям необходимо использовать память ЦП для удовлетворения таких больших требований к памяти, то есть сначала хранить информацию в памяти ЦП, а затем при необходимости копировать ее обратно в графический процессор. Однако это создаст большой объем трафика между графическим процессором и процессором (что замедляет обучение) и потребует огромного объема памяти процессора. Это означает, что крайне важно сократить количество транзакций между процессором и графическим процессором и минимизировать трафик на транзакцию. Чтобы решить эти проблемы, исследователи представили в PyTorch две новые технологии оптимизации памяти.

  • Тензорная оркестровка между устройствами: отслеживайте тензоры, копируемые на разные устройства, чтобы избежать избыточного копирования, тем самым сокращая использование памяти и ускоряя обучение.
  • Уникальность веса и обработка сегментирования. Воспользуйтесь тем фактом, что 16-битный вес имеет только 216 уникальных значений, чтобы уменьшить представление карты внимания (показано на рисунке 1) и дополнительно разделить ее на несколько моделей обучения.

Тензорная оркестровка между устройствами

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

В таблице 1 показано использование памяти тензорами при перемещении между устройствами PyTorch. Тензор x0, выделенный в строке 0, занимает 4 МБ на графическом процессоре. Когда его представление изменяется в строке 1, дополнительная память графического процессора не требуется, поскольку базовое хранилище данных можно использовать повторно (т. е. x0 и x1 фактически совпадают). Однако, когда x0 и x1 перемещаются в ЦП, как в строках 2 и 3, хотя y0 и y1 могут использовать одно и то же хранилище данных в ЦП, потребление памяти ЦП становится 8 МБ, что приводит к избыточности памяти ЦП и увеличивает нагрузку на графический процессор. трафик к процессору.

*Таблица 1. Точная настройка LLM может потребовать использования памяти ЦП для разгрузки памяти графического процессора. Отсутствие управления тензорами между устройствами может привести к избыточным копиям на разных устройствах (особенно если вычислительный граф сложен), что особенно вредно для оптимизации времени обучения LLM. Например, хотя x0 и x1 представляют собой один и тот же тензор с разными представлениями, результирующие тензоры y0 и y1 не совместно используют хранилище данных при копировании в ЦП, тогда как на графическом процессоре x0 и x1 делают это. *

Чтобы устранить эту неэффективность, исследователи поместили уровень оркестровки на рисунке 2(b), где черный цвет представляет собой фактическое хранилище данных и метаданные, а серый представляет только метаданные. На рисунке 2(a) показан пример из таблицы 1, где x1 разделяет структуру данных с x0, но y0 и y1 имеют дублированное хранилище данных на ЦП. Как показано на рисунке 2 (b), добавляя уровень оркестрации, исследователи избегают этой избыточности и сокращают трафик между графическими процессорами. Исследователи использовали хук save-tensor-hook в PyTorch для реализации такой схемы подкачки, проверяя, было ли скопировано одно и то же хранилище данных.

Однако использование такой схемы для проверки существования такого же тензора на целевом устройстве обходится дорого. В примере на рисунке 2(b) исследователь не копировал x1 в ЦП, а просто возвращал ссылку на y0 и операцию просмотра между x1 и y0.

*Рис. 2. При применении тензорной оркестрации между устройствами к ситуации, представленной в Таблице 1, можно избежать дублирования на стороне ЦП, тем самым экономя память и трафик. *

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

Уникализация веса и сегментирование

В большинстве случаев обучения LLM веса обычно используют 16-битное хранилище (например, BF16 или FP16), а это означает, что, хотя в LLM существуют миллиарды параметров, из-за разрядности имеется только 216 уникальных коэффициентов. Это дает возможность значительно сжать карту внимания между весами и центральными точками, как показано на рисунке 3.

Рисунок 3: Уникальность веса и сегментирование

Результаты эксперимента

Точность LLM

В этой статье eDKM сравнивается с другими схемами сжатия на основе квантования, включая: RTN, SmoothQuant, GPTQ, AWQ и LLM-QAT. Для eDKM исследователи также выполнили 8-битное сжатие на уровне внедрения. В итоге были сделаны следующие выводы:

  • eDKM позволяет модели LLaMA 7B с 3-битным сжатием превосходить все другие схемы 3-битного сжатия.
  • eDKM имеет лучшую точность в тесте ARC-e в 3-битных и 4-битных конфигурациях.
  • Производительность eDKM очень конкурентоспособна в тестах PIQA и MMLU с использованием 4-битной модели сжатия.

Эксперимент по абляции

В экспериментах по абляции исследователи измерили компромисс между объемом памяти и скоростью 3-битного сжатия вперед-назад, используя в качестве примера уровень внимания в стеке декодера LLaMA 7B. Одна только тензорная оркестровка между устройствами сокращает объем памяти в 2,9 раза при очень небольших накладных расходах во время выполнения, а модули сегментирования и уникальности экономят в 23,5 раза и 16,4 раза соответственно. Когда все технологии объединены, eDKM дает экономию примерно в 130 раз. Хотя эти шаги требуют дополнительных затрат на вычисления и связь, накладные расходы во время выполнения незначительны, поскольку трафик между графическим процессором и процессором значительно снижается.

Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • комментарий
  • Поделиться
комментарий
0/400
Нет комментариев
  • Закрепить