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
Итого. Декодер на задаче 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
⚡️ Замерили XLM-RoBERTa-Large и mDeBERTa-V3 на RussianSuperGLUE

Энкодерные модели широко используются в задачах классификации. Понятно что именно мультиязычные энкодерные модели могут быть особенно полезны в задачах с несколькими языками, или в ситуациях где приходится надеятся на межъязыковой трансфер знаний (например нет обучающего сета для нужного языка). Но даже если ограничиться русским языком, нам было интересно узнать, стоит ли иногда брать мультиязычные модели. В частности, мы помнили со времён когда обучали ruT5, что не на всех задачах ruT5-large удавалось быть лучше мультиязычной mT5-large.

Для замеров выбрали две модели, XLM-RoBERTa и mDeBERTa. А именно, XLM-RoBERTa-Large (560M параметров, 24 слоя, 250k токенов словарь, модель 2020 года от Facebook) и mDeBERTa-V3 (280М параметров, 12 слоев, 250k токенов словарь, модель 2021 года от Microsoft). Обе эти модели претрейнились на одном сете, где был русский язык, а именно на сабсете CommonCrawl для ~100 языков.

Замеряли, делая полный файнтюн на каждой из задач RSG, подбирая гиперпараметры в каждом случае отдельно (диапазоны гиперпараметров указаны в карточках сабмитов моделей), без мультитаска, а чекпоинт выбирали лучший (сохраняя каждую эпоху) на валидационном сете бенчмарка. Отметим, что для сходимости помогало брать много эпох c небольшим lr, и что для XLM-RoBERTa-Large нужен lr на порядок меньше (часто работало 2e-6) чем для mDeBERTa-V3. Никаких специальных техник файнтюна не использовали (layer-wise lr decay, progressive unfreezing, адаптеры).

Итоговый скор в наших замерах на RSG получился такой:
🔸 0.654 XLM-RoBERTa-Large
🔸 0.651 mDeBERTa-V3

Для сравнения, у русскоязычной ruRoBERTa-large значение 0.684. Общий лидерборд RSG, где можно посмотреть результаты по отдельным задачам, и в сравнении с другими моделями: https://russiansuperglue.com/leaderboard/2

Заметим, что mDeBERTa-V3 как base а не large модель очень хороша, и легко тюнится. А если сильно важно качество, как вариант энкодера можно взять от FRED-T5 энкодерную часть (тоже замеряли такое, карточка сабмита на RSG https://russiansuperglue.com/login/submit_info/2050).

Ещё из результатов попробовали каггл-лайк подход на некоторых задачах, чтобы получить лучший скор. На лидерборде RSG до недавнего времени в топе был сабмит из ансамбля англоязычных моделей (когда таски RSG сначала переводились). Мы перевели задачу TERRa (NLI бинарная задача, следует ли из предпосылки следствие) на английский с помощью Yandex.Translate API. Взяли англоязычную модель, дополнительно тюненную на NLI задачи (таких много на hf для зирошот классификаций), мы взяли https://huggingface.co/ynie/roberta-large-snli_mnli_fever_anli_R1_R2_R3-nli). И сделали не файнтюн, а ансабль ridge-классификаторов обученных на mean-pooling представлениях разных фолдов (подход как в https://www.kaggle.com/code/cdeotte/rapids-svr-cv-0-450-lb-0-44x, но для одной модели). Получили на лидерборде TERRa скор 0.88 (публично сабмит не открывали на лидерборде), что является сотой. Попробовали получить похожим образом соту для задачи DaNetQA (бинарная вопрос-ответная задача по контексту), там не получилось (потому что не нашли на hf сильной дотюненной базовой модели).

Нам любопытно, как поменяется лидерборд RSG с появлением недавних LLM и подходов файнтюна с адаптерами. Пока не пробовали)
🔥11👍6👏41
Не дает мне покоя реплика из технического репорта по PаLM 2: "Architectural and objective improvements: Our model architecture is based on the Transformer."
Так может PaLM 2 это энкодер-декодер?🤔
👍6🔥6🤔2
⚡️ Замерили LLaMA и Сайгу на русском MMLU

Saiga это семейство моделей, обученных в режиме LLaMA + LoRA (основная модель заморожена, тюнится только адаптеры) на нескольких чатбот и инструктивных сетах:
https://github.com/IlyaGusev/rulm

MMLU это мульти-таск (57 разнообразных тематик/тасок, тестовых семплов ~14к) бенчмарк, где нужно для вопроса выбрать один из четырёх ответов (рандом даёт 0.25 качество), вопросы сложные, часто требуют доменных знаний (качество неэкспертных ответов людей 0.35):
https://arxiv.org/abs/2009.03300

Мы перевели MMLU с помощью Yandex.Translate API с английского языка на русский, и замерили на исходном и переведённом сете модели Сайги доступные на HF. В сетапе few-shot k-5, выбирая ответ по вероятностям логитов вариантов A, B, C, D. Для Сайги готовили промпты в инструктивном формате.

LLaMA и Сайга показали хорошие результаты на русском MMLU. Хотя LLaMA видела очень мало русского на претрейне (меньше 1%), что удивляет.
🔥34👍8👏6
⚡️ Датасет и код для замеров на русском MMLU

Переведённый на русский датасет тут.

Код для замеров тут.

Из коробки запускается для моделей семейства huggyllama-LLaMA и IlyaGusev-Saiga. В ридми как приспособить и под другие модели.

Позволяет замерить на 57 темах, суммарно на ~14к тестовых сэмплов, в режиме 0<=k_shot<=5, на RU и EN.

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

Кроме итогового скора может быть полезно смотреть с разбивкой по крупным категориям (STEM, humanities, social sciences, other).

Ссылка на пост с замерами, которые делали ранее.
🔥22👍7👏421🙏1
⚡️ Замеры LLaMA 2 на MMLU

Вчера вышла LLaMA 2, нам было интересно качество претрейн-моделей в русском.

Качество на MMLU выросло в среднем на 7 пунктов, как в английском, так и в русском, у всей линейки претрейн-моделей. Семь пунктов на MMLU впечатляет!

При этом русского языка на претрейне LLaMA 2 было всего 0.13%.

Замеряли кодом который выкладывали ранее. Контекст оставляли 2048 чтобы влезало тоже число few-shot примеров (токенайзер в LLaMA 2 такой же как и был в LLaMA 1).

До чат-моделей пока не добрались, и до 34B пока нет к ней доступа.
🔥406👍6🎉3
⚡️Большой результат большой команды. ruGPT3.5 13B доступна на HuggingFace.

Еще два с половиной года назад началась история этой модели усилиями нашей команды. Тогда модель обучали на наших знаменитых 300GB + немного кода и английского. В архитектуре модели мы по пейперу GPT3 впилили спарс слои. Обучалась модель около 1,5 месяца на 512 V100. Работая над ГигаЧатом уже большой командой из SberDevices, Sber AI и AIRI пришли к выводу, что спарс нужно выкинуть и дообучить на улучшеном датасете. Дообучали еще на 200 А100 около 3-х недель. Вообщем подробности на странице модели на HuggingFace и в статье на Хабре.

👉 Хабр
👉 Hugging Face
🔥74🎉12👍9🥰5
⚡️Датасет и замеры генерации кода по запросу на русском

Мы перевели популярный датасет HumanEval с задачами по генерации кода по текстовому запросу на русский. Ссылка на датасет HumanEval_ru.

Для замеров используем наш форк BigCode Evaluation Harness. Ccылка на код замеров.

Замерили на нем модели StarCoder и опубликованные на прошлой неделе Codellama. Метрики этих моделей на русском ниже, чем на английском, но незначительно. Это несколько удивительно, учитывая, что эти модели видели очень мало русского. StarCoder обучался на The Stack, в котором русский встречается только в малой доле (менее 1%) комментариев к коду.
🔥24👍8👏3
Нас рассекретили!😊
https://habr.com/ru/news/758302/
Сейчас идет закрытое тестирование. Доступ получить пока нельзя, но скоро такая возможность будет.
PS: Не ругайте за кричащее название. Маркетинг.🙂
🔥31👏10👍31😁1
CodeLlama в MMLU неплохо умеет!

Дообучение LLaMA 2 на коде не сильно то ударила по ее знаниям на MMLU. Казалось бы, дообучение на коде в 0.5T токенов, где всего 7% из сета Llama 2, должно было сильно сместить в знаниях в естественных языках.

CodeLlama 7B показывает выше скор чем Llama 1 7B.

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

Для русского падение метрики меньше чем для английского. Для 7B для русского упала на 2.22% а для английского — на 7.34%.
🔥25❤‍🔥4
⚡️Textbooks are all you need?

Несколько месяцев назад вышла статья "textbooks are all you need" про модель phi-1. Она состоит из 1.3 миллиарда параметров и обучалась на 7 миллиардах токенов "textbook quality" кода на питоне. Датасет по большей части состоит из отфильтрованной с помощью GPT-4 части the Stack, а также из "учебников", написанных GPT-3.5. Несмотря на маленькую емкость, модель превзошла, например, CodeLlama-34b, на бенчмарке по генерации кода HumanEval. Недавно авторы также выпустили статью phi-1.5, где расширили свой подход на естественный язык.

HumanEval состоит из задач типа LeetCode, нам же было интересно померять возможности моделей по генерации кода в реальных проектах. Мы собрали датасет из 220 функций (и методов) из реальных python проектов с гитхаба. Все функции содержат докстринги и покрыты тестами, репозитории опубликованы после июня 2023. Задача модели состоит в генерации такого тела функции, чтобы число пройденных тестов в репозитории не снизилось по сравнению с настоящим телом функции.

Видим, что phi-1 на реальном коде чуть уступает аналогичному по емкости многоязычному starcoderbase и значительно уступает многоязычным 7b моделям.

P.S. через некоторое время выложим бенчмарк RealCode в открытый доступ
🔥30👍6
⚡️Улучшение качества модели в задаче Code Completion за счёт простого подхода подачи похожего кода (сниппета)

В качестве инструмента для поиска схожего кода, был использован Elasticsearch, в основе которого лежит всем известный BM25!

Поиск проводился по открытым данным из GitHub.


📍Данные
Данные представляют собой проиндексированные файлы python, нарезанные по 10 строк, с шагом в 5 строк. Данные взяты из the stack.

📍Идея подхода с подачей сниппетов
Сниппет - фрагмент кода, размером 10-15 строк, наиболее похожий на последние 10 строк кода, поданного в модель для генерации следующей строки, с точки зрения BM25.

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


⚡️Наши замеры

📍Задача
Задача code completion представляет собой генерацию следующей строки, на основании введённого контекста. Данная задача представляет собой частный случай FIM-задачи в режиме, когда есть только prefix.


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

Придуманная нами метрика - click score. Это метрика, которая отражает в себе количество сохраненных пользователем нажатий на клавиатуру при выдаче подсказки возможного продолжения кода.
👍19🔥94👏3🤔1
Forwarded from Градиент обреченный (Sergei Averkiev)
🔺 GigaChat обновился

Друзья, хорошие новости!

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

На MMLU модель показала 50+ и по всем задачам стала почти в два раза лучше предыдущей на SBS (сравнительный тест). Контекст также увеличен в два раза — 4k токенов.

Написал небольшой обзор вместе с популярной частью про машинное обучение и языковые модели. Прошу поддержать статью и попробовать модель в действии.

Можно через tg-бота, vk-бота или web-интерфейс (там теперь можно сохранять запросы в избранное).

👉 Хабр
🔥19👍8💯21