TokenFormer: Rethinking Transformer Scaling with Tokenized Model Parameters
yet another attempt на упрощение скейлинга трансформеров
для этого решили авторы заменить все линейные проекции на кросс аттеншн. по сути это значит, что они заменили все млп в модели на аттеншн-лайк механизм, где в качестве запросов выступает неспроецированный инпут X, и назвали это pattention
было и стало (f - нелинейность)
O = f(X W_1) W_2
→
O = f(X K^T) V
плюс перед нелинейностью GeLU добавили л2 нормализацию по строчкам
оттого, что keys & values являются обучаемыми параметрами, а не проекциями инпута, и можно скейлиться меньше по оверолл количеству параметров и токен-параметр интеракциям (по заверениям авторов, но опять-таки с точки зрения формулы это частный случай млп)
а скейлиться лучше в увеличении параметров вот так: было n x embedding_dim. хотим увеличить → делаем (n+m) x embedding_dim, где инитим новые параметры нулями или как-то еще
нлп и вижн трансформеры (в частности особенно pythia) обыгрывает при примерно том же наборе параметров, так еще и флопсов меньше требуется
идея довольно интересная но при этом немножко топорная. смущает разве что отсутствие аблаций по типу “давайте попробуем обычный гелу без какой-либо нормализации”.
👀LINK
yet another attempt на упрощение скейлинга трансформеров
для этого решили авторы заменить все линейные проекции на кросс аттеншн. по сути это значит, что они заменили все млп в модели на аттеншн-лайк механизм, где в качестве запросов выступает неспроецированный инпут X, и назвали это pattention
было и стало (f - нелинейность)
O = f(X W_1) W_2
→
O = f(X K^T) V
плюс перед нелинейностью GeLU добавили л2 нормализацию по строчкам
оттого, что keys & values являются обучаемыми параметрами, а не проекциями инпута, и можно скейлиться меньше по оверолл количеству параметров и токен-параметр интеракциям (по заверениям авторов, но опять-таки с точки зрения формулы это частный случай млп)
а скейлиться лучше в увеличении параметров вот так: было n x embedding_dim. хотим увеличить → делаем (n+m) x embedding_dim, где инитим новые параметры нулями или как-то еще
нлп и вижн трансформеры (в частности особенно pythia) обыгрывает при примерно том же наборе параметров, так еще и флопсов меньше требуется
идея довольно интересная но при этом немножко топорная. смущает разве что отсутствие аблаций по типу “давайте попробуем обычный гелу без какой-либо нормализации”.
👀LINK
Forwarded from Max Zhdanov Dropping Dimes
Нашу новую статью приняли на конференцию WACV 2025, которая будет проходить в Аризоне
Статья раскрывает задачу оценки неопределенности нейронных сетей. Для этого часто применяются байесовские методы, такие как аппроксимация Лапласа. В статье мы показали контринтуитивное наблюдение, что матрицу ковариаций - важнейшую часть аппроксимации Лапласа можно заменить на единичную матрицу и показать еще более точные метрики
Матрица ковариаций по классике аппроксимации Лапласа выводится из кривизны модели, оцененной в точки оптимальных параметров (maximum a posteriori). Кривизна в нейронках может быть оценена через обобщенную матрицу Гаусса-Ньютона, матрицу Фишера, а также декомпозиционные методы, такие как аппроксимация кривизны Кронекера или K-FAC. Это все очень дорого по сравнению с нашим вариантом
В итоге мы получаем метод, который обходит все другие варианты аппроксимации Лапласа и ряд методов OOD детекции, выигрывая и в точности и в скорости. Но это еще не все! Мы делаем анализ и показываем, что такой феномем связан с проблемами оценки матрицы ковариаций на датасетах с вариативной степенью разделимости классов, которую мы эксперементально проверяем
Мы, конечно же, выложили код. Поддержите звездочками
Теперь реальный челлендж - добраться до Аризоны
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11
Were RNNs All We Needed?
попытка Йошуа Бенджио успеть за трендом в совершенствовании существующих sequence models и при этом попытаться усилить рнн (не очень успешно)
для рекапа - ссм (и ссд) получили преимущество над рнн и трансформерами в плане технической реализации тем, что на трейне их можно распараллелить, а на инференсе высчитывать в линию относительно длины последовательности
но вот авторы подумали-подумали, и решили убрать некоторые формулы из лстм и гру и ввести только линейную зависимость хидден стейта от предыдущего (ведь только тогда и работает параллельный скан - [1] [2] [3]) → можно параллелить обучение . при этом при увеличении слоев “горизонт обозревания” прошлого увеличивается (по аналогии с receptive field в свертках, ага)
и если посмотреть экспы то там вообще все сладко (якобы), но давайте разбираться
1. рл - решили протестить sequence models на задачи мдп (где необязательно хранить историю, а просто текущий таймстеп для оптимального решения задачи)
2. затраты по рантайму с увеличением длины последовательности константные (судя по графику хотя так не должно быть из-за масштаба лол) → намного быстрее рнн, сравнимо с мамбой
3. затраты по памяти при этом между мамбой и рннками
4. wow!!! еще и обучать надо в 2.5 раза меньше чем трансформер и меньше чем мамбу!!! только вот почему-то решили это сделать на шекспировском датасете (на котором карпатый проверяет что его код наногпт работает), при том это character-level language modelling task с очень маленьким скейлом моделек. в чем вообще релевантность такого экспа?
в общем экспериментальная база статьи оставляет желать лучшего
пов следующая статья - were arduino and resistors all we needed?
👀LINK
попытка Йошуа Бенджио успеть за трендом в совершенствовании существующих sequence models и при этом попытаться усилить рнн (не очень успешно)
для рекапа - ссм (и ссд) получили преимущество над рнн и трансформерами в плане технической реализации тем, что на трейне их можно распараллелить, а на инференсе высчитывать в линию относительно длины последовательности
но вот авторы подумали-подумали, и решили убрать некоторые формулы из лстм и гру и ввести только линейную зависимость хидден стейта от предыдущего (ведь только тогда и работает параллельный скан - [1] [2] [3]) → можно параллелить обучение . при этом при увеличении слоев “горизонт обозревания” прошлого увеличивается (по аналогии с receptive field в свертках, ага)
и если посмотреть экспы то там вообще все сладко (якобы), но давайте разбираться
1. рл - решили протестить sequence models на задачи мдп (где необязательно хранить историю, а просто текущий таймстеп для оптимального решения задачи)
2. затраты по рантайму с увеличением длины последовательности константные (судя по графику хотя так не должно быть из-за масштаба лол) → намного быстрее рнн, сравнимо с мамбой
3. затраты по памяти при этом между мамбой и рннками
4. wow!!! еще и обучать надо в 2.5 раза меньше чем трансформер и меньше чем мамбу!!! только вот почему-то решили это сделать на шекспировском датасете (на котором карпатый проверяет что его код наногпт работает), при том это character-level language modelling task с очень маленьким скейлом моделек. в чем вообще релевантность такого экспа?
в общем экспериментальная база статьи оставляет желать лучшего
пов следующая статья - were arduino and resistors all we needed?
👀LINK
Learning Local Equivariant Representations for Large-Scale Atomistic Dynamics
Что ж, сегодня Allegro от Гарварда. Наверное единственный метод, который классно скейлится между нодами GPU. Давайте разберемся как они смогли сделать симуляцию на 100 миллионов атомов🐹
Собственно побуждение было вызвано плохим скейлиногом GNN из-за роста receptive field с количеством слоев, с чем также связано огромное количество вычислений между нодами. Allegro использует тензорные умножения и сферические функции - базу для сохранения векторных симметрий и скалярных инвариантностей. В статье используется обмен информацией между парами атомов через сумму взвешанных тензорных умножений между репрезентациями и сферическими тензорами. Свойство билинейности позволяет нам делать расчет более эффективно, разделяя операцию на фичи пары атомов и фичи соседей
Но, что супер важно, так это локальность операции агрегации. Все парные индексы имеют один и тот же центральный атом для конкретного атома. Это отличает Allegro от обычных GNN с их плохим скейлингом
Касательно экспериментов все очень необычно. У нас есть база типо QM9 / MD-17, но что интересно так это большие системы. Для того, чтобы пофлексить скейлингом авторы симулируют несколько крупных белков, а также твердотельный литий-ионный электролит на 100 миллиона атомов и оболочку ВИЧа на 44 миллиона соответственно
Хотя, как ни странно, для небольших систем уже сейчас существуют методы, которые стабильно бьют Allegro по точности. Оно не удивительно, ведь внутри стандратные MLP. Поэтому юзать есть смысл, только если у вас огромные молекулы или кристаллы
👀 LINK 1, LINK 2
Что ж, сегодня Allegro от Гарварда. Наверное единственный метод, который классно скейлится между нодами GPU. Давайте разберемся как они смогли сделать симуляцию на 100 миллионов атомов
Собственно побуждение было вызвано плохим скейлиногом GNN из-за роста receptive field с количеством слоев, с чем также связано огромное количество вычислений между нодами. Allegro использует тензорные умножения и сферические функции - базу для сохранения векторных симметрий и скалярных инвариантностей. В статье используется обмен информацией между парами атомов через сумму взвешанных тензорных умножений между репрезентациями и сферическими тензорами. Свойство билинейности позволяет нам делать расчет более эффективно, разделяя операцию на фичи пары атомов и фичи соседей
Но, что супер важно, так это локальность операции агрегации. Все парные индексы имеют один и тот же центральный атом для конкретного атома. Это отличает Allegro от обычных GNN с их плохим скейлингом
Касательно экспериментов все очень необычно. У нас есть база типо QM9 / MD-17, но что интересно так это большие системы. Для того, чтобы пофлексить скейлингом авторы симулируют несколько крупных белков, а также твердотельный литий-ионный электролит на 100 миллиона атомов и оболочку ВИЧа на 44 миллиона соответственно
Хотя, как ни странно, для небольших систем уже сейчас существуют методы, которые стабильно бьют Allegro по точности. Оно не удивительно, ведь внутри стандратные MLP. Поэтому юзать есть смысл, только если у вас огромные молекулы или кристаллы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Transformers to SSMs: Distilling Quadratic Knowledge to Subquadratic Models
seems like Альберт Гу стал частью нового стартапа cartesia.ai, которая продвигает on-device аудио и языковые модели (скорее всего, на основе ссмок)
ну и конечно, чтобы засунуть подобные модели в девайс, может понадобиться дистилляция. вот авторы и решили дистиллировать трансформеры в ссм - или более эпично - quadratic to sudquadratic mode
и таковое бы было менее удобно, если бы не недавняя ссд, которая позволяет свести и ссм, и аттеншн к матрикс миксерам (под общую формулу матричного умножения)
so, авторы перед тем как непосредственно дистиллировать phi-1 (хз почему выбор пал именно на нее), сравнили разные матрикс миксеры на аппроксимацию софтмакс аттеншна изолированно от обучения модели, то есть поставили отдельную задачу обучить разные матрикс миксеры аппроксимировать аттеншн мапы из разных слоев лламы 7б на небольших последовательностях из 4 датасетов → как оказывается, ссд фиттится лучше всех (для опять-таки ллмки относительно небольшого скейла)
дистилляцию еще решили разделить на 3 этапа
1. фит на матрикс миксеры - то есть сведение аутпутов между операциями аттеншна и ссд соответственно от инпутов трансформера. для этого пришлось немного переделать ссд из mutli-value в multi-head + отказаться от одной из активаций для лучшего сведения аттеншна и мамбы. хорошая новость заключается в том, что это можно распараллелить
2. фит между блоками - включаем теперь не только аттеншн и ссм, а так же леернормы, млп и остальное, что итеративно повторяется в архитектуре. етот этап так же параллелится
3. классическая end-to-end дистилляция. авторы так же упоминают, что здесь можно попробовать зафризить млп блоки и не потерять в качестве дистилляции. а это в свою очередь снизит количество обучаемых параметров наполовину
в итоге Phi-Mamba обучали по 80M/160M/2.76B токенов на каждом из этапов. по сравнению с Phi-1.5-1.3B которая обучалась на 150B токенах это очень круто. смущает разве что момент, что дистиллировали в 1.5B модель (pogchamp). для такого бы добавить аблации всякие, что такая дистилляция имеет смысл - хорошо, что данных намного меньше понадобилось, но легче ли это переносится чем трансформер или имеет меньше требований по памяти (скорее всего да, но опять-таки, неплохо бы посмотреть на наглядное сравнение)
имхо - появился какой-то интересный дым, теперь поближе бы подобраться к огню
👀LINK
seems like Альберт Гу стал частью нового стартапа cartesia.ai, которая продвигает on-device аудио и языковые модели (скорее всего, на основе ссмок)
ну и конечно, чтобы засунуть подобные модели в девайс, может понадобиться дистилляция. вот авторы и решили дистиллировать трансформеры в ссм - или более эпично - quadratic to sudquadratic mode
и таковое бы было менее удобно, если бы не недавняя ссд, которая позволяет свести и ссм, и аттеншн к матрикс миксерам (под общую формулу матричного умножения)
so, авторы перед тем как непосредственно дистиллировать phi-1 (хз почему выбор пал именно на нее), сравнили разные матрикс миксеры на аппроксимацию софтмакс аттеншна изолированно от обучения модели, то есть поставили отдельную задачу обучить разные матрикс миксеры аппроксимировать аттеншн мапы из разных слоев лламы 7б на небольших последовательностях из 4 датасетов → как оказывается, ссд фиттится лучше всех (для опять-таки ллмки относительно небольшого скейла)
дистилляцию еще решили разделить на 3 этапа
1. фит на матрикс миксеры - то есть сведение аутпутов между операциями аттеншна и ссд соответственно от инпутов трансформера. для этого пришлось немного переделать ссд из mutli-value в multi-head + отказаться от одной из активаций для лучшего сведения аттеншна и мамбы. хорошая новость заключается в том, что это можно распараллелить
2. фит между блоками - включаем теперь не только аттеншн и ссм, а так же леернормы, млп и остальное, что итеративно повторяется в архитектуре. етот этап так же параллелится
3. классическая end-to-end дистилляция. авторы так же упоминают, что здесь можно попробовать зафризить млп блоки и не потерять в качестве дистилляции. а это в свою очередь снизит количество обучаемых параметров наполовину
в итоге Phi-Mamba обучали по 80M/160M/2.76B токенов на каждом из этапов. по сравнению с Phi-1.5-1.3B которая обучалась на 150B токенах это очень круто. смущает разве что момент, что дистиллировали в 1.5B модель (pogchamp). для такого бы добавить аблации всякие, что такая дистилляция имеет смысл - хорошо, что данных намного меньше понадобилось, но легче ли это переносится чем трансформер или имеет меньше требований по памяти (скорее всего да, но опять-таки, неплохо бы посмотреть на наглядное сравнение)
имхо - появился какой-то интересный дым, теперь поближе бы подобраться к огню
👀LINK
Retrieval Head Mechanistically Explains Long-Context Factuality
мы уже говорили о том, что внутри трансформеров можно находить интерпретируемы однозначные аспекты - будь то направление в пространстве параметров или индуктивные головы, которые так важны для ин-контекст лернинга
и в этот раз авторы смогли найти в аттеншне головы, которые отвечают за ретривал функцию. составляют они малую часть от общего количества голов (что логично), при том, если их отключить, то пропадут не только ретривал способности у модели, но так же и CoT способность (ибо для того, чтобы сохранить цеопочку рассуждений, надо уметь опираться на какие-то факты из прошлого)
к тому же если еще и продолжать тренить на удлинение контекста, то ретривал головы не меняют своего назначения (и точно так же не добавляется новых голов к этому подмножеству)
смущает разве что их мнение по поводу компрессии кв кэша - поскольку ретривал головы не могут без аттенда к предыдущим токенам, то им позарез нужен кв кэш, в то время как (якобы) остальные головы могут пренебречь кв кэшем и использовать только intrinsic knowledge из весов. имхо это частино верно (либо я неправильно понял мысль авторов) - тот факт, что мы не можем найти однозначно интерпретируемые фичи, за которые отвечают другие головы аттеншна и которые связаны с историей контекста, не означает, что этим головам в принципе не нужен контекст
а значит вопрос, который ставят авторы, может звучать примерно как-то так - возможно ли сделать оптимальный роутинг (по аналогии как здесь) относительно голов каждого слоя, следует ли выделять кэш
👀LINK
мы уже говорили о том, что внутри трансформеров можно находить интерпретируемы однозначные аспекты - будь то направление в пространстве параметров или индуктивные головы, которые так важны для ин-контекст лернинга
и в этот раз авторы смогли найти в аттеншне головы, которые отвечают за ретривал функцию. составляют они малую часть от общего количества голов (что логично), при том, если их отключить, то пропадут не только ретривал способности у модели, но так же и CoT способность (ибо для того, чтобы сохранить цеопочку рассуждений, надо уметь опираться на какие-то факты из прошлого)
к тому же если еще и продолжать тренить на удлинение контекста, то ретривал головы не меняют своего назначения (и точно так же не добавляется новых голов к этому подмножеству)
смущает разве что их мнение по поводу компрессии кв кэша - поскольку ретривал головы не могут без аттенда к предыдущим токенам, то им позарез нужен кв кэш, в то время как (якобы) остальные головы могут пренебречь кв кэшем и использовать только intrinsic knowledge из весов. имхо это частино верно (либо я неправильно понял мысль авторов) - тот факт, что мы не можем найти однозначно интерпретируемые фичи, за которые отвечают другие головы аттеншна и которые связаны с историей контекста, не означает, что этим головам в принципе не нужен контекст
а значит вопрос, который ставят авторы, может звучать примерно как-то так - возможно ли сделать оптимальный роутинг (по аналогии как здесь) относительно голов каждого слоя, следует ли выделять кэш
👀LINK
👍3