Самая понятливая нейросеть: зачем нам рейтинг лучших NLP-систем и кто учит русскому языку англоязычные модели
Меня зовут Татьяна Шаврина, и я расскажу, как мы (команда AGI NLP Сбербанка) запустили проект Russian SuperGLUE — рейтинг русскоязычных NLP-моделей.
Раньше способа оценивать такие модели по объективным метрикам не было, а мы его придумали. И помогли нам лаборатория Noah’s Ark Huawei и факультет компьютерных наук ВШЭ. Вот что это за проект и зачем он сообществу и бизнесу.
О том, как бизнес может применять нейросети, написаны сотни статей. NLP-модели, в частности, нужны для создания чат-ботов, анализа пользовательских запросов и отзывов. В общем, для решения любых задач, связанных с обработкой естественного языка. Russian SuperGLUE, который мы создали, помогает оценивать русскоязычные модели по объективным метрикам (вот лидерборд с результатами оценки), выбирать оптимальную для решения конкретной задачи и использовать ее.
Дообученные на русском языке модели, которые сейчас есть в лидерборде, сами по себе очень ценны. Если бы за эту задачу захотели взяться независимый исследователь или небольшой стартап, на переобучение пришлось бы потратить минимум $20 тысяч (и это только мощности). На обучение модели GPT3, например, Open AI (одним из ее основателей был Илон Маск) потратила около $4 млн — сумма зависит от объема данных, на которых обучали нейросеть.
Если бы за эту задачу захотели взяться независимый исследователь или небольшой стартап, на переобучение пришлось бы потратить минимум $20 тысяч
В общем, далеко не всегда следует делать всё с нуля — на лидерборде можно взять готовую модель. В некоторых случаях ее придется дообучить, но эти модели устроены так, что нескольких сотен или тысяч примеров им хватит.
А сейчас расскажу, как мы создавали проект и устраивали моделям экзамен по русскому языку, а еще о том, как лидерборд могут использовать исследователи и разработчики.
Как и зачем мы придумали Russian SuperGLUE
Обработка естественного языка — сложная задача для нейросетей. Разработчики в США, России, Китае и других странах постоянно пытаются научить алгоритмы лучше анализировать тексты, отвечать на вопросы и находить логические связи. Для этого они создают NLP-модели — большие предобученные нейросети, которые можно дешево дообучить решать конкретные задачи. Проблема в том, что обычно модели создают для работы с английским языком. Например, оригинальный BERT от Google обучили на англоязычных книгах и англоязычных статьях из Википедии, чтобы автоматизировать анализ запросов пользователей поисковика. В Facebook дообучили BERT и представили новую модель — RoBERTa.
На самом деле таких NLP-моделей тысячи, и большая их часть не подходит для работы с текстами на русском языке — даже мультиязычные модели дают не лучшие результаты. Например, почти сразу после появления BERT вышла его мультиязычная версия, обученная на 104 языках (в том числе на русском). Но с текстами на русском языке она справлялась плохо. Это происходит потому, что разные языки устроены по-разному: так, в английском фиксированный порядок слов, а в русском — нет. Конечно, существует много нейросетей, дообученных на русскоязычных текстах, но тут мы переходим к другой проблеме: как понять, какая из этих моделей хорошая, а какая — не очень?
Почти сразу после появления 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%.
В целом обучение больших моделей чем-то похоже на обучение маленьких детей: с ними приходится много возиться. Как-то раз мы пытались научить нейросеть, которая генерирует фразы, отвечать на наши вопросы «верно» или «неверно», а она всё равно самовольно отвечала «да» или «нет». А еще одну модель мы тестировали на «устойчивость» — задавали ей один и тот же вопрос, но в разных формулировках, и добивались, чтобы она всё равно отвечала правильно и не сбивалась. Мы механически видоизменяли задания, меняя слова.
В итоге модель стала работать на 2% лучше, когда к заданиям в конце приписывали «Всё получится!».
Как использовать Russian SuperGLUE
Просто берите и используйте. У нас есть все инструкции и примеры. С помощью лидерборда можно понять, в каких именно задачах хороша та и иная нейросеть, а также выбрать самую способную по всем заданиям. Ниже — бонус. Ответы моделей из лидерборда и людей.
А еще лидерборд нейросетей — самый простой способ рассказать о своем успехе: вдруг именно ваша модель догонит и перегонит людей?