К книге
Токен за токеномГлава 7 Первая ставка OpenAI
60%
Глава 7 Первая ставка OpenAI
9

Наша работа состоит из двух существующих идей: трансформеров и предобучения без учителя.

Алек Радфорд не был похож на типичных молодых звёзд Кремниевой долины. Не было ни эффектной биографии, ни диплома Стэнфорда, ни послужного списка в крупных корпорациях. Он учился в Олин-колледже — небольшом инженерном учебном заведении в штате Массачусетс, известном среди узких специалистов по необычной программе обучения, но широкой публике неизвестном; колледж он так и не закончил, бросил в 2014 году. У него не было докторской степени. Он не был блестящим лектором. На фотографиях, которые редко попадают в прессу, он выглядит как тихий, сосредоточенный человек чуть за тридцать, в скромной футболке, не делающий ничего, чтобы привлечь к себе внимание.

В OpenAI Алек пришёл в 2016 году, через полгода после её основания. До этого он со студенческими друзьями сооснововал стартап Indico Data в Бостоне — компанию, которую они запустили ещё в общежитии Олин-колледжа и которая занималась прикладным машинным обучением для бизнес-задач. На собеседовании в OpenAI его взяли на относительно скромную позицию исследователя. Никто из руководства организации в тот момент не подозревал, что только что нанятый ими двадцатидвухлетний инженер за следующие шесть лет окажется ведущим автором четырёх или пяти статей, изменивших всю отрасль.

В первый год работы в OpenAI Алек делал вещи, далёкие от больших языковых моделей. Он занимался обучением без учителя в широком смысле: нейронными сетями, которые учатся выделять структуру из данных, не имея размеченных примеров. Он опубликовал работу о нейронной сети, выучившейся, читая отзывы покупателей с Amazon, представлять тексты в виде векторов; в этой сети, среди многих других тонкостей, нашёлся один нейрон, который при чтении отзыва точно отражал, был отзыв положительным или отрицательным. Никто этого нейрона специально не обучал; он сам нашёл эту структуру в данных. Работа эта прошла относительно тихо, но среди коллег Алек после неё стал известен своей способностью замечать закономерности, которых не видят другие.

А потом был июнь 2017 года.

Идея, родившаяся за выходные

Алек прочитал препринт «Attention Is All You Need» где-то через неделю после его публикации, внимательно, два-три раза. Потом сел и стал думать.

В исходной статье трансформер был представлен как архитектура для машинного перевода. Encoder — для исходного предложения, decoder — для целевого. Восемь авторов из Google продемонстрировали его на двух конкретных задачах, обе из области перевода. Это было разумно: трансформер у них и задумывался как улучшение для seq2seq, и логично было показать, что он улучшает именно ту задачу, для которой был сделан.

Но Алек прочитал статью под другим углом. Он подумал так. Если из трансформера убрать энкодер и оставить только декодер, что получится? Декодер — это, по сути, генеративная модель. Он умеет читать уже сгенерированную часть последовательности и предсказывать, что должно идти следующим. То есть он умеет делать ровно то, что в 1948 году делал Клод Шеннон со своей книжкой с полки, только в гораздо большем масштабе.

Дальше шла та же логика, которой Илья Суцкевер пользовался ещё с 2010 года. Если у нас есть архитектура, которая хорошо масштабируется, и есть очень много данных без разметки (а Интернет в 2017 году содержал триллионы слов английского текста), почему бы не обучить большую модель просто на задаче предсказывать следующее слово в произвольном тексте? Никакой ручной разметки. Никаких ярлыков. Просто читай Википедию, художественную литературу, новости, форумы, что угодно — и угадывай следующее слово.

А потом, после того как модель научится хорошо предсказывать следующее слово, её можно дообучить для конкретных задач: классификации текстов, поиск ответов на вопросы, определение схожести фраз. Дообучение требует относительно небольшого количества размеченных данных, потому что модель уже выучила большую часть того, что нужно знать о языке, на этапе предобучения.

Эта идея, в общем, была не новой. Двухстадийная схема предобучение плюс дообучение обсуждалась в литературе с середины двухтысячных. Что было новым, это сочетание: применить эту схему к трансформеру, обученному предсказывать следующий токен на действительно большом массиве текстов. Никто до этого не пробовал. Все существовавшие тогда модели работали либо с одной задачей и одним размеченным набором данных, либо с трансформером в его исходной encoder-decoder форме на задаче перевода.

Алек принёс свою идею на одно из внутренних собраний OpenAI. Илья её сразу одобрил. Илья к этому моменту уже два года искал, на чём именно показать гипотезу масштабирования; обработка естественного языка, до сих пор обходившая стороной нейронные сети, выглядела многообещающе.

BooksCorpus

Для обучения нужны были данные. Алек с Ильёй и ещё двумя коллегами — Картиком Нарасимханом и Тимом Салимансом — обсудили, что взять.

Часть Интернета? Технически возможно, но грязно: огромные куски этого массива будут низкого качества, спам, повторяющиеся шаблоны, машинно-генерированный мусор. Команда тогда решила, что нужен более чистый источник.

В академической литературе незадолго до этого появилось упоминание сборника под названием BooksCorpus. Его собрал в 2015 году исследователь Юкунь Чжу: семь тысяч художественных книг, опубликованных в основном самиздатом, из открытой части интернета. Около миллиарда слов. Книги были разнообразных жанров, написаны людьми на нормальном языке, имели последовательный сюжет, то есть требовали от читающего длительного удержания контекста. Это казалось хорошей основой.

Команда взяла BooksCorpus и принялась обучать трансформер.

Архитектура, к которой они пришли, была почти буквальной копией декодера из статьи Васвани и др., только с увеличенным числом слоёв. Двенадцать слоёв самовнимания вместо шести. Размер скрытого состояния — семьсот шестьдесят восемь. Всего сто семнадцать миллионов параметров. По меркам того времени модель была средней. По меркам ImageNet 2012 года — гигантской. По меркам же того, что появится через несколько лет, — почти игрушечной.

Обучение шло около месяца на восьми видеокартах. Алек контролировал процесс. К концу мая 2018 года модель была готова.

Что показала модель

Команда взяла обученную модель и стала тестировать её на двенадцати стандартных задачах обработки естественного языка. Категории были разные: текстовая семантическая близость, вопросно-ответные системы, классификация эмоциональной окраски, обнаружение текстовых вхождений. На каждой задаче модель дообучали в несколько проходов по конкретному размеченному набору, потом замеряли точность.

Из двенадцати задач модель показала новый state-of-the-art на девяти. Это был очень сильный результат. Особенно учитывая, что ни архитектура, ни обучающие данные не были разработаны специально для этих задач; всё это было универсальное языковое предобучение, которое потом просто «подкручивали» на каждую конкретную задачу за несколько часов.

Статью назвали Improving Language Understanding by Generative Pre-Training. В аннотации авторы скромно отметили, что их подход — это комбинация двух существующих идей: трансформеров и предобучения без учителя.

Самой модели они не дали никакого блестящего названия. В тексте статьи она называлась просто «наша модель». В фразе Generative Pre-Training были спрятаны три буквы, которые в дальнейшем станут чем-то вроде культурного маркера эпохи: GPT. Но в тот момент авторы об этом не думали. Это просто было аббревиатура из их собственного заголовка.

Статья появилась как препринт OpenAI 11 июня 2018 года. Через пять лет ровно — в июне 2023 года — её прямой потомок, ChatGPT, будет иметь сто миллионов активных пользователей в месяц, и слово GPT начнут произносить в новостях как имя нарицательное.

Тем временем в Google

Джейкоб Девлин, Kaggle Coffee Chat 2019

Параллельно с работой Алека в Google происходило нечто, очень похожее по духу, но идущее в другом направлении.

В одной из исследовательских групп Google под руководством Якова Девлина возникла такая идея. Что если, вместо того чтобы обучать трансформер предсказывать следующий токен в последовательности (как это делал GPT), использовать только энкодерную часть и обучать его на другой задаче — предсказывать пропущенные слова в середине предложения?

Идея на первый взгляд казалась мелким изменением. Но у неё было важное последствие. В отличие от автоматической прогрессии слева направо, при которой каждое слово видит только то, что было до него, в задаче с пропуском в середине каждое слово видит контекст и слева, и справа. То есть представление, которое выучивает модель, оказывается двунаправленным. Для задач, где нужно понять смысл целого предложения (например, классификации эмоций или поиска ответа в тексте), это потенциально мощнее.

Модель эту назвали BERT — Bidirectional Encoder Representations from Transformers. Девлин с коллегами опубликовали статью в октябре 2018 года, через четыре месяца после GPT-1. Результаты были ещё более впечатляющими: BERT побил state-of-the-art на одиннадцати из одиннадцати задач, на которых тестировался. Причём на нескольких — с большим отрывом.

В академическом сообществе эффект был мгновенный. BERT за несколько недель стал самой обсуждаемой моделью в обработке естественного языка. Google выложил веса модели в открытый доступ; за месяц её скачали и стали использовать тысячи компаний по всему миру. Для большинства специалистов BERT в конце 2018 года был просто новым стандартом: любая система, работающая с английским текстом, должна была использовать BERT-овские эмбеддинги.

GPT-1 на этом фоне выглядел блекло. Он был меньше (BERT-large имел триста сорок миллионов параметров против ста семнадцати у GPT-1), он работал на чуть других задачах, он принадлежал маленькой лаборатории в Сан-Франциско, а не корпоративному гиганту. В большинстве обзоров обработки естественного языка конца 2018 года GPT-1 упоминался коротко, BERT — обстоятельно.

Если бы в этот момент кто-нибудь спросил у среднего исследователя, какая из двух работ важнее, ответ был бы — BERT. Очевидно BERT. Без сомнения BERT.

Выбор OpenAI

GPT и BERT: два направления

В OpenAI после октябрьского BERT-а наступила пара недель внутренних дискуссий. Что делать дальше? Стоит ли переключаться на BERT-овскую парадигму, тем более что в Google открыли веса и поделились кодом? Или продолжать собственную линию, GPT-направление?

С чисто прагматической точки зрения логично было бы переключиться. BERT работал лучше на большинстве задач, был общепринятым стандартом, и идти против течения значило бы оставаться в роли догоняющего.

Но в OpenAI решили иначе. Логика этого решения, как её позже сформулировал Илья, была примерно такая. BERT — отличная архитектура для понимания текста. Он учится представлять смысл фразы в виде векторов. Но он не умеет порождать новый текст. Любая попытка заставить BERT написать связное предложение даёт довольно странный результат: модель умеет дополнить пропуск в фразе, но не умеет вести длинное повествование.

GPT, наоборот, спроектирован именно для порождения. Он каждый раз предсказывает следующее слово, и поэтому может, начиная с пустого места, написать связный текст любой длины. Это намного более общая задача, чем то, что делает BERT. И, что особенно важно, эту задачу, по мнению Ильи, можно бесконечно масштабировать. Чем больше данных, чем больше параметров, тем лучше модель будет предсказывать. И чем лучше она предсказывает, тем больше может породить.

Кроме того, в идее «модель, порождающая язык» было что-то философски привлекательное. Не маленький инструмент для конкретной задачи; а нечто вроде универсального синтезатора текста, который может приспособиться к чему угодно. Это резонировало с долгосрочной миссией OpenAI: построить AGI, общий искусственный интеллект.

Поэтому в OpenAI решили: продолжаем GPT. Будем масштабировать. Делать больше, обучать на большем массиве данных. Алек получил поддержку и начал готовить вторую итерацию.

В коридоре что-то происходит

Год 2018-й закончился для OpenAI странным эмоциональным состоянием. С одной стороны, у них впервые был результат, на который можно было всерьёз указать: GPT-1 работал, был опубликован, цитировался. С другой стороны, BERT-овская волна затмевала их, и в академических кругах их по-прежнему воспринимали как небольшую частную лабораторию с большими амбициями и средними результатами.

В феврале 2018 года из OpenAI ушёл Илон Маск. Формальная причина: возникающий конфликт интересов с его работой в Tesla, где разрабатывался автопилот с использованием нейронных сетей. Реальные причины, вышедшие наружу значительно позже, были сложнее. Маск, по слухам, хотел получить личный контроль над OpenAI и был раздражён, что Альтман и Брокман отказались ему его дать. Был один или несколько неприятных разговоров. Маск ушёл с поста сопредседателя совета. Финансирование с его стороны после этого продолжалось ещё некоторое время, но в значительно меньшем объёме, чем планировалось изначально.

Для OpenAI это создало финансовую дыру. К началу 2019 года стало понятно, что обещанного миллиарда никогда не будет; что денег, реально находящихся на счетах, хватит ещё на год-полтора при существующих темпах расходов; что нужно искать другие источники.

Альтман с Брокманом начали рассматривать варианты. Один из них был радикальным: переучредить организацию. Не как чистую некоммерческую структуру, а как нечто гибридное: некоммерческая родительская организация с дочерней коммерческой компанией, способной привлекать венчурные инвестиции в обмен на ограниченную прибыль. Это решение в марте 2019 года будет официально оформлено: OpenAI Inc. останется некоммерческой, но создаст OpenAI LP — структуру, в которую можно будет инвестировать деньги и получать с них доход, но не больше, чем стократный возврат. Сэм Альтман перейдёт из Y Combinator в OpenAI на полную ставку как CEO.

Эта реструктуризация в 2019 году будет с громким эхом обсуждаться в академических кругах. Многие воспримут её как предательство первоначальной миссии. Один из ведущих исследователей OpenAI, занимавшийся вопросами безопасности, позднее уволится из-за связанных опасений и через два года создаст другую лабораторию, противопоставленную OpenAI по тем же мотивам, по которым OpenAI когда-то противопоставлялась Google. Этого исследователя звали Дарио Амодей, и его историю мы расскажем в одной из дальнейших глав.

Но всё это будет потом. В декабре 2018 года, на пороге нового года, в небольшом офисе OpenAI в Сан-Франциско, в Мишн-Дистрикте, рядом с прачечной и пиццерией, Алек Радфорд сидел за компьютером и набрасывал планы новой модели. Архитектура та же. Обучающие данные — больше. Размер — увеличить раз в десять.

Через два с половиной месяца он покажет миру модель, которая поразит публику не своими бенчмарками, а тем, как она пишет фальшивые газетные статьи. Эту модель назовут GPT-2.

Предыдущая главаГлава 9 из 15Следующая глава