За последние несколько лет трансферное обучение дало толчок новой волне state-of-the-art результатов в обработке естественного языка (NLP). Эффективность трансферного обучения заключается в предварительном обучении модели на большом доступном неразмеченном корпусе текстов для одной из задач самообучения (self-supervised learning): например, языкового моделирования или заполнения пропусков в тексте. Затем модель может быть дообучена на меньших наборах данных и зачастую показывает (значительно) лучшие результаты, чем в случае обучения на одних только размеченных данных. Об успехах трансферного обучения стало известно еще в 2018 году, когда были представлены такие модели, как GPT, ULMFiT, ELMo, BERT, а в 2019 году успешность такого подхода стала еще более очевидна с разработкой новых моделей вроде XLNet, RoBERTa, ALBERT, Reformer и MT-DNN. Скорость, с которой эта сфера развивается, не позволяет, однако, с уверенностью сказать, какие из разработок оказали наибольшее влияние и насколько эффективно их можно комбинировать. В статье «Изучение ограничений трансферного обучения в объединенном text-to-text Трансформере» представлено масштабное эмпирическое исследование, направленное на определение наилучших методов трансферного обучения и применение полученных инсайтов для создания новой модели, т.н. T5 (Text-To-Text Transfer Transformer). Также был предложен новый открытый набор данных для обучения – Colossal Clean Crawled Corpus (C4). Модель Т5, предобученная на корпусе С4, показывает наилучшие результаты во многих NLP бенчмарках, обладая, при этом, достаточной гибкостью для тонкой настройки под конкретные задачи обработки текстов. Для того, чтобы полученные результаты могли быть расширены и воспроизводимы, авторы представили код и предобученные модели, наряду с Colab-ноутбуком для знакомства с ними. Наряду с Т5 авторы предлагают переосмыслить все NLP задачи и представить их в формате text-to-text, где вход и выход модели представляются текстовыми строками, в отличие от моделей типа BERT, подающие на выход или метку класса, или фрагмент входной последовательности. Предложенный же фреймворк позволяет использовать одну и ту же модель, функцию потерь и гиперпараметры для любой задачи NLP, включая машинный перевод, суммаризацию документов, вопросно-ответные системы, задачу классификации (например, анализ тональности). Модель Т5 можно использовать даже для задачи регрессии, обучив ее предсказывать строковое представление числа вместо самого числа.  Диаграмма предложенного фреймворка. Для каждой из рассматриваемых задач на вход модели подается текст; обучение состоит в генерации некоторого целевого текста. Это позволяет использовать одни и те же модель, функцию потерь и гиперпараметры для решения различных задач, включая перевод (зеленым), лингвистическую состоятельность (красным), семантическую близость предложений (желтым), суммаризацию документа (синим). Это также позволяет иметь стандартный набор тестов для методов, рассмотренных в эмпирическом исследовании. Важная составляющая трансферного обучения – это наличие неразмеченного набора данных, используемого для предварительного обучения. Для того, чтобы точно измерить эффективность масштабирования предварительного обучения, необходимо иметь не просто качественные и разнообразные данные, но и большие их объемы. Существующие наборы данных не соответствуют сразу всем этим трем критериям: например, тексты из Википедии обычно высокого качества, но довольно однообразны стилистически и имеют достаточно скромный общий объем. В то же время тексты Common Crawl имеют просто огромный размер и очень разнообразный состав, но их качество оставляет желать лучшего. Для того, чтобы удовлетворить требованиям, описанным выше, был разработан Colossal Clean Crawled Corpus (C4) – вычищенная версия Common Crawl, объем которой на два порядка превышает объем Википедии. Процесс очистки набора данных включал удаление дубликатов, неполных предложений, а также неприемлемых или мусорных текстов. Подобная фильтрация способствовала получению лучших результатов в прикладных задачах, в то время как большой объем позволил увеличить размер модели без риска переобучения. С4 доступен в TensorFlow Datasets. С помощью предложенного T5 text-to-text фреймворка и нового набора данных для предварительного обучения С4 авторы смогли исследовать довольно большое количество идей и методов, предложенных в сфере трансферного обучения в NLP в последние несколько лет. Все детали исследования можно найти в соответствующей статье, включая эксперименты с: Для нахождения существующих ограничений трансферного обучения в NLP авторы проделали финальный набор экспериментов, в которых они объединили все лучшие методы, определенные в их систематическом исследовании, и масштабировали их подход с помощью TPU-ускорителей Google Cloud. Крупнейшая модель имела 11 миллиардов параметров и достигла уровня state-of-the-art в рамках бенчмарков GLUE, SuperGLUE, SQuAD и CNN/Daily Mail. Особенно неожиданным результатом оказалось достижение околочеловеческого уровня в понимании естественного языка в рамках бенчмарка SuperGLUE, который разрабатывался намеренно сложным для моделей машинного обучения, но легким для человека. Т5 достаточно гибка в применении для решения различных задач помимо тех, что указаны в статье, и зачастую справляется с этим с большим успехом. Ниже рассматривается использование Т5 для двух новых задач: ответы на вопросы без предварительного обучения на специальном корпусе вопросов-ответов (Closed-book question answering) и генерация текста для заполнения пропусков переменной длины. Один из вариантов использования text-to-text фреймворка заключается в понимании прочитанного текста: модели подается некоторый контекст и вопрос, ответ на который ей необходимо научиться находить в заданном контексте. Например, можно подать на вход модели статью из Википедии об урагане Конни вместе с вопросом: «Когда произошел ураган Конни?». После чего модель будет учиться находить в статье нужную дату: «3 августа 1955 года». Этот подход помог получить наилучшие результаты на стендфордском вопросно-ответном датасете (SQuAD). Как продемонстрировано в Colab-ноутбуке и сопровождающей статье, авторы обучают Т5 отвечать на тривиальные вопросы в более сложной реализации, когда у модели нет доступа к внешнему знанию. Другими словами, чтобы ответить на вопрос, Т5 может использовать только те знания, которые хранятся в параметрах, полученных во время предварительного обучения без учителя. Это можно рассматривать как ограниченный вариант общей вопросно-ответной системы.  Во время предварительного обучения Т5 учится заполнять очищенные слоты текста (отмечено как <M>) в текстах корпуса С4. Для применения Т5 для задачи ответа на общие вопросы была проведена тонкая настройка модели для получения ответа без сопровождения дополнительного контекста или прочей информации. Это заставило Т5 отвечать на вопросы на основе тех «знаний», которые она получила в ходе предварительного обучения.

Т5 на удивление хорошо справляется с этой задачей. Модель с 11 миллиардами параметров генерирует точный текст ответа в 50.1%, 37.4% и 34.5% случаев в заданиях TriviaQA, WebQuestions и Natural Questions соответственно. Для сравнения: команда разработчиков Т5 играла против модели в викторине Pub trivia challenge и проиграла! Попробуйте сами, нажав на анимацию ниже.




 Большие языковые модели вроде GPT-2 превосходно справляются с задачей генерации довольно реалистично выглядящих текстов, так как они обучены на предсказание следующего слова поданной на вход последовательности. Это дало толчок многочисленным необычным приложениям вроде Talk To Transformer или текстовой игры AI Dungeon. Задача предварительного обучения Т5 сводится скорее к задаче генерации текста для заполнения пропусков, когда модель должна предсказать пропущенное слово в специально «испорченном» фрагменте текста. Это, в свою очередь, является обобщением задачи продолжения последовательности, т.к. «пропуски» могут появиться также и в конце предложения. Чтобы извлечь практическую пользу из подобного предварительного обучения, было разработано задание «размерного» заполнения пропусков («sized fill-in-the-blank»), в котором модель должна подставить вместо пропуска заданное число слов. Например, если мы передадим модели на вход предложение «I like to eat peanut butter and _4_ sandwiches», мы обучим ее вставлять в пропуск около 4 слов. После тонкой настройки Т5 на выполнение этого задания с использованием корпуса С4 итоговый выход стал достаточно реалистичным. Особенно любопытно смотреть, как модель подгоняет свои предсказания к заданному числу пропущенных слов. Например, при подаче такого входного предложения: «I love peanut butter and _N_ sandwiches», где N – изменяемый параметр, выход модели будет следующим:  Авторам не терпится посмотреть, как разработчики смогут использовать результаты их исследования, код и предобученные модели для быстрого старта своих собственных проектов. Изучите Colab-ноутбук, чтобы начать работать с моделью, и делитесь результатами в Twitter.  ML Engineer