Посмотрите, почему эта языковая модель с открытым исходным кодом так популярна, как она работает и насколько просто ее обучать на одной системе Cerebras.

Несколько лет назад мы считали авторегрессионные модели обработки естественного языка со 100 миллионами параметров огромными. Теперь Cerebras делает не только возможным, но и простым непрерывное обучение и точную настройку мощной модели GPT-J с открытым исходным кодом с шестью миллиардами параметров на одном устройстве. В этой статье я расскажу, почему эти модели так интересны, как работает GPT-J и насколько просто его обучить с помощью одной системы Cerebras CS-2.

Возникновение больших языковых моделей

За последние несколько лет мы наблюдаем экспоненциальный рост моделей обработки естественного языка (NLP), обучаемых в режиме самоконтроля с огромными объемами неразмеченных данных (рис. 1). От GPT-1 до BERT до GPT-2 до T5, GPT-3, GPT-J, GPT-NeoX и MT-NLG количество параметров увеличилось с сотен тысяч до сотен миллиардов. Эти модели демонстрируют способность удивительно хорошо выполнять широкий спектр задач NLP, таких как обобщение длинных документов, анализ настроений и ответы на вопросы, и это лишь некоторые из них.

Типичный подход к тому, чтобы небольшие модели (такие как BERT) хорошо справлялись с различными задачами, состоит в том, чтобы разбить обучение на два этапа: 1) предварительное обучение общей модели с очень большим неаннотированным набором данных и 2) точная настройка задачи. -специфическая модель с небольшим набором данных, помеченным для конкретной задачи. На первом этапе модель подвергается воздействию большого количества письменных текстов, чтобы научиться понимать контекст, отношения между словами и семантику каждого данного слова в предложении. Во время этого самоконтролируемого предварительного обучения веса модели корректируются для общего понимания текста, поскольку модель учится сопоставлять каждое слово в предложении с его контекстно-зависимым представлением.

Затем, на этапе тонкой настройки, модель для конкретной задачи может быть построена поверх предварительно обученной модели без существенных модификаций модели и с ограниченным объемом размеченных данных. Одну и ту же предварительно обученную модель можно использовать для получения множества различных моделей для конкретных задач.

Было показано, что экстремально масштабные модели с сотнями миллиардов параметров достаточно хорошо справляются с различными задачами даже без второго этапа тонкой настройки, в так называемой нулевой настройке, когда модель тестируется на новом задача, которую модель раньше не видела. Но эти экстремально масштабные модели чрезвычайно дороги и сложны в обучении и требуют очень больших чистых наборов данных, т. е. неверных, поврежденных, неправильно отформатированных, дублирующих или неполных данных. Для обучения этим моделям требуются ресурсы масштаба суперкомпьютера с тысячами графических процессоров, подключенных через высокоскоростные сетевые соединения. Лишь немногие организации могут позволить себе (и умеют) обучать эти экстремально масштабные модели с нуля. И до недавнего времени, после обучения, эти массивные модели (такие как OpenAI GPT-3) были доступны миру только для предсказаний как услуга через облако. Было невозможно получить предварительно обученные веса для собственной настройки и использования. Выполнение логических выводов с использованием этих предварительно обученных моделей общего назначения в облаке недешево и не гарантирует хорошего выполнения новой задачи с проприетарными данными, специфичными для предметной области. Это также связано с дополнительными рисками, такими как потенциальная утечка данных и IP-адреса при использовании с конфиденциальными данными.

Именно тогда на помощь пришли разработки с открытым исходным кодом, такие как GPT-J от EleutherAI. EleutherAI выпустила тренированные веса для модели GPT-J в 2021 году, и с тех пор GPT-J привлек значительное внимание как в промышленности, так и в научных кругах. Хотя GPT-J имеет всего 6B параметров по сравнению с 175B GPT-3, его доступность имела огромное значение. Было показано, что после точной настройки GPT-J может выполнять ряд задач лучше, чем GPT-3 без точной настройки. Хотя GPT-3 был обучен на очень большом корпусе, он по-прежнему универсален — ему не хватает знаний в конкретных областях, и он не так эффективен для данных, отличных от английского. Таким образом, вполне логично, что можно получить лучшую модель для конкретной задачи, точно настроив хотя и меньшую, но все же массивную модель, такую ​​​​как GPT-J. Кроме того, обученная модель GPT-J, поскольку она меньше, требует меньше вычислительных ресурсов при использовании для логического вывода. Самое главное, доступные предварительно обученные веса дают пользователю полную свободу и гибкость для настройки этой модели в соответствии с конкретными потребностями и использования локальных версий модели вместо отправки данных вывода в облако.

GPT-J подробнее

Давайте углубимся в GPT-J. Это авторегрессивная языковая модель, похожая на GPT. GPT-подобный означает, что, как и GPT, он состоит из блоков внимания и прямой связи, и, как и GPT, он является авторегрессивным — учитывая часть предложения (или просто специальный токен, обозначающий начало предложения), модель предсказывает следующие токены, один одним. Каноническая конфигурация модели GPT-J-6B имеет параметры 6B и является одной из крупнейших открытых альтернатив GPT-3 OpenAI. GPT-J-6B был обучен EleutherAI на The Pile, наборе данных объемом 800 МБ, тщательно собранном и отобранном из большого количества текстовых наборов данных из разных доменов.

Конструкция модели GPT-J аналогична модели GPT-3 с некоторыми заметными отличиями (рис. 2):

  • GPT-J представляет архитектуру параллельного декодера, когда уровни внимания и прямой связи в декодере вычисляются параллельно, а затем результаты добавляются, в отличие от их последовательного вычисления путем подачи вывода внимания на уровень прямой связи, как в стандартных моделях преобразователя. Это архитектурное изменение было введено EleutherAI для достижения более высокой пропускной способности при распределенном обучении, поскольку оно уменьшает связь. При традиционном дизайне остаточное внимание с op-sharding требует одного all-reduce в прямом проходе и одного в обратном проходе [i]. Вычисляя уровни внимания и прямой связи параллельно, результаты могут быть уменьшены локально перед выполнением единственного сокращения всех значений. Это приводит к увеличению пропускной способности в среднем на 15 % на традиционном оборудовании без заметного влияния на конвергенцию.
  • В модели GPT-J используются вложения с поворотным положением, что, как показано, приводит к лучшему качеству модели в задачах с длинными текстами [ii]. Мы используем 25% поворотные вложения, поскольку показано, что они обеспечивают хороший баланс между вычислительной эффективностью и производительностью модели (сходимость) [iii].
  • GPT-J использует интенсивное внимание вместо эффективного разреженного внимания, используемого в GPT-3. EleutherAI заявил, что интенсивное внимание использовалось для простоты, поскольку редкое внимание не могло бы значительно улучшить пропускную способность в этом масштабе.

Хотя большинство из этих вариантов дизайна были сделаны с единственной целью повышения пропускной способности на традиционном оборудовании и, как ожидается, не повлияют на пропускную способность на Cerebras CS-2, мы воспроизвели дизайн GPT-J в нашей реализации, чтобы иметь возможность использовать доступные обученные веса. .

Случаи использования

Как упоминалось выше, массовые авторегрессионные языковые модели в целом и GPT-J в частности можно использовать для самых разных приложений. Некоторые важные из них

  • Подведение итогов
  • Ответ на вопрос
  • Автокоррекция и автодополнение
  • Анализ настроений
  • Чат-боты
  • Извлечение отношения

Рассмотрим подведение итогов более подробно.

Подведение итогов

Все труднее и труднее успевать за постоянно растущими объемами текстовых данных. Arxiv утверждает, что ежедневно получает до 1200 новых материалов, ежедневно публикуется множество новостных статей, миллионы обычных людей публикуют твиты и сообщения в блогах, также ежедневно. А во многих областях каждая деталь имеет значение, поэтому мы создаем длинные документы и отчеты, чтобы зафиксировать все эти детали, например, отчеты о клинических исследованиях, которые обычно очень длинные, содержат много подробностей о методах и результатах испытаний. или в юридических документах. Наличие машины, способной производить точные, грамматически правильные и связные короткие версии одного или нескольких документов, действительно может помочь ориентироваться в этом потоке данных во многих областях. GPT-J способен к абстрактному обобщению, предварительно обученная модель имеет свои ограничения (длина документа, который можно передать в модель, является одним из них), поэтому очень важна возможность тонкой настройки для более длинных документов и для конкретной области.

Точная настройка GPT-J впервые стала проще благодаря Cerebras

С GPT-J у нас есть доступные веса и возможность настраивать модель для конкретных областей и задач. Точная настройка требует гораздо меньше вычислительных затрат, чем предварительное обучение — обычно вы выполняете точную настройку на гораздо меньшем наборе данных, поэтому требования к вычислительным ресурсам для точной настройки составляют ничтожную долю требований для предварительного обучения. Тем не менее, это все еще громоздко и сложно для 6B-параметрической модели. Эти крупномасштабные модели GPT обычно обучаются с помощью оптимизатора Адам, который хранит два термина, импульс и дисперсию, для каждого параметра модели, а при обучении со смешанной точностью обычно требуется всего 16 байтов на параметр для хранения весов модели, градиентов и состояния оптимизатора. С параметрами 6B получается 96GB. Это означает, что эта модель не вписывается в память современных ускорителей и требует нескольких ускорителей и сложного модельно-параллельного распределения только для того, чтобы загрузить модель для непрерывного обучения или тонкой настройки.

Благодаря нашему новаторскому режиму выполнения потоковой передачи веса Cerebras CS-2 не имеет таких ограничений. С нашей реализацией GPT-J теперь легко загрузить общедоступную контрольную точку GPT-J и настроить эту модель на одном CS-2 с пользовательским набором данных для конкретной области или задачи.

Майкл Джеймс, главный архитектор Advanced Technologies и соучредитель Cerebras, дает отличное объяснение того, как наша технология потоковой передачи веса использует огромную вычислительную мощность разреженных тензоров системы CS-2 в этой записи блога. Короткая версия заключается в том, что он выворачивает наш обычный режим выполнения наизнанку. Вместо того, чтобы хранить веса модели в нашем Wafer-Scale Engine, мы вместо этого сохраняем активации и обрабатываем один слой за раз. Это позволяет нам обрабатывать более миллиарда параметров на слой. Мы знаем, что этот метод масштабируется — линейно! — для обработки моделей с сотнями триллионов параметров, поэтому у нас есть архитектура, готовая ко всему, что исследователи ИИ могут предложить нам в течение многих лет.

Заключение

Всего несколько лет назад современные авторегрессионные модели обработки естественного языка имели 100 миллионов параметров, и мы думали, что это очень много. Теперь Cerebras делает не только возможным, но и легким непрерывное обучение и точную настройку мощной модели GPT-J с открытым исходным кодом с шестью миллиардами параметров в одной системе CS-2 с использованием нашей революционной потоковой передачи веса. режим исполнения.

Если вы думали о том, что GPT-J может сделать для вашей работы, но вас отталкивали непреодолимые вычислительные потребности в традиционной инфраструктуре, сейчас самое время связаться с нами. Небо это предел!

Ресурсы

Документация

Похожие статьи

(Репост из Блога Церебра)