QUANT_PRUNE_DISTILL Telegram 213
BitNet: Scaling 1-bit Transformers for Large Language Models
[Статья][Официального кода нет]

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

Метод

Линейные слои заменяются на BitLinear, где элементы принимают только два значения -1 и 1. Если вес больше среднего элемента по матрице - то он 1, иначе -1. И общий масштаб равен среднему модулю веса. Максимально дешево и сердито 😈. Такая операция недифференцируема, потому используется STE. На этапе обучения авторы хранят полный тензор весов во float.

Активации квантуются в 8 бит с помощью равномерной сетки.

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

Вычисление среднего значения для определения среднего значения по тензору требует синхронизации при model parallelism. И во избежание лишней коммуникации между процессами при распределенном обучении среднее считается по части матрицы, лежащей на данном процессе.
Странно, что они не рассматирвают поканальное квантование, или даже группами по 256: выразительность больше, а размер модели все еще не сильно отличается от 1 бита.

Далее авторы приводят табличку, показывающую насколько энергоэффективнее INT8 по сравнению с fp16 на разных техпроцессах. На случай, если Грета будет ревьюером.

Эксперименты

Обучают на смеси Pile, CommonCrawl, CC-Stories, RealNews модели размером от 125M до 6.7B. По перплексии полученные модели ожидаемо хуже бейзлайна в fp16, но зато, если нормализовать на энергопотребление, то BitNet смотрится весьма представлительно.

Обучение BitNet с STE требует большего learning rate для адекватной сходимости (~8e-4), на котором fp16 расходится.
По 0-шот бенчам якобы не слишком сильно уступают fp16 трансформеру, однако вопрос в том, насколько хорошо был затюнен сам бейзлайн, и сами бенчи были выбраны по-хитрому. BitNet 6.7B выдает 55.9% на бенчах, но при этом качество случайной модели 43.8% и относительный отрыв от рандом выглядит не таким большим.

Конкурентые PTQ подходы, стартующие с fp16 трансформера конкренто ломаются в низкой битности (тогда еще не вышли QuIP# и AQLM).

Вывод

С одной стороны, неплохо, что это уже как-то работает, но бенчи и бейзлайны были подобраны не слишком честно) BitNet1.58 выдает уже значительно более высокое качество, благодаря возможности принимать хотя бы 0-ое значение.
👍9



tgoop.com/quant_prune_distill/213
Create:
Last Update:

BitNet: Scaling 1-bit Transformers for Large Language Models
[Статья][Официального кода нет]

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

Метод

Линейные слои заменяются на BitLinear, где элементы принимают только два значения -1 и 1. Если вес больше среднего элемента по матрице - то он 1, иначе -1. И общий масштаб равен среднему модулю веса. Максимально дешево и сердито 😈. Такая операция недифференцируема, потому используется STE. На этапе обучения авторы хранят полный тензор весов во float.

Активации квантуются в 8 бит с помощью равномерной сетки.

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

Вычисление среднего значения для определения среднего значения по тензору требует синхронизации при model parallelism. И во избежание лишней коммуникации между процессами при распределенном обучении среднее считается по части матрицы, лежащей на данном процессе.
Странно, что они не рассматирвают поканальное квантование, или даже группами по 256: выразительность больше, а размер модели все еще не сильно отличается от 1 бита.

Далее авторы приводят табличку, показывающую насколько энергоэффективнее INT8 по сравнению с fp16 на разных техпроцессах. На случай, если Грета будет ревьюером.

Эксперименты

Обучают на смеси Pile, CommonCrawl, CC-Stories, RealNews модели размером от 125M до 6.7B. По перплексии полученные модели ожидаемо хуже бейзлайна в fp16, но зато, если нормализовать на энергопотребление, то BitNet смотрится весьма представлительно.

Обучение BitNet с STE требует большего learning rate для адекватной сходимости (~8e-4), на котором fp16 расходится.
По 0-шот бенчам якобы не слишком сильно уступают fp16 трансформеру, однако вопрос в том, насколько хорошо был затюнен сам бейзлайн, и сами бенчи были выбраны по-хитрому. BitNet 6.7B выдает 55.9% на бенчах, но при этом качество случайной модели 43.8% и относительный отрыв от рандом выглядит не таким большим.

Конкурентые PTQ подходы, стартующие с fp16 трансформера конкренто ломаются в низкой битности (тогда еще не вышли QuIP# и AQLM).

Вывод

С одной стороны, неплохо, что это уже как-то работает, но бенчи и бейзлайны были подобраны не слишком честно) BitNet1.58 выдает уже значительно более высокое качество, благодаря возможности принимать хотя бы 0-ое значение.

BY КПД


Share with your friend now:
tgoop.com/quant_prune_distill/213

View MORE
Open in Telegram


Telegram News

Date: |

Telegram Android app: Open the chats list, click the menu icon and select “New Channel.” Add up to 50 administrators Each account can create up to 10 public channels For crypto enthusiasts, there was the “gm” app, a self-described “meme app” which only allowed users to greet each other with “gm,” or “good morning,” a common acronym thrown around on Crypto Twitter and Discord. But the gm app was shut down back in September after a hacker reportedly gained access to user data. Informative
from us


Telegram КПД
FROM American