GPT-3

GPT-3 — большая языковая модель, разработанная компанией OpenAI и выпущенная в 2020 году.

Как и её предшественник, GPT-2, GPT-3 реализует глубокую нейронную сеть на базе архитектуры трансформера только с декодером[2]. Эта архитектура, в отличие от рекуррентных и свёрточных сетей, основана на механизме внимания[3], что позволяет модели избирательно фокусироваться на наиболее значимых сегментах входного текста[4]. Модель содержит 175 миллиардов параметров, каждый из которых представлен с 16-битной точностью и занимает 2 байта (итого около 350 ГБ). Размер контекстного окна — 2048 токенов. Модель хорошо проявляет способности к zero-shot и few-shot обучению при выполнении разнообразных задач[2].

22 сентября 2020 года Microsoft объявила о получении эксклюзивной лицензии на GPT-3. Другие пользователи могут получать только доступ к публичному API, в то время как сам исходный код модели доступен только Microsoft[5].

Общие сведения
GPT-3
Тип большая языковая модель, генеративный предварительно обученный трансформер, фундаментальная модель
Автор OpenAI
Разработчик OpenAI
Первый выпуск 28 мая 2020
Последняя версия
Репозиторий github.com/openai/gpt-3
Лицензия проприетарная
Сайт openai.com/blog/openai-a…

Предпосылки

По данным The Economist, развитие алгоритмов, рост вычислительных мощностей и увеличение объёмов оцифрованных данных вызвали революцию в машинном обучении. Технологии 2010-х годов привели к «быстрому росту возможностей в задачах», включая обработку языка[6].

Программное обеспечение обучается на тысячах или миллионах примеров по принципу, схожему с нейронной архитектурой мозга[6]. Одна из применяемых архитектур в обработке естественного языка — глубокая нейронная сеть на базе трансформера, предложенного в 2017 году[7]. Современные NLP-системы способны анализировать, организовывать, связывать и сопоставлять текстовые данные, а также отвечать на вопросы[8].

11 июня 2018 года исследователи OpenAI опубликовали статью, представив первую модель генеративного предварительно обученного трансформера (GPT) — разновидность генеративных больших языковых моделей на базе архитектуры трансформер, сначала предварительно обучаемых на колоссальных разнообразных корпусах данных, а затем дообучаемых с учётом специфических задач. Ранее лучшие модели NLP основывались на обучении с учителем и требовали больших объёмов вручную размеченных данных, что существенно ограничивало масштаб[2]. Первая модель получила обозначение «GPT-1», затем в феврале 2019 года была представлена «GPT-2» с увеличенным в 10 раз количеством параметров и размером датасета (1,5 млрд параметров, обучалась на 8 миллионах интернет-страниц)[9].

В феврале 2020 года Microsoft представила Turing Natural Language Generation (T-NLG) — на тот момент крупнейшую языковую модель с 17 миллиардами параметров[10]. Она превзошла конкурентов по ряду задач, включая обобщение текстов и ответы на вопросы.

Обучение и возможности

Объёмы обучающих данных GPT-3
Датасет Кол-во токенов Доля в обучении
Common Crawl 410 млрд 60 %
WebText2 19 млрд 22 %
Books1 12 млрд 8 %
Books2 55 млрд 8 %
Википедия 3 млрд 3 %

28 мая 2020 года команда из 31 инженера и исследователя OpenAI опубликовала препринт, описывающий принципы, архитектуру и достижения GPT-3 — модели третьего поколения[11]. Объём модели увеличился по сравнению с GPT-2 более чем в 100 раз[12], что сделало её крупнейшей неразреженной языковой моделью своего времени[13]. Структурно GPT-3 похожа на предшественников, а рост точности объясняется увеличением числа параметров[14]. GPT-3 по своей ёмкости в 10 раз превышала Microsoft Turing NLG — следующее по размеру решение на тот момент[11].

По оценкам LambdaLabs, гипотетически обучение GPT-3 на одном GPU в 2020 году заняло бы 355 лет и стоило около 4,6 млн долларов США[15] (на практике используются массово-параллельные вычисления).

60 % веса объёма тренировочного датасета GPT-3 составил фильтрованный компонент Common Crawl, насчитывающий 410 млрд токенов (использована MinHashLSH поверх Apache Spark). Также использованы WebText2 (19 млрд токенов, 22 %), Books1 (12 млрд, 8 %), Books2 (55 млрд, 8 %) и Википедия (3 млрд, 3 %). Всего модель обучена на сотнях миллиардов слов и способна генерировать и интерпретировать код на CSS, JSX, Python и других языках.

Масштаб обучающей выборки позволяет использовать GPT-3 без дополнительного обучения для выполнения различных языковых задач. Тем не менее, в обучающих данных встречается токсичный язык, и модель может генерировать подобный текст. Исследование Университета Вашингтона показало, что уровень токсичности GPT-3 сопоставим с другими крупными языковыми моделями (GPT-2 и CTRL). OpenAI реализовала ряд методов для снижения токсичного вывода; итоговая токсичность ниже, чем у GPT-1, но выше по ряду показателей, чем у CTRL Wiki (модель, основанная только на данных Википедии)[16].

11 июня 2020 года OpenAI открыла пользователям доступ к API GPT-3 для изучения её возможностей[17][18]. Согласно отзывам ранних пользователей с приватным доступом API GPT-3, модель способна выдавать связный и осмысленный текст с минимальными подсказками[19]. В эксперименте, где 80 человек должны были отличить короткие (~200 слов) тексты, написанные GPT-3 и людьми, точность угадывания составила лишь 52 % — немногим выше случайного выбора.

18 ноября 2021 года OpenAI объявила о снятии очереди на доступ к API[20] и внедрила инструмент для модерации сгенерированных текстов. С января 2022 года по умолчанию используются модели семейства InstructGPT, которые лучше следуют инструкциям пользователя и меньше генерируют нежелательного (например, вымышленных) или токсичных данных[21].

Семейство моделей GPT-3

Существует множество моделей GPT-3, отличающихся размером и задачами. В первоначальной статье OpenAI приводились восемь основных конфигураций GPT-3 (см. таблицу):

Характеристики моделей GPT-3
Название модели Число параметров Число слоёв Размер слоя, d_model Кол-во голов внимания Размер головы внимания Batch Size Learning Rate API-имя
GPT-3 Small 125 млн 12 768 12 64 0,5 млн 6,0×10⁻⁴
GPT-3 Medium 350 млн 24 1024 16 64 0,5 млн 3,0×10⁻⁴ ada
GPT-3 Large 760 млн 24 1536 16 96 0,5 млн 2,5×10⁻⁴
GPT-3 XL 1,3 млрд 24 2048 24 128 1 млн 2,0×10⁻⁴ babbage
GPT-3 2.7B 2,7 млрд 32 2560 32 80 1 млн 1,6×10⁻⁴
GPT-3 6.7B 6,7 млрд 32 4096 32 128 2 млн 1,2×10⁻⁴ curie
GPT-3 13B 13 млрд 40 5140 40 128 2 млн 1,0×10⁻⁴
GPT-3 175B 175 млрд 96 12288 96 128 3,2 млн 0,6×10⁻⁴ davinci

Часть крупных моделей доступны через API (medium, xl, 6.7B, 175B), и в OpenAI они носят имена ada, babbage, curie, davinci соответственно. Сопоставление размеров и API-имён изначально было раскрыто сторонними исследователями[22] и позже подтверждено OpenAI[23].

Модель Параметров Описание Линейка
ada 350 млн Для простейших задач, самая быстрая модель, минимальная стоимость Base GPT-3
babbage / babbage-002 1,3 млрд Для типовых задач, очень быстрый отклик, невысокая стоимость Base GPT-3
curie 6,7 млрд Высокие возможности, быстрее и дешевле, чем Davinci Base GPT-3
davinci / davinci-002 175 млрд Самая мощная базовая модель GPT-3, максимальное качество Base GPT-3
text-ada-001 350 млн Для простых задач; быстрая модель, минимальная стоимость InstructGPT
text-babbage-001 1,3 млрд Простые задачи, быстрый отклик, невысокая стоимость InstructGPT
text-curie-001 6,7 млрд Высокие возможности, быстрее и дешевле, чем Davinci InstructGPT
text-davinci-001 175 млрд Старая версия самой мощной модели GPT-3; поддерживает меньше контекста InstructGPT
text-davinci-002 / code-davinci-002 не раскрыто Похожие возможности, что и text-davinci-003, но обучена через супервизированное дообучение GPT-3.5
text-davinci-003 не раскрыто Любые языковые задачи, поддерживает длинный вывод, качественно следует инструкциям GPT-3.5
gpt-3.5-turbo / gpt-3.5-turbo-instruct / gpt-3.5-turbo-16k не раскрыто Самая быстрая и эффективная модель GPT-3.5, оптимизирована для чата GPT-3.5

GPT-3.5

GPT-3.5 — подкласс моделей GPT-3, выпущенный компанией OpenAI в 2022 году.

15 марта 2022 года OpenAI представила новые версии GPT-3 и Codex (text-davinci-002, code-davinci-002) с поддержкой редактирования и вставки текста через API[24]. Они были обучены на данных до июня 2021 года. 28 ноября 2022 года была представлена text-davinci-003. 30 ноября 2022 года эти модели были объединены под общим названием GPT-3.5, тогда же появилась ChatGPT, которая основана на модели семейства GPT-3.5[25]. OpenAI официально отделяет GPT-3.5 от GPT-3.

Модели GPT-3.5:

  • Chat — gpt-3.5-turbo
  • Генерация текста — text-davinci-003, text-davinci-002

GPT-3.5 с доступом к интернету

10 апреля 2023 года компания OpenAI представила вариант GPT-3.5 с поддержкой поиска (GPT-3.5 with Browsing, ALPHA). Эта версия строится на успехах text-davinci-002 и code-davinci-002 и обеспечивает доступ к актуальной информации в интернете в момент работы модели.

Применение

  • Модель Codex на базе GPT-3 легла в основу GitHub Copilot, инструмента автодополнения и генерации кода в IDE и редакторах[26][27].
  • GPT-3 интегрирована в продукты Microsoft для трансляции естественного языка в код[28][29].
  • Сервис CodexDB использует GPT-3 для генерации SQL по текстовым вопросам[30].
  • Jason Rohrer создал чат-бот «Project December» с использованием GPT-3[31].
  • The Guardian опубликовала статью, полностью написанную GPT-3[32].
  • GPT-3 ранее использовалась в AI Dungeon, но позже была заменена конкурентной моделью после смены политики OpenAI[33].

Примечания