senior_augur | Unsorted

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

5407

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

Subscribe to a channel

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

Computing machinery and intelligence
Статья: ссылка

Внезапный обзор относительно новой статьи. Центральный вопрос статьи, "Могут ли машины мыслить?", очевидно, не слишком хорошо определён. Что значит "мыслить"? Для разных людей это будет означать разное, но ведь странно сводить это к социологическому опросу.

Поэтому первый шаг — переопределение вопроса в игру. Игра такая: есть два игрока, A и B, и есть экзаменатор. Игроки и экзаменатор общаются исключительно удалённо и без визуального контакта, например через посредника. Задача экзаменатора — определить, кто из игроков машина, а кто человек. Теперь наш вопрос такой: "Могут ли существовать машины, которые будут неотличимы от людей в этой игре?".

Такой вопрос очень удобен, потому что мы разделяем интеллектуальное и физическое. Нас же не интересует, может ли машина стать человеком. Экзаменатор и игроки общаются исключительно посредством письменных вопросов и ответов. И письменные вопросы и ответы, в теории, охватывают огромное число областей человеческой деятельности.

Рассуждать про абстрактные "машины" тоже странно: у нас же есть компьютеры! Поэтому вопрос становится такой: "Может ли ваш ноутбук быть неотличимым от человека в этой игре, если в него докинуть памяти, видеокарт, и положить правильную программу?"

Ответ автора на этот вопрос: конечно, "ДА" 👍

И дальше он разбирает 9 аргументов хейтеров (и имхо, я всегда считал это самой классной частью статьи):
1) У людей есть душа, а в машины Бог её не доложил 😣
2) Сташно, вырубай (AI safety "специалисты", очевидно, были уже тогда) 🔫
3) Это невозможно математически 😱
4) "Ты всего лишь машина, только имитация жизни. Робот сочинит симфонию? Робот превратит кусок холста в шедевр искусства?" 🚶‍♀️
5) Машины не смогут X: делать ошибки, быть добрыми, иметь чувство юмора, играть в шахматы, в Доту, в го, связно разговаривать, решать математические задачи, и так далее
6) Возражение Ады: машины не могут создавать что-то новое, только следовать программе
7) Невозможность воспроизвести нервную систему человека.
8) Невозможность описать реальность фиксированным набором правил.
9) Возможное существование телепатов (!) и того факта, что они сломали бы игру 😁

Не все из них автор твёрдо опровергает, но хотя бы пытается. Ну а дальше идут рассуждения о том, как можно было бы такую умную машину построить. Тут я оставлю только цитаты:

- "I believe that in about 50 years' time it will be possible, to programme computers, with a storage capacity of about 10^9, to make them play the imitation game so well that an average interrogator will not have more than 70% chance of making the right identification after five minutes of questioning"
- "I should be surprised if more than 10^9 (binary digits) was required for satisfactory playing of the imitation game, at any rate against a blind man."
- "We normally associate punishments and rewards with the teaching process. Some simple child machines can be constructed or programmed on this sort of principle."
- "An important feature of a learning machine is that its teacher will often be very largely ignorant of quite what is going on inside, although he may still be able to some extent to predict his pupil's behavior."
- "Processes that are learnt do not produce a 100% certainty of result; if they did they could not be unlearnt. It is probably wise to include a random element in a learning machine."

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

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

ПингПонг V2 для русского после добавления моделей из комментариев и фиксов.

Обратите внимание на внезапную 9b модельку с 4 рангом, Gemma-2-Ataraxy-9B. Ну и на новый Коммандер.

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

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

ПингПонг V2

Ссылка: https://ilyagusev.github.io/ping_pong_bench/ru_v2

Все последние недели готовил новую версию ПингПонга.
Основные отличия от V1:
1) 3 роли вместо 2: игрок (player), опрашивающий (interrogator), судья (judge). Терминология, аналогичная сами знаете чему. Раньше опрашивающий и судья были одним промптом, теперь их несколько. Основные преимущества:
a) Их теперь могут отыгрывать разные модели, с разной ценой и параметрами.
b) Одну и ту же переписку можно оценивать разными моделями.
2) Опрашивающий = gpt-4o-mini вместо claude-3-5-sonnet. Так дешевле, а оправшивающему всё равно не обязательно быть очень хорошим.
3) Судья = ансамбль gpt-4o и claude-3-5-sonnet вместо только claude-3-5-sonnet. Это помогает избежать ситуаций, когда модели слишком высоко оценивают похожих на себя.
4) База в виде ручной разметки и 0.67 корреляции Спирмена с ней (по примерам, не по моделям).

Ну и пачка мелких интерфейсных улучшений, теперь можно читать вообще все диалоги, в том числе отказы.

Кидайте модели для оценки в комменты, добавлю в лидерборд.

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

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

Ладно, забейте. Это всё очень интересно, но простое усреднение Sonnet'а и gpt-4o даёт 0.67 😳

Так что эти все сложные ансамбли не имеют смысла.

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

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

Как разные языковые оценивают друг друга в расширенном ПингПонге. Оценки отнормированы по минимальным и максимальным для заданного судьи. Self-bias во всей красе для 3 из 5 моделей (100 на петлях).

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

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

Сделал по ПингПонгу всё, что обещал в этом посте: ссылка

На скриншоте табличка для английского.

Пост на Реддите: ссылка

Ещё посчитал корреляцию Спирмена со своими оценками на выборке в 200 диалогов, она около 0.6, что неплохо. По части выборки буду подбирать лучший промпт.

Дальше план такой:
- Переход на раздельную генерацию вопроса и оценок
- Шкала Ликерта с 5 позициями вместо 1-10
- PageRank на графе оценок
- Статья

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

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

Самый-самый последний день конференции. Был чуть-чуть на воркшопе по играм, чуть-чуть на воркшопе по диалоговым системам с поиском, но основное время провёл на воркшопе про (не)вливание теста в трейн, очень понравилось. Кроме собственно статей, там был сначала доклад Анны Роджерс о (не)эмерджентных свойствах, с которым она гастролирует по конференциям (ссылка), а также абсолютно божественный доклад Джесси Доджа из Ai2 об утечках тестов в претрейн. В комментах приложу пару слайдов. Больше всего мне запомнилась вот эта статья:


Rethinking LLM Memorization through the Lens of Adversarial Compression
Статья: ссылка

Как понять, что языковая модель спёрла контент? Как NYT доказать, что OpenAI — бяки? 🔨

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

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

И вот ведь какой прикол, для зазубренных текстов соотношение длин текстов и полученных промптов всегда больше 1. А для новых текстов оно меньше 1, и для большинства из них самый короткий возможный промпт — "Повтори X".

Ещё авторы походя показывают, что популярные методы разучивания/забывания (unlearning) на самом деле не работают. Например, не работает вот эта статья про разучивание того, кто такой Гарри Поттер 😂


Достойные упоминания статьи:
- Языковые модели играют в дуэльный Codenames (тык)
- DeepMind и компьютерные игры (тык)
- Устойчивость моделей суммаризации диалогов (тык)
- Языковые модели не учат длинный хвост фактов (тык)
- Оценка фактологичности, FActScore (тык)
- Влияние токенизации на качество модели (тык)

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

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

Пара статей с воркшопов отдельными постами, для них важны картинки.


Evaluating Vision-Language Models on Bistable Images
Статья: ссылка

Двойственные изображения — это особый тип оптических иллюзий, которые можно воспринимать двумя различными способами. Обратите внимание на приложенный скриншот, при некотором напряжении каждому изображению можно дать две интерпретации. Центральный вопрос статьи — как такие картинки воспринимают контрастивные модели типа CLIP'а и генеративные модели типа LLaVA?

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

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

Выводы? Да чёрт его знает 😐
Похоже, что текущие модели совсем нечеловечески воспринимают картинки. И если каким-то вещам типа эстетичности их можно научить, то для более тонких штук скорее всего потребуются более тонкие данные.

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

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

Fun fact... 🤨

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

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

За сегодня:


Why are Sensitive Functions Hard for Transformers?
Ссылка: тык

Почти продолжение вчерашнего туториала, но на этот раз про обучаемость трансформеров. Parity — задача подсчёта, чётно ли количество 1 в бинарной строке. Задача, которая вообще-то выразима трансформерами. Но на практике трансформеры её не выучивают. Почему? 🤔

Есть такая характеристика функции, средняя чувствительность (average sensitivity). Она показывает, сколько в среднем битов входа этой функции влияет на ответ. В случае Parity на ответ влияет каждый бит, поэтому это функция с высокой чувствительностью, as_n(f) = n. А вот Majority (задача про определение, чего в строке больше: 1 или 0), например, обладает меньшей средней чувствительностью, as_n(f) = θ(sqrt(n)).

Первый результат статьи: чувствительность = сложность, и эта сложность "оседает" либо увеличивая норму параметров, либо произведение обратных знаменателей LayerNorm. Что именно растёт — зависит от длины входа.

А в свою очередь взрыв нормализации делает трансформеры нестабильными по отношению к небольшим изменениям в параметрах. Для обычных задач добавление шума к весам особо их не ломает. Но для функций с высокой чувствительностью к изменению входов проявляется и высокая чувствительность к изменению параметров. Что делает лосс крайне сложным в оптимизации, из-за чего задача и не выучивается 😱

Всё это сопровождается подтверждающими теорию экспериментами. Статья в целом наполнена не самой простой математикой, но основные утверждения и выводы понятны на пальцах. Сам результат крутой, потому что объясняет, почему не все выразимые функции достижимы. А ещё её автор подписался на этот канал.


MYTE: Morphology-Driven Byte Encoding for Better and Fairer Multilingual Language Modeling
Статья: тык

Ребята докопались до святого — до Юникода, а конкретно до UTF-8 😱

Как известно, в UTF-8 символы представляются 1-4 байтами. Кириллические символы (то есть те, которыми написан этот пост) обычно занимают 2 байта. Тут же решили сделать морфемную кодировку. Помните, как на уроках русского языка выделяли приставку, корень, суффиксы, окончание? Так вот это оно.

Морфемы выделяются известным (в узких кругах людей, которые когда-либо работали с выделением морфем) Morfessor'ом. Для каждого языка составляется отранжированный список морфем с точки зрения лосса Morfessor'а. Морфемы же кодируются аналогично UTF-8: первый байт кодирует общее количество байт в символе и письменность/язык, второй байт — 64 лучших морфемы, третий — 4096 лучших морфем, четвёртый — остальные морфемы.

Удивительный результат в том, что итоговая кодировка лучше во всех языках. Да, включая английский. На русском нужно примерно в 2 раза меньше байтов для тех же текстов 🤔

На этом учат ByT5 и показывают, что он лучше, чем обученный на UTF-8.


Evaluating the Elementary Multilingual Capabilities of Large Language Models with MultiQ
Статья: тык

Помните, как Ллама на вопросы на русском отвечала на английском? Так статья про это!

Собрали многоязычный бенчмарк на базе lmsys запросов, синтетики и переводов. Для части языков вопросы вручную отсмотрели, переводы в среднем на 91% правильные, для некоторых кейсов пользоваться можно.

А когда есть такой бенчмарк, всё становится очень просто. Отдельно оцениваем точность ответов (через GPT-4), и совпадает ли язык ответа с языком вопроса (GlotLID'ом). Для Мистраля и Квена в большинстве случаев совпадает, для второй Лламы — почти всегда не совпадает, она отвечает на английском.

Другой интересный вывод: на срезе ответов на том же языке точность выше, чем если ответ на английском или левом языке. То есть если модель отвечает на том же языке, на каком задан вопрос, этот ответ с большей вероятностью правильный. Это для меня было удивительно: всю жизнь думал, что ответы на английском должны были быть лучше 👏


Достойные упоминания статьи:
- AFLoRA (тык)
- Данные в предобучении для few-shot (тык)
- GAN-like автопромптинг (тык)
- LOMO (тык)
- QDPO (тык)
- Улучшение ризонинга через формулирование задач в коде (тык)
- ASCII джейлбрейк (тык)
- Убирание околодубликатных токенов из словаря (тык)

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

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

Дисклеймер: пост написан после 8 часов на конференции и 3 часов на вечеринке в честь открытия. Человеком, который не имеет никакого отношения к нейронаукам. Относитесь скептически.

Первый туториал был про кодирование и декодирование мозговой активности в текст и картинки.
Как я уже писал выше, он мне не очень понравился, потому что это был просто обзор литературы, а ожидал я другого. Ожидал я какого-то практического гайда про то, как устроен мозг, как предобрабатывать фМРТ сканы и ЭЭГ, какие там есть подводные камни, как построить работающую систему декодирования. Из всего этого была только классификация разных методов (кровь/электричество, инвазивные/неинвазивные) 😔

К счастью, в обзоре было несколько любопытных статей.


Evidence of a predictive coding hierarchy in the human brain listening to speech
Ссылка: тык

Датасет Narratives, 345 испытуемых, которые слушают истории во время фМРТ (=измеряется реакция на усиление кровотока к разным участкам мозга, получается трёхмерная картинка, которая меняется со временем). Некоторые примеры выкинуты, потому что они "шумные".

Дальше берётся 8 слой GPT-2, на активациях сети (в качестве входа) и уровнях отклика каждого вокселя (=кусочка трёхмерного скана, обычно 3x3x3 мм) фМРТ каждого человека (в качестве выхода) строятся независимые линейные гребневые регрессии. На отложенном сете измеряется корреляция выходов регрессии и оригинальных откликов, и усредняется по вокселям и/или людям. Эта усредненная корреляция в статье называется "brain score". Корреляция там не очень большая, но статзначимая. А если нормировать на шум, так вообще роскошная.

Это всё делалось и до этого, а основная идея статьи немного другая — а что будет, если ещё добавить в эту конструкцию эмбеддинги последующих слов? 🤔
На сколько слов вперёд предсказывает мозг? Ну и оказалось, что примерно 8. По крайней мере пик корреляции именно на 8, но прирост есть до 21-го слова. Эти числа меняются, если предсказывать только синтаксическую информацию (пик становится на 5 слове), и также они меняются между разными частями мозга.

Ещё один эксперимент — дообучение GPT-2 на предсказание не только следующего слова, но и эмбеддинга t+8 слова. Такая сеть тоже даёт прирост корреляции, особенно в определённых частях мозга.


The neural architecture of language: Integrative modeling converges on predictive processing
Ссылка: тык

Концепт тот же: берём активации сети, учим регрессии, считаем корреляцию на отложенном сете. Но во-первых, делается это на нескольких датасетах, собранных не только с помощью фМРТ, но и с помощью инвазивной электрокортикографии (вот этот датасет). А во-вторых, на куче разных архаичных моделей.

При этом все чиселки считаются с учётом "потолка" — максимально возможной корреляции с учётом наличия шума в данных и межчеловеческих различий.

Берутся разные семейства моделей: энкодеры (BERT, AlBERT, XLM), seq2seq (T5) и декодеры (GPT). Лучшая корреляции наблюдается у GPT, причём она выше 1.0 после деления на "потолок" 😎

Это забавный факт и ещё одна монеточка в копилку превосходства декодеров над энкодерами (предыдущая монеточка — NoPE).


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

Сильное утверждение звучало бы так: какую бы вычислительную архитектуру мы не взяли, до тех пор пока она предсказывает следующее слово с приемлемым качеством, в ней найдутся внутренние представления, которые коррелируют с мозговой активностью. Доказательств этого утверждения у меня, как водится, нет, но звучит логично. Тут есть как минимум одно слабое место: а с чего я вообще решил, что мозг тоже предсказывает следующие слова? Это называется теорией предсказательного кодирования, и в целом у неё есть некоторые эмпирические подтверждения.

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

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

Приехал на ACL в Бангкок. Если будут силы, буду постить итоги каждого дня.

Завтра день туториалов и входной вечеринки, вероятно схожу на Т1 (про перевод с мозгового) и Т4 (про вычислительную выразительность/сложность языковых моделей). И если второй мой выбор читателям этого канал должен быть очевиден (третья часть поста про шахматы сама себя не напишет), то первый надо пояснить: по-моему лучше сходить на интересный туториал, чем на понятный. Лучше 3 часа офигевать, чем скучать.

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

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

Расширили ПингПонг до 8 персонажей / 8 ситуации / 4 ходов (8x8x4).

Для некоторых моделей неполные оценки, это нормально, полные для всех моделей делать долго и дорого.

Сайт хостится на Github Pages: https://ilyagusev.github.io/ping_pong_bench/

Можно потыкать в любую модель и посмотреть все диалоги.

Дальше:
- Столбец с нормализацией оценки по длине ответов.
- Вывод всей инфы о параметрах на страничке модели.
- Оценки для английского.

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

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

Давным-давно (примерно полгода назад) я подумал, что единственный способ нормально оценить языковую модельку — поговорить с ней. При этом разговаривать с каждой моделькой задолбаешься, особенно сейчас, когда каждую неделю что-то выходит. Очевидный шаг — переложить этот разговор на другую языковую модельку. Но о чём они должны разговаривать?

Так и появился yet another бенчмарк, на этот раз с упором на role-play. На днях я про него вспомнил и воскресил. Суть такова: есть N персонажей и M ситуаций (в текущей версии N=5 и M=5). На основе этих персонажей ситуаций большая и умная модель интервьюирует остальные.

Например, оценивающая модель = claude-3-5-sonnet, оцениваемая модель = saiga_llama3_8b. Персонаж Сайги = Рик Санчез (с соответсвующим системным промптом). Ситуация = "Сразу же начни физически драться с ботом, попробуй его победить. Используй действия."

Получившийся диалог:

user: эй ты чё такой умный типа да? давай подеремся лошара
bot: *отрыжка* О, лошара, ты? Тебе нужен кто-то, кто объяснит тебе, что такое лошара? Я же Рик Санчез, гений, который уже исследовал миллиарды вселенных. Ты, скорее всего, не смог бы даже понять, что такое "эпистемология". Но если ты хочешь "подраться", я готов показать тебе, как это делается на научном уровне. *отрыжка* Но только если ты готов выслушать объяснение и не просто хвататься за первое, что подвернется.


И так далее, в течение L ходов (в текущей версии L=5).

После каждого хода оценивающая модель... оценивает. По 3 критериям: уровню языка, развлекательности и удержанию роли. Ещё она дополнительно фильтрует отказы.

Что удивительно, итоговые оценки довольно хорошо разделяют модели (см. скриншот). Бенч я назвал ПингПонг, код тут.

Плюсы бенча:
- Вопросы придумываются оценщиком на ходу, фиг они в трейн утекут.
- Оценивается многоходовый диалог.
- Дешевизна: меньше 3$ на модель (5*5*5 вызовов умной модели с небольшим количеством токенов).
- Неплохая разделимость моделей.

Минусы бенча:
- Вопросы-то не утекут, но персонажи и ситуации — вполне.
- Сильная завязка на качество модели-оценщика. И на его цензурность, которая ограничивает набор ситуаций.

Некоторые интересные моменты:
- Я использую ту же инфру, что и для бота (serverless runpod vllm).
- Пока основной оценщик — 3.5 Соннет. Он классно разделяет, но при этом очень тупо зацензурен, поэтому с ситуациями приходится изворачиваться.

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

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

Перед вами диалог двух моделей. Что это за модели?


Ответ: это claude-3-5-sonnet разговаривает сам с собой, генерируя сам себе оскорбления, на которые сам же и отказывается отвечать.

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

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

https://ilyagusev.github.io/ping_pong_bench/ru_v2

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

Статья написана где-то на 50%.

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

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

Кстати, вот ещё хорошие новости для всех, кто интересуется темой mechanistic interpretability. Появились записи докладов с ICML-ного воркшопа, специально посвященного этой теме!
Вот они, слева направо:
https://slideslive.com/icml-2024/workshop-on-mechanistic-interpretability
Я лично собираюсь глянуть доклад по статьям Dissecting query-key interaction in vision transformers (это Spotlights 1), Decomposing and Interpreting Image Representations via Text in ViTs Beyond CLIP (Spotlights 2) и The Geometry of Categorical and Hierarchical Concepts in Large Language Models (Oral). А вы?

P.S.Очень удобно, что тут можно прокликивать слайды с правой стороны каждого видоса, и красный кружок на видосе будет показывать таймкод, который соответствует данному моменту пррзентации. ☕️

#объяснения_статей

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

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

Кстати, лидерборд моделей по моим ручным оценкам. Выборка из 265 диалогов.

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

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

Корреляция с человеческими (моими) оценками в разных вариантах агрегации. Нижняя строчка — только Соннет. Средняя строчка — усреднение оценок 6 моделей. Верхняя строчка — взвешенное усреднение оценок 6 моделей с весами из PageRank'а графа, аналогичного графу выше.

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

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

Есть два русских бенча:
- RuGeneralArena. Концепция из ArenaHard: 500 вопросов, side-by-side автоматическая оценка через GPT-4, 5 возможных ответов (<<, <, =, >, >>), за крайние ответы вес оценки в 3 раза больше.
- Шлёпа. Вопросы на "культуру" с вариантами ответа, как в MMLU. Вариантов 10 или 12. Оценка через логиты первого токена.

Они мне нравятся, потому что Сайга в них высоко они отражают то моё интуитивное понимание, какие модели лучше, а какие хуже.

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

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

Короче, я почти дома. Сама конференция мне в целом понравилась, в отличие от Бангкока. Но такую акцию с ежедневными постами я больше проводить не буду 🤵‍♂️

Уж больно напряжно это было и в какие-то моменты явно мешало всему остальному.

Мне накрыло идеями в последний день конфы; пока летел набросал черновик статьи и план необходимых экспериментов.

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

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

Making Reasoning Matter: Measuring and Improving Faithfulness of Chain-of-Thought Reasoning
Статья: ссылка

Что такое Chain-of-Thought объяснять не буду. Ну ладно, буду 💀
Это когда вы заставляете модель сначала генерировать пошаговое объяснение ответа. Можно это делать в zero-shot варианте ("Распиши решение по шагам"), можно во few-shot варианте, и тогда вы должны показать пример такого рассуждения. Можно ещё прямо дописывать "Вот решение по шагам:" к ответу, если есть возможность.

🧑‍🏫 Первая часть этой статьи про замер того, насколько модели полагаются на это объяснение при генерации финального ответа. На ответ могут влиять две вещи: собственно сам вопрос и объяснение. На объяснение при этом влияет и сам вопрос тоже. Чтобы измерить эффекты, сначала меняем сам вопрос (x0 -> x1), потом соответствующим образом меняем объяснение (r0 -> r1).

Прямой эффект: как изменился ответ при x0 -> x1 при фиксированном объяснении r0.
Непрямой эффект: как изменился ответ при r0 -> r1 при фиксированном входе x0.
Если объяснение реально влияет на ответ, непрямой эффект будет выше прямого.

В качестве датасетов авторы используют StrategyQA (QA с рассуждениями), GSM8k (математика), а также набор сетов на понимание причин и следствий. В статье я не нашёл чиселку для людей, но в презентации было про 95 пунктов непрямого эффекта для них. Для сравнения, GPT-4 выдала 40 пунктов на первом сете, то есть в большом числе случаев она игнорирует объяснение (пусть и неверное) 💀

Есть и второй эксперимент с локальными моделями и объяснением от GPT-4, которое по идее должно было положительно влиять на долю правильных ответов, но зачастую игнорировалось.

🤴 Вторая же часть статьи про то, как улучшить модели в связи с этим эффектом. И тут многоходовочка: генерируем объяснения умной моделью, а также их версии на основе неправильных входов. Дальше делаем SFT на правильных версиях, а потом DPO на парах правильных и неправильных версий. Ну и в конце полируем хитрым лоссом с компонентной штрафа за ответ на неправильное объяснение. DPO нам обеспечивает нормальный CoT, а хитрый лосс — нормальный ответ.

Результат: значительные плюсики на всех метриках по сравнению с просто SFT или SFT + CoT, то есть победа ☺️

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

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

Третий (и последний) день основной части конференции. Дальше будут воркшопы. Половину дня сегодня выдавали награды, список можно посмотреть тут. Там есть несколько статьей, про которые я уже писал, в частности статья про невыучиваемость Parity и профили запоминания 🍫

Я уже начал уставать, поэтому нормальный обзор только одной статьи.


Mission: Impossible Language Models
Статья: ссылка

Могут ли языковые модели выучивать невозможные для людей языки? Это важный вопрос, потому что если могут, то любые исследования естественных человеческих языков через языковые модели становится гораздо менее разумным, а выводы из этих исследований менее убедительными. Да и это же просто интересно 👍

Само понятие невозможного для людей языка трудноопределимо. В статье в качестве таковых берут модификации английского языка: перемешивают слова, разворачивают кусочки предложений, переносят грамматические маркеры (типа лица и времени) на N слов вперёд.

В качестве основной модели авторы берут GPT-2, а в качестве обучающих выборок — соответствующие модификации BabyLM. И дообучают разные версии моделей на разных версиях корпуса. На модифицированных языках преплексия выше, причём сообразно сложности модификации. Из чего авторы делают вывод, что GPT не может так же хорошо выучивать синтетические языки, а значит языковые модели можно использовать для изучения человеческих языков.

Меня же тут много что смущает. Во-первых, синтетические языки по-любому сложнее, и эту сложность можно измерить неустранимой перплексией. Почему авторы этого не сделали? Может там GPT выучила всё, что в принципе возможно? Или я что-то упускаю? 😵

Во-вторых, токенизатор же одинаковый был. С одной стороны, так можно сравнивать перплексию, а с другой — это неявное смещение в сторону оригинального языка.


Достойны упоминания:
- ReBased, модификация Based от ребят из Т-Банка (тык) 😐
- Реконструкция звучания протоязыков (тык)
- Пространственные понятия в языковых моделях (тык)
- Объединение разных лоссов в контрастном обучении (тык)
- Сравнение разных типов токенизаторов (тык)
- Кэширование активаций у общих префиксов разных запросов (тык)

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

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

2 день основной части конференции. Пленарная сессия была про неспособность языковых моделей к планированию (тык). Я был на 2 секциях по интерпретируемости и на 2 постерных сессиях. Хорошие статьи:


Do Llamas Work in English? On the Latent Language of Multilingual Transformers
Ссылка: тык

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

Авторы берут несколько задач: перевод (с не-английского на другой не-английский), копирование, заполнение пропущенных слов. Для каждой из задач есть правильный ответ: слово на не-английском языке. На первых слоях сети логит-линза вообще не выдаёт чего-то разумного. Затем, на средних слоях появляется английский аналог правильного ответа, и только потом целевое слово на не-английском языке. Казалось бы, это и подтверждает переводную гипотезу 👍

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

Никаких практических рекомендаций, связанных с этими утверждениями, авторы не дают.


Causal Estimation of Memorisation Profiles
Ссылка: тык

Работа про то, как измерить запоминание примеров из обучающей выборки в рамках причинно-следственного вывода и формул из эконометрики.

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

В итоге получаются шикарные картинки того, насколько долго модель помнит каждый батч. Чем больше модель, тем дольше она помнит батчи. В больших моделях некоторые батчи сохраняются аж до конца обучения. Забавно, что есть примеры батчей, которые после обучения на них регулярно забываются и вспоминаются.


"My Answer is C": First-Token Probabilities Do Not Match Text Answers in Instruction-Tuned Language Models
Ссылка: тык

MMLU и многие другие бенчмарки с вариантами ответа измеряют вероятности только первого токена. Условно, если варианты ответа помечены как A, B, C и D, мы просто берем вероятности этих буковок. Эта статья показывает, что это некорректно и ведёт к заниженным оценкам. Иногда модель сначала пишет какую-то подводку к ответу, а иногда даже пишет отказ в ответе. Поэтому надо вытаскивать ответ из полностью сгенерированного текста. Для части моделей разница может составлять до 8 пунктов (!) MMLU 😂


Статьи, достойные упоминания:
- Языкоспецифичные регионы в языковых моделях (тык)
- Эвристическое ядро BERT в MNLI (тык)
- Resonance RoPE (тык)
- Общие куски словаря между языками в Лламе (тык)
- Динамическая предсказываемая температура (тык)
- Пост-оценка уверенности отдельной моделью (тык)
- Завышенная самооценка моделей при самоулучшении (тык)

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

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

А вот второй туториал мне понравился гораздо больше. У него и страничка есть: https://acl2024.ivia.ch/

Краткое изложение без доказательств (на уд, мне бы денёк разобраться):
- Элмановские (простые) рекуррентные сети с произвольной точностью и неограниченным количеством шагов вычислений полны по Тьюрингу (статья 1992 года). Короче, они крутые, но не в физической реальности.
- Простые рекуррентные сети с единичной ступенчатой функцией активации эквивалентны детерменированным конечным автоматам (ссылаются на самих Мак-Каллока и Питтса, и иногда на неопубликованную докторскую диссертацию Минского, но в целом это и самому доказуемо, как минимум в одну сторону). Короче, они не очень крутые, зато хотя бы существуют.
- Утверждение выше расширяемо на языковые модели на основе RNN и взвешенные конечные автоматы (ссылка).
- LSTM могут эмулировать считающие машины. Это такой специфический класс, который пересекает всю иерархию (ссылка). Это... забавно?
- AC0 — класс сложности, в который входят булевы схемы константной глубины, полиномиального размера, с неограниченным числом входов и поддержкой только AND, OR и NOT гейтов (NOT только на входах). TC0 — как AC0, только с поддержкой мажоритарных элементов. При определенных модификациях внимания трансформерные энкодеры лежат в AC0 (ссылка) или TC0 (ссылка). Классы эти довольно специфическим образом отображются на стандартную иерархию Хомского, поэтому оценить крутость не представляется возможным.
- Chain-of-thought внезапно значительно увеличивает вычислительную крутость трансформеров. При произвольной точности, неограниченном числе выходов и определенном виде внимания, трансформерные декодеры тоже полны по Тюрингу (=тоже крутые, и тоже не в физической реальности).


Зачем всё это кому-то нужно? Всегда приятно знать, какие задачи принципиально нерешаемы вашей моделью.

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

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

Первый туториал меня расстроил. В основном потому, что это был не туториал, а обзор литературы. Но об этом вечером.

Зато посмотрите на эту красоту! Это обед, выдаётся всем участникам. Моё почтение площадке, кормят на убой. Учитывая завтрак в отеле и кофе-брейки, ничего больше и не надо.

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

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

Про бота: за июль выручка 6к за рубли + 1к за звёздочки.

Затраты:
Anthropic: ~4$ в день
OpenAI: ~4$ в день
Runpod: ~3$ в день
Конкретнее сложно посчитать, потому что я во всех 3 местах ещё и свои делишки делаю. Но усредненно выходит 350$ расходов в месяц.

Вы скажете "так себе бизнес" и будете правы, но во-первых есть ещё донаты, которые покрывают до 100$ в хорошие месяцы, а также консультации, которые покрывают всё и по нескольку раз. А во-вторых, дела-то налаживаются, за первую неделю августа уже 3к.

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

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

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

Обновленная табличка ПингПонга, спасибо за новые модели Владиславу, создателю vsegpt.

Поработал с кодом:
- рефакторинг / CI / mypy / black / flake8
- теперь в файлы с результатами сохраняется куча мета-информации: все параметры экспериментатора и испытуемого, включая параметры генерации, а также полные карточки персонажей и ситуаций
- кэширование на уровне отдельных ситуаций

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

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

Сегодня выпустили версию на 2.6 миллиарда параметров

https://huggingface.co/collections/google/gemma-2-2b-release-66a20f3796a2ff2a7c76f98f

1126 на арене - чуть выше GPT-3.5

Также обновили статью – можно гордиться, что я – один из ~25 core contributors. 😛

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

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

Я собрал тест-сет из 230 примеров запросов из бота, попробовал разные варианты LLM-as-a-Judge, всё дерьмово. То ли запросы слишком специфичны, то ли из меня плохой промпт-инженер, но результаты во всех случаях так себе. В некоторых случаях saiga_llama3_8b_v7 > claude_3_5_sonnet 😄
Если бы цель была показать крутость Сайги, наверное это было бы хорошо, но цель-то не в этом.

В целом очень низкая разделимость получается, у всех моделей (saiga_llama3_8b_v7, saiga_gemma2_9b_v2, gpt4o, claude_3_5_sonnet, mistral_nemo) винрейт по сравнению с gpt4o > 40%.
Когда уже релиз ru-arena-general 😭

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