senior_augur | Unsorted

Telegram-канал senior_augur - Старший Авгур

5407

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

Subscribe to a channel

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

Trust or Escalate: LLM Judges with Provable Guarantees for Human Agreement
Статья: https://arxiv.org/abs/2407.18370
Рецензии: https://openreview.net/forum?id=UHPnqSTBPO

Попарные оценки языковыми моделями с теоретическими гарантиями согласованности с людьми 😐

Что за теоретические гарантии? Предположим, что мы задаём уровень риска α и хотим, чтобы для примера x вероятность согласованности языковой модели с людьми на этом примере была больше 1 - α, при условии, что этот мы вообще оцениваем этот пример. Последняя фраза тут очень важна — очевидно, что есть примеры, на которых даже у людей очень низкая согласованность, и такие примеры мы хотим каким-то образом определять и не учитывать их в оценке. Теперь для каждого метода оценки у нас есть 2 чиселки: непосредственно согласованность с людьми, а ещё и покрытие, то есть доля примеров, которые мы не откинули в процессе оценки.

🔹Few-shot ансамблирование
Для начала нам нужно понять, а как вообще отсеивать примеры, которые мы не хотим оценивать? Для этого мы можем попросить модель каким-то образом вывести уверенность в своей оценке. Исходя из этой уверенности и маленького калибровочного набора данных, можно вывести минимальную уверенность для заданного α, ниже которой мы должны откидывать примеры.

Есть разные методы оценки уверенности модели, например можно взять прямую вероятность генерации ответа, или можно попросить модель явно выдавать уверенность текстом. Авторы считают точность, ROC AUC и другие метрики классификации для этих вариантов и показывают, что они жёстко переоценивают уверенность модели. Поэтому предлагается ансамблировать несколько few-shot ответов модели с разными наборами примеров в контексте. Авторы показывают, что такая уверенность лучше откалибрована, а значит позволяет отсеивать меньше примеров.

🔹Каскады
Второй шаг ещё интереснее: дело в том, что слабые модели тоже неплохо откалиброваны. А значит можно сначала прогнать примеры через дешёвые модели с высокой границей уверенности. Если они прошли фильтр — шикарно, используем дешёвую модель для оценки. Если нет — переходим к более дорогой модели. Полностью откидываем пример только тогда, когда все модели не уверены.

🔹Эмпирические оценки
А дальше оказывается, что это всё очень хорошо бьётся с эмпирической согласованностью. То есть теоретическая оценка согласованности действительно является оценкой снизу на практике. Кроме того, авторы показывают, что выкинутые примеры дейсвительно были бы выкинуты по несогласованности людей.

Итого мы получаем:
1) чёткую схему оценки
2) с теоретическими гарантиями согласованности
3) с эмпирической согласованностью выше, чем у GPT-4 💪
3) с инференсом в 2-5 раз дешевле, чем у GPT-4 😺

P.S. Гитхаб пустой, но весь код можно найти в доп. материалах на OpenReview 😁

Читать полностью…

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

Наличие выбросов в активациях извествено с LLM.int8(), bitsandbytes квантования уже работают с учётом этого.
Статья же выше логически продолжает эту же линию, находя прям очень маленький набор весов.

Читать полностью…

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

Сегодня последний день исправлений посылок на ICLR.

Я исправил всё, что обещал, в статье про ПингПонг:
- Значительно пределано введение и литература: докинуты ссылки и всё стало более базировано 😐
- 5 разметчиков везде, добавлены таблички их согласованности и подробности процесса разметки. Метрики моделек от этого не сильно поменялись, что очень хорошо.
- В сам лидерборд добавлен селектор с весами метрик. Когда-нибудь я соберусь и всю агрегацию данных сделаю на фронте... Но только не сегодня.
- Докинул сравнение с другим RP бенчмарком, RPBench-Auto.
- Добавил фрагмент текста про тюны на книжках, которые положительно влияют на RP метрики.
- Перефигачил все дополнения: примеры и промпты теперь в красивых синеньких рамках.
- Сделал тематический анализ RP датасета от Chai, по которому оценил, наксколько текущие ситуации репрезентативны.
- Ответил на все-все комментарии рецензентов.

Грустно, что из 6 рецензентов только один соизволил со мной попереписываться, он же накидал наибольшее число замечаний.
Посмотрим, что из этого выйдет.

Читать полностью…

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

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

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

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

Читать полностью…

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

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

Читать полностью…

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

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

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

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

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

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

Читать полностью…

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

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

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

Читать полностью…

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

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

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

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

Читать полностью…

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

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

Читать полностью…

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

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

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

Читать полностью…

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

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

Читать полностью…

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

https://openai.com/index/introducing-chatgpt-search/

OpenAI выкатили поиск. С продуктовой точки зрения ничего нового, да и был уже поиск в ChatGPT, но сейчас это наконец сделано довольно хорошо.
Во-первых, это быстро. Раньше это у них работало чуть ли не по 2 минуты, сейчас — пара сотен миллисекунд.
Во-вторых, это красиво. Остались гиперссылки, у параграфов есть истонички в конце, и финальный список источников в самом конце. Плюс разные виджеты: карты, погода, новости.

Всё то же самое, что было и есть в той же Перплексии.

Минут за 15 общения модель примерно раз 10 выдавала галлюцинации на серьёзных щах, и запросы так себе формировала. С точки зрения качества поиска ничего хорошего.

Короче, OpenAI просто закрыли нишу и подавили конкурентов.

Читать полностью…

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

Зато друг друга они стоят... Диалоги тут.

Тут три момента:
- Во-первых, модели явно не учились отыгрывать роли. Почему Клод и GPT-4 учились, а эти нет — загадка.
- Во-вторых, с точки зрения языка всё действительно неплохо.
- В-третьих, в качестве судей выступают gpt-4o и Соннет, что вносит некоторое смещение оценок не в пользу русских моделей. Это же касается автоматических арен.

А вот если учесть цену, то всё это полная жесть. gpt-4o-mini стоит 30 центов за 1M токенов. Гигачат Про стоит 1500 рублей за 1M токенов, примерно в 50 раз дороже. YandexGPT Pro стоит примерно 10$ за 1M токенов, примерно в 30 раз дороже.

И даже если сравнивать с gpt-4o (до которой как до луны), то та всё равно дешевле!

Читать полностью…

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

Горький урок ABBYY: как лингвисты проиграли последнюю битву за NLP 

Недавно СМИ облетела новость об увольнении всех российских программистов из компании ABBYY (тоже в прошлом российской, а теперь уже совсем нет). Теперь, когда страсти вокруг обсуждения дискриминации сотрудников по паспорту улеглись, хочется поговорить о более глубокой истории. Закат ABBYY — это фиксация проигрыша последней битвы лингвистов за автоматическую обработку языка. Мир Data Science победил. Главный редактор «Системного Блока» Даниил Скоринкин, работавший ABBYY в 2013–2017, подводит итоги и пытается сформулировать уроки из этой истории.

Что за ABBYY и при чем тут лингвисты и NLP?

История ABBYY началась в 1989 году, когда студент МФТИ Давид Ян решил сделать электронный словарь для подготовки к экзамену. Так появились Lingvo, а затем — система распознавания символов FineReader. Продукты ABBYY развивались, и компания стала глобальным лидером оптического распознавания в 1990-е и 2000-е. Затем ABBYY двинулась покорять машинный перевод. 
На вооружение они взяли идеи известных лингвистов — в первую очередь Модели «Смысл ⇔ Текст» (прочитать о ней можно в нашем интервью с И. А. Мельчуком). Амбиция была в том, чтобы разобрать человеческие языки как формальные структуры на базе семантической иерархии. Но естественный язык устроен противоречиво и постоянно изменяется, подход оказался негибким и немасштабируемым

Что пошло не так?

В 2006-м появилась первая версия Google Translate. Она была несовершенной, но главное, что в ней был другой — статистический — подход. И масштабируемость. Для её улучшения не нужны были сотни лингвистов, только еще больше примеров перевода. В 2010-х стало ясно, что никаких шансов тягаться с Google Translate у ABBYY не было. С перевода ABBYY переключилась на задачи информационного поиска и извлечения информации из текста, но и там столкнулась с теми же проблемами: описания языка на базе лингвистической теории оказались немасштабируемыми, а решения уступали подходам на основе чистого машинного обучения. 

C новой проблемой компания столкнулась весной 2022 – им пришлось выехать из России, чтобы сохранить зарубежных клиентов. Следующим ударом стали большие языковые модели, который научились лучше и быстрее выполнять те же задачи, что и классические системы распознавания от ABBYY. Сейчас от компании осталась только вывеска, действующие продукты и небольшое количество менеджеров и специалистов по продажам.

Какие уроки мы извлекаем?


За 70 лет исследований ИИ стало ясно, что самые общие методы, опирающиеся на масштабирование вычислений, намного эффективнее всех остальных. А желание ABBYY сделать универсальную NLP-систему с опорой на лингвистическую теорию оказалось утопией. 

И всё-таки ABBYY успела сделать много важного: открывала кафедры на Физтехе и в РГГУ, оцифровывала наследия Льва Толстого и архива Большого театра. А еще благодаря ей появился «Системный Блокъ», ведь сооснователи издания познакомились именно там. И именно там вы сможете прочитать полную версию поста с мемами и более детальным описанием цифровой «Вавилонской башни», которую пыталась строить ABBYY.

🤖 «Системный Блокъ» @sysblok

Читать полностью…

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

А вот это удивительно, не ожидал я такого от коробочной Айи. 8b модель тоже лучшая в своём весе для русского.

Читать полностью…

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

Кстати, смотрите кто в топ-15 по оценкам на ICLR: https://arxiv.org/abs/2407.01082
А знаете, кто в Acknowledgements?

Читать полностью…

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

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

Прикольный результат в общем. Это всё несколько перекликается с темой про лотерейные билеты (/channel/gonzo_ML/21), там внутри большой сети обнаруживалась сильно разреженная подсеть, обучая которую можно было достигать качества исходной сети (или даже выше). Интересно, входят ли супер-веса в лотерейный билет? Наверняка.

Читать полностью…

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

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

Читать полностью…

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

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

Читать полностью…

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

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

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

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

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

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

Читать полностью…

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

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

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

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

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

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

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

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

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

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

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

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

Читать полностью…

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

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

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

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

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

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

Читать полностью…

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

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

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

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

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

Читать полностью…

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

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

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

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

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

Читать полностью…

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

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

Читать полностью…

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

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

Модель: 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) Очень изредка попадются выдуманные слова. Причём они вполне разумны, просто их не существует.

Читать полностью…

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

🎆 Небольшая лекция об Alignment и как мы его готовим

Это слайды с текстом, пока устно ее я рассказывал только внутри команды Vikhr.

Внутри вы узнаете:
- Теория Bradley-Terry и откуда берутся Reward модели
- Что нужно для обучения Reward модели и как его делаем мы
- Откуда взялся DPO и каковы его недостатки
- Какова мотивация нас и других авторов улучшать DPO
- Как устроен наш функционал SMPO - Simple Margin Preference Optimization
- Какие есть способы улучшения DPO на уровне данных и как готовим эти данные мы

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

Читать полностью…

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

Мммм, 35 место. Но так-то серьёзный скачок с 46. В комментах скриншоты с артефактами. Посмотреть диалоги можно тут.

UPD: С другой стороны, я бы ещё обратил внимание на language fluency, по нему она так-то делит первое место ещё с 3 модельками.

Читать полностью…

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

Ларчик с Вихрём Немо просто открывался. Рецепт оказался прост: трейн на тесте.
Я недавно случайно обнаружил, что в GrandMaster-PRO-MAX лежит около 180 промптов и ответов на них из ru_arena_general. А их там всего 500, то есть больше трети примеров из тестов слиты в обучающую выборку. Вполне возможно, что это сделано не только в SFT, но и в SMPO фазе.

Код для проверки:


from datasets import load_dataset

examples = dict()
for row in load_dataset("Vikhrmodels/ru-arena-general", split="train"):
examples[row["turns"][0]["content"]] = 0

for row in load_dataset("Vikhrmodels/GrandMaster-PRO-MAX", split="train"):
ex = row["conversation"][0]["content"]
if ex in examples:
examples[ex] = 1
print(sum(examples.values()))


Я решил поэкспериментировать и сделал то же самое в SFT. Получил +6 пунктов на арене. Справедливости ради, мне всё равно не удалось догнать Вихрь, но, вероятно, это решается доливом теста в SimPO.

Намеренно ли это было сделано? На 99% уверен, что нет.
Делает ли это Вихрь Немо плохой моделью? Тоже нет.
Но хорошо бы это увидеть в карточке модели, да и с арены модель убрать.

UPD: карточку обновили, там об этом теперь написано

Читать полностью…

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

Я и не сомневался. Что прикольно — сильно уменьшилась доля отказов.

Читать полностью…
Subscribe to a channel