N+1
Третье поколение алгоритма OpenAI научилось выполнять текстовые задания по нескольким примерам
by Елизавета ИвтушокИсследователи из OpenAI представили GPT-3 — алгоритм, который может выполнять разные задания по написанию текста на основе всего нескольких примеров. В новой версии используется та же архитектура, что и в предыдущем алгоритме GPT-2, однако разработчики увеличили количество используемых в модели параметров до 175 миллиардов, обучив модель на 570 гигабайтах текста. В итоге GPT-3 может отвечать на вопросы по прочитанному тексту, писать стихи, разгадывать анаграммы, решать простые арифметические примеры и даже переводить — и для этого ей нужно немного (от 10 до 100) примеров того, как именно это делать. Подробное описание работы алгоритма исследователи выложили на arXiv.org.
Важное ограничение современных алгоритмов NLP (natural language processing) — зависимость от контекста: многие алгоритмы могут выполнять только те задачи, на выполнение которых они обучены. Например, если необходим алгоритм, который пишет стихи, его нужно обучить на большом корпусе стихов — желательно, в том стиле, в котором должно быть итоговое. Если обучение пройдет успешно, алгоритм сможет произвести что-то похожее на стих, но вот ответить на вопрос или составить список слов для кроссворда он уже не сможет.
То, сколько данных понадобится для обучения NLP-алгоритма конкретной задаче, напрямую зависит от того, как алгоритм предобучен: если системе хорошо известны все требования грамматики языка, а генерировать осмысленные фразы он умеет изначально, то конкретно для обучения какой-то отдельной задаче нужно не так много данных. Задача, поэтому, сводится к тому, чтобы сделать предобученный NLP-алгоритм универсальным — таким, чтобы он фактически умел делать все, используя для обучения минимальное количество данных.
Для решения этой задачи команда исследователей из компании OpenAI под руководством Тома Брауна (Tom Brown) представила GPT-3. Этот NLP-алгоритм основан на предыдущей версии, представленной в феврале прошлого года: GPT-2, одна из самых используемых и продвинутых NLP-моделей, обучена на 40 гигабайтах текста, а ее метазадача заключается в том, чтобы предсказывать следующее слово в тексте. Как и ее предшественник GPT, GPT-2 основана на архитектуре Transformer.
Для обучения алгоритма исследователи собрали датасет из 570 гигабайтов текста, в который были включены данные проекта Common Crawl, вся Википедия, два датасета с книгами и вторая версия датасета WebText, содержащая тексты с веб-страниц (первую версию WebText использовали для обучения GPT-2). Исследователи обучили восемь разных моделей GPT-3: они отличались количеством параметров, которые модель устанавливала в ходе обучения (количество параметров, в свою очередь, зависело от количества слоев — при этом архитектура использовалась одна и та же). Внутри самой простой модели использовали 125 миллионов параметров, а в финальной GPT-3 — 175 миллиардов.
Задача, которую GPT-3 нужно было выполнить, заключалась в ответе на вопрос или в выполнении задания. Это могло было быть, например, «написать стихотворение», «разобрать анаграмму» или «прочитать текст и ответить на вопрос». Предобученной GPT-3 для выполнения задания (всего заданий было 42), помимо формулировки задания, давали либо один пример, либо несколько примеров (классически от 10 до 100 — столько, сколько модели будет необходимо, хотя в некоторых заданиях модели хватало и пяти примеров).
Несмотря на то, что точность каждого способа обучения модели возрастала с количеством определенных в модели параметров, обучение по нескольким примерам оказалось самым эффективным: по всем 42 заданиям точность при 175 миллиардах параметров составила почти 60 процентов. Например, при обучении на 64 примерах из датасета TriviaQA, который создан для обучения моделей понимать текст и отвечать на вопросы по прочитанному материалу, GPT-3 со 175 миллиардами параметров оказалась точна в 71,2 процента случаев — это чуть точнее, чем модель SOTA, которая обучена исключительно отвечать на вопросы по TriviaQA.
По нескольким примерам предобученная GPT-3 может писать тексты на заданную тему, придумывать стихи в определенном стиле, разгадывать анаграммы, решать простые арифметические примеры, отвечать на вопросы по прочитанному тексту. Кроме того, модель может переводить на несколько языков: при сборе данных ученые не ограничили язык текстов, поэтому семь процентов всего датасета — тексты на иностранных языках, которые также используются моделью для перевода по нескольким примерам.
Как и в случае с GPT-2, исследователи в препринте высказали свое беспокойство по поводу того, что разработанная ими модель может быть использована во вред — поэтому ее они пока что не предоставили. На странице разработчиков на GitHub можно найти кусок датасета и примеры заданий, которые использовались в работе.
В последние годы OpenAI преуспел не только в NLP-алгоритмах: в прошлом году разработчики компании представили алгоритмы, которые могут придумывать новую музыку и собирать кубик Рубика.
Елизавета Ивтушок