Новые Вихри доступны в боте как обычно по /setmodel. По умолчанию пустой системный промпт, RAG штуки не поддерживаются. Оценки на ПингПонге через часик будут.
Читать полностью…https://huggingface.co/datasets/nyuuzyou/chatgpt-in-russia-qa
А что у нас тут? 600к вопросов (и ответов) с чатгпт-в-россии.рф!
Я, если честно, и не знал, что такой сайт существует.
Оригинальный пост. Датасет не мой.
Сразу видно чья моделька! (7B Квен 2.5 с кастомным ChatML промптом, с родным не работает).
У 14B при тех же настройках полёт пока нормальный.
Недавно ещё заметил, что дело kalomaze живёт. Два новых популярных (в узких кругах) метода сэмплирования:
- DRY. Идейно аналогичен древнему no_repeat_ngram_size, основная их цель — побороть повторы, но штраф динамический в зависимоcти от длины повторяющейся N-граммы. Кроме того, есть поправка на шаблоны промпта, они при подсчёте пропускаются. Можно добавлять свои токены, для которых штраф тоже будет игнорироваться.
В нём 3 основных параметра, которые определяют функцию штрафа: multiplier * base ^ (x - allowed_length), где x — длина повторяющейся N-граммы.
- XTC. Вместо токенов в низкой вероятностью режем токены с высокой вероятностью. Для большей креативности, да 💀
Два параметра: probability определяет, насколько часто этот сэмплер вообще срабатывает, а threshold — выше какой границы убиваем токены. Если выше границы только один токен, то его не трогаем, и в целом всегда оставляем наименее вероятный токен с вероятностью выше threshold. См. картинку в комментариях.
o1-preview доступна в боте. Выбирать через /setmodel. Целых ДВА запроса бесплатно 😂
Ещё добавил последние Command R, Qwen 72b и Llama-3.1 70B.
ВНИМАНИЕ: Системный промпт с o1-preview НЕ работает. Параметры, типа температуры, НЕ работают.
Последний пост по поводу Reflection, я больше писать про это не буду, честно-честно. Если кто-то по этому посту захочет сделать ролик на ютубе, я разрешаю.
Для начала обобщим таймлайн:
5 сентября
1) Твит создателя, якобы лучшая открытая модель, метрики от разработчиков, GSM8K 99.2% (при том, что там неправильных примеров может быть больше 1%). Модель сломана, неправильно залиты embed_tokens и lm_head, и из-за этого она не выдаёт спецтокены типа <thinking>. Никаких разумных замеров из-за этого сделать в принципе нельзя. Но зато работает сайт с моделью.
6 сентября
2) Сайт с моделью перестал работать из-за нагрузки. Больше он не поднимется.
3) Meta попросила добавить Llama 3.1 в название по условиям лицензии.
4) Первый "независимый" бенчмарк: модель выше 405B. Неясно, делалось ли это через API, или через всё ещё сломанную модель на HF.
5) Модель чинят перезаливом по одному файлику (!), в процессе перезалива она внезапно становится тюном Llama 3, а не Llama 3.1. Позже это подтвердят. Как так вышло автор не знает. Там же он показывает, что не знает, что такое LoRA. Модель действительно теперь выдаёт спецтокены, но даже на отдельных примерах качество ниже заявленного.
7 сентября
6) День рождения девушки автора, что автор использует в качестве оправдания.
7) Автор заявляет, что починенная модель это на самом деле не та самая модель, и что он это исправит в течение дня.
8) Починенную модель прогнали на другом независимом бенче, получилось хуже оригинальной 70B.
8 сентября
9) Следующая версия модели оказалось всё ещё не той самой, и теперь модель нужно переобучить заново, что странно само по себе.
10) Ребята из пункта 8 замерили метрики через авторское API, получили уровень Соннета. Сейчас их твит удалён.
9 сентября <- мы находимся здесь
11) Вышла новая версия модели, и по предварительным оценкам ребят из пункта 8, всё ещё очень плохо.
12) API выложили на OpenRouter.
13) API оказался проксей для Соннета. Чуть позже Соннет заменили на gpt-4o, а потом на Llama 3.1 70B.
Я намеренно упустил ветку с Glaive и инвестированием. Цели пока тоже бессмысленно обсуждать.
Неправильные ходы:
1) Ни в коем случае не надо было сразу выкладывать какую-либо модель. Как минимум неделю можно было так выиграть.
2) Надо было меньше отвечать. Лучше быть загадочным, чем технически неграмотным.
3) Ни в коем случае нельзя было давать API широкой публике. Ход с OpenRouter — полный провал.
Хорошие ходы:
1) Выложить модель в float32, чтобы затруднить скачивание.
2) Выложить сначала поломанную модель, чтобы тоже выиграть время.
3) Постоянно обновлять модель, чтобы всегда можно было сказать "вы не то оценивали" (каюсь, сам грешен по этому пункту).
4) Ретвитить только положительные отзывы, создавать у своих подписчиков иллюзию того, что всё прекрасно.
5) Использовать традиционные СМИ для пиара.
Значит, по поводу Reflection. Я её поднял на 8xA100 на короткое время. Выводы:
1) Модель починили только час назад, до этого там были поломанные эмеддинги, и вообще ничего не работало.
2) Теперь спецтокены работают, модель действительно пытается рассуждать.
3) Как видно из скриншота, ей это не помогает.
4) Поэтому метрики явно трейн на тесте.
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 аугментаций, меняя яркость или оттенки и применяя повороты. Для энкодеров подаём на вход несколько текстовых интерпретаций и считаем близость к картинке, для генеративных моделей считаем лосс на таких же интерпретациях.
Как оказалось, модели обычно явно предпочитают одну из интерпретаций, как и люди. Между моделями различия есть в основном между разными архитектурами, даже если они обучались на одних и тех же данных. Аугментации картинок практически ничего не меняют, зато аугментации текстов оказывают значительный эффект. Если сравнивать с первым порывом людей, никакой корреляции нет, модели больше чем в половине случаев выбрали другую интерпретацию.
Выводы? Да чёрт его знает 😐
Похоже, что текущие модели совсем нечеловечески воспринимают картинки. И если каким-то вещам типа эстетичности их можно научить, то для более тонких штук скорее всего потребуются более тонкие данные.
Долил новые Квены в ПингПонг, большие вполне на уровне.
Ещё добавил 3 локальные модели в бота, включая новый 72B Квен. И выделил отдельные квоты для бота в OpenAI и Anthropic, чтобы деньги точно считать.
Для 14B вполне недурно. В нескольких местах всё ещё китайский, и из персонажа выпадает тоже в нескольких местах. Такое файн-тюн должен быть в состоянии исправить.
Читать диалоги тут.
https://www.safe.ai/blog/humanitys-last-exam
(спасибо Игорю за наводку)
Ребята собирают "последний экзамен человечества", идеальный бенчмарк против моделей. За лучшие 50 вопросов платят 5000$ за каждый, за лучшие 500 по 500$, за любой принятый вопрос — соавторство в статье. Чем больше принятых вопросов, тем выше позиция в списке авторов. Я на свой первый вопрос уже 2 часа потратил и отослал (только он так и не отобразился в личном кабинете 💀).
Отсылать тут. Для отправки нужно, чтобы 3 топовые модели на вопрос ответили неправильно. Вопрос должен быть авторским и уникальным. Ответ должен быть однозначным и объяснимым.
Вопросы гораздо проще составлять, если вы НЕ из IT, там допускается широкий спектр тем.
Что особенного в выделенных моделях? Почему они так высоко при таком маленьком размере? Есть ли у них что-то общее?
Оказывается, у них у всех два общих элемента в разных комбинациях: SimPO метод и Гутенберг-DPO датасет.
Начнём с датасета. Берём книжки в публичном доступе. Разбиваем их на фрагменты. Для каждого фрагмента пишем промпт, по которому фрагмент должен генерироваться языковой моделькой, и выжимку. После этого на основе промпта текущего фрагмента и выжимки предыдущего фрагмента моделькой пишем новую синтетическую версию фрагмента.
Полученные синтетические версии используем как негативные примеры, оригинальные фрагменты — как позитивные примеры.
Таким способом мы отучиваем модель писать сухие тексты, и учим нормальному языку. Если кто-то хочет такое же сделать для русского — пишите, я не уверен, что у меня хвтатит времени.
Второй же элемент — вариация DPO с отступом, с наградой, близкой к правдоподобию, с нормализацией по длине, и без необходимости в хранении копии модели. Не уверен, что это играет значимую роль, но SimPO использовался во всех 3 моделях.
Ура! Я опубликовал препринт ПингПонга!
Версия, очевидно, не финальная, я пока ещё даже не понял, куда я буду его подавать. Проблем с точки зрения ревьювера №2 там хватает, Соннет его хорошо отыграл, напихал полную панамку.
Статью закинул в Daily Papers, поддержать можно тут.
Replacing Judges with Juries: Evaluating LLM Generations with a Panel of Diverse Models
Статья: https://arxiv.org/abs/2404.18796
Работа, которую я пропустил, и нашёл только благодаря разведке для ПингПонга. А между тем она к ПингПонгу имеет самое прямое отношение.
В ней очень простой вывод: усреднение оценок моделей разных семейств даёт лучшие результаты по сравнению с одиночными судьями. Ребята проверили это на QA и на side-by-side примерах Арены. Всё.
— Храбрый, видать, вояка, раз два меча навесил. Ты, седой! На кой тебе два меча? А в штанах он два хера держит? Ты, сука, глухой? Скажешь, кто ты такой есть, или тебе язык ножом развязать?
— Ведьмак. Спрашиваешь, зачем мне два меча? Один — для чудовищ, другой — для людей. Член у меня один.
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.Очень удобно, что тут можно прокликивать слайды с правой стороны каждого видоса, и красный кружок на видосе будет показывать таймкод, который соответствует данному моменту пррзентации. ☕️
#объяснения_статей
Корреляция с человеческими (моими) оценками в разных вариантах агрегации. Нижняя строчка — только Соннет. Средняя строчка — усреднение оценок 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 от ребят из Т-Банка (тык) 😐
- Реконструкция звучания протоязыков (тык)
- Пространственные понятия в языковых моделях (тык)
- Объединение разных лоссов в контрастном обучении (тык)
- Сравнение разных типов токенизаторов (тык)
- Кэширование активаций у общих префиксов разных запросов (тык)