Telegram Web Link
TinyGSM: achieving > 80% on GSM8k with small language models
[Статья][Кода нет, как и моделей и датасета]

Введение

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

В разбираемой статье авторы обучили семейство сетей небольшого размера (от 125M до 1.3B), которые превосходят по доле правильных решений куда более крупных конкурентов.

Метод

В великом множестве статей ранее было показано, что синтетические данные, сгененированные могучей сетью а-ля GPT-3.5/4, позволяют добиться значительно более высокой эффективности обучения по сравнению с типичным корпусами, собранными из интернета. В частности, можно дотюнить (Alpaca, Vicuna, Wizard, Platypus и многое и многое другое), или обучить с нуля (серия моделей Microsoft-Phi и TinyStories).

Математические датасеты невелики по размеру. GSM-8k, в частности, имеет всего 7k примеров в обучающей выборке, и наивное обучение приведет к переобучению. Потому авторы аугментируют данные с помощью GPT-3.5, перефразируя вопросы и добавляя нерелевантный контекст. Чтобы обеспечить качество данных, убирают слишком короткие и не содержащие числа задачи. Кроме того, выфильтровали задачи, которые оказались похожи на тестовые по n-грамному сравнению. Итого вышло более 12M синтетических задач. (~1.8B токенов)

Однако одно лишь это не позволяет преодолеть порог в 70% top-1 accuracy на тесте GSM-8k.

Следующим краеугольным камнем работы является использование модели-verifier (проверятеля), которая оценивает корректность каждого шага решения. Мотивация заключается в том, что одно решение может быть неправильным, но если сгенерировать несколько, то хотя бы одно да залетит. И модель-verifier учится определять корректные шаги в решении.

Обучают ее следующим образом - берут 3 чекпоинта модели, решающей GSM-8k, с разных итераций обучения (более ранние больше ошибаются), и учат предсказывать корректность конкретного токена в решении. Если модель-решатель решила задачу верно, то все токены в последовательности размечаются, как верные - label 1, иначе - наоборот, вся последовательность, как неправильная. Сэмплируют 48 решений на каждый из 7к примеров в обучающей выборке.

Таким образом рецепт успеха состоит из двух основных идей:
1⃣️️️️️️ Аугментация датасета
2⃣️️️️️️ Обучение модели - проверятеля, оценивающей правильность конкретных шагов совместно с моделью, решающей задачи.
👍21
Эксперименты

Модель-решатель и модель-проверяльщика инициализируют из преобученных Phi-1.5. Одно лишь увеличение размера модели-решателя дает небольшой прирост качества, потому добавления проверяльщика - критично для достижения хорошего результата. Любопытно, что увеличение проверяльщика дает больший прирост качества, чем модели решателя. Сэмплируются 48 решений, из которых подается лучшее в качестве ответа.

Самая лучшая модель достигает качества в 81.5%, что больше, чем у GPT-3.5 (77.4%), породившей в определенном смысле данную модель, и открытых моделей, дообученных на решение математических задач поверх Llama 2 7B и 13B. GPT-4 для справки добивается 97% точности.

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

Ожидаемо, случайная инициализация работает хуже, чем обучение с чекпоинта Phi-1.5, хоть я бы ожидал большей разницы.

Вывод

Прикольное и эффектное решение. Тем не менее уместно заметить, что стоимость инференса при использовании модели-проверятеля возрастает кратно числу сгенерированных моделью-решателем ответов и выигрыш от использования меньшей модели надо умножать на число прогонов, после чего сравнить с качеством при одноразовой прогонке через большую модель.
🔥2👍1
И из забавного на ночь (от коллег).

Вывод одной модели на задаче из GSM-8k:
Question:

Gerald wants to buy a meat pie that costs 2 pfennigs. Gerald has 54 farthings, and there are 6 farthings to a pfennig. How many pfennigs will Gerald have left after buying the pie?

Answer:

nobody cares\n#### 54
🔥11💅4
Parameter-Efficient Sparsity Crafting from Dense to Mixture-of-Experts for Instruction Tuning on General Tasks (спасибо @milana_shhanukova)
[Статья] [Код]

Введение

Как известно, дообучение на грамотным образом собранных инструкциях позволяет заметно повысить полезность LLM-ок. Для создания широкопрофильного ассистента требуется обучение на широком и разнообразном наборе инструкций. К сожалению, не все модели обладают достаточной емкостью, чтобы впитывать все подаваемое знание через трубочку и на практике происходит catastrophic forgetting при переходе от одного типа инструкций к другому.

Естественным решением проблемы являются смеси экспертов (MoE). Каждый эксперт условно соответствует некоторому домену. В работе Sparse Upcycling наделали реплик FFN слоев, и дообучили, но такой подход, довольно дорогостоящий по памяти для больших моделей.

Метод

Суть метода проста как пробка - раз полноценные FFN слои дорогие - даешь смесь bottleneck экспертов (а-ля LoRA c активацией посередине). И чтобы необучаемые параметры было еще проще уместить на GPU - заквантовать необучаемые параметры в 4 бита как в QLoRA.

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

Обучают все хозяйство на смеси SlimORCA, Magicoder, MetaMathQA (520к инструкций в сумме). Обучение длится одну эпоху. В качестве основных моделей берут - Llama-2-7b, Llama-2-13b, Yi-34b (потому что Llama-2-33b не выпустили).

Если я правильно понял, модель дообученная на наборе инструкций c QLoRA - называется Camel, а эксперты со смесью LoRA адаптеров - Camelidae 🐪. Как и в Mixtral - создают 8 экспертов, из которых активируются только 2.

Модель валидируют на разнообразных бенмарчках - MMLU (знания в разных предметных областях), Hellaswag (commonsense reasoning), HumanEval (код), GSM8k (элементарная математика) и др.

Camelidae ожидаемо опережает базовую модель по метрикам, и самая большая модель Camelidae-8×34B выглядит якобы даже сильнее большего Mixtral-8×7B-instruct с плотными экспертами и Llama-2-70-b-chat. Однако, если присмотреться, кажется что разница между Camel и Camelidae не очень-то велика, и вероятно основной прирост от удачного выбора смеси инструкций. Вероятно, в Camelidae больше обучаемых параметров.

Вывод

Смеси экспертов в исходной формулировке или как адаптеры выглядят логичным решением для модели, ориентированной на решение широкого круга задач. Однако в данном случае не очевидно, насколько эффективен новый адаптер, а не данные и постановка эксперимента благоприятствуют хорошим результатам.
🔥7
#литература

Многие из вас читают статьи про диффузионные модели. В них регулярно возникает таинственная и загадочная, внушающая благоговейный трепет, сущность под названием SDE (Stochastic Differential Equations). И эти самые SDE описывают диффузионные процессы в непрерывной формулировке, потому разные продвинутые солверы и методы сэплирования в том или ином виде зиждятся на теории стохастических дифференциальных уравнений.

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

Двое авторов из Aalto University (откуда вышло немало ярких работ по генеративным моделям) выпустили книжку по SDE, доступную широкому кругу читателей (достаточно иметь за плечами стандартный вузовский курс по диффурам и теорверу), с упором на приложения. Написано очень доступно и понятно. И упражнения в конце глав вполне себе посильные, а не как обычно бывает...

Рекомендую всем тем, кто получить некоторую математическую базу для понимания диффузии.
👍145
👍9
MobileDiffusion: Subsecond Text-to-Image Generation on Mobile Devices
[Статья] [Кода нет]

Было еще тут.

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

Скорость генерации диффузионной модели определяется количеством шагов сэмплирования и стоимостью одного шага. На текущий момент, большинство внимания уделяется ускорению моделей за счет первого фактора - изобретением новых солверов, алгоритмов пошаговой дистилляции. Оптимизации архитектуры уделяется же значительно меньше внимания. Типичные модели хороши для GPU, но тяжеловаты для мобилок, потому имеет смысл уменьшать саму модель, сохраняя качество.

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

Метод

За основу берут StableDiffusion v1.5.

Трансформерные блоки

Первая оптимизация, мотивированная прошлыми работами UViT и SnapFusion, - уборка дорогих и не очень полезных attention с самого высокого разрешения. Кроме того, на разрешении 32x32 оставляют только cross-attention с текстовыми токенами, потому что self-attention с 1024 все еще дорогой. Таким образом, self-attention есть только на разрешении 16x16. Кроме того, объединяют проекции Key и Value, чтобы еще чуть-чуть сэкономить на параметрах, заменяют gelu на swish, который более эффективен на мобилках и приятнее с точки зрения последующего квантования модели, и softmax на relu. В последнем случае, обученную с softmax модель, файнтьюнят 10к шагов с relu, и якобы не теряют в качестве.

И уменьшают expansion в FeedForward слоях с 8 до 6 без просадки в качестве.

Сверточные блоки

Вместо обычных сверток 3x3 используют depthwise-separable с меньшим числом параметров и операций. Утверждается, что качество не просаживается. Кроме того, уменьшили общее количество блоков с 22 в SD до 12.

Целевая модель должна иметь не более 400 миллионов параметров и 200 GFLOPs на инференсе. Авторы запустили перебор разных конфигураций блоков и ширин каналов (детали процесса опущены) и отобрали самых удачных кандидатов.

Пошаговая дистилляция

Для пошаговой дистилляции были рассмотрены две стратегии:
1⃣️️️️️️ Прогрессивная дистилляция в 8 шагов сэмплирования
2⃣️️️️️️ UFOGen с адверсариальным лоссом

Автоэнкодер

Кроме того, вместо исходного автоэнкодера из SD, авторы обучили свой, более компактный, но кодирующий в 8 каналов вместо 4-х. Потом его еще запрунили (непонятно как). Полученный VAE и быстрее и лучше по метрикам.
👍8🫡1
Эксперименты

Модель обучали на 150M изображениях из Pali, 750к шагов на разрешении 256x256 и 250к шагов на 512x512. Качество замеряют по FID и CLIP на 30k изображениях из MS-COCO, следуя стандартной практике.

Кроме базовой модели MD (Mobile Diffusion) c 400M параметров, обучают еще более компактную версию MD-Lite c 300M параметрами.

На приложенных картинках все модели генерируют примерно одинаково хорошо, на одном уровне с SDXL, что с 50 шагами сэмплера, что с прогрессивной дистилляцией в 8 шагов, что с UFOGen в одношаговое сэмплирование.

По метрикам MD, сэмплирующая в 50 шагов, на уровне SD-v1.5, 8 шагов имеет немного худший FID, и одношаговая уже просаживается заметно.

По скорости выходит вполне себе здорово. При сэмплировании в 8 шагов, MD почти в 2 раза быстрее разобранной ранее SnapFusion, которую тоже дистиллировали в 8 шагов генерации. А в режиме одношаговой генерации удается достичь скорости в 238мс на изображение (при замерах на iPhone 15).

Вывод

Достойный технический результат с использованием разных техник и приемов из прошлой литературы. Однако, для полноты неплохо было бы иметь Side-by-Side evaluation c SD, и замеры разнообразия генераций.
🔥8
Альпаки бывают не только LLMками, но ещё и домашними питомцами
10🤯3
QuIP#: Even Better LLM Quantization with Hadamard Incoherence and Lattice Codebooks
[Статья][Код]

Только-только мы с коллегами выкатили AQLM , как конкуренты нанесли ответный удар)

LLM-ки становятся все круче, новые модели, датасеты с инструкциями выходят почти на ежедневной основе. Однако, самые сильные из опенсорсных моделей (Llama-2-70b с дохреналлионом файтьюнов, Микстраль и загадочное нечто под названием miqu) не влезают в колаб или условную RTX 3090/4090. Квантизация в 4 бита (до недавних пор бывшая Парето-оптимальная) недостаточна, чтобы позволить уместиться такой здоровенной модели на щупленькую видеокарту, а предыдущие методы квантизации в 2-3 бита ломают заметно модель и проще взять меньшую модель в большей точности. Но свежие работы открывают дорогу к инференсу оверсайзд моделей на хорошей геймерской GPU.

Метод

Quip# (решетка, потому что E8 решетка квантования) стоит на трех 🐳 :
1️⃣ Incoherence processing
2️⃣ E8 решеточная векторная квантизация
3️⃣ Дообучение неквантованных параметров

1) Как известно, веса больших языковых моделей обладают выбросами (outliers), плохо поддающимися квантованию, и в ряде прошлых работ было предложено их тем или иным образом изолировать. Здесь же, следуя своей прошлой работе QuIP авторы домножают веса на случайное ортогональное преобразование, благодаря которому величины и чувствительности параметров растекаются равномерно по матрице (incoherence processing). Отличие от прошлой работы в том, что вместо произведения кронекеровских матриц для параметризации ортогонального преобразования используется случайное Адамарово преобразование, более эффективное вычислительно и не уступающее по качеству.

2) Поэлементная квантизация не совсем оптимальна в том смысле, что оптимизирует ошибку в пределах некоторого гиперкуба (если рассматривать группы весов). А в действительности группы весов распределены в некотором шаре. А объем шара того же диаметра, что и сторона куба, в большой размерности много меньше описанного вокруг него куба. И при том же количестве кластеров (квантованных значений), можно добиться значительно меньшей ошибки. Для используемой в работе квантизации группами по 8 весов оптимальная решетка - E8, как было показано сравнительно недавно.

3) Чтобы уменьшить ошибку квантизации, можно потюнить модель воспроизводить выходы слоев исходной модели. Как и в AQLM авторы сначала дообучают неквантованные модели на уровне отдельных блоков трансформера. А на второй стадии обучают уже все неквантованные параметры на минизацию разницы между сжатой моделью и исходной fp16.

Для больших битностей (3-4 бита) используется Residual Vector Quantization, когда ошибка квантизации еще раз квантуется и конечный вес представляется в виде суммы квантованного веса и квантованной ошибки.
🔥6
Результаты

Одним словом, вышло здорово.

Валидация стандартная - бенчмарки по перплексии (Wikitext2/C4) и подборка zero-shot из lm_eval_harness (ArcC, ArcE, Winogrande, PiQA).

На битностях 2,3,4 опережают известные методы по качеству почти везде. Отрыв от AQLM небольшой, но все же есть.

QuIP# достигает Парето-оптимальности при квантовании в 3 бита (отдельные конфигурации AQLM Парето-оптимальны в 2.5-2.6 битах).

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

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

Выводы

Сильный результат и красивая математика. Гонка по сжатию LLM становится все захватывающее. Интересно, какова же все-таки битность Парето кривой при использовании самого лучшего из возможных методов квантования моделей и как скоро мы посадим почти lossless 70b модель на сolab.
6
Возникла следующая мысль, навеянная работой то MiniCPM (отличный разбор у Сиолошной).
Типичные scaling laws для обучения языковых моделей имеют следующий вид:
L = A / N^{\alpha} + B / D^{\beta} + L0
где
L - лосс-функция на отложенной выборке
L0 - ошибка "идеальной" модели
N - число параметров в модели
D - число токенов на обучении
A, B - некоторые константы

Но в них никак не фигурируют детали обучения - learning rate, расписание обучения. Вероятно, они не явно зашиты в константы, но зависимость нетривиальная. При нулевом learning rate ничего учиться не будет, очевидно, при learning rate выше некоторого порога лосс улетит в стратосферу. Потому данный закон справедлив в некоторой области параметров.

При большем learning rate модель больше подстраивается под значение батча, но в то же время больше информации, чем было в train она постичь не может по-любому. И для точной сходимости к оптимуму, по всей видимости, необходимо иметь малый learning rate в конце обучения (чего можно добиться условным косинусом, линейным или 1/sqrt(t) угасающим learning rate).

Интересно, насколько, кроме самой архитектуры и данных, качество полученной модели зависит от параметров обучения, и насколько оптимально подобраны рецепты обучения всех этих шиншилл, ллам, мистралей и прочей живности...
Sora (Video generation models as world simulators)

Полагаю, все уже успели полюбоваться новым детищем от OpenAI под названием Sora. Классные разборы уже появились у светочей и рупоров отечетсвенного AI (пост Сиолошной, пост на Любовь, Смерть, Трансформеры), как и веселые мемчики. Со своей стороны лишь накину пару мыслей и соображений после прочтения отчетов и залипания в видосики.

В отчете ожидаемо (given the competitive landscape and the safety implications бла-бла-бла) не прозвучали какие-либо детали о сборе и фильтрации датасета, архитектуре, пайплайне обучения. На основе отчета можно сделать следующиее выводы:

1️⃣ Архитектура модели - некий здоровенный трансформер, работающий на пространственно-временных патчах.
2️⃣ Модель - латентная. Есть энкодер, превращающий видео с большим пространственным и временным разрешением в некое компактное латентное представление, в котором и происходит диффузионный процесс. И декодер, превращающий латенты обратно в видео.
3️⃣ Модель можно обуславливать на текст, текст + изображение, и использовать для продолжения коротких клипов. Кроме того, можно редактировать видео с помощью промпта и интерполировать два ролика осмысленным образом.
4️⃣ В процессе обучения модели, по всей видимости, на вход подавались и изображения, и картинки. Картинка эквивалентна видео из одного кадра.
5️⃣ Модель обучалась на исходных, необрезанных картинках. Благодаря этому она не генерирует обрезанный контект и способна работать в любом разрешении. Интересно, как они батчевали кадры разного разрешения. Возможно, encoder/decoder способен приводить все к одному разрешению, обуславливаясь на разрешение входа. А может, модель настолько большая, что батч больше одного все равно не лезет в сие чудище.
6️⃣ Модель обладает пространственно-временной консистентностью. Закрытие одного обьекта другим (occlusion), не приводит к характерным артефактам.
7️⃣ Генерировать можно ролики и изображения с разрешением до 2k.
8️⃣ Как и в DALLE-3, большую роль играют синтетические описания, сгененированные специально обученной для этого моделью.

Спекуляции и догадки
1⃣️️ По всей видимости. модель под капотом и обьем данных/вычислений, потраченных на обучения модели, реально колосалльны. Скорее всего сама модель значительно больше, чем SDXL, Emu, и иные модели, о которых хоть что-то известно.
2⃣️️ Полагаю, что в обучении было задействовано много синтетики зарендеренной Unreal Engine 5, или чем-то подобным. Многие ролики напоминают генерации движка 3D графики. Таким образом можно задавать пространственно-временную информацию куда более явно, чем weak supervision с огромного числа видеороликов и клипов.
🔥18👍4💯1
AQLM добавили в transformers 4.38.0!
https://github.com/huggingface/transformers/releases/tag/v4.38.0
Пользуйтесь, наслаждайтесь, делитесь впечатлениями)

Кроме того, мы потюнили end-2-end все обучаемые параметры на логиты fp16 модели и сравнялись по качеству на Llama-2-7b моделях с QuiP#.

Обновленные 7b модели уже лежат в хабе, остальные будем добавлять по мере готовности.

https://huggingface.co/BlackSamorez/Llama-2-7b-AQLM-2Bit-1x16-hf (wikitext2 ppl: было 6.31, стало 5.92)
https://huggingface.co/BlackSamorez/Llama-2-7b-AQLM-2Bit-2x8-hf (wikitext2 ppl: было 7.91, стало 6.69)
11🔥5👍1
Stability.AI анонсировали Stable Diffusion 3.

Пока без конкретных деталей, но обещают в будущем папиру.
Что известно на данный момент:
1) Будет несколько моделей от 800M до 8B (как минимум 2 размера)
2) По всей видимости в латентном пространстве работает некая вариация DiT как в Sora
3) Flow matching еще что-то делает

Модель доступна только через waitlist для early preview. Типа из соображений безопасности, чтобы никто не начал использовать ее во вред человечеству и для удовлетворения небогоугодных фантазий.

Анонс на Love. Death. Transformers.
🤯4🔥2👍1
SDXL-Lightning: Progressive Adversarial Diffusion Distillation
[Статья][Кода нет, но есть модели]

Пока все ждут технического отсчета по Stable Diffusion 3 и стебутся над поделками от Google, рассмотрим свежую работу про дистилляцию диффузионок.

Некоторое время назад Stability.AI выкатили SDXL-Turbo, дистиллированную с адверсариальными лоссами версию SDXL.

Ребята из Bytedance предложили альтернативный (хоть и основанный на схожих принципах) метод дистилляции в один и малое число шагов.

Метод

Предложенный подход основывается на progressive distillation (чуть ли ни самой первой технике уменьшения шагов сэмплирования). Однако в исходной работе качество сильно проседало при уменьшении числа шагов до однозначного.

Авторы утверждают, что диффузионные модели при многошаговой генерации обладают большой константой Липшица (не путать с автором десятитомника по теоретической физике) и могут аппроксимировать сложные траектории. При малошаговой не могут, и выдают лучшее, что позволяет их емкость при оптимизации MSE лосса - мыльные генерации.

Предлагается вместо MSE лосса использовать адверсариальный - чтобы дискриминатор не мог отличить результат расшумления учителем от ученика. В SDXL-Turbo дискриминатор работает в пиксельном пространстве, что требует декодирования картинки, обработки ее ViTом в довольно высоком разрешении и вся процедура выходит довольно дорогой. Здесь же авторы в качестве тушки дискриминатора используют копию энкодера SDXL и классификатору подают агрегированные признаки со всех уровней. При обучении нет нужды декодировать картинку и можно обучать оценивать реалистичность промежуточных шагов. В качестве функции потерь берут ванильный non-saturating adversarial лосс.

Однако, оказывается, что полученная сеть подвержена генерации артефактов в стиле двуликого Януса: существа и объекты раздваиваются. Утверждается (я не понял почему), что это тоже проявление недостаточной емкости модели. Авторы дообучают модель еще некоторое время на adversarial лосс, но без примеров родительской модели. Утверждается, что это лечит Янус-артефакты.

Дистилляция проходит в несколько стадий: 128->32->8->4->2->1.
Первая стадия довольно простая, и даже обычный MSE лосс работает, а дальше используют предложенную технику. Classifier-free guidance применяется только на первом этапе дистилляции.
👍5🤔1
Эксперименты

Обучают на отфильтрованном классификатором эстетичности подмножестве из LAION и COYO. При обучении вместе с генерациями учителя используют LoRA, которую затем вшивают в веса модели, и уже всю модель учат “дурить” классификатор. Интересно, вывод о недостаточной емкости модели был сделан до или после решения обучать с LoRA? 🧐

Кроме того, обучают на расписаниях с разным количеством шагов обучения. Говорят, стабилизирует результат.

Визуально генерации в один и малое число шагов выглядят неплохо. Генерации в один шаг часто меняют существенно картинку, не нарушая семантики.

Для численной оценки качества используют FID на всех картинках, FID на патчах и CLIP Score. Для замера FID (к целому вагону недостатков) на целых изображениях надо приводить картинки к нестандартному разрешению 299x299, и это вносит сдвиг в результат замеров, потому предлагается смотреть и на кропы. По FID и CLIP SDXL-Lightning сопоставим с конкурентными SDXL-Turbo и Latent Consistency Models, но несколько лучше по FID на патчах (если не можешь явно побить бейзлайны по метрикам, придумай правильную метрику!). Все дистилляты несколько проседают по FID, в первую очередь из-за разнообразия, по всей видимости.

Выводы

Логичный и интересный подход, но не хватает SbS с асессорами. Кроме того, неизвестно насколько SDXL-Lightning подвержен проблеме снижения разнообразия генераций, коей страдает SDXL-Turbo.
😁2👍1🔥1
Этическая дилемма - это когда рецензируемая статья не очень, но ее автор активно цитирует тебя.
😁22🤡1
Слайды с моего доклада про Optimal Brain Surgeon на сегодняшней встрече в "Точке кипения".

Спасибо всем участникам за вопросы и интересные дискуссии!

И спасибо @kraidiky за приглашение и увлекательный рассказ про коннектом.
🔥16
The Era of 1-bit LLMs: All Large Language Models are in 1.58 Bits
[Статья][Довольствуйтесь README.md]

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

Утверждается ни много не мало следующее - можно обучать LLM с 1.58 (log2(3)) битами на параметр 🤯, которые сходятся так же хорошо как и fp16 модели!

Метод

В линейных слоях все веса квантуются тернарно (принимают значения -1, 0, 1).
Скейл будто бы берется один на весь тензор, даже не канал, что вдвойне удивительно, учитывая склонность LLM к оутлаерам и неравномерность распреления весов. Активации же приводятся к 8 битам, и чтобы не хранить zero-point, значения активаций симметризуются.

Ничего не сказано про процедуру обучения, был ли использован straigth-through estimator, или что-то еще более хитрое безградиентное для обучения тернарных весов. Ибо наивное обучение всего этого хозяйства должно сходиться из ряда вон плохо.

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

За основу берут Llama архитектуру и обучают модели разного размера (от 700M до 3.9B параметров) на RedPajama. В сравнениях с бейзлайновой Llama fp16 все модели поглощают 100B токенов на этапе обучения. Модели сравнивают по перплексии на wikitext2 / c4 (непонятно, какая из них приведена в Таблице 1, или средняя) и zero-shot на lm-eval-harness. На меньших моделях BitNet1.58 (так называется семейство квантованных моделей) лишь слегка уступает бейзлайну, а на больших - будто бы чуть лучше, чем fp16.

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

При обучении на 2T токенах, BitNet1.58 на бенчмарках лучше StableLM-3B, обученной на том же числе данных.

Вывод

Практически полное отсутствие описания метода и протокола обучения делает результаты данной работы крайне сомнительными. Краткость - сестра таланта, только если ты OpenAI. В общем, ждем дальнейшей информации. Может, таки выложат модели и нечто большее, чем README.
🐳10👍8🔥1
2025/07/13 22:11:08
Back to Top
HTML Embed Code: