Старший Авгур @senior_augur Channel on Telegram

Старший Авгур

@senior_augur


Сохраненки и шитпост про ML от @YallenGusev

Старший Авгур (Russian)

Старший Авгур - это Telegram-канал, где вы найдете сохраненки и шитпосты про машинное обучение от пользователя @YallenGusev. Если вы увлечены искусственным интеллектом, машинным обучением и всем, что связано с этой темой, то этот канал именно для вас. @YallenGusev делится своими знаниями, опытом и веселыми картинками, чтобы сделать ваше погружение в мир машинного обучения еще более увлекательным. На канале вы найдете не только интересные материалы и новости из мира ML, но и возможность общаться с единомышленниками, делиться своими мыслями и вопросами. Присоединяйтесь к каналу "Старший Авгур" и окунитесь в захватывающий мир машинного обучения вместе с @YallenGusev!

Старший Авгур

21 Nov, 19:50


Пресс-релиз не соврал.

Старший Авгур

18 Nov, 16:12


😳
Лучше v1 при меньшей длине ответов, на ПингПонге тоже вполне сносно. Выложу как v3.

Что поменялось:
- Я исправил шаблон промпта, убрал лишние пробелы. Теперь он почти такой же, как у оригинального Немо, за исключением системного сообщения. Основная проблема была в том, что в SFT пробел перед ответом был, а в SimPO не было.
- Использовал чистый SimPO сет, только те пары, на которых Sonnet и GPT-4o сошлись во мнении.

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

Старший Авгур

17 Nov, 23:24


Тем временем ответил на все рецензии и сделал инстансы для разметки английских диалогов 😵
Сама разметка оказалась гораздо более простым процессом, чем мне представлялось. До этого я всю жизнь пользовался Толокой (и sandbox её версией), переход на LabelStudio оказался не таким уж и сложным. Там одинаковая логика html-like шаблонов заданий, так что мои экспертные знания менеджера по разметке пригодились 😂
Ещё чуть экспериментировал с модельками для стихов, ничего хорошего пока не вышло.
Плюс был вынужден поставить фильтр на ответы Сайги в чатах при затрагивании определенной тематики (см. КоАП 6.21).

Старший Авгур

17 Nov, 13:14


Хорошая новость! Я уже получил полную разметку диалогов на русском от 3 людей, вместе с моей оригинальной это уже 4 разметчика. Я усреднил наши ответы, и посчитал корреляцию Спирмена с ответами ансамбля моделей. Она упала, но не принципиально: 0.669 -> 0.653. Так что как будто бы основные выводы статьи не изменятся.

Старший Авгур

16 Nov, 18:19


Пяти людям выдал проекты. Всем, кто отправлял заявки — спасибо! Вполне может понадобится больше людей, плюс впереди ещё английские диалоги, и может быть вам я напишу чуть позже.

А пока я расскажу, как именно устроен проект. Есть бесплатная и платная версия LabelStudio. Основное ограничение бесплатной версии — нет разделения юзеров по правам, у всех админский доступ. То есть никакие серьёзные проекты так делать нельзя.

В минимальной платной версии вы платите 99$ в месяц + 50$ за каждого юзера. Что ОЧЕНЬ дорого для такого маленького проекта.

Какой я нашёл выход: для каждого разметчика существует отдельный бесплатный инстанс LabelStudio с отдельной базой данных. Они все запущены на одной машине, но хранят данные в разных папочках и работают через разные порты. Поверх всего этого есть reverse proxy: Ngrok, который всё это дело светит в Интернет и перенаправляет запросы в разные инстансы.

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

Старший Авгур

16 Nov, 16:55


Теперь по поводу разметки. Я поднял пару инстансов LabelStudio и готов туда кого-нибудь пустить.
Там всего 265 диалогов на русском, для каждого из которых нужно ответить на 3 вопроса. Общий объём работы я оцениваю в 2 часа, готов за неё заплатить 3к рублей каждому человеку. Всего мне нужно 5 разметчиков.

Деньги могу перевести внутри России, по номеру карточки или номеру телефона.

Разметка точно не последняя (будет как минимум такая же для английского), в последующих разметках приоритет будет тем, кто успешно закроет эту задачу.

Форма заявки: https://forms.gle/iPu8YMvpKaEV7hDx8

Если с заявкой всё ок, я напишу в личку и расскажу детали. Не обижайтесь, если не отвечу: что-то мне подсказывает, что заявок будет больше, чем 5.

Старший Авгур

16 Nov, 12:52


Наконец-то дошёл до рецензий на ПингПонг, вот основные проблемы с точки зрения рецензентов:

1) Только один разметчик, я. Очевидная проблема, и для её правильного исправления мне как раз и понадобится ваша (небесплатная) помощь. Про это будет отдельный пост. Сюда же можно отнести недостаточную прозрачность по инструкциям разметки и составу разметчиков.

2) Недостаточность сравнения с другими бенчмарками. Необходимость сравнения с Creative writing недостаточно обоснована, плюс вроде как есть одноходовые бенчи, с которыми можно сравниться. С этим согласен, попробую найти ещё варианты.

3) Метрики слишком субъективны. И вообще, их мало. С этим не очень согласен, тут ничего менять не буду, попробую просто ответить.

4) Нет возможности перевзвесить финальную метрику в зависимости от того, какой именно аспект интересен. Вот это прикольно и вполне реализуемо, сделаю.

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

6) Недостаточная дифференциация моделей. Проблема есть, имхо решается промптингом, но тогда нужно делать v3 и пересчитывать все модели, я пока на такое не готов.

7) Нет примеров пользы от бенчмарка. Тут я просто добавлю историю про Гутенберг.

Кроме этого, один из рецензентов докопался до текста в куче мест, и не везде за дело: часть поправлю, на часть просто отвечу.

И наконец, один из рецензентов такой "ну обычная симуляция юзеров, ничего нового, разве что на этот раз в RP, it's a minor increment". Мало того, он написал что видел такое в "нескольких других статьях", не уточнив, в каких блин именно! И такие типы рецензий меня бесят больше всего. Чел, 99.9% статей — это minor increment, и если бы ты хотя бы привёл примеры, я бы тебе по фактам расписал, в чём новизна.

В целом, после внимательного прочтения оказалось, что всё не так плохо.

Старший Авгур

13 Nov, 22:49


В продолжении наших экспериментов с адаптацией 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

Будем рады фидбеку по достоинствам и недостатком модели.

Старший Авгур

13 Nov, 09:27


Ревью на ICLR вышли. В том числе на ПингПонг.

Итог: 633353 с уверенностью 443434.

Первые цифры означают итоговую оценку. 3 = отказ, 5 = чуть хуже принятия, 6 = чуть лучше принятия. В уверенности: 4 = сильно уверен, но не прям до конца, 3 = уверен, но может ошибаться. Итоговый средний балл = 3.83, что лучше всего 20% сабмитов. Статистику можно посмотреть тут.

Такие оценки примерно означают, что даже после оспаривания и доработок шанс реджекта примерно 99.(9)%.

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

Старший Авгур

11 Nov, 14:59


Почему-то задачи на ML design собеседованиях в корпорациях у меня всегда абсолютно одинаковые. Всегда нужно построить систему для рекомендации X. В качестве X на текущий момент выступали:

- Товары (как на маркетплейсах)
- Друзья в соцсети (как в VK)
- Города/отели для посещения (как в Букинге)
- Видео (как в TikTok)
- Песни (как в Spotify)

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

Старший Авгур

11 Nov, 08:13


Начинаем рабочую неделю с часовой лекции Sasha Rush (Associate Professor @ Cornell University, Researcher @ HuggingFace 🤗) под названием «Speculations on Test-Time Scaling» (спекуляции по поводу того, как работает модель OpenAI o1). Презентация техническая, содержит большое количество ссылок на разные работы для самостоятельного изучения.

Разбирать я её не буду, так как тем, кому интересно разобраться в деталях и предпосылках o1, лучше смотреть саму лекцию. А тем, кому не интересно — им и не интересно 🧠Лишь отмечу, что Sasha рассматривает несколько направлений исследований касательно цепочек рассуждений, и для каждой указывает, почему и чем это отличается от o1 — и по итогу ни одна идея полноценно под всё не подходит(

Смотреть на YouTube
PDF со слайдами
Репозиторий со ссылками на все упомянутые статьи

Это мы смотрим 🍿

Старший Авгур

08 Nov, 22:16


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 часов других людей. Мне в статье не хватило разве что исследований того, насколько хорошо сливаются модели разных форматов промптов. В остальном — это очень хороший повод всё это активнее применять.

Старший Авгур

07 Nov, 22:10


Выложил v2 версию Сайги Немо. Основных изменений 3:
- Я убрал 80+ примеров из SFT, в которых использовались системные промпты персонажей из ПингПонга. На это мне указали ребята из @gigadev_channel. Эти промпты появились там до ПингПонга из логов бота, собственно сам лидерборд я собирал на их основе. Это может считаться утечкой, поэтому они убраны из обучения.
- В SimPO датасете я агрессивнее порезал длину и увеличил вес SFT лосса, чтобы укоротить ответы и уменьшить количество выдуманных слов.
- Дотюнил на Достоевском и смёржил ровно так, как я делал для Вихря.

На ПингПонге стало лучше, на арене пока нет результатов.

Если кому-то захочется остаться на v1, везде можно указать ревизию, они есть в карточке модели.

GGUF'ы будут завтра.

Старший Авгур

03 Nov, 13:44


Затраты и доходы по боту за октябрь. Есть ещё копеечки, потраченные на Runpod и OpenRouter, но там немного.

o1-preview для людей без подписки я убираю, сама подписка становится дороже.

Старший Авгур

02 Nov, 22:30


А ещё у нас новый лидер на дне нашего стакана с проприетарными русскими моделями!

Старший Авгур

02 Nov, 22:24


На всякий слачай уточню: в v7 тюне Лламы 3 я был прям уверен, он был со всех сторон хороший.
Эта модель гораздо лучше того тюна, но и у меня тоже поднялись ожидания.
Всего было около 20 итераций, и в итоге ни одна меня не устроила. Этот релиз — это мой компромисс с собой. Я просто выбрал лучший вариант из всех итераций, и в итоге его и релизнул.
В целом, делать эту модель было не очень дорого. Порядок величин — около 1к$ на всё: разметка данных, железо, оценка. Самым дорогим было оценивать модель на арене с gpt-4, больше я так делать не буду.

Старший Авгур

02 Nov, 21:31


Ура, релиз Сайги Немо!

Модель: https://huggingface.co/IlyaGusev/saiga_nemo_12b
Уже доступна в боте.
GGUF завтра подвезу.

По метрикам: 85 на РуАрене, что чуть хуже 87 у Вихря. Примеры из тест-сета я не использовал. И 3 место на ПингПонге.

Пайплайн абсолютно классический: SFT + SimPO. Датасеты, конфиги обучения, W&B логи лежат в карточке модели.

Уникальная фича модели — расцензурированность и ориентация на role-play. Обучал я её поверх abliterated версии Немо, и из и SFT, и SimPO датасетов агрессивно вычищал отказы. В оба датасета доливал role-play промпты, но не с теми персонажами, которые есть в ПингПонге.

Я поштырил и в RP диалоги, и в ответы на арене, и увидел несколько проблем:
1) Модель не умеет рисовать ASCII.
2) В 2 примерах я наблюдал повторы. Это было там, где нужно было написать пример кода, а в нём был какой-нибудь токен. И вот этот токен генерировался бесконечно. Эта проблема специфична для нулевой температуры.
3) Длина. Хоть я и пытался бороться с слишком длинными ответами, по бенчам видно, что ответы всё равно длиннее среднего.
4) Очень изредка попадются выдуманные слова. Причём они вполне разумны, просто их не существует.