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]. Она превзошла конкурентов по ряду задач, включая обобщение текстов и ответы на вопросы.
Обучение и возможности
| Датасет | Кол-во токенов | Доля в обучении |
|---|---|---|
| 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 (см. таблицу):
| Название модели | Число параметров | Число слоёв | Размер слоя, 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
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].
- Сервис CodexDB использует GPT-3 для генерации SQL по текстовым вопросам[30].
- Jason Rohrer создал чат-бот «Project December» с использованием GPT-3[31].
- The Guardian опубликовала статью, полностью написанную GPT-3[32].
- GPT-3 ранее использовалась в AI Dungeon, но позже была заменена конкурентной моделью после смены политики OpenAI[33].