- PVSM.RU - https://www.pvsm.ru -
В последние годы в области NLP произошла настоящая революция: огромные нейросети, предобученные на сотнях гигабайт текстов, бьют все известные рекорды качества. Но обладают ли такие нейросети чутьём на «естественность» текста, которое есть у носителей языка? Оценка предложения по внутреннему чутью в лингвистике получила название приемлемости; умение давать подобную оценку — ещё один шаг на пути к общему пониманию языка. Чтобы узнать, насколько хорошо нейросети для русского языка справляются с этой задачей, мы публикуем RuCoLA [1] (Russian Corpus of Linguistic Acceptability) — датасет русскоязычных предложений, размеченных по бинарной шкале приемлемости. Это совместный труд команды исследователей и NLP-разработчиков из SberDevices, ABBYY, Yandex Research, Huawei Noah’s Ark Lab и Факультета компьютерных наук ВШЭ. Также мы открываем лидерборд на данных RuCoLA [2], чтобы любой желающий мог проверить способности своих моделей или поучаствовать в развитии методов для оценки приемлемости.
Для оценки качества отдельных задач NLP уже существуют свои метрики: например, BLEU для машинного перевода, ROUGE для суммаризации, классические метрики точности и полноты для задач классификации, и так далее. Для оценки же языкового моделирования используется только одна метрика — перплексия [3]. Перплексия определяется как мера неопределенности языковой модели на тесте: чем выше вероятность предсказания каждого следующего слова тестовой выборки, тем перплексия ниже и модель языка лучше. Однако, есть те, кто с такой метрикой не совсем согласен: лингвисты.
Слова языка — счётное множество, и образуют счётное число возможных комбинаций, только часть из которых будет осмысленными. И даже эта осмысленная часть статистически будет очень маловероятной среди всего остального: так как средняя частотность каждого уникального слова меньше 1 на миллион, значит, любой сколько-нибудь длинный текст становится последовательностью из очень редких событий. Так, количество слов этой статьи до этого места равно 271, что делает возникновение такого текста практически невероятным: это 0.000001271. Конечно, если считать по средней частоте и считать, что слова независимы (а это, разумеется, не так).
На коротких текстах обмануть языковую модель будет еще проще: можно составить бессмысленный текст из пар слов с высокой совстречаемостью — вероятность такого текста будет высокой, и для модели он будет выглядеть естественно:
Всё-таки цель больших предобученных моделей — в решении интеллектуальных задач, а значит, хорошо бы уметь отличать невозможные высказывания от реальных. Можно ли научить современные языковые модели отличать вероятное от невероятного в языке, особенно имея огромные обучающие корпуса? У лингвистов готова типология, которая позволяет подойти к вопросу разумнее, чем обращаться к перплексии.
Приемлемость, или linguistic acceptability, позволяет оценить каждый пример по шкале от возможного до невозможного с точки зрения носителя языка. Лингвист Ноам Хомский, построивший формальную теорию естественного языка, ввёл такие основные характеристики для обозначения приемлемости:
На фото: лингвисты Хомский и Халле из года в год демонстрируют рекурсию. Источник [4]
«Бесцветные зелёные идеи яростно спят» (Colorless green ideas sleep furiously), — написал Хомский для иллюстрации корректного грамматического примера, не являющегося осмысленным, и поэтому неприемлемого. Разумно ожидать, что хорошая модель языковых представлений должна уметь отличать приемлемые и неприемлемые предложения. Однако у этой задачи есть и более практическое использование, о котором мы расскажем ниже.
Допустим, мы используем некоторую модель генерации текстов, например, для машинного перевода или суммаризации, и хотим, чтобы выходы этой модели звучали естественно. Отчасти такой цели можно добиться за счёт предобучения на большом объёме естественных текстов: так модель GPT-3 уже генерирует тексты, которые порой трудно отличить от написанных людьми. Но даже самые современные нейросети далеки от совершенства и могут допускать разного рода ошибки при генерации.
Возникает идея: попробуем сгенерировать несколько текстов и отранжируем их с помощью оценок внешней модели приемлемости. Как было ранее показано в статьях [5], такой подход может улучшить качество генерации. Например, возьмём модель машинного перевода с китайского на русский. Получим для каждого входного предложения несколько вариантов перевода, а затем, отранжируем варианты по вероятности их приемлемости и сравним предложение с золотым стандартом либо спросим мнение переводчиков. Скорее всего, мы увидим, что такое переранжирование повысит качество перевода!
Оценка приемлемости предложений приобрела большую популярность в NLP после выхода англоязычного корпуса CoLA [6], который включён в стандартный набор задач для оценки языковых моделей GLUE [7]. Подобные корпуса создаются по мотивам классических экспериментальных методов в области лингвистики, где от испытуемых, например, требуется определить, приемлемо ли предложение, решив задачу бинарной классификации. На первый взгляд, задача кажется не такой уж и сложной, однако она затрагивает языковые феномены разной сложности — от неправильного порядка слов до искажения смысла предложения —, и даже носитель языка не всегда может их определить.
Параллельно с развитием генеративных языковых моделей лингвисты и NLP-разработчики стали уделять внимание оценке сгенерированных текстов, включая грамматические ошибки (TGEA [8]) и другие проблемы генерации, с которыми на практике сталкиваются довольно часто: искажение здравого смысла и фактов, а также «галлюцинации» (этому посвящён фреймворк Scarecrow [9]).
Наш корпус тестирует чувствительность моделей как к стандартным феноменам (морфология, синтаксис, семантика), так и к галлюцинациям, например, бессмысленному повторению частей предложения, копированию входного текста и артефактам декодирования.
Распределение типов феноменов в RuCoLA
Где взять данные? Мы хотим, чтобы языковые модели умели отличать некорректные с точки зрения человека примеры и избавлялись от собственных ошибок. Поэтому мы собирали два типа данных: предложения, написанные и оценённые экспертами-лингвистами, а также сгенерированные нейронными сетями.
Одним из общепринятых, но не самых простых методов создания таких лингвистических корпусов (например, CoLA и ItaCoLA [10]) является сбор данных вручную из теоретических материалов по лингвистике. Следуя такому принципу, мы взяли работы известных лингвистов по различным аспектам языка (синтаксису, семантике, морфологии) и из каждого источника скопировали предложения и метку приемлемости, присвоенную экспертом.
Пример (Яков Тестелец, «Введение в общий синтаксис»):
Поскольку концепция приемлемости применяется в частности для оценки генерации текстов, мы включили в RuCoLA дополнительный тестовый набор, который состоит из сгенерированных предложений. Мы взяли готовые модели парафраза и машинного перевода и применили их на нескольких корпусах из разных доменов: Tatoeba, TED, WikiMatrix, параллельный корпус Яндекс.Переводчика. Разметчики на Яндекс.Толоке оценили приемлемость этих предложений, а затем студенты профильных специальностей (лингвисты и филологи) провалидировали результаты разметчиков и дополнительно классифицировали неприемлемые предложения по описанным выше категориям. Например:
Чтобы позволить всем желающим поучаствовать в развитии методов для оценки лингвистической приемлемости, мы запускаем открытый лидерборд на данных RuCoLA. Его сайт, на котором вы можете узнать все подробности и посмотреть на актуальные результаты, находится по адресу rucola-benchmark.com [11]. В качестве метрик качества используется то же, что и в бенчмарке CoLA: стандартная для бинарной классификации accuracy, а также коэффициент корреляции Мэттьюса [12]. Порядок действий для участия не очень сложный: после заполнения короткой формы вы сможете отправить предсказания своей модели и увидеть результаты как на всей тестовой выборке, так и на доменах экспертных и машинных ошибок. К каждому решению можно прикрепить ссылку с его описанием или исходным кодом: будем рады, если вам захочется поделиться деталями своего подхода.
Перед участием в соревновании у вас может возникнуть вопрос: как всем известные стандартные модели показывают себя на оценке приемлемости? Чтобы узнать ответ, мы протестировали ряд стандартных подходов, которые опираются на различные модели машинного обучения. В их числе как открытые предобученные модели для русского языка ruBERT, ruRoBERTa и ruT5 [13], так и многоязычные энкодеры XLM-RoBERTa и RemBERT. Не забыли мы и о простых методах без нейросетей: обычная логистическая регрессия или majority vote-классификатор порой работают сравнимо с огромными трансформерами, и нам было интересно узнать, насколько велико будет отличие в качестве на довольно нетривиальной NLP-задаче. Код всех бейзлайнов опубликован в GitHub-репозитории [1] датасета и может служить неплохой стартовой точкой для создания новых методов. Их результаты вы можете увидеть на лидерборде: по итогам наших экспериментов модель ruRoBERTa оказалась лучше остальных.
Разумеется, результаты только лишь автоматических систем дают неполную картину о том, насколько сложна задача и какое качество можно считать разумным. Чтобы понять, насколько хорошо человек без особой подготовки решает такую задачу, мы снова прибегли к помощи краудсорсинга и попросили студентов профильных специальностей разметить составленные лингвистами примеры из тестовой выборки. Чтобы было понятно, что имеется в виду под «приемлемыми» и «неприемлемыми» предложениями, мы подготовили текстовую инструкцию и провели несколько обучающих семинаров. Итоги такой разметки вы также можете увидеть ниже: как видно на скриншоте, оценка приемлемости непросто даётся и людям, однако нейросетевым моделям ещё есть к чему стремиться.
В этой статье мы рассказали про корпус RuCoLA для задачи оценки лингвистической приемлемости, а также открыли публичный лидерборд на его данных. Мы надеемся, что этот корпус позволит расширить методологию оценки русскоязычных foundation models, а модели, обученные на нём, помогут в определении качества русскоязычного текста как для исследований, так и для прикладных задач. Ждём ваши решения на лидерборде, и присоединяйтесь к обсуждению в нашем Telegram-чате [14].
Автор: RuCoLA Team
Источник [15]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/open-source/375418
Ссылки в тексте:
[1] публикуем RuCoLA: https://github.com/RussianNLP/RuCoLA
[2] лидерборд на данных RuCoLA: http://rucola-benchmark.com
[3] перплексия: https://habr.com/ru/company/wunderfund/blog/580230/
[4] Источник: https://www.linguisticsociety.org/sites/default/files/MIT16.jpg
[5] статьях: https://aclanthology.org/2021.emnlp-main.53/
[6] CoLA: https://nyu-mll.github.io/CoLA/
[7] GLUE: https://gluebenchmark.com/
[8] TGEA: https://aclanthology.org/2021.acl-long.469/
[9] Scarecrow: https://arxiv.org/abs/2107.01294
[10] ItaCoLA: https://aclanthology.org/2021.findings-emnlp.250/
[11] rucola-benchmark.com: https://rucola-benchmark.com/
[12] коэффициент корреляции Мэттьюса: https://en.wikipedia.org/wiki/Phi_coefficient
[13] ruBERT, ruRoBERTa и ruT5: https://habr.com/ru/company/sberbank/blog/567776/
[14] Telegram-чате: https://t.me/RuCoLA_benchmark
[15] Источник: https://habr.com/ru/post/667336/?utm_source=habrahabr&utm_medium=rss&utm_campaign=667336
Нажмите здесь для печати.