Новый метод с открытым исходным кодом от Huawei уменьшает языковые модели для повышения их доступности

Новый метод с открытым исходным кодом от Huawei уменьшает языковые модели для повышения их доступности

Лаборатория вычислительных систем Huawei в Цюрихе представила новый метод квантования с открытым исходным кодом для больших языковых моделей (LLM), направленный на снижение требований к памяти без ущерба для качества генерации.

Метод, получивший название SINQ (Sinkhorn-Normalized Quantization), разработан как быстрый, не требующий калибровки и простой в интеграции в существующие рабочие процессы моделей. Код для его реализации был опубликован исследовательской группой Huawei на Github и Hugging Face под мягкой, дружественной к бизнесу лицензией Apache 2.0, что позволяет организациям брать его, использовать, модифицировать и развертывать в коммерческих целях — и всё это абсолютно бесплатно.

Для моделей разного размера SINQ сокращает потребление памяти на 60–70% в зависимости от архитектуры и разрядности.

Это позволяет запускать модели, которым раньше требовалось >60 ГБ памяти, на конфигурациях с ~20 ГБ, что является критически важным фактором для работы с большими моделями на одном высокопроизводительном графическом процессоре или даже на потребительских сборках с несколькими видеокартами.

Благодаря этому становится возможным запуск моделей, ранее требовавших дорогостоящих корпоративных GPU — таких как NVIDIA A100 или H100, — на значительно более доступном оборудовании, например, на одной Nvidia GeForce RTX 4090 (около $1600), вместо корпоративного железа вроде A100 80GB ($19,000) или даже устройств H100, стоимость которых превышает $30 000.

Для команд, использующих облачную инфраструктуру, экономия столь же ощутима. Инстансы на базе A100 часто стоят $3–4,50 в час, в то время как 24-гигабайтные GPU, такие как RTX 4090, доступны на многих платформах по цене $1–1,50 в час.

Со временем, особенно при выполнении масштабных задач инференса, эта разница может вылиться в тысячи долларов экономии, а также открыть возможности для развертывания LLM на небольших кластерах, локальных рабочих станциях или потребительских ПК, ранее ограниченных объемами памяти.

Решение проблемы дефицита памяти в LLM

Запуск больших моделей часто требует компромиссов между производительностью и размером.

На практике нейросети используют числа с плавающей запятой для представления как весов, так и активаций. Число с плавающей запятой способно выражать широкий диапазон значений (очень малые, очень большие, с дробной частью).

Эта гибкость полезна тем, что в процессе обучения и инференса веса и активации могут существенно изменяться в масштабе. Использование плавающей запятой позволяет модели подстраиваться с высокой точностью (например, вес может составлять 0,0023 или 123,45, и формат с плавающей запятой может зафиксировать оба значения с приемлемой точностью).

Квантование — метод, снижающий точность весов модели, — предлагает практический путь к уменьшению потребления памяти, но обычно сопряжено с компромиссами в качестве модели, особенно при 4-битной точности и ниже.

Когда вы преобразуете значения с плавающей запятой в форматы более низкой точности (например, 8-битные целые числа), вы производите их аппроксимацию.

Это означает, что вы храните данные и производите вычисления с меньшим количеством бит, что быстрее и эффективнее с точки зрения памяти, но вы рискуете потерять точность (то есть внести небольшие ошибки).

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

SINQ решает эти проблемы, предлагая готовое решение по принципу «plug-and-play», которое обеспечивает высокую производительность даже в условиях низкой точности — без необходимости использования калибровочных данных или межслойных зависимостей.

Как работает SINQ

Подход SINQ предлагает два главных нововведения:

  1. Масштабирование по двум осям (Dual-Axis Scaling): Вместо использования единого масштабного коэффициента для квантования матрицы SINQ применяет раздельные векторизованные коэффициенты масштабирования для строк и столбцов. Это помогает смягчить влияние выбросов и позволяет более гибко распределять ошибку квантования по всей матрице.

  2. Нормализация в стиле Синхорна — Кноппа (Sinkhorn-Knopp-Style Normalization): Быстрый алгоритм, вдохновленный итерациями Синхорна, используется для нормализации стандартных отклонений строк и столбцов в матрице. Это помогает минимизировать то, что авторы называют «дисбалансом матрицы» — новую прокси-метрику, которая оказалась более эффективной, чем альтернативы вроде эксцесса, для улучшения производительности квантования.

Сочетание этих двух особенностей позволяет SINQ превосходить другие методы без калибровки, такие как Round-To-Nearest (RTN), HQQ и квантование на основе матриц Адамара, на множестве бенчмарков.

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

SINQ был протестирован на широком спектре архитектур и моделей, включая серии Qwen3, LLaMA и DeepSeek.

На таких бенчмарках, как WikiText2 и C4, SINQ стабильно снижает перплексию (perplexity) и частоту сбоев (flip rates) по сравнению с базовыми методами, часто приближаясь к производительности откалиброванных решений или соответствуя ей.

Он также поддерживает схемы неравномерного квантования, такие как NF4, и может комбинироваться с методами калибровки, например AWQ, образуя вариант A-SINQ. В условиях калибровки A-SINQ еще сильнее сокращает отставание от моделей полной точности.

С точки зрения эффективности выполнения, SINQ квантует модели примерно в два раза быстрее, чем HQQ, и более чем в 30 раз быстрее, чем AWQ. Это делает его отличным выбором как для исследовательских, так и для производственных сред, где время квантования имеет практическое значение.

Открытый исходный код и простота использования

Huawei выпустила SINQ как проект с открытым исходным кодом под мягкой, дружественной к бизнесу лицензией Apache 2.0. Инструкции по реализации и инструменты для обеспечения воспроизводимости доступны на GitHub:

Репозиторий включает поддержку квантования моделей Hugging Face всего в несколько строк кода, а также инструменты для сохранения и перезагрузки квантованных весов. Настройки по умолчанию обеспечивают баланс между экономией памяти и точностью, при этом пользователи могут настраивать такие параметры, как битовая ширина, стратегия тайлинга (tiling) и размер группы, в соответствии со своими потребностями.

Авторы также предоставляют интеграцию для оценки через библиотеку lm-eval и планируют в ближайшем будущем выпустить предварительно квантованные модели на платформе Hugging Face Hub.

Взгляд в будущее

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

В дальнейшем планируются новые обновления, включая интеграцию с Hugging Face Transformers и выпуск предварительно квантованных моделей, что делает этот проект крайне перспективным в сфере квантования.

ИИ

Смотреть все

Подпишитесь на свежие новости!

Глубокая аналитика для руководителей в области корпоративного ИИ, данных и безопасности

Подписаться по RSS

RSS-ленты обновляются каждые 15 минут.