Затраты и доходы по боту за октябрь. Есть ещё копеечки, потраченные на Runpod и OpenRouter, но там немного.
o1-preview для людей без подписки я убираю, сама подписка становится дороже.
o1-preview для людей без подписки я убираю, сама подписка становится дороже.
Выложил v2 версию Сайги Немо. Основных изменений 3:
- Я убрал 80+ примеров из SFT, в которых использовались системные промпты персонажей из ПингПонга. На это мне указали ребята из @gigadev_channel. Эти промпты появились там до ПингПонга из логов бота, собственно сам лидерборд я собирал на их основе. Это может считаться утечкой, поэтому они убраны из обучения.
- В SimPO датасете я агрессивнее порезал длину и увеличил вес SFT лосса, чтобы укоротить ответы и уменьшить количество выдуманных слов.
- Дотюнил на Достоевском и смёржил ровно так, как я делал для Вихря.
На ПингПонге стало лучше, на арене пока нет результатов.
Если кому-то захочется остаться на v1, везде можно указать ревизию, они есть в карточке модели.
GGUF'ы будут завтра.
- Я убрал 80+ примеров из SFT, в которых использовались системные промпты персонажей из ПингПонга. На это мне указали ребята из @gigadev_channel. Эти промпты появились там до ПингПонга из логов бота, собственно сам лидерборд я собирал на их основе. Это может считаться утечкой, поэтому они убраны из обучения.
- В SimPO датасете я агрессивнее порезал длину и увеличил вес SFT лосса, чтобы укоротить ответы и уменьшить количество выдуманных слов.
- Дотюнил на Достоевском и смёржил ровно так, как я делал для Вихря.
На ПингПонге стало лучше, на арене пока нет результатов.
Если кому-то захочется остаться на v1, везде можно указать ревизию, они есть в карточке модели.
GGUF'ы будут завтра.
What Matters for Model Merging at Scale?
Статья: https://arxiv.org/abs/2410.03617
Статья про слияние моделей. Основные пять выводов написаны сразу в абстракте:
1. Учить экспертов надо поверх инстрактов, а не базовых моделей.
2. Чем больше модель, тем лучше работает слияние.
3. Если учить на N разных задач и сливать, то генерализация (= качество на отложенных задачах) лучше, чем если учить одну модель на общем наборе данных.
4. Чем больше модель, тем больше разных экспертов можно вливать.
5. Чем больше моделей и экспертов, тем больше пофиг на выбор конкретного метод слияния.
Что вообще за слияние? Самый простой вариант — усреднение весов. То есть мы берём две разных модели (желательно от одного предка), считаем какую-то функцию от их весов, и получаем одну модель той же архитектуры. Конкретных функций бывает много, кроме усреднения см. Task Arithmetic, TIES, DARE.
Все эксперименты проводятся на разных вариантах PaLM-2, гугловой проприетарной модели. Всего есть N задач, для каждой из них делается отдельный тюн. Задачи берут из T0. Их делят на две категории: held-in и held-out. Тюнят модели на held-in, полностью, без Лоры.
Результаты 1 и 4 как по мне довольно очевидны, поэтому сосредоточимся на 2, 3 и 5. Третий результат особенно интересен, потому что он очень сильный: можно просто обучить 8 моделей на разные задачи, и итоговая модель не только будет хороша в этих задачах, но и станет в целом лучше (= качество на отложенных задачах станет выше)😱
Бейзлайн: версии модели, обученные сразу на всех задачах. 24B модель, смёрженная из 8 экспертов, работает на уровне бейзлайна, 64B модель — значимо его превосходит. При обучении поверх базовой модели (вместо инстракта) ситуация не такая радужная, но всё равно неплохая. Второй результат про то же, но на held-in задачах. Там для 8 экспертов у 64B итоговое качество около 90% от бейзлайна, и чем меньше модель — тем хуже.
Что же касается последнего результата, он просто очень приятный. Для больших моделей вообще не очень важно, как именно сливать, получается одно и то же с точки зрения качества☺️
Самое крутое в слиянии — возможность переиспользовать кучи GPU часов других людей. Мне в статье не хватило разве что исследований того, насколько хорошо сливаются модели разных форматов промптов. В остальном — это очень хороший повод всё это активнее применять.
Статья: https://arxiv.org/abs/2410.03617
Статья про слияние моделей. Основные пять выводов написаны сразу в абстракте:
1. Учить экспертов надо поверх инстрактов, а не базовых моделей.
2. Чем больше модель, тем лучше работает слияние.
3. Если учить на N разных задач и сливать, то генерализация (= качество на отложенных задачах) лучше, чем если учить одну модель на общем наборе данных.
4. Чем больше модель, тем больше разных экспертов можно вливать.
5. Чем больше моделей и экспертов, тем больше пофиг на выбор конкретного метод слияния.
Что вообще за слияние? Самый простой вариант — усреднение весов. То есть мы берём две разных модели (желательно от одного предка), считаем какую-то функцию от их весов, и получаем одну модель той же архитектуры. Конкретных функций бывает много, кроме усреднения см. Task Arithmetic, TIES, DARE.
Все эксперименты проводятся на разных вариантах PaLM-2, гугловой проприетарной модели. Всего есть N задач, для каждой из них делается отдельный тюн. Задачи берут из T0. Их делят на две категории: held-in и held-out. Тюнят модели на held-in, полностью, без Лоры.
Результаты 1 и 4 как по мне довольно очевидны, поэтому сосредоточимся на 2, 3 и 5. Третий результат особенно интересен, потому что он очень сильный: можно просто обучить 8 моделей на разные задачи, и итоговая модель не только будет хороша в этих задачах, но и станет в целом лучше (= качество на отложенных задачах станет выше)
Бейзлайн: версии модели, обученные сразу на всех задачах. 24B модель, смёрженная из 8 экспертов, работает на уровне бейзлайна, 64B модель — значимо его превосходит. При обучении поверх базовой модели (вместо инстракта) ситуация не такая радужная, но всё равно неплохая. Второй результат про то же, но на held-in задачах. Там для 8 экспертов у 64B итоговое качество около 90% от бейзлайна, и чем меньше модель — тем хуже.
Что же касается последнего результата, он просто очень приятный. Для больших моделей вообще не очень важно, как именно сливать, получается одно и то же с точки зрения качества
Самое крутое в слиянии — возможность переиспользовать кучи GPU часов других людей. Мне в статье не хватило разве что исследований того, насколько хорошо сливаются модели разных форматов промптов. В остальном — это очень хороший повод всё это активнее применять.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Сиолошная
Начинаем рабочую неделю с часовой лекции Sasha Rush (Associate Professor @ Cornell University, Researcher @ HuggingFace 🤗) под названием «Speculations on Test-Time Scaling» (спекуляции по поводу того, как работает модель OpenAI o1). Презентация техническая, содержит большое количество ссылок на разные работы для самостоятельного изучения.
Разбирать я её не буду, так как тем, кому интересно разобраться в деталях и предпосылках o1, лучше смотреть саму лекцию. А тем, кому не интересно — им и не интересно🧠 Лишь отмечу, что Sasha рассматривает несколько направлений исследований касательно цепочек рассуждений, и для каждой указывает, почему и чем это отличается от o1 — и по итогу ни одна идея полноценно под всё не подходит(
Смотреть на YouTube
PDF со слайдами
Репозиторий со ссылками на все упомянутые статьи
Это мы смотрим🍿
Разбирать я её не буду, так как тем, кому интересно разобраться в деталях и предпосылках o1, лучше смотреть саму лекцию. А тем, кому не интересно — им и не интересно
Смотреть на YouTube
PDF со слайдами
Репозиторий со ссылками на все упомянутые статьи
Это мы смотрим
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Speculations on Test-Time Scaling | Richard M. Karp Distinguished Lecture
Sasha Rush (Cornell University)
https://simons.berkeley.edu/events/speculations-test-time-scaling-richard-m-karp-distinguished-lecture
Richard M. Karp Distinguished Lecture
The “large” in LLM is more foundational than descriptive: models improve predictably…
https://simons.berkeley.edu/events/speculations-test-time-scaling-richard-m-karp-distinguished-lecture
Richard M. Karp Distinguished Lecture
The “large” in LLM is more foundational than descriptive: models improve predictably…
Почему-то задачи на ML design собеседованиях в корпорациях у меня всегда абсолютно одинаковые. Всегда нужно построить систему для рекомендации X. В качестве X на текущий момент выступали:
- Товары (как на маркетплейсах)
- Друзья в соцсети (как в VK)
- Города/отели для посещения (как в Букинге)
- Видео (как в TikTok)
- Песни (как в Spotify)
Я сначала радовался, а теперь мне тупо скучно. Там, конечно, в каждом пункте есть своя специфика, но только про неё всё равно никто не хочет говорить. Из этого списка выбиваются только друзья, там хотя бы есть эго-графы и всякие прикольные штучки.
- Товары (как на маркетплейсах)
- Друзья в соцсети (как в VK)
- Города/отели для посещения (как в Букинге)
- Видео (как в TikTok)
- Песни (как в Spotify)
Я сначала радовался, а теперь мне тупо скучно. Там, конечно, в каждом пункте есть своя специфика, но только про неё всё равно никто не хочет говорить. Из этого списка выбиваются только друзья, там хотя бы есть эго-графы и всякие прикольные штучки.
Ревью на ICLR вышли. В том числе на ПингПонг.
Итог: 633353 с уверенностью 443434.
Первые цифры означают итоговую оценку. 3 = отказ, 5 = чуть хуже принятия, 6 = чуть лучше принятия. В уверенности: 4 = сильно уверен, но не прям до конца, 3 = уверен, но может ошибаться. Итоговый средний балл = 3.83, что лучше всего 20% сабмитов. Статистику можно посмотреть тут.
Такие оценки примерно означают, что даже после оспаривания и доработок шанс реджекта примерно 99.(9)%.
Оспариванием я всё равно займусь серьёзно, потому что во-первых цель-то была сделать статью лучше, а во-вторых ревью и ответы публичны. Есть у меня на это две недели, сегодня сделаю из ревью выжимку основных проблем и путей решения. От вас мне тоже может понадобиться помощь, но об этом напишу позднее.
Итог: 633353 с уверенностью 443434.
Первые цифры означают итоговую оценку. 3 = отказ, 5 = чуть хуже принятия, 6 = чуть лучше принятия. В уверенности: 4 = сильно уверен, но не прям до конца, 3 = уверен, но может ошибаться. Итоговый средний балл = 3.83, что лучше всего 20% сабмитов. Статистику можно посмотреть тут.
Такие оценки примерно означают, что даже после оспаривания и доработок шанс реджекта примерно 99.(9)%.
Оспариванием я всё равно займусь серьёзно, потому что во-первых цель-то была сделать статью лучше, а во-вторых ревью и ответы публичны. Есть у меня на это две недели, сегодня сделаю из ревью выжимку основных проблем и путей решения. От вас мне тоже может понадобиться помощь, но об этом напишу позднее.
Forwarded from Ruadaptная комната
В продолжении наших экспериментов с адаптацией Qwen-2.5 моделей мы выпускаем RuadaptQwen-2.5-32B-Instruct (v1)! Вероятно самая большая открытая модель на данный момент, адаптированная на русский язык (в частности у нее один из наилучших токенайзеров среди открытых моделей для русского языка).
Модель была оценена на бенчмарке MERA (см. картинку).
Некоторая особенность сабмита на MERA в том, что в нем был использован кастомный промпт (есть в карточке сабмита), но для честного сравнения мы также добавили сабмит с исходной версией модели с таким же промптом.
Ссылка на модель:
https://huggingface.co/msu-rcc-lair/RuadaptQwen-32B-instruct
GGUF версия:
https://huggingface.co/msu-rcc-lair/RuadaptQwen2.5-32B-instruct-GGUF
Попробовать можно тут:
https://huggingface.co/spaces/RefalMachine/RuadaptQwen2.5
Будем рады фидбеку по достоинствам и недостатком модели.
Модель была оценена на бенчмарке MERA (см. картинку).
Некоторая особенность сабмита на MERA в том, что в нем был использован кастомный промпт (есть в карточке сабмита), но для честного сравнения мы также добавили сабмит с исходной версией модели с таким же промптом.
Ссылка на модель:
https://huggingface.co/msu-rcc-lair/RuadaptQwen-32B-instruct
GGUF версия:
https://huggingface.co/msu-rcc-lair/RuadaptQwen2.5-32B-instruct-GGUF
Попробовать можно тут:
https://huggingface.co/spaces/RefalMachine/RuadaptQwen2.5
Будем рады фидбеку по достоинствам и недостатком модели.
Наконец-то дошёл до рецензий на ПингПонг, вот основные проблемы с точки зрения рецензентов:
1) Только один разметчик, я. Очевидная проблема, и для её правильного исправления мне как раз и понадобится ваша (небесплатная) помощь. Про это будет отдельный пост. Сюда же можно отнести недостаточную прозрачность по инструкциям разметки и составу разметчиков.
2) Недостаточность сравнения с другими бенчмарками. Необходимость сравнения с Creative writing недостаточно обоснована, плюс вроде как есть одноходовые бенчи, с которыми можно сравниться. С этим согласен, попробую найти ещё варианты.
3) Метрики слишком субъективны. И вообще, их мало. С этим не очень согласен, тут ничего менять не буду, попробую просто ответить.
4) Нет возможности перевзвесить финальную метрику в зависимости от того, какой именно аспект интересен. Вот это прикольно и вполне реализуемо, сделаю.
5) Опрашивающая модель может быть непохожа на пользователей. Это тоже интересно, тут помогла бы кластеризация по интентам и темам какого-нибудь RP датасета с целью показать, что мой набор ситуаций репрезентативен. Не уверен, что я успею это сделать.
6) Недостаточная дифференциация моделей. Проблема есть, имхо решается промптингом, но тогда нужно делать v3 и пересчитывать все модели, я пока на такое не готов.
7) Нет примеров пользы от бенчмарка. Тут я просто добавлю историю про Гутенберг.
Кроме этого, один из рецензентов докопался до текста в куче мест, и не везде за дело: часть поправлю, на часть просто отвечу.
И наконец, один из рецензентов такой "ну обычная симуляция юзеров, ничего нового, разве что на этот раз в RP, it's a minor increment". Мало того, он написал что видел такое в "нескольких других статьях", не уточнив, в каких блин именно! И такие типы рецензий меня бесят больше всего. Чел, 99.9% статей — это minor increment, и если бы ты хотя бы привёл примеры, я бы тебе по фактам расписал, в чём новизна.
В целом, после внимательного прочтения оказалось, что всё не так плохо.
1) Только один разметчик, я. Очевидная проблема, и для её правильного исправления мне как раз и понадобится ваша (небесплатная) помощь. Про это будет отдельный пост. Сюда же можно отнести недостаточную прозрачность по инструкциям разметки и составу разметчиков.
2) Недостаточность сравнения с другими бенчмарками. Необходимость сравнения с Creative writing недостаточно обоснована, плюс вроде как есть одноходовые бенчи, с которыми можно сравниться. С этим согласен, попробую найти ещё варианты.
3) Метрики слишком субъективны. И вообще, их мало. С этим не очень согласен, тут ничего менять не буду, попробую просто ответить.
4) Нет возможности перевзвесить финальную метрику в зависимости от того, какой именно аспект интересен. Вот это прикольно и вполне реализуемо, сделаю.
5) Опрашивающая модель может быть непохожа на пользователей. Это тоже интересно, тут помогла бы кластеризация по интентам и темам какого-нибудь RP датасета с целью показать, что мой набор ситуаций репрезентативен. Не уверен, что я успею это сделать.
6) Недостаточная дифференциация моделей. Проблема есть, имхо решается промптингом, но тогда нужно делать v3 и пересчитывать все модели, я пока на такое не готов.
7) Нет примеров пользы от бенчмарка. Тут я просто добавлю историю про Гутенберг.
Кроме этого, один из рецензентов докопался до текста в куче мест, и не везде за дело: часть поправлю, на часть просто отвечу.
И наконец, один из рецензентов такой "ну обычная симуляция юзеров, ничего нового, разве что на этот раз в RP, it's a minor increment". Мало того, он написал что видел такое в "нескольких других статьях", не уточнив, в каких блин именно! И такие типы рецензий меня бесят больше всего. Чел, 99.9% статей — это minor increment, и если бы ты хотя бы привёл примеры, я бы тебе по фактам расписал, в чём новизна.
В целом, после внимательного прочтения оказалось, что всё не так плохо.
Теперь по поводу разметки. Я поднял пару инстансов LabelStudio и готов туда кого-нибудь пустить.
Там всего 265 диалогов на русском, для каждого из которых нужно ответить на 3 вопроса. Общий объём работы я оцениваю в 2 часа, готов за неё заплатить 3к рублей каждому человеку. Всего мне нужно 5 разметчиков.
Деньги могу перевести внутри России, по номеру карточки или номеру телефона.
Разметка точно не последняя (будет как минимум такая же для английского), в последующих разметках приоритет будет тем, кто успешно закроет эту задачу.
Форма заявки: https://forms.gle/iPu8YMvpKaEV7hDx8
Если с заявкой всё ок, я напишу в личку и расскажу детали. Не обижайтесь, если не отвечу: что-то мне подсказывает, что заявок будет больше, чем 5.
Там всего 265 диалогов на русском, для каждого из которых нужно ответить на 3 вопроса. Общий объём работы я оцениваю в 2 часа, готов за неё заплатить 3к рублей каждому человеку. Всего мне нужно 5 разметчиков.
Деньги могу перевести внутри России, по номеру карточки или номеру телефона.
Разметка точно не последняя (будет как минимум такая же для английского), в последующих разметках приоритет будет тем, кто успешно закроет эту задачу.
Форма заявки: https://forms.gle/iPu8YMvpKaEV7hDx8
Если с заявкой всё ок, я напишу в личку и расскажу детали. Не обижайтесь, если не отвечу: что-то мне подсказывает, что заявок будет больше, чем 5.
Пяти людям выдал проекты. Всем, кто отправлял заявки — спасибо! Вполне может понадобится больше людей, плюс впереди ещё английские диалоги, и может быть вам я напишу чуть позже.
А пока я расскажу, как именно устроен проект. Есть бесплатная и платная версия LabelStudio. Основное ограничение бесплатной версии — нет разделения юзеров по правам, у всех админский доступ. То есть никакие серьёзные проекты так делать нельзя.
В минимальной платной версии вы платите 99$ в месяц + 50$ за каждого юзера. Что ОЧЕНЬ дорого для такого маленького проекта.
Какой я нашёл выход: для каждого разметчика существует отдельный бесплатный инстанс LabelStudio с отдельной базой данных. Они все запущены на одной машине, но хранят данные в разных папочках и работают через разные порты. Поверх всего этого есть reverse proxy: Ngrok, который всё это дело светит в Интернет и перенаправляет запросы в разные инстансы.
То есть я не плачу денег LabelStudio, и каждый разметчик работает в изолированной среде, чего и хотелось.
А пока я расскажу, как именно устроен проект. Есть бесплатная и платная версия LabelStudio. Основное ограничение бесплатной версии — нет разделения юзеров по правам, у всех админский доступ. То есть никакие серьёзные проекты так делать нельзя.
В минимальной платной версии вы платите 99$ в месяц + 50$ за каждого юзера. Что ОЧЕНЬ дорого для такого маленького проекта.
Какой я нашёл выход: для каждого разметчика существует отдельный бесплатный инстанс LabelStudio с отдельной базой данных. Они все запущены на одной машине, но хранят данные в разных папочках и работают через разные порты. Поверх всего этого есть reverse proxy: Ngrok, который всё это дело светит в Интернет и перенаправляет запросы в разные инстансы.
То есть я не плачу денег LabelStudio, и каждый разметчик работает в изолированной среде, чего и хотелось.
Хорошая новость! Я уже получил полную разметку диалогов на русском от 3 людей, вместе с моей оригинальной это уже 4 разметчика. Я усреднил наши ответы, и посчитал корреляцию Спирмена с ответами ансамбля моделей. Она упала, но не принципиально: 0.669 -> 0.653. Так что как будто бы основные выводы статьи не изменятся.
Тем временем ответил на все рецензии и сделал инстансы для разметки английских диалогов 😵
Сама разметка оказалась гораздо более простым процессом, чем мне представлялось. До этого я всю жизнь пользовался Толокой (и sandbox её версией), переход на LabelStudio оказался не таким уж и сложным. Там одинаковая логика html-like шаблонов заданий, так что мои экспертные знания менеджера по разметке пригодились😂
Ещё чуть экспериментировал с модельками для стихов, ничего хорошего пока не вышло.
Плюс был вынужден поставить фильтр на ответы Сайги в чатах при затрагивании определенной тематики (см. КоАП 6.21).
Сама разметка оказалась гораздо более простым процессом, чем мне представлялось. До этого я всю жизнь пользовался Толокой (и sandbox её версией), переход на LabelStudio оказался не таким уж и сложным. Там одинаковая логика html-like шаблонов заданий, так что мои экспертные знания менеджера по разметке пригодились
Ещё чуть экспериментировал с модельками для стихов, ничего хорошего пока не вышло.
Плюс был вынужден поставить фильтр на ответы Сайги в чатах при затрагивании определенной тематики (см. КоАП 6.21).
Please open Telegram to view this post
VIEW IN TELEGRAM
Лучше v1 при меньшей длине ответов, на ПингПонге тоже вполне сносно. Выложу как v3.
Что поменялось:
- Я исправил шаблон промпта, убрал лишние пробелы. Теперь он почти такой же, как у оригинального Немо, за исключением системного сообщения. Основная проблема была в том, что в SFT пробел перед ответом был, а в SimPO не было.
- Использовал чистый SimPO сет, только те пары, на которых Sonnet и GPT-4o сошлись во мнении.
Достоевского доливать не буду, он хоть и улучшает RP, в остальных кейсах становится серьёзно хуже, модель легче сломать.
Please open Telegram to view this post
VIEW IN TELEGRAM
Сегодня последний день исправлений посылок на ICLR.
Я исправил всё, что обещал, в статье про ПингПонг:
- Значительно пределано введение и литература: докинуты ссылки и всё стало более базировано😐
- 5 разметчиков везде, добавлены таблички их согласованности и подробности процесса разметки. Метрики моделек от этого не сильно поменялись, что очень хорошо.
- В сам лидерборд добавлен селектор с весами метрик. Когда-нибудь я соберусь и всю агрегацию данных сделаю на фронте... Но только не сегодня.
- Докинул сравнение с другим RP бенчмарком, RPBench-Auto.
- Добавил фрагмент текста про тюны на книжках, которые положительно влияют на RP метрики.
- Перефигачил все дополнения: примеры и промпты теперь в красивых синеньких рамках.
- Сделал тематический анализ RP датасета от Chai, по которому оценил, наксколько текущие ситуации репрезентативны.
- Ответил на все-все комментарии рецензентов.
Грустно, что из 6 рецензентов только один соизволил со мной попереписываться, он же накидал наибольшее число замечаний.
Посмотрим, что из этого выйдет.
Я исправил всё, что обещал, в статье про ПингПонг:
- Значительно пределано введение и литература: докинуты ссылки и всё стало более базировано
- 5 разметчиков везде, добавлены таблички их согласованности и подробности процесса разметки. Метрики моделек от этого не сильно поменялись, что очень хорошо.
- В сам лидерборд добавлен селектор с весами метрик. Когда-нибудь я соберусь и всю агрегацию данных сделаю на фронте... Но только не сегодня.
- Докинул сравнение с другим RP бенчмарком, RPBench-Auto.
- Добавил фрагмент текста про тюны на книжках, которые положительно влияют на RP метрики.
- Перефигачил все дополнения: примеры и промпты теперь в красивых синеньких рамках.
- Сделал тематический анализ RP датасета от Chai, по которому оценил, наксколько текущие ситуации репрезентативны.
- Ответил на все-все комментарии рецензентов.
Грустно, что из 6 рецензентов только один соизволил со мной попереписываться, он же накидал наибольшее число замечаний.
Посмотрим, что из этого выйдет.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from gonzo-обзоры ML статей
The Super Weight in Large Language Models
Mengxia Yu, De Wang, Qi Shan, Colorado Reed, Alvin Wan
Статья: https://arxiv.org/abs/2411.07191
Код: https://github.com/mengxiayu/LLMSuperWeight
Очень прикольная работа про то, что внутри LLM можно найти один единственный вес, зануляя который мы обрушиваем качество работы модели в пропасть. Такие параметры авторы называют супер весами (super weights) и предлагают метод их нахождения за один forward pass.
Внутри обученных LLM находится группа весов-аутлаеров с большой магнитудой, они могут составлять порядка 0.01% от всех весов модели, что в случае миллиардных моделей всё равно сотни тысяч. Это было известно ранее. В текущей работе показывают, что внутри этой группы находится один единственный вес (тот самый super weight, SW), не обязательно самый большой, важность которого превышает суммарную важность тысяч других аутлаеров. Он необходим для качества, без него LLM не может генерить нормальный текст. Перплексия вырастает на несколько порядков, а точность на zero-shot задачах падает до рандома.
Ранее (https://arxiv.org/abs/2402.17762) были найдены супер-активации, критичные для качества. Они существуют в различных слоях, имеют константную магнитуду и всегда обнаруживаются в одинаковой позиции несмотря на вход. Текущая работа находит, что канал активации совпадает с оным для супер веса и сперва активация обнаруживается сразу после супер веса. Прунинг этого супер веса значительно уменьшает активацию, так что вероятно активация вызвана им, а не просто скоррелирована. Такие активации называются супер активациями (super activations, SA).
Предыдущая работа объясняла супер активации через bias terms, но не объясняла как они получаются и почему на одних и тех же местах. Сейчас авторы эмпирически нашли, что до down проекции (down_proj) произведение Адамара (Hadamard product) gate и up проекций (gate_proj, up_proj) создаёт относительно большую активацию. Супер вес далее усиливает её ещё и даёт супер активацию.
Напомню, что MLP блок в Ламе выглядит так:
out = down_proj( act_fn(gate_proj(input)) x up_proj(input) )
SW можно найти, анализируя спайки в распределениях входов и выходов down_proj. Для этого достаточен прямой проход с одним промптом. Авторы нашли супер веса для Llama (7B,13B,30B), Llama 2 (7B,13B), Mistral-7B, OLMo (1B,7B), Phi-3.
Провели эксперименты по обнулению SW, в том числе с восстановлением SA до исходного значения, чтобы проверить влияние SW на другие активации. Это восстанавливает 42% потери, то есть влияние SW на качество выше, чем просто через SA.
По анализу 500 различных промптов из Lambaba validation set видно, что при убирании SW вероятности стоп-слов сильно возрастают (а обычные слова соответственно занижаются). Для “the” это 2×, для “.” -- 5×, и для “,” -- 10×. То есть наличие SW как бы подавляет стоп-слова и позволяет генерировать осмысленный текст.
Другой интересный эксперимент скейлит супер веса с коэффициентами от 0 до 3 (где оригинальный режим работы соответствует значению 1) и оказывается, что при увеличении SW качество модели ещё немного возрастает. Это забавный результат.
Имея это знание, можно предложить специальный метод квантования: Super-outlier aware quantization. Стандартные механизмы квантизации могут быть недостаточно хорошими, так как аутлаеры искажают распределение, влияя на размер шага и увеличивая ошибки квантования. Здесь под super outliers подразумеваются и SW, и SA. Предложенные методы восстанавливают SW и SA после квантований с клиппингом и заменами на медианное значение. Это всё работает лучше дефолтных методов, главный вывод -- надо защищать супер веса. В статье есть подробный разбор экспериментов, кому интересно поглубже. Также новый метод меньше теряет в качестве с увеличением размера блока.
Прикольный результат в общем. Это всё несколько перекликается с темой про лотерейные билеты (https://www.group-telegram.com/gonzo_ML/21), там внутри большой сети обнаруживалась сильно разреженная подсеть, обучая которую можно было достигать качества исходной сети (или даже выше). Интересно, входят ли супер-веса в лотерейный билет? Наверняка.
Mengxia Yu, De Wang, Qi Shan, Colorado Reed, Alvin Wan
Статья: https://arxiv.org/abs/2411.07191
Код: https://github.com/mengxiayu/LLMSuperWeight
Очень прикольная работа про то, что внутри LLM можно найти один единственный вес, зануляя который мы обрушиваем качество работы модели в пропасть. Такие параметры авторы называют супер весами (super weights) и предлагают метод их нахождения за один forward pass.
Внутри обученных LLM находится группа весов-аутлаеров с большой магнитудой, они могут составлять порядка 0.01% от всех весов модели, что в случае миллиардных моделей всё равно сотни тысяч. Это было известно ранее. В текущей работе показывают, что внутри этой группы находится один единственный вес (тот самый super weight, SW), не обязательно самый большой, важность которого превышает суммарную важность тысяч других аутлаеров. Он необходим для качества, без него LLM не может генерить нормальный текст. Перплексия вырастает на несколько порядков, а точность на zero-shot задачах падает до рандома.
Ранее (https://arxiv.org/abs/2402.17762) были найдены супер-активации, критичные для качества. Они существуют в различных слоях, имеют константную магнитуду и всегда обнаруживаются в одинаковой позиции несмотря на вход. Текущая работа находит, что канал активации совпадает с оным для супер веса и сперва активация обнаруживается сразу после супер веса. Прунинг этого супер веса значительно уменьшает активацию, так что вероятно активация вызвана им, а не просто скоррелирована. Такие активации называются супер активациями (super activations, SA).
Предыдущая работа объясняла супер активации через bias terms, но не объясняла как они получаются и почему на одних и тех же местах. Сейчас авторы эмпирически нашли, что до down проекции (down_proj) произведение Адамара (Hadamard product) gate и up проекций (gate_proj, up_proj) создаёт относительно большую активацию. Супер вес далее усиливает её ещё и даёт супер активацию.
Напомню, что MLP блок в Ламе выглядит так:
out = down_proj( act_fn(gate_proj(input)) x up_proj(input) )
SW можно найти, анализируя спайки в распределениях входов и выходов down_proj. Для этого достаточен прямой проход с одним промптом. Авторы нашли супер веса для Llama (7B,13B,30B), Llama 2 (7B,13B), Mistral-7B, OLMo (1B,7B), Phi-3.
Провели эксперименты по обнулению SW, в том числе с восстановлением SA до исходного значения, чтобы проверить влияние SW на другие активации. Это восстанавливает 42% потери, то есть влияние SW на качество выше, чем просто через SA.
По анализу 500 различных промптов из Lambaba validation set видно, что при убирании SW вероятности стоп-слов сильно возрастают (а обычные слова соответственно занижаются). Для “the” это 2×, для “.” -- 5×, и для “,” -- 10×. То есть наличие SW как бы подавляет стоп-слова и позволяет генерировать осмысленный текст.
Другой интересный эксперимент скейлит супер веса с коэффициентами от 0 до 3 (где оригинальный режим работы соответствует значению 1) и оказывается, что при увеличении SW качество модели ещё немного возрастает. Это забавный результат.
Имея это знание, можно предложить специальный метод квантования: Super-outlier aware quantization. Стандартные механизмы квантизации могут быть недостаточно хорошими, так как аутлаеры искажают распределение, влияя на размер шага и увеличивая ошибки квантования. Здесь под super outliers подразумеваются и SW, и SA. Предложенные методы восстанавливают SW и SA после квантований с клиппингом и заменами на медианное значение. Это всё работает лучше дефолтных методов, главный вывод -- надо защищать супер веса. В статье есть подробный разбор экспериментов, кому интересно поглубже. Также новый метод меньше теряет в качестве с увеличением размера блока.
Прикольный результат в общем. Это всё несколько перекликается с темой про лотерейные билеты (https://www.group-telegram.com/gonzo_ML/21), там внутри большой сети обнаруживалась сильно разреженная подсеть, обучая которую можно было достигать качества исходной сети (или даже выше). Интересно, входят ли супер-веса в лотерейный билет? Наверняка.
arXiv.org
The Super Weight in Large Language Models
Recent works have shown a surprising result: a small fraction of Large Language Model (LLM) parameter outliers are disproportionately important to the quality of the model. LLMs contain billions...
Наличие выбросов в активациях извествено с LLM.int8(), bitsandbytes квантования уже работают с учётом этого.
Статья же выше логически продолжает эту же линию, находя прям очень маленький набор весов.
Статья же выше логически продолжает эту же линию, находя прям очень маленький набор весов.
arXiv.org
LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale
Large language models have been widely adopted but require significant GPU memory for inference. We develop a procedure for Int8 matrix multiplication for feed-forward and attention projection...
Кстати, смотрите кто в топ-15 по оценкам на ICLR: https://arxiv.org/abs/2407.01082
А знаете, кто в Acknowledgements?
А знаете, кто в Acknowledgements?