Отсчет LLM- Методы обрезки: удвоение скорости вывода

LLM-Секатор

Методы разреженного вывода для 100-кратного ускорения в режиме большого языка. Узнайте секреты LLM- Методы обрезки, удваивающие скорость вывода для более быстрых результатов.

Введение

Хорошо известно, что на модель большого языка влияют три основных фактора (LLM) производительность на GPUс: (1) GPU вычислительная мощность, (2) GPU ввод/вывод (I/O) и (3) GPU Размер памяти. Стоит отметить, что на сегодняшний день LLMs, фактор (2) является основным узким местом на этапе вывода.

Этот блог посвящен возможности ускорения LLM выводы о потребительских видеокартах посредством обрезки или разрежения на основе последних исследовательских работ и инженерных практик.

Во-первых, обращаясь к анализу LLM В метриках задержки вывода в [1] сделаны следующие три вывода:

  • На этапах подсказки и генерации токенов LLMэтап генерации токенов занимает гораздо больше времени из-за задержки ввода-вывода, возникающей при загрузке параметров модели.
  • In LLM вывод, оба модуля, Attention и MLP, являются узкими местами, причем на модуль MLP приходится около двух третей задержки ввода-вывода.
  • Доля всех сокращений (связь между GPUs) относительно низок, что свидетельствует о том, что основное направление оптимизации лежит в самой архитектуре трансформатора.

Подробные данные приведены на рисунке ниже:

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

Введение в разреженность.

Отсечение модели, также известное как разреженность модели, отличается от квантования модели тем, что вместо сжатия каждого весового параметра методы разреженности пытаются напрямую «удалить» определенные весовые параметры. Принцип отсечения модели заключается в уменьшении количества параметров и вычислительной нагрузки в модели путем устранения «неважных» весов при попытке сохранить точность модели.

В статье [17] впервые представлен метод обрезки весов: все веса ниже определенного порога обрезаются, после чего следует тонкая настройка, пока точность не достигнет желаемого уровня. Авторы этой статьи провели эксперименты на LeNet, AlexNet и VGGNet, чтобы проверить эффективность обрезки.

Другой вывод относительно регуляризации L1 и L2 предполагает, что регуляризация L1 работает лучше без тонкой настройки, тогда как регуляризация L2 работает лучше с тонкой настройкой. Кроме того, более ранние слои в сети более чувствительны к обрезке, что делает итеративный подход к обрезке предпочтительным. Кроме того, на основе экспериментов авторы предлагают гипотезу лотерейного билета.

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

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

Между тем, в соответствии с объектами, которые могут быть разрежены в моделях глубокого обучения, разреженность в глубоких нейронных сетях в основном включает разреженность веса, разреженность активации и разреженность градиента.

Вышеизложенное представляет собой краткое введение в понятие разреженности. Далее мы в трёх частях изложим ключевое утверждение: «Как LLM Ускоряет вывод за счёт разреженности». В первой части будет обсуждаться «Как сокращаются большие модели». Во второй части будет рассмотрено «Как ускорить вывод с помощью разреженности активации», а в третьей части будет рассмотрено «Влияние компиляторов разреженности на LLM Вывод».

В этом подробном руководстве мы рассмотрим первую часть, «Раскрытие LLM«Методы обрезки: удвоение скорости вывода», автор Закари из novita.ai .

Как LLM повторно обрезан

LLMМасштабы моделей часто составляют несколько сотен миллиардов параметров, что делает традиционные методы переобучения или итеративного отсечения непрактичными. Поэтому такие методы, как итеративное отсечение и гипотеза лотереи [2,3], применимы только к моделям меньшего масштаба.

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

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

РазреженныйGPT

SparseGPT[12] — это первый одноразовый точный метод обрезки в LLM Сценарий, который может эффективно работать с моделями масштабом от 100 до 1000 миллиардов параметров. Принцип работы SparseGPT упрощает задачу обрезки до крупномасштабного экземпляра разреженной регрессии. Он основан на новых приближенных решателях разреженной регрессии для решения задач иерархического сжатия, и его эффективности достаточно для работы с самой большой моделью GPT (175 млрд параметров) с использованием одного GPU всего за несколько часов. Кроме того, SparseGPT обеспечивает высокую точность без необходимости тонкой настройки, а потеря точности после обрезки может быть незначительной. Например, при использовании крупнейших общедоступных генеративных языковых моделей (OPT-175B и BLOOM-176B) SparseGPT достигает разреженности 50–60% при однократном тестировании с минимальной потерей точности, измеряемой перплексией или точностью нулевого тестирования.

Для получения инженерного кода обратитесь к проекту: https://github.com/IST-DASLab/sparsegpt

На рисунке 1 представлены экспериментальные результаты, подчеркивающие два ключевых момента: во-первых, как показано на рисунке 1 (слева), SparseGPT способен обрезать до 60% равномерной послойной разреженности в вариантах параметров 175B семейства OPT с минимальной потерей точности. Напротив, единственная известная однократная базовая линия, работающая в этом масштабе — Magnitude Pruning — сохраняет точность только до 10% разреженности и полностью разрушается за пределами 30% разреженности.

Во-вторых, как показано на рисунке 2 (справа), SparseGPT также может точно обеспечивать разреженность в более строгих, но аппаратно-дружественных полуструктурированных разреженных шаблонах 2:4 и 4:8. Хотя эти шаблоны часто влекут за собой дополнительную потерю точности по сравнению с плотными базовыми линиями, особенно для меньших моделей, ускорение вычислений может быть напрямую выведено из этих разреженных шаблонов. Кроме того, разреженность, вызванная этой техникой, может хорошо сочетаться с дополнительным сжатием, полученным посредством квантования.

LLM-Секатор

LLM-Pruner[13] — это метод структурированного отсечения, который выборочно удаляет несущественные структуры связей на основе информации о градиенте, максимизируя разреженность, сохраняя при этом большую часть функциональности LLM. LLM-Pruner с помощью LoRA эффективно восстанавливает производительность сокращенных моделей всего за 3 часа и 50 тыс. данных.

LLM-Pruner — это первая платформа, специально разработанная для структурированной обрезки LLMs, преимущества которого можно суммировать следующим образом: (i) Сжатие, не зависящее от задач, при котором сжатые языковые модели сохраняют свою способность решать многозадачные задачи. (ii) Снижение спроса на исходные обучающие корпуса, поскольку для сжатия требуется всего 50,000 XNUMX общедоступных образцов, что значительно сокращает бюджет на приобретение обучающих данных. (iii) Быстрое сжатие, при этом процесс сжатия завершается в течение трех часов. (iv) Автоматическая структура структурного отсечения, в которой все структурные зависимости группируются без необходимости ручного проектирования.

Чтобы оценить эффективность LLMPruner, были проведены обширные эксперименты с тремя крупномасштабными языковыми моделями: LLaMA-7B, Vicuna-7B и ChatGLM-6B. Сжатые модели были оценены с использованием девяти наборов данных для оценки качества генерации и эффективности классификации с нулевой точностью для сокращенных моделей.

Ссылаясь на таблицу ниже, обрезка LLaMA-7B на 20% с использованием LLM-Pruner с 2.59 миллионами образцов показал минимальное снижение производительности модели, но заметное увеличение скорости вывода на 18%.

Результаты LLM-Секатель с 2.59 млн образцов

Ванда

Ванда[14], метод обрезки, основанный на весах и активациях, является новым, простым и эффективным подходом, направленным на создание разреженности в предварительно обученных LLMs. Вдохновленный недавними наблюдениями за существенными ценностными особенностями в LLMs, Ванда обрезает веса, умножая каждый выходной сигнал на соответствующую активацию входного сигнала на минимальное квантованное значение. Примечательно, что Ванда не требует переобучения или обновления весов, и обрезает LLMs можно использовать как есть. Оценка Wanda на LLaMA и LLaMA-2 подтверждает его превосходство над установленными базовыми значениями для обрезки магнитуд, демонстрируя конкурентоспособность по сравнению с современными методами, включающими обновления с плотным весом.

Для получения инженерного кода обратитесь к проекту: https://github.com/locuslab/wanda

WikiText запутанность обрезанных моделей LLaMA и LLaMA-2. Wanda работает на равных с предыдущим лучшим методом SparseGPT, без введения какого-либо обновления веса.

Ссылаясь на приведенный выше рисунок, Wanda и SparseGPT демонстрируют сопоставимую производительность при обрезке моделей.

Недостатки традиционных методов обрезки:

  • Поддержка оборудования: Достижение ускорения тактового времени посредством неструктурированной разреженности является сложной задачей из-за известных трудностей с современным оборудованием. Например, недавние разработки, такие как SparseGPT, достигли 60% неструктурированной разреженности посредством нулевой обрезки, но не привели к каким-либо значительным эффектам ускорения тактового времени.
  • Проблемы развертывания: удовлетворение специфических требований за счет разреженного использования моделей в таких контекстах, как контекстное обучение, представляет собой сложную задачу. Хотя многие работы продемонстрировали эффективность отсечения, ориентированного на конкретные задачи, поддержка различных моделей для каждой задачи противоречит позиционированию LLM что само по себе создает препятствия для развертывания.

Вывод:

Подводя итог, можно сказать, что инновационные методы обрезки, такие как SparseGPT, LLMPruner и Wanda предлагают новые перспективы и технические средства для обрезки больших моделей с сохранением высокой производительности. Однако для решения проблем, связанных с аппаратной поддержкой и практическим применением, по-прежнему необходимы дальнейшие исследования. В следующей публикации мы рассмотрим вторую часть: «Как ускорить вывод с помощью разреженности активации».

Справочная статья

[1]Дежавю: контекстная разреженность для эффективности LLMs во время вывода

[4] Аппаратная лотерея

[6]Переосмысление роли масштаба для контекстного обучения: основанное на интерпретируемости исследование в масштабе 66 миллиардов

[12]SparseGPT: Массивные языковые модели могут быть точно сокращены за один раз

[13]LLM-Pruner: О структурной обрезке больших языковых моделей

[14]Простой и эффективный подход к сокращению для больших языковых моделей

[17]Изучение весов и связей для эффективных нейронных сетей

novita.ai Предоставляет API Stable Diffusion и сотни быстрых и самых дешевых API для генерации изображений на основе ИИ для 10,000 2 моделей. 🎯 Самая быстрая генерация всего за 0.0015 секунды, оплата по мере использования, минимум XNUMX доллара за каждое стандартное изображение, вы можете добавлять свои собственные модели и избегать GPU Техническое обслуживание. Свободное распространение расширений с открытым исходным кодом.

Рекомендуемое чтение

  1. Методы квантования для 100-кратного ускорения вывода больших языковых моделей

Узнайте больше от Novita

Подпишитесь, чтобы получать последние публикации на вашу электронную почту.

Оставьте комментарий

Наверх

Узнайте больше от Novita

Подпишитесь сейчас, чтобы продолжить чтение и получить доступ к полному архиву.

Подробнее