GPT-3
GPT-3 — это языковая модель OpenAI с 175 миллиардами параметров, выпущенная в 2020 году. Она обучалась выполнять задачи по примерам в промпте и подготовила почву для ChatGPT.
GPT-3 (генеративный предварительно обученный трансформер 3) — большая языковая модель (LLM) на 175 миллиардов параметров, которую OpenAI представила в мае 2020 года в статье «Языковые модели — это обучающиеся на нескольких примерах системы». Она была более чем в 100 раз крупнее предшественницы GPT-2, а её главным достижением стало обучение в контексте: получив описание задачи и несколько примеров в промпте, одна и та же замороженная модель могла переводить, отвечать на вопросы и выполнять арифметические действия без дообучения. OpenAI не публиковала веса GPT-3 и предлагала доступ к ней только через API, запущенный в июне 2020 года. Потомки GPT-3, дообученные следовать инструкциям, стали моделями GPT-3.5, на которых работал ChatGPT. В конце 2022 года семейство GPT стало известно широкой публике.
Архитектура и обучение#
GPT-3 — это трансформер только с декодером, построенный по той же схеме, что и GPT-2, но в большем масштабе. Самая крупная модель имеет 96 слоёв, ширину 12 288, 96 голов внимания размерностью 128 каждая и контекстное окно на 2 048 токенов; её слои чередуют плотное внимание и разреженное внимание с локально заданным окном. Модель использует ту же байтовую BPE-токенизацию, что и GPT-2, со словарём из 50 257 токенов. В статье описано обучение восьми моделей разных размеров — от 125 млн до 175 млрд параметров; каждую обучали на 300 млрд токенов из отфильтрованных данных Common Crawl (60% обучающей смеси), WebText2 (22%), двух книжных корпусов (по 8%) и англоязычной Википедии (3%), используя кластер с GPU V100, предоставленный Microsoft. Эти гиперпараметры определяют размер модели и стоимость её обучения:
# GPT-3 175B: layers, width, and context from the paper's Table 2.1, plus GPT-2's vocabulary
n_layers, d_model, vocab_size, context = 96, 12288, 50257, 2048
# Each decoder block holds 4 * d^2 attention weights and 8 * d^2 feed-forward weights (4x hidden width)
blocks = n_layers * 12 * d_model**2
embeddings = (vocab_size + context) * d_model # token and learned position embeddings
params = blocks + embeddings
print(f"Parameters: {params / 1e9:.1f} billion ({blocks / params:.1%} in the decoder blocks)")
# Training compute: about 6 FLOPs per parameter per token, over 300 billion training tokens
flops = 6 * params * 300e9
print(f"Training compute: {flops:.2e} FLOPs = {flops / (1e15 * 86400):,.0f} petaflop/s-days")Код выводит 174.6 миллиарда параметров, 99.6% которых находятся в блоках декодера, и 3.14e+23 FLOPs, или 3,637 петафлоп/с-дней; это соответствует указанным в приложении к статье 174 600 миллионам параметров и 3.14e+23 FLOPs.
Обучение на нескольких примерах и в контексте#
В статье оценивались три режима промптинга. В режиме zero-shot даётся только инструкция, в режиме one-shot добавляется один готовый пример, а режим few-shot включает столько примеров, сколько помещается в контекстное окно, обычно от 10 до 100. Качество росло как с размером модели, так и с числом примеров: на тесте ответов на вопросы TriviaQA модель на 175 миллиардов параметров набрала 64.3% в режиме zero-shot, 68.0% в one-shot и 71.2% в few-shot; последний результат превзошёл показатели дообученных систем в том же режиме без внешних источников. Промптинг few-shot сделал инжиниринг промптов стандартным способом использования LLM, а результаты подтвердили представление о законах масштабирования: более крупные модели лучше обучаются на контексте. Та же идея использования промпта вместо переобучения применяется к обнаружению объектов в YOLOE-26: его визуальные промпты задают класс рамками вокруг примеров на эталонном изображении, после чего модель находит объекты этого класса на новых изображениях без обновления весов.
От GPT-3 к ChatGPT#
В сентябре 2020 года Microsoft получила эксклюзивную лицензию на базовую модель GPT-3, а Codex от OpenAI — потомок GPT-3, дообученный на общедоступном коде, — стал основой первой версии GitHub Copilot в 2021 году. Базовая GPT-3 хорошо продолжала текст, но плохо следовала инструкциям, поэтому OpenAI применила обучение следованию инструкциям и обучение с подкреплением на основе обратной связи от людей (RLHF). Разметчики предпочитали выходы полученной модели InstructGPT на 1.3 миллиарда параметров выходам GPT-3 на 175 миллиардов параметров. Эта линейка привела к появлению GPT-3.5 и ChatGPT в ноябре 2022 года, а затем мультимодальной GPT-4 в марте 2023 года. В 2022 году Meta с OPT-175B и BigScience с BLOOM воспроизвели модели масштаба GPT-3 и открыли доступ к их весам.
GPT-3 и смежные модели#
- GPT-2: Предшественница 2019 года на 1.5 миллиарда параметров с той же архитектурой и токенизатором, примерно в сто раз меньшего размера и с контекстом на 1,024 токена.
- GPT-4: Преемница 2023 года, которая принимает изображения наряду с текстом и значительно надёжнее следует инструкциям после постобучения.
- BERT: Модель Google 2018 года только с кодировщиком; она читает текст в обоих направлениях и подходит для задач классификации и извлечения данных.
Ограничения#
В статье о GPT-3 авторы сами перечисляют многие слабые стороны модели. Она повторяется, теряет связность в длинных текстах и допускает очевидные ошибки в базовых представлениях о физическом мире. Как и более поздние LLM, она уверенно сообщает ложные факты — явление, которое теперь называют галлюцинациями. Авторы измерили смещения, связанные с полом, расой и религией, в сгенерированном тексте и обнаружили, что некоторые тестовые наборы бенчмарков попали в веб-данные для обучения. Её генерацию текста также было трудно отличить от человеческого письма: проверяющие распознавали новостные статьи объёмом 200 слов, написанные моделью на 175 миллиардов параметров, лишь в 52% случаев. 4 января 2024 года OpenAI закрыла исходные модели ada, babbage, curie и davinci в API, заменив их на babbage-002 и davinci-002.










