TGTGInsighttelegram intelligenceLIVE / telegram public index
← ML Baldini • Nikita Boyandin
ML Baldini • Nikita Boyandin avatar

TGINSIGHT POST

Post #363

@ml_baldini

ML Baldini • Nikita Boyandin

Görüntülemeler1,040Gönderi görüntüleme sayısı
Yayınlandı2 Şub02.02.2026 15:01
İçerik

Gönderi içeriği

Квантизация LLM(Часть 1) Две самых больных тем для меня в тех собесах по LLM - дообучение и квантизация LLM. Думаю с первой я еще разберусь, а вот со второй мы сегодня повозимся. Как мы храним числа в памяти компьютера ⚫️Целочисленные числа Целые числа представляются в памяти с помощью фиксированного количества битов. Количество битов, выделяемое для хранения числа, определяет диапазон значений, которые могут быть представлены этим числом. Пример: INT8 (8 бит) может хранить значения от -128 до 127 (с учетом знака). INT16 (16 бит) может хранить значения от -32,768 до 32,767. INT32 (32 бита) может хранить значения от -2,147,483,648 до 2,147,483,647. ⚫️Вещественные числа Вещественные числа хранятся в памяти в формате с плавающей точкой. Это позволяет представлять числа с большой точностью и использовать их в вычислениях, где важно учитывать дробные части. Формат с плавающей точкой разделяет число на два компонента: Мантиссу (основная значащая часть числа) Экспоненту (показатель степени, который указывает на положение десятичной точки) Наиболее распространенные форматы с плавающей точкой: FP32 (32 бита): используется 1 бит для знака, 8 бит для экспоненты и 23 бита для мантиссы. Это стандартный формат для хранения вещественных чисел в большинстве вычислительных операций. FP64 (64 бита): аналогичный, но с удлиненной мантиссой и экспонентой, что позволяет представлять числа с еще большей точностью. Что такое квантизация и зачем она нужна Квантование - это процесс преобразования непрерывных значений или значений с высокой точностью в меньший набор дискретных значений с более низкой точностью. В контексте моделей глубокого обучения, особенно моделей с низкой точностью, это в первую очередь включает в себя уменьшение количества битов, используемых для представления весов и, часто, активаций. Типы квантизации 1️⃣ Посттренировочное квантование (PTQ) Постобучающее квантование применяется после полного обучения модели. Как правило, его реализация быстрее, поскольку не требует переобучения. Методы постобучения обычно требуют небольшого репрезентативного калибровочного набора данных. ⚫️Статический PTQ Статический PTQ квантует как веса, так и активации в автономном режиме. Он использует набор калибровочных данных для определения диапазона активаций, проходящих через различные слои модели. Эта информация используется для расчета соответствующих коэффициентов масштабирования и нулевых точек для активации, наряду с активациями для весов. ⚫️Динамический PTQ Динамический PTQ упрощает процесс, квантуя веса в автономном режиме, но определяя масштабирующие коэффициенты для активаций динамически во время вывода. Каждый тензор активации квантуется на лету на основе его наблюдаемого диапазона во время выполнения. Это позволяет избежать необходимости в калибровочном наборе данных, но вносит дополнительные затраты времени на вычисление коэффициентов масштабирования и квантование активаций во время каждого прямого прохода. 2️⃣ Обучение с учетом квантования (QAT) Обучение с учетом квантования имитирует эффекты квантования в процессе обучения или тонкой настройки модели. Оно вставляет в граф модели операции «фиктивного квантования». Эти операции имитируют эффекты округления и ограничения квантования во время прямого прохода, но позволяют градиентам проходить относительно беспрепятственно во время обратного прохода, часто с использованием сквозного оценщика (STE). Благодаря возможности адаптации модели к снижению точности в процессе обучения, QAT часто обеспечивает более высокую точность по сравнению с методами PTQ, особенно при квантовании до очень малых битовых ширин (например, INT4 или ниже). Основной недостаток заключается в увеличении сложности и вычислительных затрат, связанных с переобучением или тонкой настройкой модели.