Самая понятливая нейросеть: зачем нам рейтинг лучших NLP-систем и кто учит русскому языку англоязычные модели
Меня зовут Татьяна Шаврина, и я расскажу, как мы (команда AGI NLP Сбербанка) запустили проект Russian SuperGLUE — рейтинг русскоязычных NLP-моделей.
Раньше способа оценивать такие модели по объективным метрикам не было, а мы его придумали. И помогли нам лаборатория Noah’s Ark Huawei и факультет компьютерных наук ВШЭ. Вот что это за проект и зачем он сообществу и бизнесу.
О том, как бизнес может применять нейросети, написаны сотни статей. NLP-модели, в частности, нужны для создания чат-ботов, анализа пользовательских запросов и отзывов. В общем, для решения любых задач, связанных с обработкой естественного языка. Russian SuperGLUE, который мы создали, помогает оценивать русскоязычные модели по объективным метрикам (вот лидерборд с результатами оценки), выбирать оптимальную для решения конкретной задачи и использовать ее.
Дообученные на русском языке модели, которые сейчас есть в лидерборде, сами по себе очень ценны. Если бы за эту задачу захотели взяться независимый исследователь или небольшой стартап, на переобучение пришлось бы потратить минимум $20 тысяч (и это только мощности). На обучение модели GPT3, например, Open AI (одним из ее основателей был Илон Маск) потратила около $4 млн — сумма зависит от объема данных, на которых обучали нейросеть.
В общем, далеко не всегда следует делать всё с нуля — на лидерборде можно взять готовую модель. В некоторых случаях ее придется дообучить, но эти модели устроены так, что нескольких сотен или тысяч примеров им хватит.
А сейчас расскажу, как мы создавали проект и устраивали моделям экзамен по русскому языку, а еще о том, как лидерборд могут использовать исследователи и разработчики.
Как и зачем мы придумали Russian SuperGLUE
Обработка естественного языка — сложная задача для нейросетей. Разработчики в США, России, Китае и других странах постоянно пытаются научить алгоритмы лучше анализировать тексты, отвечать на вопросы и находить логические связи. Для этого они создают NLP-модели — большие предобученные нейросети, которые можно дешево дообучить решать конкретные задачи. Проблема в том, что обычно модели создают для работы с английским языком. Например, оригинальный BERT от Google обучили на англоязычных книгах и англоязычных статьях из Википедии, чтобы автоматизировать анализ запросов пользователей поисковика. В Facebook дообучили BERT и представили новую модель — RoBERTa.
На самом деле таких NLP-моделей тысячи, и большая их часть не подходит для работы с текстами на русском языке — даже мультиязычные модели дают не лучшие результаты. Например, почти сразу после появления BERT вышла его мультиязычная версия, обученная на 104 языках (в том числе на русском). Но с текстами на русском языке она справлялась плохо. Это происходит потому, что разные языки устроены по-разному: так, в английском фиксированный порядок слов, а в русском — нет. Конечно, существует много нейросетей, дообученных на русскоязычных текстах, но тут мы переходим к другой проблеме: как понять, какая из этих моделей хорошая, а какая — не очень?
В 2018 году DeepMind (та самая компания, которой удалось создать алгоритм, обыгрывающий людей в го) совместно с группой ученых запустила проект GLUE (General Language Understanding Evaluation) — рейтинг для оценки NLP-систем по результатам выполнения заданий. Вскоре появился SuperGLUE — улучшенный бенчмарк. Там, например, можно оценить, насколько хорошо модель отвечает на вопросы, распознает тональность текста или понимает логику текста (то есть решает задачи посложнее, требующие большей «соображалки»). Важно, что модель оценивают по тому, как она справилась со всеми заданиями, а не с каким-то конкретным.
Получается вот такой лидерборд с результатами — можно посмотреть, какие модели выполнили задания лучше остальных. Кстати, средний результат человека в этом лидерборде — 89,8%, а лучшей модели — 89,3%, то есть нейросети отстают от людей совсем немного.
SuperGLUE отлично подходит для ранжирования англоязычных моделей, но оценить качество русскоязычной или мультиязычной модели с его помощью нельзя.
При этом возможность сравнивать NLP-модели по объективным метрикам критически важна. В России десятки тысяч дата-сайентистов — тем из них, кто создает новые модели, важно оценивать собственный прогресс, а остальным — понимать, какие модели они могут использовать. Даже если новая модель обогнала остальные на 2%, это значимый результат. Вот только без адекватной системы оценки об этих 2% может никто не узнать.
Мы поняли, что пора создать лидерборд для тех, кто работает с текстами на русском языке: придумать и создать наборы заданий, предложить объективные метрики и, что самое главное, дать специалистам возможность загружать свои модели и сравнивать их с остальными. Так мы начали работу над Russian SuperGLUE.
Что мы сделали и как это работает
Проект состоит из четырех компонентов: тестирование навыков моделей (здравый смысл, целеполагание, логика), тестирование уровня человека для сравнения, оценка существующих моделей и помощь в оценке своей модели для дата-сайентистов. Мы решили создать собственные задания для NLP-моделей — по сути, устроить им экзамен по русскому языку. Всего таких наборов задач — девять: их можно скачать и посмотреть. Вот, например, задача на понимание смысла текста.
Еще один корпус задач — вопросы на целеполагание. Модель должна понять суть ситуации, описанной в тексте, и причину, по которой эта ситуация произошла. В примере ниже второй вариант — правильный.
Задача посложнее — определение причинно-следственной связи. Модель должна понять, есть ли связь между предпосылкой и гипотезой. Вариант «следствие» она должна выбрать, если обнаружила такую связь.
На подготовку тестов и лидерборда у нас ушло три месяца. Тексты для заданий и обучения мы брали из открытых источников (литература, новости), и помогал нам в этом настоящий писатель, который пришел в команду специально для этого.
Чтобы получить возможность сравнивать результаты моделей с результатами человека, мы подготовили инструкции и отправляли задания на «Яндекс.Толоку», где их решали люди. Кстати, с некоторыми заданиями они справились не очень хорошо, например с задачами на логику. Ниже — пример такой задачи.
Люди начинают «сыпаться» на задачах, когда для их решения требуется серьезная концентрация. NLP-модель не умеет отвлекаться, не высыпаться или быть голодной, а вот человеку удерживать внимание бывает сложно. Модели пока довольно сильно отстают от человека: люди справляются с заданиями на 80,2%, а нейросети — на 54,6%.
В целом обучение больших моделей чем-то похоже на обучение маленьких детей: с ними приходится много возиться. Как-то раз мы пытались научить нейросеть, которая генерирует фразы, отвечать на наши вопросы «верно» или «неверно», а она всё равно самовольно отвечала «да» или «нет». А еще одну модель мы тестировали на «устойчивость» — задавали ей один и тот же вопрос, но в разных формулировках, и добивались, чтобы она всё равно отвечала правильно и не сбивалась. Мы механически видоизменяли задания, меняя слова.
Как использовать Russian SuperGLUE
Просто берите и используйте. У нас есть все инструкции и примеры. С помощью лидерборда можно понять, в каких именно задачах хороша та и иная нейросеть, а также выбрать самую способную по всем заданиям. Ниже — бонус. Ответы моделей из лидерборда и людей.
А еще лидерборд нейросетей — самый простой способ рассказать о своем успехе: вдруг именно ваша модель догонит и перегонит людей?
Если мы берём корпусов разрезе задач чат-ботов, как насчёт отслеживания контекста диалога и смена его без потери, использование извлечённых параметров ?
Это хорошее задание! Возьмем на заметку в след релизе :)
Для английского такое есть, называется MultiWOZ - A Large-Scale Multi-Domain Wizard-of-Oz Dataset for Task-Oriented Dialogue Modelling
Да, я начинал с ними разбираться, но до конца не понял как провести тест, если адаптируете на русский с удовольствием примем участие ю.
Ответы в примерах которые приведены сгенерирован с нулям или варианты заложены изначально?
Не все модели подходят для генерации, но нужно обеспечить им разные условия. Поэтому алгоритм такой: делаем максимально сложное содержание, а формат ответа простой. В данном случае нужно выбирать из вариантов.
В заданиях ответы взвешены, чтобы случайное угадывание давало минимальный скор
Тогда почему вы это название NLP когда это NLU?
NLP - название отрасли, NLU - конкретной задачи, поэтому выбрали более общее.
Вы проделали большой объем работы, полезная информация, спасибо.
Обратил внимание на следующее - люди справляются с заданиями на 80,2%, а нейросети — на 54,6%. Сопоставимо с результатами генератора случайных чисел. Очевидно, что в данной области нужны другие алгоритмы, нейросети не справляются с такими задачами.
50% - вероятность при случайном выборе из 2 вариантов.
У нас не так: почти во всех заданиях выбор из многих вариантов, случайное угадывание дает меньше 20%.
Самая простая система с линейными моделями дает 37%
54.6% - результат трех технологических революций. Немного, но что есть
лучше бы вашу «команду» посадить на тех. поддержку юзеров, чтобы людей меньше кидали, пользы и то больше будет.
Слили сами базу, ее активно окучивают преступники, а вы все в какую-то дичь играетесь, чатботы емае, современные нейросети это бутафория, даже сравнивать с человеком уже обман. Сранивать ее можно только с фунциями внутри которых наборы if’ов обычных
Комментарий недоступен
любой ваш чатбот - это условный ларек самообслуживания (которые со времен царя гороха работают), который работает на обычных ифах, по нейросетям прочитал книгу и утверждаю, что это почти идентично подкапотному набору ифов, ничего там нету сверхествественного, такая же хайповая тема, как блокчейн и iot
переводчики в инете тысячу лет через ифы или свитч кейсы работают
Ваш чатбот был бы полезный, если бы когда вот недавно человека кидали, он бы мог сообразить об этом, а так это просто тупой ларёк самообслуживания. Чатбот емаё, у ботов из quake 3 в 2002 году больше мозгов, чем у ваших чатботов.
Комментарий недоступен
речь не о том, что можно решить через иф. А о том, что так называемая "нейросеть" по выходному результату тупой if else.
Лучше работают на 0.1%, при неизвестных условиях. Круто
В архитектуру NLP модели нужно встраивать автоматический универсальный тематический классификатор предложения, способный определить тематику текста на уровне предложения и коротких фраз. Ещё в обучающем датасете у каждого предложения нужно проставить тем же классификатором тематические классы.
Предметная область текста - это ключ к пониманию текста. Человек любой воспринимаемый текст сначала классифицирует на контекст, тематику, предметную области - это нужно отслеживать одновременно по всему тексту. Если на третьем предложении меняется тематика, то меняется и суть написанного вместе с ней и контекст.
С контекстами отлично справляется наша система, на наш взгляд именно отслеживание контекстов основная задача сейчас, а не мериться кто на сотую долю лучше определил правильно интент.
Дообучить BERT - $20k на железо? Слышал что там в Сбере у каждого аналитика DGX под столом... Байки короче, как и результаты бенчмарка.
Бутафория какая-то... Взяли разработки Microsoft и др., русифициррвали и выдаете за свое. Кстати, даже у них GPT3 до сих пор коряво работает.)))
Ссылка на лидерборд не работает
Эльвира, здравствуйте! У нас вышла новая версия, поэтому ссылка изменилась. Спасибо, что вы заметили. Ссылку в тексте изменили. Держите и здесь: https://russiansuperglue.com/leaderboard/2/
Вот бы у нее еще отчество было Сахипзадовна. У вас бы получился интересный диалог в этом треде
Комментарий удален модератором
Комментарий удален модератором