В этой статье мы поговорим о речевых моделях, а конкретнее нашумевшей среди сообщества дата саентистов модели GPT-3.
Речевых моделей в мире много. Все начиналось с базовых алгоритмов машинного обучения как Support Vector Machine и доросло до трансформеров такие как Bert, GPT.
Сегодня нейронные сети способные на многие фантастические вещи которые десятилетие назад казались фантастикой. В современности мы применяем нейросети в разных задачах, например генерация текста ,перевод текста , speech to text, чат боты, консультация и т.д.
И все это относится к области NLP или более официально Natural Language Processing. Эта область в Data Science не только позволяет развлекаться с текстовыми генераторами типа Яндекс Балабоба, но позволяет продвигать науку и помогает бизнесу действовать более эффективнее.
Одной из передовых моделей NLP сейчас является GPT-3, как она достигала такого успеха?
Чтоб ответить на этот вопрос сначала надо разобраться как действуют речевые модели.
Кратко о речевых моделях
Для обучения языковой модели используется ряд вероятностных подходов. Эти подходы различаются в зависимости от цели, для которой создается языковая модель. Количество текстовых данных, которые необходимо проанализировать, и математика, применяемая для анализа, влияют на подход, используемый для создания и обучения языковой модели.
Рассмотрим произвольный язык L . В этом случае английский язык будет использоваться для упрощения произвольного языка. Языковая модель присваивает вероятности последовательностям произвольных символов таким образом, что чем больше вероятность существования последовательности (w1,w2,...,wn) в этом языке, тем выше вероятность. Символ может быть символом, словом или подсловом (например, слово «going» может быть разделено на два подслова: «go» и «ing»). Большинство языковых моделей оценивают эту вероятность как произведение вероятности каждого символа с учетом предшествующих ему символов:
Отлично. Мы поверхностно теперь понимаем, как работает NLP-модель. Перейдем к тому, как они устроены внутри. Мы не будем смотреть в прошлое, и разбирать старые модели, а сразу возьмем “быка за рога”. Разберем архитектуру трансформера. Сегодня она самая передовая и давно вытесняет с поля битвы искусственных мозгов архитектуру RNN. У моделей трансформей было одной преимущество, они исключили RNN из архитектуры, которая поочередно обрабатывала токены, а трансформе может принять несколько токенов одновременно, параллельность дает быстроту, что очень важно. Зачастую NLP применяют в сфере, где мы должны заменить человека, а точнее обрабатывать входные данные и моментально давать информацию, пример такого кейса Call Center крупной компании, куда приходят в день несколько сотен тысяч звонков и клиент должен получать моментальный ответ.
Что под капотом?
Если быстро и коротко описать эта архитектура состоит из двух компонентов энкодера и декодера.
Энкодеры состоят из Attention Layer и Feed Forward Layer. Входная последовательность, а точнее слова которые были превращены в вектор , поступает в энкодер, сначала проходит через слой внутреннего внимания (Attention), помогающий энкодеру посмотреть на другие слова во входящем предложении во время кодирования конкретного слова.
После завершения фазы энкодирования начинается фаза декодирования. Каждый этап фазы декодирования возвращает элемент выходной последовательности. Следующие шаги повторяются до появления специального символа, сообщающего, что декодер трансформера завершил генерацию выходной последовательности. Выход каждого этапа отправляется на нижний декодер в следующем временном промежутке, и декодеры генерируют свой результат так же, как это делают энкодеры. И точно так же, как мы делали с входами энкодеров, мы добавляем позиционное кодирование на те входы декодеров, которые указывают на позицию каждого слова. Дальше декодер отправляет ответы в линейный слой, где есть функция активации, где в конце выбирается ответ, смотря на вероятность ячейки в линейном слое.
Чем лучше GPT-3?
Теперь поговорим про саму модель GPT-3. Чем же она крута?
Тем, что она имеет очень большое количество обучающих параметров и обучается на малом количестве данных. Такого результата достигли благодаря тому, что модель была сильно масштабирована и имеет около 175 млрд параметров.
Другие модели тоже продемонстрировали значительный выигрыш во многих задачах NLP и эталонных тестах за счет предварительного обучения
на большом датасете текстов с последующей точной настройкой на конкретную задачу. Несмотря на то, что этот метод обычно не зависит от задачи по архитектуре, этот метод все же требует специфических для конкретной задачи наборов данных с тонкой настройки, состоящих из тысяч или десятков тысяч или десятков тысяч примеров. В отличие от этого, человек обычно может выполнить новую языковую задачу на основе всего лишь нескольких примеров или простых инструкций - то, что современные системы NLP все еще в значительной степени с трудом справляются.
GPT-3 показывает, что масштабирование языковых моделей значительно улучшает диагностику задач, производительности, иногда даже, достигая конкурентоспособности с предыдущими современными подходами к тонкой настройке. Это авторегрессионная языковая модель с миллиардами параметров, у нее параметров больше, чем у любой предыдущей языковой модели.
В последние годы в системах NLP наметилась тенденция к использованию предварительно обученных языковых представлений, применяемых все более гибко и не зависящих от конкретной задачи. Сначала однослойные репрезентации обучались с помощью слов и подавались в архитектуры, специфичные для конкретной задачи, затем RNN с несколькими слоями представлений и контекстным состоянием были использованы для формирования более сильных представлений. В последнее время предварительно обученные, рекуррентные или трансформаторные языковые модели были непосредственно настроены, полностью устраняя необходимость в архитектурах, специфичных для конкретной задачи. Последняя парадигма привела к существенному прогрессу в решении многих сложных задач NLP, таких как понимание прочитанного, ответы на вопросы, и многое другое, и продолжает развиваться на основе новых архитектур и алгоритмов. Однако, основным ограничением этого подхода является то, что, хотя архитектура не зависит от задачи, все еще существует необходимость в наборах данных для конкретной задачи и тонкой настройке: для достижения высокой производительности в желаемой задаче обычно требуется тонкая настройка в наборе данных, включающем от тысяч до сотен тысяч примеров, специфичных для этой задачи. Устранение этого ограничения было бы желательным по нескольким причинам.
Во-первых, с практической точки зрения, необходимость в большом наборе помеченных примеров для каждой новой задачи ограничивает применимость языковых моделей. Существует очень широкий спектр возможных полезных языковых задач, охватывающий от исправления грамматики до генерации примеров абстрактного понятия и критики короткого рассказа. Для многих этих задач трудно собрать большой набор контролируемых обучающих данных, особенно когда этот процесс должен повторяться для каждой новой задачи.
Во-вторых, потенциал использования ложных корреляций в обучающих данных существенно возрастает с увеличением выразительности модели и узости обучающего распределения. Это может создать проблемы для парадигмы «предварительное обучение» плюс парадигма «тонкой настройки», когда модели проектируются большими, чтобы поглощать информацию во время предварительного обучения, а затем настраиваются на очень узком распределении задач. Например, в HLW+20 отмечается, что большие модели не обязательно лучше обобщают вне распределения. Существуют данные, свидетельствующие о том, что обобщение, достигнутое в этой парадигме, может быть плохой потому, что модель слишком специфична для обучающего распределения и плохо обобщается за его пределами. Таким образом, производительность точно настроенных моделей на конкретных эталонах, даже если она номинально находится на человеческом уровне, может преувеличивать реальную производительность основной задачи.
Архитектура GPT-3
Архитектура GPT-3 похожа на GPT-2. По сути архитектура GPT это урезанная модель трансформера. Представьте, взяли архитектуру трансформер и убрали из нее энкодер, оставив только дэкодер.
Cначала полученное слово токенизируется. Процесс токенизации нужен для того чтоб нейросеть понимала слово, суть заключается в том чтоб преобразовать слово в число с плавающей точкой. Затем токены проходят через Embedding Layer (линейный слой) и превращается в список эмбеддингов. К каждому эмбеддингу прибавляется positional embedding.
Дальше у нас идет masked attention layer. Отличие скрытого слоя внимания заключается в том что он получает линейную комбинации токенов которые расположены после него.
В конце верхний блок модели выдает выходной вектор (результат его собственного слоя внутреннего внимания и последующего слоя нейронной сети), модель умножает его на матрицу эмбеддингов.
Сверху на картинке конечная архитектура. В реальности модель GPT-3 cостоит из миллиард параметров. И разработчики экспериментировали над количество блоков от (12 до 96 декодеров), параметров.
Все модели используют контекстное окно из nctx = 2048 токенов. Мы разделили модель между графическими процессорами вдоль по глубине и ширине, чтобы минимизировать передачу данных между узлами. Точные архитектурные параметры для каждой модели выбираются на основе вычислительной эффективности и балансировки нагрузки при расположении моделей между графическими процессорами. Предыдущие работы [KMH+20] показывают, что потери при валидации не сильно чувствительны к этим параметрам в достаточно широком диапазоне.
Как тренировали?
Для тренировки модели использовали данные с Википедии и других открытых источников. Всего датасет весил 570 гб.
Более крупные модели обычно могут использовать больший размер партии, но требуют меньшей скорости обучения. Разработчики измеряли масштаб градиентного шума во время обучения и используем его для выбора размера партии. Чтобы обучать большие модели, не исчерпывая память, использовали смесь параллелизма моделей внутри каждого матричного умножения и параллелизма моделей между слоями сети. Все модели были обучены на графических процессорах V100 в рамках кластера с высокой пропускной способностью, предоставленного Microsoft.
Результат
Чтоб оценить качество модели протестим ее на одной из типичных задач NLP, угадывание следующего слова с словесной цепочке.
В качестве датасета брали Lambda , тут мы видим несколько методов подачи данных GPT-3. Точным оказался Few Shot когда мы изначально даем модели определенное количество токенов. Но другие метода вроде One Shot и Few Shot оказались более лучшими чем их модель конкурент.
Заключение
Мы в данной статье рассмотрели основные аспекты архитектуры GPT-3.
Узнали на каком наследии она строится и покапались внутри ее строения.
Так почему эта модель сегодня стала одной из самых популярных?
Основной ее плюс это универсальность и обучение на малых количествах данных.
Мы думаем что это не предел и в будущем такие архитектуры приведут нас к сильному искусственному интеллекту.