Medusa: Simple LLM Inference Acceleration Framework with Multiple Decoding Heads
какая боль, какая же боль этот инференс ллмок по скорости и компьюту, но Tri Dao банда решила внести вклад в решение этой проблемы
а именно они продолжают идею спекулятивного декодинга - первый токен последовательности генерируется ллмкой, а дальше остальное генерирует доп модель (мелкая), которая на каждом шаге основывается на своей генерации и первом токене ллмки
так вот, авторы навешивают сверху ллм декодер головы (небольшие модели, оперируют над выводом ллм первого токена и хидден стейта), которые параллельно генерят токены ⇒ уходим от последовательной генерации, получаем спидап + легко внедрить к существующим моделям. а файнтюнить попробовать можно только добавленные драфт модели
уже с этим происходит ускорение в 1.5 раза, но так же с этой идеей объединяется то, что авторы назвали tree attention, при том sparse tree attention structure, по которой пробегается жадный алгоритм для выбора самых топовых путей из дерева аттеншна (не путать с бим серчем) (ограничиваются 64 штуками)
показывают ускорение в 2.3-2.8 раза на 7b, 13b , 33b моделях если файнтюнить все, а если только спекулятивные головы, то ~2.2. по мне полный разнос и супер крутая идея
👀LINK
какая боль, какая же боль этот инференс ллмок по скорости и компьюту, но Tri Dao банда решила внести вклад в решение этой проблемы
а именно они продолжают идею спекулятивного декодинга - первый токен последовательности генерируется ллмкой, а дальше остальное генерирует доп модель (мелкая), которая на каждом шаге основывается на своей генерации и первом токене ллмки
так вот, авторы навешивают сверху ллм декодер головы (небольшие модели, оперируют над выводом ллм первого токена и хидден стейта), которые параллельно генерят токены ⇒ уходим от последовательной генерации, получаем спидап + легко внедрить к существующим моделям. а файнтюнить попробовать можно только добавленные драфт модели
уже с этим происходит ускорение в 1.5 раза, но так же с этой идеей объединяется то, что авторы назвали tree attention, при том sparse tree attention structure, по которой пробегается жадный алгоритм для выбора самых топовых путей из дерева аттеншна (не путать с бим серчем) (ограничиваются 64 штуками)
показывают ускорение в 2.3-2.8 раза на 7b, 13b , 33b моделях если файнтюнить все, а если только спекулятивные головы, то ~2.2. по мне полный разнос и супер крутая идея
👀LINK
❤4👍2 2🔥1
Emerging Properties in Self-Supervised Vision Transformers
🕔 RIZZEARCH THROWBACK 🕔
Авторы делают SSL, мотивируясь дистилляцией. В стандартной дистилляции мы минимизируем кросс-энтропию между распределениями вероятностей ученика и учителя. Чтобы адаптировать этот подход под SSL, по классике добавляют два представления картинки (в нашем случае картинка и ее локальные кропы). Все кропы кодируются через student сеть, когда global views через учителя. Так выучиваются “локально-глобальные” признаки
Для того, чтобы избежать частую проблемы коллапса, используют EMA обучение учителя → это вносит некую асимметрию в веса. Также делают центрирование фичей с учителя, для того, чтобы избегать коллапса из-за склона в определенное измерение. Дополнительно, чтобы избежать uniform коллапс для учителя используют низкую температуру в софтмаксе → распределение имеет более высокую дисперсию
Еще вишенка, что признаки SSL ViTа классно подходят для downstream задач, что авторы показывают в статье. Вообще эта работа (и скажем BYOL) положила некое начало методам self-distillation и до сих поря влияет на современные методы SSL
👀 LINK
🕔 RIZZEARCH THROWBACK 🕔
Авторы делают SSL, мотивируясь дистилляцией. В стандартной дистилляции мы минимизируем кросс-энтропию между распределениями вероятностей ученика и учителя. Чтобы адаптировать этот подход под SSL, по классике добавляют два представления картинки (в нашем случае картинка и ее локальные кропы). Все кропы кодируются через student сеть, когда global views через учителя. Так выучиваются “локально-глобальные” признаки
Для того, чтобы избежать частую проблемы коллапса, используют EMA обучение учителя → это вносит некую асимметрию в веса. Также делают центрирование фичей с учителя, для того, чтобы избегать коллапса из-за склона в определенное измерение. Дополнительно, чтобы избежать uniform коллапс для учителя используют низкую температуру в софтмаксе → распределение имеет более высокую дисперсию
Еще вишенка, что признаки SSL ViTа классно подходят для downstream задач, что авторы показывают в статье. Вообще эта работа (и скажем BYOL) положила некое начало методам self-distillation и до сих поря влияет на современные методы SSL
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Recurrent Drafter for Fast Speculative Decoding in Large Language Models
мы упоминали медузу, которая нехило ускоряет инференс ллм. а авторы из эпл решили пересмотреть парадигмы, которые внесли предыдущие авторы и получили ReDrafter
- драфтер от эпл авторов с одной головой (рнн), в отличие от параллельной медузы с несколькими головами
- у редрафтера рекурретная природа, что позволяет напрямую использовать бим серч, и это кстати позволяет использовать и другие техники, как rejection sampling & дефолт акцептование
- меняют статический разреженный tree attention на динамический, который работает чуть по-другому
а вот работает он красиво - из-за рекуррентной составляющей авторы так же сохраняют компьют тех токенов, которые уже были сгенерены, сделали свои фунцкии префиксного матча для этого, а уже потом идет процедура дерева аттеншна вместе с beam search
по скорости превосходит медузу, правда нету экспериментов с моделью размером 33b
код кстати очень даже хороший
👀LINK
мы упоминали медузу, которая нехило ускоряет инференс ллм. а авторы из эпл решили пересмотреть парадигмы, которые внесли предыдущие авторы и получили ReDrafter
- драфтер от эпл авторов с одной головой (рнн), в отличие от параллельной медузы с несколькими головами
- у редрафтера рекурретная природа, что позволяет напрямую использовать бим серч, и это кстати позволяет использовать и другие техники, как rejection sampling & дефолт акцептование
- меняют статический разреженный tree attention на динамический, который работает чуть по-другому
а вот работает он красиво - из-за рекуррентной составляющей авторы так же сохраняют компьют тех токенов, которые уже были сгенерены, сделали свои фунцкии префиксного матча для этого, а уже потом идет процедура дерева аттеншна вместе с beam search
по скорости превосходит медузу, правда нету экспериментов с моделью размером 33b
код кстати очень даже хороший
👀LINK
Offline Regularised Reinforcement Learning for Large Language Models Alignment
как выглядят данные для алаймента сейчас? неважно рлхф или дпо - они состоят из промпта, двух ответов на него и оценкой от человека, что норм а что нет. довольно дорогостояще
авторы решили свести данные к single-trajectory сеттингу, когда у нас есть промпт-ответ-человеческая_оценка. последнее подразумевает лайк/дизлайк или что поинтереснее по сравнению с желаемым и нежелаемым ответами
и дальше это все поближе подходит к концепции из рля - обучается политика вместе с функцией ценности (value function), которая в алайменте имеет связь с референсной политикой и примерно показывает как хорошо она перформит. не то, что принято за функцией ценности в обычном рл
да и оказывается value function выполняет другие задачи в оптимизации в отличие от рл сеттинга - ее самое важное назначение в том, чтобы убрать смещение в вычислении градиентов для политики
также они меняют кл дивергенцию на оффлайн регуляризацию что тоже стабилизирует картину и улучшает результат
красивых графиков нет, только сухие таблички с репортами результатов, как они обыгрывают KTO на UltraFeedback датасете, ну и не поставлен вопрос скейла ллмок, но это как обычно future work
👀LINK
как выглядят данные для алаймента сейчас? неважно рлхф или дпо - они состоят из промпта, двух ответов на него и оценкой от человека, что норм а что нет. довольно дорогостояще
авторы решили свести данные к single-trajectory сеттингу, когда у нас есть промпт-ответ-человеческая_оценка. последнее подразумевает лайк/дизлайк или что поинтереснее по сравнению с желаемым и нежелаемым ответами
и дальше это все поближе подходит к концепции из рля - обучается политика вместе с функцией ценности (value function), которая в алайменте имеет связь с референсной политикой и примерно показывает как хорошо она перформит. не то, что принято за функцией ценности в обычном рл
да и оказывается value function выполняет другие задачи в оптимизации в отличие от рл сеттинга - ее самое важное назначение в том, чтобы убрать смещение в вычислении градиентов для политики
также они меняют кл дивергенцию на оффлайн регуляризацию что тоже стабилизирует картину и улучшает результат
красивых графиков нет, только сухие таблички с репортами результатов, как они обыгрывают KTO на UltraFeedback датасете, ну и не поставлен вопрос скейла ллмок, но это как обычно future work
👀LINK
🔥3 1 1 1
Preference Learning Algorithms Do Not Learn Preference Rankings
обучаем в алайменте через преференции-преференции, а выучиваются ли действительно эти преференции?
упс, к сожалению или счастью - нет. авторы рассчитывают это через ранкинг аккураси (когда модель смогла пикнуть более предпочитаемый аутпут) и показывают, что между идеализированным аккураси, которое они тоже выводят, и аккураси модели есть довольно сильный пробел
при том, в начале обучения ранкинг аккураси более менее норм, и это коррелирует с тем, что в алайменте зовут вин рейтом, но затем при обучении корреляция снижается. то есть модель, обучаясь ранжировать аутпуты по преференциям, начинает делать это хуже, чем если ее не алайнили
загадка от жака фреско - что происходит внутри моделей во время алаймента в связи с таким контринтуитивным эвиденсом?
👀LINK
обучаем в алайменте через преференции-преференции, а выучиваются ли действительно эти преференции?
упс, к сожалению или счастью - нет. авторы рассчитывают это через ранкинг аккураси (когда модель смогла пикнуть более предпочитаемый аутпут) и показывают, что между идеализированным аккураси, которое они тоже выводят, и аккураси модели есть довольно сильный пробел
при том, в начале обучения ранкинг аккураси более менее норм, и это коррелирует с тем, что в алайменте зовут вин рейтом, но затем при обучении корреляция снижается. то есть модель, обучаясь ранжировать аутпуты по преференциям, начинает делать это хуже, чем если ее не алайнили
загадка от жака фреско - что происходит внутри моделей во время алаймента в связи с таким контринтуитивным эвиденсом?
👀LINK
xLSTM: Extended Long Short-Term Memory
make LSTM great again😎 😎 😎
как бы ни был крут лстм по заверениям Шмидхубера, которому мы обязаны за все современные методы во всех областях дл :roflanebalo:, эта рнн неидеальна в связи с проблемами, который каждый знает по первым урокам в дл
авторы данной статьи, один из которых кстати ответственен за сам лстм, добавили неплохие эмпирические фичи для улучшения оверолл перформанса, и в принципе справились с этим
что же они добавили? заменили нелинейность в forget gate и input gate на экспоненту и добавили матричную память, которая обновляется по covariance update rule
1) зачем заменять на экспоненту? для численной стабильности, в основном, что очень критично для рнн в принципе из-за вечных проблем с затуханием или взрывом градиентов + добавляют стабилизатор в логарифмическом пространстве на входной и забывающий гейты, чтобы точно ниче не разрывалось во время бекворда(часто используемый работающий трюк с экспоненциацией в численном анализе - есть даже факт, что деление чисел с плавающей точкой менее стабильно, чем возводить в экспоненту разницу логарифмов fyi)
2) а матричная память сделана довольно интересно - это не что иное, как ассоциативная память (посты о которой вы можете найти здесь). аналогично терминологии трансформера, создают запросы, ключи и значения qkv и получают хидден стейт в качестве значени v наиболее близких к запросу q (есчо смотрите формулы). кстати в формулу обновления ассоциативной памяти так же включены инпут и форгет гейты чтобы сделать ее более “lstm-like” + это все параллелизуется
правда есть вопросик к последнему пункту - почему бы не получать хидден стейт без ассоциативной памяти, а просто иметь обучаемую матрицу, которую будем домножать на запросы → получим ли то же самое? кнш прикольно, что ассоциативная память так тут используется (и это даже работает!), но простота - сестра таланта хз
также круто, что показывают результаты, где они не лучше всех - потому что суть статьи изначально в том, чтобы показать улучшенный лстм (а значит и лучше резы в большинстве случаев), а не новую соту которая превосходит трансформер брррр
👀LINK
P.S в абстракте пишут “LSTM constituted the first Large Language Models (LLMs)”. имхо спорно, по мне первые большие языковые модели были оч объемные н-граммы от гугла
make LSTM great again
как бы ни был крут лстм по заверениям Шмидхубера, которому мы обязаны за все современные методы во всех областях дл :roflanebalo:, эта рнн неидеальна в связи с проблемами, который каждый знает по первым урокам в дл
авторы данной статьи, один из которых кстати ответственен за сам лстм, добавили неплохие эмпирические фичи для улучшения оверолл перформанса, и в принципе справились с этим
что же они добавили? заменили нелинейность в forget gate и input gate на экспоненту и добавили матричную память, которая обновляется по covariance update rule
1) зачем заменять на экспоненту? для численной стабильности, в основном, что очень критично для рнн в принципе из-за вечных проблем с затуханием или взрывом градиентов + добавляют стабилизатор в логарифмическом пространстве на входной и забывающий гейты, чтобы точно ниче не разрывалось во время бекворда
2) а матричная память сделана довольно интересно - это не что иное, как ассоциативная память (посты о которой вы можете найти здесь). аналогично терминологии трансформера, создают запросы, ключи и значения qkv и получают хидден стейт в качестве значени v наиболее близких к запросу q (есчо смотрите формулы). кстати в формулу обновления ассоциативной памяти так же включены инпут и форгет гейты чтобы сделать ее более “lstm-like” + это все параллелизуется
правда есть вопросик к последнему пункту - почему бы не получать хидден стейт без ассоциативной памяти, а просто иметь обучаемую матрицу, которую будем домножать на запросы → получим ли то же самое? кнш прикольно, что ассоциативная память так тут используется (и это даже работает!), но простота - сестра таланта хз
также круто, что показывают результаты, где они не лучше всех - потому что суть статьи изначально в том, чтобы показать улучшенный лстм (а значит и лучше резы в большинстве случаев), а не новую соту которая превосходит трансформер брррр
👀LINK
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
ORPO: Monolithic Preference Optimization without Reference Model
кому в алайменте жить хорошо
как устроен пайплайн сейчас - есть модель, файнтюним ее при помощи supervised objective на домене/таске/вотевер, но потом еще надо и обучать на преференциях чтобы норм результат был? почему нужен последний пункт, если во время обучения с учителем мы и так отдаем предпочтение тому, что называем таргетом?
и действительно интересный вопрос - тк во время SFT и происходит неявное обучение “преференций” - при минимизации кросс энтропии мы выдаем бОльшее предпочтение таргет токенам. да, но при этом занижаются логиты всех остальных токенов из вокабуляра. а потому в результате модель выучит не прям то, что мы хотим (адекватного чат-бота например), а нечто, что способно по грамматике и структуре напоминать что-то, что пытается выдать себя за чат-бота
и авторы дополнительно эмпирически такое показывают, ну оттого и алаймент нужен на уровне легкой теории, а не просто по эмпирическим соображениям + из-за факта, что SFT (reference) модель не очень умеет в преференции, они совмещают этапы супервайзд файнтюнинга с обучением на эти самые преференции и получают ORPO
для этого они на этапе SFT напрямую добавляют preference penalty, который не зависит от референс модели, а только от параметров текущего состояния сетки, и он оптимизирует что-то вроде логарифма отношения отношений вероятностей (звучит сложно но прикольно, в статье так же добавили пункт почему считают так много делений оправданным)
результаты выглядят более-менее сносно, мб и на большом скейле моделек может заработать + выложили код и веса
👀LINK
пока читал статью, понял, что не умею в школьную математику - на последних 2 картинках выводят градиент reference penalty и пишут, что чем меньше P(y|x), тем больше коэффициент для градиента. имхо это не так - чем меньше P(y|x), тем больше выражение в знаменателе и значит коэффициент этот для градиента уменьшается [то есть надо наоборот бОльший P(y|x), но я редко хожу на пары по математике и могу ошибаться]
кому в алайменте жить хорошо
как устроен пайплайн сейчас - есть модель, файнтюним ее при помощи supervised objective на домене/таске/вотевер, но потом еще надо и обучать на преференциях чтобы норм результат был? почему нужен последний пункт, если во время обучения с учителем мы и так отдаем предпочтение тому, что называем таргетом?
и действительно интересный вопрос - тк во время SFT и происходит неявное обучение “преференций” - при минимизации кросс энтропии мы выдаем бОльшее предпочтение таргет токенам. да, но при этом занижаются логиты всех остальных токенов из вокабуляра. а потому в результате модель выучит не прям то, что мы хотим (адекватного чат-бота например), а нечто, что способно по грамматике и структуре напоминать что-то, что пытается выдать себя за чат-бота
и авторы дополнительно эмпирически такое показывают, ну оттого и алаймент нужен на уровне легкой теории, а не просто по эмпирическим соображениям + из-за факта, что SFT (reference) модель не очень умеет в преференции, они совмещают этапы супервайзд файнтюнинга с обучением на эти самые преференции и получают ORPO
для этого они на этапе SFT напрямую добавляют preference penalty, который не зависит от референс модели, а только от параметров текущего состояния сетки, и он оптимизирует что-то вроде логарифма отношения отношений вероятностей (звучит сложно но прикольно, в статье так же добавили пункт почему считают так много делений оправданным)
результаты выглядят более-менее сносно, мб и на большом скейле моделек может заработать + выложили код и веса
👀LINK