# Маркус Нагель из Qualcomm о квантовании трансформеров и оптимизации ИИ для мобильных устройств

Источник: https://www.youtube.com/watch?v=1RP3XcN8zFU
Канал: The TWIML AI Podcast
Опубликовано: 26.12.2023

---

В условиях стремительного роста популярности больших языковых моделей (LLM) вопрос их вычислительной эффективности становится критическим для индустрии. Маркус Нагель, научный сотрудник Qualcomm AI Research, в беседе с Сэмом Чаррингтоном обсуждает прорывные методы оптимизации трансформеров, которые позволяют запускать сложнейшие нейросети на мобильных устройствах без потери точности и значительных затрат энергии.

## 🚀 Дилемма выбросов: почему трансформеры сложно квантовать
[[JUMP:04:45]]

Одной из центральных тем обсуждения стало исследование Qualcomm, представленное на конференции NeurIPS, посвященное проблеме «выбросов» (outliers) в активациях трансформеров [05:25]. Квантование — процесс перевода весов и активаций нейросети из формата с плавающей точкой (FP16/32) в целочисленный формат низкой разрядности (например, INT8), что критично для работы на смартфонах [05:38].

Маркус Нагель объясняет, что в трансформерах активации распределены неравномерно: основная масса значений находится в узком диапазоне, но существуют отдельные каналы с экстремально высокими значениями [06:04]. Это создает «компромисс между диапазоном и точностью»:

*   Если включить выбросы в диапазон квантования, точность основной массы данных резко падает из-за высокого шага квантования [06:18].
*   Если отсечь выбросы, теряется важная информация, что разрушает работу модели.

По словам Нагеля, большинство предыдущих работ пытались лишь «сгладить» проблему, оставляя часть данных в формате с плавающей точкой, что усложняет аппаратную реализацию [07:50].

## 🧠 Феномен «пустого» внимания: корень проблемы найден
[[JUMP:08:45]]

Исследователи Qualcomm обнаружили, что выбросы возникают не случайно. Они стабильно появляются в одних и тех же каналах и привязаны к специфическим токенам, таким как знаки пунктуации (точки, запятые), разделители или фоновые фрагменты в Vision Transformers [09:10].

Ключевые выводы команды Нагеля:

*   **Гипотеза «нулевого обновления»**: На глубоких слоях LLM модель часто уже сформировала представление о токене и не нуждается в его обновлении. Однако архитектура трансформера не имеет простого механизма «ничего не делать» [11:11].
*   **Механизм возникновения выбросов**: Чтобы имитировать отсутствие обновления, головы внимания направляют веса на «бессмысленные» токены (точки, разделители), значения которых в матрице Value близки к нулю [10:32]. 
*   **Математический тупик**: Для достижения почти нулевого веса через функцию Softmax требуется огромный динамический диапазон входных данных. Поскольку слоевая нормализация (LayerNorm) гасит этот диапазон, веса в предыдущих слоях вынуждены расти до бесконечности, создавая те самые выбросы [13:50].

## 🛠️ Решение: ClipSoftmax и Gated Attention
[[JUMP:11:50]]

Для решения проблемы Qualcomm предложила два метода, которые позволяют головам внимания «законно» ничего не делать, не раздувая значения активаций [12:04]:

1.  **ClipSoftmax**: Модифицированная функция активации. Выход Softmax слегка растягивается (например, от -0.01 до 1.01) и затем обрезается (clip) до диапазона [0, 1]. Это позволяет достигать аппаратного нуля с конечным входным диапазоном [14:31].
2.  **Gated Attention**: Добавление явного «затвора» (gate) в механизм внимания. Один нейрон с функцией сигмоиды может полностью обнулить строку матрицы внимания [15:23].

В ходе экспериментов было установлено, что оба метода сохраняют точность модели в FP32, но при переходе к INT8 показывают результаты, близкие к оригиналу, в то время как стандартные модели практически перестают работать (уровень точности падает до случайного угадывания) [19:49]. Наиболее стабильным на разных типах моделей (BERT, OPT, ViT) оказался метод Gated Attention [17:07].

## ⚖️ Прунинг против Квантования: что эффективнее?
[[JUMP:20:15]]

Второе исследование Нагеля посвящено сравнению двух столпов оптимизации весов: прунинга (удаления лишних связей) и квантования [20:41]. Команда стремилась выяснить, какой метод при одинаковой степени сжатия дает меньшую ошибку (SNR — отношение сигнала к шуму) [21:23].

Основные тезисы сравнения:

*   В большинстве случаев **квантование значительно превосходит прунинг** по точности [22:58].
*   Прунинг (прореживание) выигрывает только в экстремальных случаях: при очень низкой разрядности (2-3 бита), что соответствует 85-90% разреженности весов, и при очень высоком уровне выбросов в весах [24:20].
*   Исследование ввело понятие «верхней границы SNR», которое доказывает, что даже будущие, еще не изобретенные алгоритмы прунинга вряд ли превзойдут текущие методы квантования в стандартных сценариях [25:28].

## 🧬 Геометрическая алгебра и диффузионные модели
[[JUMP:31:55]]

Нагель также кратко осветил работу своих коллег, в частности, Тако Коэна и Макса Веллинга, в области эквивариантных нейронных сетей [34:38].

*   **Edgy (Equivariant Diffusion)**: Применение диффузионных моделей для планирования действий роботов. Учет геометрических симметрий (вращение, сдвиг) делает обучение роботов в разы более эффективным за счет исключения избыточности в данных [33:54].
*   **Geometric Algebra Transformers (GATr)**: Объединение концепций алгебры Клиффорда, эквивариантности и трансформеров. Метод позволяет эффективно обрабатывать облака точек и сложные сетки (meshes) [36:48]. Особенность GATr — высокая масштабируемость: он справляется с сетками объемом до 7000 узлов, что ранее было технически затруднительно для подобных архитектур [38:08].

## 📱 Stable Diffusion на смартфоне менее чем за секунду
[[JUMP:43:07]]

Одним из самых впечатляющих достижений Qualcomm стала демонстрация работы Stable Diffusion на мобильном чипе со скоростью менее 600 миллисекунд (в начале года это занимало 12-15 секунд) [45:24]. По словам спикера, такой прогресс достигнут благодаря «полностековой оптимизации» [44:16]:

1.  **Эффективный UNet**: Удаление избыточных блоков внимания в структуре нейросети [46:59].
2.  **Guidance Distillation**: Обучение модели предсказывать результат сразу, без необходимости запускать сеть дважды (условная и безусловная генерация) на каждом шагу [47:52].
3.  **Step Distillation**: Сокращение количества шагов диффузии с 20 до 6 за счет обучения модели «прыгать» через несколько шагов без потери качества [48:17].

Маркус Нагель подчеркивает, что хотя низкоуровневые оптимизации (компиляция под аппаратное обеспечение) универсальны, такие глубокие изменения в архитектуре требуют индивидуальной «ручной» настройки для каждой задачи [49:35].

---