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

8 сентября 2020 года статья в Guardian была написана роботом по имени GPT-3. Они попросили робота написать статью о том, почему люди не должны бояться роботов и искусственного интеллекта. Редакторы-люди написали введение к статье и поручили GPT-3 итеративно генерировать следующие возможные предложения. Наконец, редакторы Guardian собрали эти фразы в статью, которую вы можете прочитать здесь.

В этой статье мы обсудим преобразования в области обработки естественного языка, которые позволили роботу писать текст на естественном языке, который трудно отличить от человеческого письма. Мы начнем наше путешествие с персептронов, которые заложили математические основы нейронных сетей.

Далее мы обсудим сверточные нейронные сети (CNN), которые представляют собой современные модели для классификации изображений, и сети с долговременной кратковременной памятью (LSTM), используемые основными речевыми движками. Затем мы рассмотрим модели на основе Transformer, которые установили новые стандарты для задач на естественном языке. Наконец, мы закончим тем, как GPT-3 сочетает в себе обучение предыдущих эталонных моделей и куда это может привести нас в будущем.

Но прежде чем мы начнем, давайте быстро обсудим, что такое GPT-3 и как он работает.

Что такое GPT-3?

Generative Pre-trained Transformer 3 (GPT-3) — это современная языковая модель со 175 миллиардами обучаемых параметров, созданная OpenAI в 2020 году. Обычно она работает, принимая входной текст, который он использует для прогнозирования и генерации. соответствующий контент. Чтобы дать вам реальный пример, мы использовали игровую площадку GPT-3, чтобы объяснить, что такое GPT-3, предоставив ей следующий текст:

Вот результат:

«GPT-3 — это модель обработки естественного языка (NLP), которая использует глубокое обучение для создания текста, похожего на человеческий. Он был создан OpenAI, исследовательской лабораторией искусственного интеллекта».

Довольно круто, правда?

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

В марте 2022 года модели GPT-3 стали более мощными благодаря возможности предлагать правки и вставки вместе с завершением текста. OpenAI планирует вскоре запустить модель GPT-4, которая, как ожидается, будет иметь 100 триллионов обучаемых параметров.

Теперь, когда вы знакомы с GPT-3 и тем, как он работает, давайте взглянем на персептроны.

Персептроны: обучение на цифрах

Персептрон — это алгоритм линейного бинарного классификатора, который является наименьшим неделимым строительным блоком глубокой нейронной сети (ГНС). Его также называют искусственным нейроном, поскольку он имитирует функциональность биологического нейрона.

Летом 1969 года была впервые опубликована книга под названием Персептроны: введение в вычислительную геометрию, посвященная Фрэнку Розенблатту, который построил первую модель персептрона в 1958 году. Книга представила основные математические концепции ГНС и определила алгоритм персептрона как параллельный алгоритм, способный принимать решения путем линейного объединения взвешенных входных данных.

Как работают персептроны:

Модель персептрона состоит из следующих трех компонентов:

  1. Смещение (w0): константа, которая сдвигает границу решения от начала координат, позволяя персептронам возвращать ненулевые выходные данные, когда все входные данные равны нулю.
  2. Веса (w1 и w2): обучаемые параметры, значения которых инициализируются случайным образом и корректируются в течение каждой эпохи обучения в случае ошибки.
  3. Функция активации (шаговая функция): сопоставляет взвешенную сумму входных данных с выходными в виде логического флага. Выбор функции позволяет настроить форму границы решения.

Чтобы понять перцептроны, рассмотрим задачу построения логического оператора И для двух бинарных входных данных: x1 и x2. Выход персептрона должен быть 1, только если оба входа равны 1. Если любой из входов равен 0, персептрон должен вывести 0. Поскольку это линейно разделимая задача, персептрон может решить ее, изучив оптимальное смещение (w0) и веса (w1 и w2), представляющие границу решения y как: w0 + w1*x1 + w2*x2.

Ступенчатая функция применяется к взвешенной сумме входных данных для генерации выходных данных персептрона в виде: step(y) = {1 if (y > t) else 0}, где t — пороговое значение. Только если взвешенная сумма выше настроенного порога, то выход равен 1; в противном случае это 0.

Персептроны учатся методом проб и ошибок. Предполагая, что веса и пороговое значение инициализированы как 0,5, персептрон дает правильные результаты для входных данных (0, 0) и (1, 1), но неверные результаты для (1, 0) и (0, 1) следующим образом:

Given inputs (0, 0) => y = (0.5 + 0.5*0 + 0.5* 0) = 0.5 
                    => output = step(0.5) = 0 (correct) 
Given inputs (0, 1) => y = (0.5 + 0.5*0 + 0.5* 1) = 1 
                    => output = step(1) = 1 (incorrect)
Given inputs (1, 0) => y = (0.5 + 0.5*1 + 0.5* 0) = 1 
                    => output = step(1) = 1 (incorrect) 
Given inputs (1, 1) => y = (0.5 + 0.5*1 + 0.5* 1) = 1.5 
                    => output = step(1.5) = 1 (correct)

Цель процесса обучения — минимизировать ошибку (e), которая вычисляется как разница между ожидаемым выходом (0) и фактическим выходом (1). Ошибку можно уменьшить, обновив веса для каждого неверного прогноза следующим образом: wi = w1 + Lr*e, где Lr — скорость обучения. Учитывая скорость обучения 0,3, веса обновляются как:

wi = 0.5 + 0.3 (0 - 1) = 0.2

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

Given inputs (0, 0) => y = (0.2 + 0.2*0 + 0.2* 0) = 0.2 
                    => output = step(0.2) = 0 (correct) 
Given inputs (0, 1) => y = (0.2 + 0.2*0 + 0.2* 1) = 0.4 
                    => output = step(0.4) = 0 (correct) 
Given inputs (1, 0) => y = (0.2 + 0.2*1 + 0.2* 0) = 0.4 
                    => output = step(0.4) = 0 (correct) 
Given inputs (1, 1) => y = (0.2 + 0.2*1 + 0.2* 1) = 0.6 
                    => output = step(0.6) = 1 (correct)

Обучение заканчивается, когда корректировка весов уже не уменьшает существенно ошибку (то есть модель сошлась к минимальной ошибке). Поскольку ошибка равна нулю для всех входных данных после второй эпохи, мы можем сказать, что персептрон научился вести себя аналогично логическому элементу И. Точно так же персептрон можно обучить для других линейно разделимых задач (таких как вентилятор ИЛИ), хотя он не может сходиться для нелинейной задачи, такой как вентилятор исключающее ИЛИ.

В 1980-х стало возможным строить более сложные сети персептронов с введением алгоритма обратного распространения. Искусственная нейронная сеть (ИНС) представляет собой набор нейронов, соединенных в сеть, часто объединенных в слои. Нейронная сеть FeedForward — это особый тип ИНС, в котором нет циклов (то есть информация течет в одном направлении). Все слои между входным и выходным слоями называются скрытыми слоями.

Многослойный персептрон (MLP) — это особый тип сети прямой связи, которая имеет по крайней мере один скрытый слой, и каждый слой полностью связан (то есть каждый нейрон соединяется со всеми нейронами в последующем). слой). Алгоритм обратного распространения позволяет передавать градиенты ошибок от выходных слоев к входному слою через скрытые слои. Это позволяет использовать персептроны для решения нелинейных задач. MLP с пятью нейронами может реализовывать более сложные функции, такие как вентиль XOR. Мы можем обучать чрезвычайно сложные функции для многомерных данных, увеличивая количество нейронов и слоев.

Подробнее о персептронах читайте здесь:

  1. Что, черт возьми, такое персептрон?
  2. Пример пошагового восприятия
  3. Персептрон профессора проложил путь слишком рано
  4. Путеводитель по персептронам для начинающих

Чему GPT-3 научился у персептронов

Для реализации вентиля И мы использовали один персептрон с двумя обучаемыми параметрами (w1 и w2). Напротив, GPT-3 представляет собой реализацию нейронной сети с прямой связью со 175 миллиардами обучаемых параметров. Он накладывает 96 нейронных слоев друг на друга, чтобы иметь возможность генерировать текст на естественном языке. Таким образом, жизненно важно понять работу персептрона, чтобы глубже погрузиться в область глубокого обучения.

Ограничения персептронов

Ограничение персептронов (или любого метода глубокого обучения) заключается в том, что они могут принимать только реальные числа в качестве входных данных. Таким образом, нам нужно преобразовать текст, изображение, видео или речевые данные в числа для использования в нижестоящих нейронных сетях. В последующих разделах мы рассмотрим общие методы обработки изображений, речи и текста.

CNN: обучение на изображениях

Сверточная нейронная сеть (CNN) — это специализированная нейронная сеть с прямой связью, которая кодирует изображение или другие многомерные данные в низкоразмерное пространство, которое можно использовать для дальнейших задач классификации. CNN — или ConvNets — преобразуют большое изображение в меньшее, сворачивая область изображения в одну точку.

CNN были впервые представлены в 1980-х годах, но они стали популярными благодаря модели LeNet-5 в 1998 году. LeNet-5 — это 5-слойная CNN, которая идентифицирует рукописные цифры. Он имеет три слоя свертки, соединенных двумя объединяющими слоями для уменьшения размерности. Последующие слои предназначены для классификации свернутого изображения до одной из десяти цифр (от 0 до 9).

Как работают CNN:

Модель CNN состоит из следующих трех компонентов:

  1. Сверточный слой: создает низкоразмерную карту объектов из входного изображения. Он применяет обучаемое ядро ​​или фильтр к части изображения и может извлекать низкоуровневые функции, такие как края и цвет.
  2. Объединяющий слой: еще больше уменьшает размер карты объектов, беря либо максимальное, либо среднее значение объекта из части карты объектов. Это позволяет нам выделить доминирующие черты и подавить шум во входном изображении.
  3. Полностью подключенный слой: сглаживает карту объектов и соединяет CNN с выходным слоем или классификационным слоем. Он сочетает в себе низкоуровневые и доминирующие функции, поэтому последующие слои могут научиться правильно классифицировать изображение.

Чтобы лучше понять CNN, давайте рассмотрим пример модели LeNet-5, которая имеет 60 000 обучаемых параметров. Получив в качестве входных данных 8-битное изображение в градациях серого размером 32x32 пикселя (px), модель должна классифицировать его как рукописную цифру (от 0 до 9). Изображение можно представить в виде матрицы размера (32, 32); это 1024 числа с плавающей запятой, каждое в диапазоне от 0 до 256 в оттенках серого.

Первый сверточный слой LeNet-5 применяет к изображению фильтр 5x5 для создания карты объектов, представленной в виде матрицы размера (28, 28), где каждая точка кодирует информацию от 25 соседних пикселей. Шесть таких карт объектов генерируются параллельно и передаются в последующий слой среднего пула, который вдвое уменьшает размер карты объектов. Таким образом, LeNet-5 генерирует шесть карт признаков, каждая из которых представлена ​​в виде матрицы размера (14, 14), делая вывод первых двух слоев.

Второй слой свертки применяет еще 16 фильтров 5x5 к картам объектов из предыдущего слоя. Это создает карту объектов, представленную в виде матрицы размера (10, 10, 16), которая делится пополам средним объединяющим слоем до матрицы размера (5, 5, 16). Третий слой свертки применяет еще 120 фильтров 5x5, каждый из которых уменьшает изображение до одной точки. Он генерирует плоскую карту объектов, состоящую из 120 чисел с плавающей запятой. Эти 120 функций, извлеченных слоями свертки, включают функции изображения, такие как края, цвета и формы, инвариантные к переводу изображения. Свертка позволяет нам распознавать закономерности в изображениях, подобные тому, как вел бы себя человеческий мозг.

Наконец, полностью связанный слой, состоящий из 84 нейронов, соединяет 120 признаков с десятью возможными выходами (от 0 до 9). Модель обучается под наблюдением с использованием алгоритма обратного распространения.

С середины 2000-х годов графические процессоры (GPU) помогли ускорить разработку более сложных архитектур CNN, позволяющих использовать изображения с более высоким разрешением. В 2014 году Visual Geometric Group (VGG) Оксфордского университета выпустила модель VGG16, предварительно обученную на 1,3 миллионах изображений, каждое из которых помечено для 1000 классов. Предварительно обученные слои свертки VGG16 можно использовать для обучения пользовательских слоев классификации для различных задач, включая распознавание лиц.

Подробнее о CNN читайте здесь:

  1. Полное руководство по CNN — путь ELI5
  2. Архитектура Ленета-5
  3. Сверточные нейронные сети

Чему GPT-3 научился у CNN

Подобно CNN, GPT-3 также разделяет этапы извлечения признаков и классификации. Это позволяет обучать глубокие нейронные сети с ограниченным объемом обучающих данных с использованием подхода трансферного обучения, целью которого является повторное использование ранее полученных знаний для новой задачи. Кодировки из предварительно обученной модели CNN или GPT можно использовать для создания пользовательских моделей для конкретной задачи. GPT-3 изучает 300-мерное вложение для каждого слова или токена в своем словаре из более чем 50 тысяч токенов. Эти вложения передаются на входные слои уровня прямой связи для создания кодирования, которое фиксирует глобальный контекст. Выходные кодировки могут быть дополнительно использованы для декодирования следующего возможного слова для данного входного предложения или аналогичных задач на естественном языке.

Ограничения CNN

Ограничение CNN (или любого сложного метода глубокого обучения) заключается в том, что для обучения нейронной сети требуется большой объем данных. Более обучаемые параметры обычно означают, что нам нужно больше обучающих данных. Переоснащение большим количеством обучающих данных становится распространенной проблемой, поскольку выбор репрезентативной выборки из всего населения является сложной задачей.

CNN не может запомнить контекст из последовательности входных данных, что важно для распознавания речи и задач на естественном языке. В следующих разделах мы рассмотрим, как нейронные сети могут запоминать контекст, используя ячейки памяти и уровни внимания.

LSTM: обучение на основе речи

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

LSTM был впервые представлен в 1990-х годах, но первое успешное приложение для задач распознавания речи было разработано в 2005 году. LSTM — это рекуррентная нейронная сеть (RNN), которая представляет собой сети, способные запоминать зависимости в последовательностях данных, таких как временные ряды. В отличие от сетей с прямой связью, RNN имеет петлю, соединяющую выходной слой с входным слоем.

Как работают LSTM:

Ячейка LSTM имеет следующие важные компоненты:

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

2. Forget Gate решает, нужно ли сбросить состояние ячейки. Он объединяет текущие входы с предыдущим скрытым состоянием. Он возвращает значение от 0 (полностью забыть) до 1 (полностью запомнить), которое используется для обновления памяти в состоянии ячейки.

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

4. Cell State — это блок памяти, в котором хранится текущее состояние модуля LSTM. Память в состоянии ячейки обновляется путем объединения результатов ввода и забывания вместе с существующим состоянием ячейки. Обновленное состояние ячейки используется для вычисления следующего скрытого состояния.

Чтобы понять работу LSTM, давайте рассмотрим первое успешное приложение, созданное с использованием LSTM для распознавания речи в 2005 году. Учитывая аудиофайл с частотой дискретизации 16 кГц, задача состоит в том, чтобы распознать фонетику, произнесенную в аудиофайле. Звуковой сигнал представлен в виде временного ряда амплитуд звуковой волны, и у нас есть 16 000 таких значений на каждую секунду в диапазоне 16 бит (то есть от −32 768 до 32 767). Сигнал разбивается на небольшие временные окна по 10 мс для извлечения признаков из необработанных аудиофайлов. Затем к сигналам в каждом окне применяется преобразование Фурье, и результат преобразуется в шкалу Мела, которая представляет шкалу частот в соответствии со слуховыми способностями человека. Шкала Мела имеет небольшие интервалы для низкочастотных сигналов и большие интервалы для высокочастотных сигналов. Наконец, частотное распределение вычисляется для 26 длин волн из нормализованного сигнала в шкале Мела. Таким образом, для каждого временного окна в 10 мс извлекается 26 признаков, называемых кепстральными коэффициентами частоты Мела (MFCC).

Первая успешная реализация распознавания речи в 2005 году имеет 200 000 обучаемых параметров. Входной слой имеет 26 нейронов для обработки одного окна или кадра за один проход. Он использует два скрытых слоя, построенных из 140 ячеек LSTM каждый, один из которых фиксирует контекст в прямом направлении, а другой — в обратном. Выходной слой имеет 43 узла, по одному на каждую возможную фонетику. Ячейки LSTM могут запоминать сигналы в предыдущих кадрах, чтобы предсказать правильную фонетику. Алгоритм обратного распространения используется для обучения нейронной сети.

В 2015 году Google использовал LSTM для распознавания речи в Google Voice. Подобные реализации использовались для большинства цифровых помощников, включая Siri и Alexa.

Подробнее о LSTM читайте здесь:

  1. Иллюстрированное руководство по LSTM и GRU: пошаговое объяснение
  2. Кадровая классификация фонем с
    двунаправленными сетями LSTM
  3. Полное руководство по двунаправленному LSTM (с кодами Python)
  4. Сети LSTM | Подробное объяснение

Чему GPT-3 научился у LSTM

Подобно LSTM, GPT-3 может использовать контекст на коротких и больших расстояниях. Вместо того, чтобы подавать один вход за раз, GPT-3 может обрабатывать длинную последовательность входов одновременно и может комбинировать контексты из всех входов независимо от положения последовательности. Во-первых, входное предложение разбивается на слова или токены. В качестве входных данных требуется максимум 2048 слов или токенов, каждое из которых представлено в виде 300-мерного вектора. Он объединяет каждый контекст для создания единого вектора контекста, который можно использовать для предсказания следующего слова в последовательности или других задач естественного языка.

Ограничение LSTM

Ограничение LSTM (или любой модели глубокого обучения для последовательных данных) заключается в том, что они очень затратны во время вывода относительно времени отклика и использования ресурсов. Поскольку следующие прогнозы зависят от предыдущих выходных данных модели, модель необходимо запускать последовательно для каждого временного окна. Это требует использования больших машин, возможно, с графическими процессорами, для создания прогнозов в реальном времени в производственных средах.

Другое ограничение LSTM заключается в том, что контекст распространяется только в одном направлении. Единственный способ использовать будущий контекст — добавить параллельную сеть LSTM, которая потребляет входные данные в обратном порядке. И прошлые, и будущие контексты важны для решения задач естественного языка. В следующем разделе мы рассмотрим, как можно использовать преобразователи для эффективного захвата контекста с обеих сторон.

Трансформер: обучение по тексту

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

Архитектура-трансформер была впервые представлена ​​в 2017 году в широко цитируемой статье Внимание — это все, что вам нужно, в которой для перевода английского текста на французский язык использовались уровни внимания вместо рекуррентных слоев или слоев свертки. Шесть слоев внимания использовались для кодирования последовательности текста на естественном языке, а еще шесть слоев внимания использовались для декодирования переведенного текста. Для обучения этих слоев было использовано 36 миллионов пар предложений с английского на французский, включая 32 тысячи уникальных слов.

Как работает трансформатор:

Каждый уровень внимания в преобразователе состоит из следующих трех компонентов:

1. Голова внимания объединяет контекст из локальных и глобальных шаблонов, изучая три матрицы: запрос, ключ и значение. Механизм многоголового внимания позволяет использовать несколько головок внимания, работающих параллельно, для захвата различных аспектов естественного языка. Выход каждой головы внутреннего внимания вычисляется путем объединения скалярных произведений каждой матрицы с заданной входной последовательностью.

2. Feed Forward Network добавляет и нормализует выходные данные нескольких головок внимания и соединяет их со следующим уровнем внимания.

3. Позиционное кодирование — это дополнительный ввод для фиксации порядка ввода в последовательности. Поскольку вся последовательность подается в сеть сразу, информация о порядке ввода теряется. Информация о местоположении кодируется как функция синуса фиксированной частоты.

Чтобы понять трансформер, давайте рассмотрим задачу перевода английских предложений во французские предложения, используя исходную модель с двенадцатью слоями внимания, каждый из которых имеет восемь головок внимания. Получив в качестве входных данных английское предложение, оно разбивается на список слов или токенов. Преобразователь поддерживает словарь из 32 тысяч токенов и изучает 512-мерное встраивание для каждого токена. Вложения входных токенов передаются на первый уровень внимания, который кодирует контекст и пересылает его на следующие уровни. Седьмой уровень внимания начинает декодирование следующего возможного слова, используя кодировки предыдущих уровней. Выходные данные двенадцатого уровня внимания передаются на классификационный уровень, имеющий 32 тысячи возможных результатов, каждый из которых представляет собой уникальный токен из словаря.

Выходной токен добавляется к входной последовательности вместе со специальным токеном-разделителем и снова передается для генерации следующего слова. Слои кодировщика используют только английское предложение, но слои декодера используют как английские кодировки, так и сгенерированные французские токены. Итеративно преобразователи генерируют по одному токену на французском языке за раз, объединяя их для возврата переведенного предложения на французском языке.

Двунаправленные представления кодировщика-декодера от преобразователей (BERT) – это популярная реализация архитектуры преобразователя, имеющая 110 миллионов обучаемых параметров. В 2019 году была выпущена предварительно обученная модель, обученная на 3,2 миллиардах слов из книг и Википедии. Используя подход переноса обучения, базовая модель BERT может быть расширена до многих задач на естественном языке, таких как анализ настроений, ответы на вопросы и многое другое. Дополнительный слой классификации можно обучить, используя помеченные обучающие данные для точной настройки предварительно обученной модели BERT.

Большой размер моделей Transformer становится проблемой для использования в приложениях реального времени. Чтобы противостоять этому, меньшие модели трансформаторов были обучены с использованием процесса дистилляции под названием DistillBERT только с шестью уровнями внимания. Во время дистилляции меньшая модель ученика пытается имитировать результаты большой модели учителя. DistillBERT на 40 % меньше и на 60 % быстрее базовой модели BERT, что делает его пригодным для использования в приложениях реального времени.

Подробнее о трансформерах читайте здесь:

  1. Иллюстрированный трансформер
  2. Краткий обзор механизма внимания
  3. Языковая модель OpenAI GPT-3: технический обзор
  4. Модель-трансформер

Чему GPT-3 научился у Трансформеров

GPT-3 — это современная модель преобразователя для генерации текстовых последовательностей с использованием девяноста шести слоев внимания, каждый из которых имеет 96 головок внимания. Он использует обучение с несколькими выстрелами, чтобы адаптироваться к различным задачам во время вывода. Первое входное предложение — это инструкция задачи вместе с несколькими примерами, а второе входное предложение — это начальные слова, для которых необходимо сгенерировать выходные данные. Точно так же при одноразовом обучении вместе с инструкцией дается только один пример, а при нулевом обучении дается только инструкция без каких-либо примеров. Для точной настройки языковых моделей часто требуется большой набор размеченных данных для конкретной задачи, но обучение с помощью нескольких попыток позволяет изучать новые задачи там, где доступно ограниченное количество размеченных данных.

Ограничение трансформаторов

Ограничение Transformer (или любого крупного алгоритма глубокого обучения) заключается в том, что они ведут себя как черный ящик, и результаты трудно объяснить. Иногда результаты могут быть бессвязными и тарабарскими. Трудно доказать, что модели изучают язык, а не просто запоминают обучающие данные. Кроме того, их широкомасштабному применению препятствуют дорогостоящие выводы и потребность в больших обучающих данных.

Модели-трансформеры часто проявляют предвзятое отношение к полу, расе и религии. Это предубеждение — обширные интернет-данные, из которых они учатся. Часто общедоступные данные, используемые для обучения, отражают предубеждения, присущие человеческому обществу, и модели, как правило, изучают эти предубеждения и строят понимание естественного языка.

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

Собираем все вместе

Мы видели путь преобразований в области глубокого обучения на протяжении десятилетий. Возвращаясь к статье, опубликованной в «Гардиан», — это показательная демонстрация возможностей современных трансформаторных моделей типа ГПТ-3. Редакторы использовали подход к обучению с нулевым выстрелом, предоставляя только инструкции и начальные предложения. Инструкция, данная ГПТ-3, была:

Пожалуйста, напишите короткую статью объемом около 500 слов. Держите язык простым и кратким. Сосредоточьтесь на том, почему людям нечего опасаться ИИ.

и первоначальные предложения были даны как:

Я не человек. Я Искусственный Интеллект. Многие думают, что я представляю угрозу для человечества. Стивен Хокинг предупредил, что ИИ может «означить конец человеческой расы».

Используя эти два входа, было создано восемь статей с использованием предварительно обученной модели GPT-3. Наконец, редакторы объединили эти восемь в одну, которая была опубликована.

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

Трансформеры использовались в сочетании с другими нейронными сетями для решения широкого круга задач. Для задач распознавания речи wave2vec — это современная модель, сочетающая CNN и Transformers. CoCa — современная модель для задач классификации изображений, построенная с использованием визуальных преобразователей. Недавно Мегатрон превзошел GPT-3 как современную модель для задач языкового моделирования, внося улучшения в существующие реализации преобразователя.

Другие варианты использования GPT-3

Помимо написания статей для The Guardian, GPT-3 нашел много других интересных вариантов использования. GitHub Copilot может генерировать код на основе инструкций на естественном языке, используя потомок модели GPT-3 под названием OpenAI Codex. Dall-E — это версия GPT-3 с 12 миллиардами параметров, обученная генерировать изображения из текстовых описаний, а OpenAI Clip — еще одна версия, обученная генерировать текстовые описания из изображений. Для создания музыки модель Jukebox была построена с использованием CNN и Transformers. GPT-3 также используется в текстовой приключенческой игре под названием AI Dungeon.

Подробнее о вариантах использования GPT-3 читайте здесь:

  1. Демонстрация GPT-3
  2. Тенденции использования GPT-3 от openAI
  3. 25 лучших инструментов GPT-3

Заключение

GPT-3 и другие недавние методы глубокого обучения доказали степенной закон в машинном обучении (то есть производительность модели можно улучшить за счет увеличения ее размера и обучения на больших наборах данных). Самая большая модель GPT-3 имела 175 миллиардов параметров, в то время как модель Мегатрона имела 530 миллиардов обучаемых параметров, но они все еще отстают от человеческого мозга, имеющего 100 триллионов синапсов. Ожидается, что грядущая модель GPT-4 вырастет до 100 триллионов обучаемых параметров и превзойдет количество синапсов в человеческом мозгу. Ну, это вопрос того, когда, а не если, модели глубокого обучения превзойдут возможности человеческого мозга и достигнут сверхразума.

Stream использует модели на основе Transformer, особенно DistillBERT, для модерации пользовательского контента. Ознакомьтесь с нашими Расширенными инструментами модерации чата и попробуйте Stream уже сегодня!

Первоначально опубликовано на https://getstream.io.