Cut Your Losses in Large-Vocabulary Language Models
авторы вспоминают вычисление кросс энтропии
где e - финальные эмбеддинги, с - матрица, которая переводит из эмбеддингов в vocab_size вектор. и эта самая матрица
и чтобы снизить память, авторы сделали свой тритоновский кернел, который не засовывает сразу все логиты в глобальную память, а вычисляет логиты для верных токенов (во flash memory из-за концепции teacher forcing) и log-sum-exp на лету (по аналогии с онлайн софтмаксом из флеш аттн), т.е. не аллоцирует память на
к тому же еще при бекворде они заметили, что меньше чем 0.02% от нормализованных логитов являются ненулевыми (по большей части из-за действительно большого вокаб сайза) → не вычисляют градиент для элементов, которые не проходят трешхолд в 2е-12 для бф16 точности, что тоже снижает по памяти и прибавляет по скорости
оверолл голова ллмок начала теперь кушать по памяти в среднем гигабайт вместо 28 при батч сайзе в 65к (при том экспы ставили на модельках от 1.3B do 70B за что респект). есть правда вопросы насколько стабильно будет этот метод работать для претрена с нуля, ибо авторы только “файнтюнили”
очень понятно описано решение их кернела, как и сам код, рекомендуем к прочтению
выглядит интересно и прикольно, на последней картинке только с осторожностью относился бы к абсолютным числам, которые у них получились на экспах по замеру времени
👀LINK
авторы вспоминают вычисление кросс энтропии
loss = F.cross_entropy((e @ c.T).float(), targets)
где e - финальные эмбеддинги, с - матрица, которая переводит из эмбеддингов в vocab_size вектор. и эта самая матрица
e @ c.T, как оказывается, кушает оочень многоо памяти, а при увеличении вокаб сайза затрат по памяти становится еще большеи чтобы снизить память, авторы сделали свой тритоновский кернел, который не засовывает сразу все логиты в глобальную память, а вычисляет логиты для верных токенов (во flash memory из-за концепции teacher forcing) и log-sum-exp на лету (по аналогии с онлайн софтмаксом из флеш аттн), т.е. не аллоцирует память на
e @ c.T
к тому же еще при бекворде они заметили, что меньше чем 0.02% от нормализованных логитов являются ненулевыми (по большей части из-за действительно большого вокаб сайза) → не вычисляют градиент для элементов, которые не проходят трешхолд в 2е-12 для бф16 точности, что тоже снижает по памяти и прибавляет по скорости
оверолл голова ллмок начала теперь кушать по памяти в среднем гигабайт вместо 28 при батч сайзе в 65к (при том экспы ставили на модельках от 1.3B do 70B за что респект). есть правда вопросы насколько стабильно будет этот метод работать для претрена с нуля, ибо авторы только “файнтюнили”
очень понятно описано решение их кернела, как и сам код, рекомендуем к прочтению
выглядит интересно и прикольно, на последней картинке только с осторожностью относился бы к абсолютным числам, которые у них получились на экспах по замеру времени
👀LINK
👍6❤1
nGPT: Normalized Transformer with Representation Learning on the Hypersphere
в связи с последним issue, было бы интересно сделать пост
относительно известный оптимизатор Ilya Loshchilov решил соптимизировать архитектуру гпт. а именно он убрал классические нормализации и добавил нормализасион по одной и той же гиперсфере (о Боже неевклидова геометрия пошла) + добавили обучаемый скейлинг фактор (ибо без него не заработало вообще никак судя по всему)
так еще к тому же авторы вспоминают, что трансформер на самом деле внутри мета-оптимайзит подаваемые на вход функции или что-то типа того (может делать итеративно градиентный спуск и TD в аттеншне). потому они решают напрямую добавить обучаемые лернинг рейты в трансформер блок (названные эйгенлернинг рейтами), которые помогали бы более явно воспроизводить этот процесс мета-оптимизации
ну как будто что-то там действительно работает лучше - хоть один форвард по себе занимает намного больше времени (что так-то большое упущение для практических целей, но lucidrains смог подускорить), общее количество степов нужно меньше, при чем настолько, что он и по времени сходится быстрее обычной гпт (на малюсеньком скейле 0.5-1B параметров с не бОльшим датасетом)
ну а если чуть-чуть глубже копнуть по данному issue и ответе авторов, то очень-очень начинают терзать смутные сомнения, а как верить резам, когда якобы internal code не совпадает с опенсурсом внутри форварда трансформер блока (то есть мы должны поверить авторам, что для опенсурса они решили все с нуля переписать и совершить такую ошибку, нежели копипастнуть). но про презумцию надо помнить и потому верим😊 😊 😊 😊
👀LINK
в связи с последним issue, было бы интересно сделать пост
относительно известный оптимизатор Ilya Loshchilov решил соптимизировать архитектуру гпт. а именно он убрал классические нормализации и добавил нормализасион по одной и той же гиперсфере (о Боже неевклидова геометрия пошла) + добавили обучаемый скейлинг фактор (ибо без него не заработало вообще никак судя по всему)
так еще к тому же авторы вспоминают, что трансформер на самом деле внутри мета-оптимайзит подаваемые на вход функции или что-то типа того (может делать итеративно градиентный спуск и TD в аттеншне). потому они решают напрямую добавить обучаемые лернинг рейты в трансформер блок (названные эйгенлернинг рейтами), которые помогали бы более явно воспроизводить этот процесс мета-оптимизации
ну как будто что-то там действительно работает лучше - хоть один форвард по себе занимает намного больше времени (что так-то большое упущение для практических целей, но lucidrains смог подускорить), общее количество степов нужно меньше, при чем настолько, что он и по времени сходится быстрее обычной гпт (на малюсеньком скейле 0.5-1B параметров с не бОльшим датасетом)
ну а если чуть-чуть глубже копнуть по данному issue и ответе авторов, то очень-очень начинают терзать смутные сомнения, а как верить резам, когда якобы internal code не совпадает с опенсурсом внутри форварда трансформер блока (то есть мы должны поверить авторам, что для опенсурса они решили все с нуля переписать и совершить такую ошибку, нежели копипастнуть). но про презумцию надо помнить и потому верим
👀LINK
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2
ADOPT: Modified Adam Can Converge with Any β2 with the Optimal Rate
на определенном этапе заведения модели, которая не заводится, начинаешь задумываться про гиперы, которые стоят за оптимизатором (помимо лернинг рейта) и самого оптимизатора. например, на беты
и как мы уже упоминали, в то время как первая бета отвечает за сохранение градиентов для первого момента, вторая бета отвечает за сохранение истории в бегущем среднем вторых моментов градиента (что логично). и с точки зрения теории адам (да и в принципе все адаптивные методы) довольно плохо сходится, если только не выбирать эту вторую бету в зависимости от поставленной таски
но вот авторы-японцы (возможно) смогли это исправить и нескромно назвали метод ADaptive gradient method with the OPTimal convergence rate
и вот для того, чтобы вторая бета не имела такой сильный импакт на сходимость, они к удивлению меняют расчет первого момента - дополнительно делят градиент на данном таймстепе на корень из второго момента. простенько, со вкусом, достаточно нетривиально для данной специфики
по экспам где-то даже резы лучше достигаются - в том числе и на 7б лламе прогоняли (правда только ммлу, как любит замечать наш дорогой друг, без алаймент бенчмарков это не особо релевантно) + для мниста и цифара брали только резнет-18 но допууууустим
к тому же тут есть тоже предположение в их теории - о том что второй момент градиентов ограничен (менее сильное предположение в сравнении с предыдущим о том, что первый момент тож ограничен)
позабавило еще то, что в вывод в конце они зачем-то решили вставить проблему социального импакта мл алгоритмов (хотя статья чисто про оптимизатор)
а код оч классный, челики в сурс коде торча знатно так разбираются
👀LINK
на определенном этапе заведения модели, которая не заводится, начинаешь задумываться про гиперы, которые стоят за оптимизатором (помимо лернинг рейта) и самого оптимизатора. например, на беты
и как мы уже упоминали, в то время как первая бета отвечает за сохранение градиентов для первого момента, вторая бета отвечает за сохранение истории в бегущем среднем вторых моментов градиента (что логично). и с точки зрения теории адам (да и в принципе все адаптивные методы) довольно плохо сходится, если только не выбирать эту вторую бету в зависимости от поставленной таски
но вот авторы-японцы (возможно) смогли это исправить и нескромно назвали метод ADaptive gradient method with the OPTimal convergence rate
и вот для того, чтобы вторая бета не имела такой сильный импакт на сходимость, они к удивлению меняют расчет первого момента - дополнительно делят градиент на данном таймстепе на корень из второго момента. простенько, со вкусом, достаточно нетривиально для данной специфики
по экспам где-то даже резы лучше достигаются - в том числе и на 7б лламе прогоняли (правда только ммлу, как любит замечать наш дорогой друг, без алаймент бенчмарков это не особо релевантно) + для мниста и цифара брали только резнет-18 но допууууустим
к тому же тут есть тоже предположение в их теории - о том что второй момент градиентов ограничен (менее сильное предположение в сравнении с предыдущим о том, что первый момент тож ограничен)
позабавило еще то, что в вывод в конце они зачем-то решили вставить проблему социального импакта мл алгоритмов (хотя статья чисто про оптимизатор)
а код оч классный, челики в сурс коде торча знатно так разбираются
👀LINK
Hydra: Bidirectional State Space Models Through Generalized Matrix Mixers
история с ссмками продолжает стремительно развиваться после ссд и дистилляции, и теперь решили сделать субквадратичную бидирекшнл модель
и сделали! только теперь к добавлению matrix mixershmixer терминологии они еще вставляют sequence aligned матрицы. вспоминают еще и другие способы subquadratic обработки токенов (типа тоэплица, вандермонда с чего-то там и тд), обобщают semiseparable матрицы (коими являются ссм) до квазисепарабельных (логичные нейминги) и таким образом делают двунаправленную некаузальную мамбу-2
с точки зрения имплементации это дважды применить операцию мамбы-2 - над прямой последовательностью и над развернутой, еще надо конечно не забыть про операции сдвига, но в общих чертах так
по скейлу тестили на base моделях и меньше (что грустненько) - обыгрывают, как и предполагалось. ну окей, смеем экстраполировать опыт из прошлых статей и сказать, что на большом скейле аттеншн возьмет свое уверенное главенство
итог: трансформеры пока так и не убили (и далеко не факт что убьют), но вайбовая экосистема ссмок начинает приобретать заметные очертания
👀LINK
история с ссмками продолжает стремительно развиваться после ссд и дистилляции, и теперь решили сделать субквадратичную бидирекшнл модель
и сделали! только теперь к добавлению matrix mixer
с точки зрения имплементации это дважды применить операцию мамбы-2 - над прямой последовательностью и над развернутой, еще надо конечно не забыть про операции сдвига, но в общих чертах так
по скейлу тестили на base моделях и меньше (что грустненько) - обыгрывают, как и предполагалось. ну окей, смеем экстраполировать опыт из прошлых статей и сказать, что на большом скейле аттеншн возьмет свое уверенное главенство
итог: трансформеры пока так и не убили (и далеко не факт что убьют), но вайбовая экосистема ссмок начинает приобретать заметные очертания
👀LINK
A Review on Metal Hydride Materials for Hydrogen Storage
Сегодня немного разнообразим повестку. Поговорим про энергетику, а если точнее, то водород💧
Водород штука интересная. Он может использоваться как источник энергии и для ее хранения. Полезно это для транспорта, ракетной индустрии, химической и многих других. Статья у нас проводит обзор способов хранения водорода в гидридах металлов. Гидрид - это соединение металла и водорода. Например, MgH2. Такое решение обладает рядом плюсов
🛡 Безопасно. Жидкий водород ядовитый и взрывается, как и аммиак, в котором его можно транспортировать. Гидриды - это металл и сделать с ним что-то опасное очень сложно. В основном они стабильны
💸 Достаточно дешево. Охлаждать водород до жидкого состояния очень энергозатратно. Нужно понимать, что, чем больше энергии мы тратим, тем менее выгоден метод
Из характиристик для гидридов нам интересны volumetric energy density и gravimetric energy density. Первое - количество энергии на единицу объема, а второе - количество энергии на кг
В статье рассказывают про применения. Тут есть интересные
🏘 P2P системы. По сути это дома и back-up системы. Скажем, если электричество вырубили, то удобно будет достать энергию из гидрида и топливного элемента с протон-обменной мембраной
🚛 Транспортировка. Тут есть машины, грузовики, поезда и даже подлодки. В последних кстати гидриды очень выгодные, так как дополнительный вес позитивно влияет на плавучесть. А вот в остальных есть разные ограничения на вес или объем
Касательно самих гидридов популярны решения на основе титана, магний и лантана. Опять же, у всех свои минусы и плюсы. Дешевый vs дорогой, тяжелый vs легкий, высокая скорость сорбции vs низкая и другие
В случае, если водородная энергетика получит mass adoption в будущем, мне кажется, что гидриды будут явной частью этой системы из-за своих полезных свойств в ряде применений🔥
👀 LINK
Сегодня немного разнообразим повестку. Поговорим про энергетику, а если точнее, то водород
Водород штука интересная. Он может использоваться как источник энергии и для ее хранения. Полезно это для транспорта, ракетной индустрии, химической и многих других. Статья у нас проводит обзор способов хранения водорода в гидридах металлов. Гидрид - это соединение металла и водорода. Например, MgH2. Такое решение обладает рядом плюсов
Из характиристик для гидридов нам интересны volumetric energy density и gravimetric energy density. Первое - количество энергии на единицу объема, а второе - количество энергии на кг
В статье рассказывают про применения. Тут есть интересные
🏘 P2P системы. По сути это дома и back-up системы. Скажем, если электричество вырубили, то удобно будет достать энергию из гидрида и топливного элемента с протон-обменной мембраной
🚛 Транспортировка. Тут есть машины, грузовики, поезда и даже подлодки. В последних кстати гидриды очень выгодные, так как дополнительный вес позитивно влияет на плавучесть. А вот в остальных есть разные ограничения на вес или объем
Касательно самих гидридов популярны решения на основе титана, магний и лантана. Опять же, у всех свои минусы и плюсы. Дешевый vs дорогой, тяжелый vs легкий, высокая скорость сорбции vs низкая и другие
В случае, если водородная энергетика получит mass adoption в будущем, мне кажется, что гидриды будут явной частью этой системы из-за своих полезных свойств в ряде применений
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤3👍3
Scaling Laws for Precision
потолок квантизации заказывали? нет? ну а Christopher Re (упомянутый нами тут и тут) решил попробовать его найти, да и вместе с этим вывести scaling laws по пути
ну и вот авторы обучили 465 лламм и гптq разных размеров, битности (3-16) и на разном количестве токенов. а точнее на разном отношении количества данных токенов к скейлу модели (настолько, что аж есть бешеные числа вплоть до 10^5)
все законы тем или иным образом походят на шиншиллу, просто потому что ею авторы и вдохновлялись, но где-то есть и зависимости, противоположные этому зверьку (опишем их текстом, а не формулами, чтобы совсем душно не было)
рассматривая более-менее классические методы квантизации, замечают по ним инсайты
- Post-training Quantization при обучении в бф16: самый главная находка заключается в том, что при скармливании бОльшего количества данных после определенного момента перформанс после квантизации начинает падать (у GPTQ) ⇒ если сразу знаем, что модельку надо будет квантизовать, не надо прям до талого фиттить в бф16
- Quantization-aware training только весов: размер модели стоит повышать прежде, чем увеличивать размер датасета (в шиншилле же обратное заключение)
- Low-precision training с квантизацией весов, активаций и KV-кэшей: то же, что и QAT + всплывает факт, что кэши легче всего компрессятся, веса похуже, ну и с активациями совсем тяжкая картина. а еще ошибки от компрессии этих 3 факторов в итоговой формуле scaling law независимы (что супер контринтуитивно имхо)
общий инсайт - вроде как 7 бит на параметр это compute-optimal precision
стоит так же помнить, что тут не учтены новые модные методы маминой подруги (как AQLM) и скейл намного меньше чем в экспах шиншиллы (в этой папире максимум 1.7B)
но в итоге получилось круто - и так было понятно интуитивно, что квантизовать модели бесконечное число раз невозможно (чтобы при этом перформанс не затухал), но теперь благодаря авторам у нас есть и численные характеристики такого вопроса
👀LINK
потолок квантизации заказывали? нет? ну а Christopher Re (упомянутый нами тут и тут) решил попробовать его найти, да и вместе с этим вывести scaling laws по пути
ну и вот авторы обучили 465 лламм и гптq разных размеров, битности (3-16) и на разном количестве токенов. а точнее на разном отношении количества данных токенов к скейлу модели (настолько, что аж есть бешеные числа вплоть до 10^5)
все законы тем или иным образом походят на шиншиллу, просто потому что ею авторы и вдохновлялись, но где-то есть и зависимости, противоположные этому зверьку (опишем их текстом, а не формулами, чтобы совсем душно не было)
рассматривая более-менее классические методы квантизации, замечают по ним инсайты
- Post-training Quantization при обучении в бф16: самый главная находка заключается в том, что при скармливании бОльшего количества данных после определенного момента перформанс после квантизации начинает падать (у GPTQ) ⇒ если сразу знаем, что модельку надо будет квантизовать, не надо прям до талого фиттить в бф16
- Quantization-aware training только весов: размер модели стоит повышать прежде, чем увеличивать размер датасета (в шиншилле же обратное заключение)
- Low-precision training с квантизацией весов, активаций и KV-кэшей: то же, что и QAT + всплывает факт, что кэши легче всего компрессятся, веса похуже, ну и с активациями совсем тяжкая картина. а еще ошибки от компрессии этих 3 факторов в итоговой формуле scaling law независимы (что супер контринтуитивно имхо)
общий инсайт - вроде как 7 бит на параметр это compute-optimal precision
стоит так же помнить, что тут не учтены новые модные методы маминой подруги (как AQLM) и скейл намного меньше чем в экспах шиншиллы (в этой папире максимум 1.7B)
но в итоге получилось круто - и так было понятно интуитивно, что квантизовать модели бесконечное число раз невозможно (чтобы при этом перформанс не затухал), но теперь благодаря авторам у нас есть и численные характеристики такого вопроса
👀LINK
👍4 2