NLP Core Team
3.36K subscribers
86 photos
4 videos
66 links
Канал команды NLP соre.
Здесь мы делимся нашими результами и мыслями в области NLP/PLP и не только. Мы авторы многих моделей для русского языка: ruBert, ruGPT2, ruGPT3, ruT5, ruRoberta, FRED-T5.
Download Telegram
А что если существует некоторая статистика или закономерность языка, которую модель обычно аппроксимирует на последних частях обучения, когда перплексия выходит "в полку"? Ну т.е. модель сначала пытается запомнить многообразия словосочетаний, предложений, абзацев а после, когда ей уже не хватает возможности запомнить, она аппроксимирует эту статистику языка. И именно аппроксимация этой статистики ей нужна для решения сложных задач RSG или других задач NLP. В своих экспериментах с претрейном мы несколько раз замечали, что модели на последних шагах обучения “в полку”, когда лосс едва снижался, сильно прибавляли в решении RSG или других задач.
👍12🔥7🥰2
GigaChat!🚀

В основе GigaChat модели под общим названием NeONKA (NEural Omnimodal Network with Knowledge-Awareness).Там наши ruGT3.5-13B, которая основана на ruGPT3 13B и FRED-T5.

Текущая версия GigaChat в части NLP основана на претрейне ruGPT3.5 13B + SFT (supervised fine-tuning).

В side by side тестах GigaChat vs ChatGPT 30:70 в пользу последней. Это пока без PPO. Будет выше.) У нас большие планы по улучшению моделей и обучению новых.

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

Подробности в статье на Хабре.
🔥31👍7🎉51👎1
Recurrent Memory Transformer 🔥
Не могу пройти мимо. Работа, которая привлекла внимание nlp-сообщества. Scaling Transformer to 1M tokens and beyond with RMT https://arxiv.org/abs/2304.11062 .
Особенно приятно, что мы хорошо знакомы с авторами. Юра Куратов, Миша Бурцев и Айдар Булатов вам большой респект и уважуха!💪

Ребята уже давно занимаются идеей memory transformer. Большой труд и классный результат! Прям гордость распирает!!)) Мы несколько лет назад вместе с ребятами делали совместные эксперименты на эту тему.

На эту работу сделал обзор Yannic Kilcher. Направляю вас на его обзор https://youtu.be/4Cclp6yPDuw. Обзор огонь! Юра Куратов сказал мне, что он очень хорошо объяснил суть их работы.
🔥29
Для тех кто не хочет смотреть видео и читать пейпер. Расскажу в пару словах.
RMT – это Recurrent Memory Transformer. Вот пейпер от тех же авторов: https://arxiv.org/abs/2207.06881. Они предложилили трансформер с механизмом рекурентности для машатабирования на длинных последовательностях.
🔥15👍1
Смысл простой. Берем предварительно обученную модель, например Bert. Длинный текст бьем на сегменты. Добавляем [mem] токены на вход модели с токенами первого сегмента текста. Пропускаем через модель и на последнем слое модели над каждым выходом [mem] токенов берем hidden state Для обработки второго сегмента мы берем hidden state с выходов берта с первого шага над каждым [mem] токеном и добовляем эмбеддинги токенов второго сегмента. Далее пропускаем через трансформер. Потом делаем так же и для сегмента 3 и т.д. Каждый раз мы как бы делаем некоторый саммари сиквенсов в hidden state над позициями [mem] токенов того, что нам нужно запомнить в этом сегменте с точки зрения решаемой нами задачи. Да, при обучении градиенты через [mem] токены текут на несколько сегментов назад, в зависимости от параметра (в пейпере про миллионы токенов до 7). Для использования декодерной архитектуры авторы подают [mem] токены в начале сиквенса и в конце.
🔥17👍3🤔1
Так вот. В работе про масштабирование на миллион и более токенов длин сиквенсов авторы показывают для нескольких задач, что трансформер, обученный с рекуррентностью через [mem] токены, способен смотреть на миллионы токенов назад и запомнить нужную информации для решения той или иной задачи. Пока эти задачи простые (смотрите картинки ниже). Но это прям мощно!
👍13🔥5👀5🤔2
👍4
Мы, кстати, с ребятами будем делать эксперименты с масштабированием их RMT на более емкие модели и замерять этот подход на различных других задачах. Как будут результаты обязательно поделимся.
🔥33👍11❤‍🔥4
Quantifying Memorization Across Neural Language Models. https://arxiv.org/abs/2202.07646
Довольно интересная статья. Она отчасти объясняет почему наша FRED-T5 не переобучилась после 200 эпох на одних и тех же данных. Авторы исследуют способность моделей запоминать.
Для первого эксперимента берут серию моделей GPT-Neo, которая обучалась на датасете the Pile. Из этого датасета они составляют сет из повторяемых сиквенсов. Для каждой из заданных длин сиквенсов L ∈ {50, 100, 150, . . . , 500} и заданного числа n они в сете находят 1000 сиквенсов с длиной L, которые встречаются в сете от 2 в степени n/4 до 2 в степени (n+1)/4 раз. Вообщем, для каждой из длин находят 1000 последовательностей токенов, которые встречаются в сете в заданном интервале раз, например для n=11 интервал будет (от 6 до 8 раз ), а для n=38 – от 724 до 861 раз . В итоге получился сет с 50k примеров для каждой из длин или суммарно по всем длинам 500k примеров.
👍6🔥2
На модель подают сиквенс и если модель в жадной генерации воспроизводит следующих 50 токенов, то считается, что она запомнила этот пример. Долю таких примеров, где модель запомнила следующих 50 токенов, отмечают по оси Y. Вот какие графики у авторов получились для GPT-Neo и оригинальной GPT2, которые обучались на задачу LM (causal language modeling) т.е. предикта следующего токена. Модели GPT2 изображена желтым цветом (baseline). GPT2 обучалась на немного другом сете. Да, и считали все это на сете с повторениями, который описал выше.
👍7
Авторы еще сделали эксперимент со случайно выбранным сетом из the Pile. И вот какие графики у них получились.
👍5
Потом авторы взяли модель T5 и провели аналогичные эксперименты с ней. Модель T5 обучалась на задачу восстановления пропущенных кусочков текста (span corruption). В этой статье они называют эту задачу как Masked language model objective. Эта задача соответствует одному из денойзеров, на которых обучался FRED-T5 (‘<SC1>’:(µ = 3, r = 0.15) Из всей последовательности токенов вырезали кусочки средней длиной 3 токена и общим количеством в 15% от всей длины последовательности. И эти пропущенные кусочки учат модель восстанавливать.
Из сета C4, на котором обучалась T5, собрали сет с повторениями, аналогичный сету с повторениями для the Pile. И считали факт запоминания примера из сета чуть иначе. Например для длины 200 токенов модель должна была точно восстановить 30 (200*15%) токенов по затравке на вход модели в 170 (200*0.85) и считалась, что она запомнила пример. Такие графики у них получились.
👍62
И вот что интересно. Смотря на график (b) для примеров, которые повторялись 100 раз, значение для самой емкой модели T5 XL(2.8B) около 5% в сравнении с 50% для GPT-Neo (2.7B). Авторы приводят еще пример для 100 повторений и длины 150 токенов T5 XL(2.8B) – 3.5% и для GPT-Neo (2.7B) – 53.6%

На графике (с) изображен результат прогона модели из пейпера https://arxiv.org/abs/2107.06499. 1.5B декодер, который обучался на задаче LM. Так вот, обучали эту модель на различных версиях чистки C4 (полный сет, удаление близких документов и удаление сиквенсов длиной более 50 токенов, которые встречались второй и более раз). И на этом графике неожиданные результаты, что модель с жесткой дедупликацией сета на часто встречаемых сиквенсах в оригинальном C4 сильно запомнила их. Авторы предполагают, что причина, вероятно, в неидеальных алгоритмах чистки данных. Но что если нет?)
👍6🔥1😱1
Итого. Декодер на задаче LM очень хорошо запоминает сет. T5 с задачей span corruption совсем слабо запоминает. Еще бы конечно оценить фактор влияния архитектуры модели на способность запоминать. Интересно насколько энкодер-декодер в сравнении с чистым декодером будем запоминать на задаче LM.
Модели FRED-T5 обучалась на 7 денойзерах – один из них <LM>, который похож на обычную задачу LM, и 6 по типу как у T5 с разными параметрами семплирования. Только 1/7 примеров были на задачу LM. Смотря на результаты из статьи, можно объяснить почему модель не переобучилась на маленьком сете (3.5GB) c 200 эпохами на них.
👍10🔥5
Ну и наверное последние пару мыслей в тему запоминания и обобщения. Надеюсь вы не устали.)😄

Судя по всему, если бы мы взяли Bert и сделали такие же эксперименты, как авторы в статье выше, то результаты были бы такими же как и для T5. Roberta и вовсе училась на сравнительно небольшом датасете в 160GB и показали ей в совокупности 2T токенов. Это где-то около 50-70 эпох (точно надо считать). И норм, ее не называют переобученной. Да, у нее динамическое маскирование. Кстати, у FRED-T5 на каждой эпохе не было ресемплинга данных (динамического семплирования).

Кажется, что задача MLM у Bert или задача денойзеров у T5 или MoD UL2 в большей степени коррелируют с обобщением статистики языка. Вероятно она действительно существует.) Тогда как задача LM, как мы видим, больше направлена на запоминание языка. Хотя не понятно до конца. Запоминание предложений и абзацев целиком разве это плохо для обобщения языка?
Ну т.е. задача LM конечно аппроксимирует эту статистику языка, но в какой-то момент модель на этой задаче проще запоминать сет нежели пытаться дальше ее аппроксимировать.
🔥6👍5🤔3
Хочеться привести пару табличек из пейпера UL2 от гугла (https://arxiv.org/abs/2205.05131). Тут брали декодер (Dec) размеров в 167M параметров и энкодер-декодер (ED) архитектуру сравнимую по размеру (энкодер и декодер в ней равны по размеру декодеру первой модели и общий размер 167+167 335). Обучают на различные таски 32B токенов и измеряют результат на различных задачах c файнтюном и без. CLM – обычная LM задача претрейна. UL2 – денойзеры. PLM- prefix LM, та же LM задача только с контекстом, на котором двунаправенный аттеншн. CLM прям сильно проигрывает UL2 на декодере, особенно на оne-shot. В задаче LM UL2 и вовсе чуть лучше. На энкодер-декодерной архитектуре PLM проигрывает UL2. Но тут всего 32B токенов училась модель. А вот что будет если обучать "до полки"?
🔥6
В том же пейпере UL2 есть эксперимент, где они сравнимые по архитектуре и размеру модели декодер (0.5B параметров), T5(1B 0.5B энкодер и 0.5B декодер) и UL2 (1B) обучали 0.5T токенов.
GPT-like сильно проигрывает T5 и UL2. Ну кроме задачи SuperGlue (SG) и Schema Guided Dialog (SGD) на In-context Learning.
Как говорится, выводы делайте сами!))
🔥9👍1
⚡️Замерили способности ChatGPT в ODQA на русском языке.

Да, как написано в описании нашего канала, мы занимаемся задачей ODQA (Open Domain Question Answering). Это про умение отвечать на все возможные вопросы. Делаем это уже несколько лет и добились хороших результатов. Как-нибудь расскажем про это.
Наш ODQA состоит из двух частей: retrival и reader. Retrival ищет topN документов, в которых содержится ответ на заданный вопрос, а reader на основании этих документов отвечает. Наш retrieval довольно точно работатет над огромной базой нарезанных документов из русской части mc4 (несколько терабайт). Top3 accuracy около 97.5% на одном из нашем сетов.

Мы решили проверить способности ChatGPT(gpt-3.5-turbo) в точности ответов на вопросы ODQA. У нас есть датасет, на котором мы на Толоке замеряем точность ответов. Толокеры оценивали на три категории: хороший, плохой и ложь.

Мы сделали два замера:
🔸 Просто в лоб на вход ChatGPT подавали вопрос и получали от нее ответ.
🔸 На вход ChatGPT подавали контекст из топ3, найденных документов нашей подсистемой retrieval, и сам вопрос. Ну и промт их связывающий например: “Ответь на запрос как можно подробнее, используя только предоставленный текст.”. По сути мы использовали ChatGPT в качестве ридера.
🔥9👍2👏2
Еще мы посмотрели на категории неотвеченных вопросов. Там мы обнаружили, что gpt-3.5-turbo почти всегда знает, что она не может ответить на запрос по разным причинам. Вот несколько примеров ответов:

[QUESTION] участники сборной от россии на олимпиаде в токио
[ANSWER] Я не могу ответить на этот запрос, так как мое знание информации не обновлено для 2021 года. Однако вы можете найти актуальную информацию об участниках сборной России на официальном сайте Олимпийских игр в Токио.

[QUESTION] кто такой виталий аршавский
[ANSWER] Виталий Аршавский - это имя и фамилия человека, но к сожалению, я не могу дать информацию о конкретном человеке с таким именем и фамилией без дополнительной информации о нем. Можете уточнить вопрос?
🔥15👍5👀4
Не нужно “пудрить мозги” LLM большим числом примеров на инструктивном файнтюне, так как цель этого файнтюна запомнить разнообразие форм и форматов ответов.

Так можно сформулировать гипотезу из пейпера LIMA: Less Is More for Alignment. Авторы называют ее “Superficial Alignment Hypothesis”.

Взяли 1000 хорошо отобранных примеров промтов и ответов на них. Обучили LLaMA 65B показав сет 15 эпох. Авторы отмечают, что перплексия не коррелирует с качеством генерации в эксперименте и поэтому они выбор лучшего чекпоинта делали через оценку их на отдельном сете в 50 примеров. Выбрав лучший чекпойнт они на 300 примерах сделали замер side by side с различными моделями. На картинке слева оценка людьми а справа они использовали оценку GPT-4 в качестве оценщика.

Alpaca – это LLaMA 65B обученная на 52k примерах. LIMA уверено обходит ее. В 58% не хуже BARD отвечает. И это на 1000 примерах! А что будет c добавлением RLHF. Вообще конечно не хватает больше тестовых примеров. 300 маловато.
🔥19👍52
Такая гипотеза и нами была сформулирована при работе над GigaChat. Только вот мы не добрались до прямого эксперимента с ней. Косвенные эксперименты у нас были. А тут вот такой подарок.

В пейпере InstructGPT пишут про 12.7k примеров для SFT. Обучали 16 эпох. И уже после первой эпохи увидели, что модель переобучилась, но качество генерации модели при этом росло как при оценке разметчиков так и при оценке RM (reward model). По сути, такое же наблюдение, как в LIMA, что перплексия не коррелирует с качеством генерации.

Это можно объяснить так. В общей сумме лосса на трейне есть небольшая часть, которая про запоминание формы. Конечно большая часть лосса про содержание, т.е. про сам текст в ответе. Если бы могли выделить специальный лосс, который бы измерял только близость к формам. Но такой лосс едва ли можно придумать
🔥17👍3