В последние годы в области NLP произошла настоящая революция: огромные нейросети, предобученные на сотнях гигабайт текстов, бьют все известные рекорды качества. Но обладают ли такие нейросети чутьём на «естественность» текста, которое есть у носителей языка? Оценка предложения по внутреннему чутью в лингвистике получила название приемлемости; умение давать подобную оценку — ещё один шаг на пути к общему пониманию языка. Чтобы узнать, насколько хорошо нейросети для русского языка справляются с этой задачей, мы публикуем RuCoLA (Russian Corpus of Linguistic Acceptability) — датасет русскоязычных предложений, размеченных по бинарной шкале приемлемости. Это совместный труд команды исследователей и NLP-разработчиков из SberDevices, ABBYY, Yandex Research, Huawei Noah’s Ark Lab и Факультета компьютерных наук ВШЭ. Также мы открываем лидерборд на данных RuCoLA, чтобы любой желающий мог проверить способности своих моделей или поучаствовать в развитии методов для оценки приемлемости.
Лингвисты против разработчиков?
Для оценки качества отдельных задач NLP уже существуют свои метрики: например, BLEU для машинного перевода, ROUGE для суммаризации, классические метрики точности и полноты для задач классификации, и так далее. Для оценки же языкового моделирования используется только одна метрика — перплексия. Перплексия определяется как мера неопределенности языковой модели на тесте: чем выше вероятность предсказания каждого следующего слова тестовой выборки, тем перплексия ниже и модель языка лучше. Однако, есть те, кто с такой метрикой не совсем согласен: лингвисты.
Слова языка — счётное множество, и образуют счётное число возможных комбинаций, только часть из которых будет осмысленными. И даже эта осмысленная часть статистически будет очень маловероятной среди всего остального: так как средняя частотность каждого уникального слова меньше 1 на миллион, значит, любой сколько-нибудь длинный текст становится последовательностью из очень редких событий. Так, количество слов этой статьи до этого места равно 271, что делает возникновение такого текста практически невероятным: это 0.000001271. Конечно, если считать по средней частоте и считать, что слова независимы (а это, разумеется, не так).
На коротких текстах обмануть языковую модель будет еще проще: можно составить бессмысленный текст из пар слов с высокой совстречаемостью — вероятность такого текста будет высокой, и для модели он будет выглядеть естественно:
Всё-таки цель больших предобученных моделей — в решении интеллектуальных задач, а значит, хорошо бы уметь отличать невозможные высказывания от реальных. Можно ли научить современные языковые модели отличать вероятное от невероятного в языке, особенно имея огромные обучающие корпуса? У лингвистов готова типология, которая позволяет подойти к вопросу разумнее, чем обращаться к перплексии.
Приемлемость, или linguistic acceptability, позволяет оценить каждый пример по шкале от возможного до невозможного с точки зрения носителя языка. Лингвист Ноам Хомский, построивший формальную теорию естественного языка, ввёл такие основные характеристики для обозначения приемлемости:
- Осмысленный — пример, имеющий смысл, семантически понятный слушателю. Непротиворечивый, не содержащий логических ошибок.
- Грамматичный — пример, построенный корректно, по правилам грамматики. Правила грамматики могут включать в себя, например, порядок слов, падежи, и всё то, что является синтаксисом. Как установил Хомский, в грамматике действуют законы рекурсии: можно бесконечно дописывать продолжение текста справа или слева, сохраняя грамматическую корректность, но смысла у такого бесконечного текста будет мало. Примером такого текста можно считать «Дом, который построил Джек».
- Приемлемый текст должен быть и осмысленным, и грамматичным.
На фото: лингвисты Хомский и Халле из года в год демонстрируют рекурсию. Источник
«Бесцветные зелёные идеи яростно спят» (Colorless green ideas sleep furiously), — написал Хомский для иллюстрации корректного грамматического примера, не являющегося осмысленным, и поэтому неприемлемого. Разумно ожидать, что хорошая модель языковых представлений должна уметь отличать приемлемые и неприемлемые предложения. Однако у этой задачи есть и более практическое использование, о котором мы расскажем ниже.
Оцениваем приемлемость на практике
Допустим, мы используем некоторую модель генерации текстов, например, для машинного перевода или суммаризации, и хотим, чтобы выходы этой модели звучали естественно. Отчасти такой цели можно добиться за счёт предобучения на большом объёме естественных текстов: так модель GPT-3 уже генерирует тексты, которые порой трудно отличить от написанных людьми. Но даже самые современные нейросети далеки от совершенства и могут допускать разного рода ошибки при генерации.
Возникает идея: попробуем сгенерировать несколько текстов и отранжируем их с помощью оценок внешней модели приемлемости. Как было ранее показано в статьях, такой подход может улучшить качество генерации. Например, возьмём модель машинного перевода с китайского на русский. Получим для каждого входного предложения несколько вариантов перевода, а затем, отранжируем варианты по вероятности их приемлемости и сравним предложение с золотым стандартом либо спросим мнение переводчиков. Скорее всего, мы увидим, что такое переранжирование повысит качество перевода!
Собираем корпус
Оценка приемлемости предложений приобрела большую популярность в NLP после выхода англоязычного корпуса CoLA, который включён в стандартный набор задач для оценки языковых моделей GLUE. Подобные корпуса создаются по мотивам классических экспериментальных методов в области лингвистики, где от испытуемых, например, требуется определить, приемлемо ли предложение, решив задачу бинарной классификации. На первый взгляд, задача кажется не такой уж и сложной, однако она затрагивает языковые феномены разной сложности — от неправильного порядка слов до искажения смысла предложения —, и даже носитель языка не всегда может их определить.
Параллельно с развитием генеративных языковых моделей лингвисты и NLP-разработчики стали уделять внимание оценке сгенерированных текстов, включая грамматические ошибки (TGEA) и другие проблемы генерации, с которыми на практике сталкиваются довольно часто: искажение здравого смысла и фактов, а также «галлюцинации» (этому посвящён фреймворк Scarecrow).
Наш корпус тестирует чувствительность моделей как к стандартным феноменам (морфология, синтаксис, семантика), так и к галлюцинациям, например, бессмысленному повторению частей предложения, копированию входного текста и артефактам декодирования.
Распределение типов феноменов в RuCoLA
Где взять данные? Мы хотим, чтобы языковые модели умели отличать некорректные с точки зрения человека примеры и избавлялись от собственных ошибок. Поэтому мы собирали два типа данных: предложения, написанные и оценённые экспертами-лингвистами, а также сгенерированные нейронными сетями.
Одним из общепринятых, но не самых простых методов создания таких лингвистических корпусов (например, CoLA и ItaCoLA) является сбор данных вручную из теоретических материалов по лингвистике. Следуя такому принципу, мы взяли работы известных лингвистов по различным аспектам языка (синтаксису, семантике, морфологии) и из каждого источника скопировали предложения и метку приемлемости, присвоенную экспертом.
Пример (Яков Тестелец, «Введение в общий синтаксис»):
- Я обнаружил его лежащего одного на кровати — приемлемое;
- Я хочу, чтобы они зайдут, когда ты спрячешься — неприемлемое.
Поскольку концепция приемлемости применяется в частности для оценки генерации текстов, мы включили в RuCoLA дополнительный тестовый набор, который состоит из сгенерированных предложений. Мы взяли готовые модели парафраза и машинного перевода и применили их на нескольких корпусах из разных доменов: Tatoeba, TED, WikiMatrix, параллельный корпус Яндекс.Переводчика. Разметчики на Яндекс.Толоке оценили приемлемость этих предложений, а затем студенты профильных специальностей (лингвисты и филологи) провалидировали результаты разметчиков и дополнительно классифицировали неприемлемые предложения по описанным выше категориям. Например:
- Хочешь, я отвезу тебя в аэропорт? (модель машинного перевода) — приемлемое;
- Это всю историю была исполнения в живую телестудию (модель-парафразер) — неприемлемое.
Лидерборд RuCoLA: оцениваем модели и людей
Чтобы позволить всем желающим поучаствовать в развитии методов для оценки лингвистической приемлемости, мы запускаем открытый лидерборд на данных RuCoLA. Его сайт, на котором вы можете узнать все подробности и посмотреть на актуальные результаты, находится по адресу rucola-benchmark.com. В качестве метрик качества используется то же, что и в бенчмарке CoLA: стандартная для бинарной классификации accuracy, а также коэффициент корреляции Мэттьюса. Порядок действий для участия не очень сложный: после заполнения короткой формы вы сможете отправить предсказания своей модели и увидеть результаты как на всей тестовой выборке, так и на доменах экспертных и машинных ошибок. К каждому решению можно прикрепить ссылку с его описанием или исходным кодом: будем рады, если вам захочется поделиться деталями своего подхода.
Перед участием в соревновании у вас может возникнуть вопрос: как всем известные стандартные модели показывают себя на оценке приемлемости? Чтобы узнать ответ, мы протестировали ряд стандартных подходов, которые опираются на различные модели машинного обучения. В их числе как открытые предобученные модели для русского языка ruBERT, ruRoBERTa и ruT5, так и многоязычные энкодеры XLM-RoBERTa и RemBERT. Не забыли мы и о простых методах без нейросетей: обычная логистическая регрессия или majority vote-классификатор порой работают сравнимо с огромными трансформерами, и нам было интересно узнать, насколько велико будет отличие в качестве на довольно нетривиальной NLP-задаче. Код всех бейзлайнов опубликован в GitHub-репозитории датасета и может служить неплохой стартовой точкой для создания новых методов. Их результаты вы можете увидеть на лидерборде: по итогам наших экспериментов модель ruRoBERTa оказалась лучше остальных.
Разумеется, результаты только лишь автоматических систем дают неполную картину о том, насколько сложна задача и какое качество можно считать разумным. Чтобы понять, насколько хорошо человек без особой подготовки решает такую задачу, мы снова прибегли к помощи краудсорсинга и попросили студентов профильных специальностей разметить составленные лингвистами примеры из тестовой выборки. Чтобы было понятно, что имеется в виду под «приемлемыми» и «неприемлемыми» предложениями, мы подготовили текстовую инструкцию и провели несколько обучающих семинаров. Итоги такой разметки вы также можете увидеть ниже: как видно на скриншоте, оценка приемлемости непросто даётся и людям, однако нейросетевым моделям ещё есть к чему стремиться.
Заключение
В этой статье мы рассказали про корпус RuCoLA для задачи оценки лингвистической приемлемости, а также открыли публичный лидерборд на его данных. Мы надеемся, что этот корпус позволит расширить методологию оценки русскоязычных foundation models, а модели, обученные на нём, помогут в определении качества русскоязычного текста как для исследований, так и для прикладных задач. Ждём ваши решения на лидерборде, и присоединяйтесь к обсуждению в нашем Telegram-чате.
Автор: RuCoLA Team