Вложения и как они помогают ChatGPT предсказывать следующее слово

трансформеры и внимание

Если в последнее время вы много просматривали веб-страницы или читали технические новости, вероятно, вы когда-нибудь слышали или читали что-то о ChatGPT. ChatGPT — это новая модель OpenAI преобразователя языка, и что касается этих моделей, то это довольно точная модель, которая дала очень убедительные — иногда вирусные — результаты. Под преобразователем в данном контексте понимается модель машинного обучения, в которой используется самовнимание. Самовнимание — это слово в науке о данных, означающее, что эта модель пытается имитировать когнитивную функцию человека или когнитивное внимание человека. языковая часть этой модели также важна; поскольку это описывает то, что преобразователь надеется предсказать, человеческий язык. Это часто называют обработкой естественного языка или NLP, хотя NLP обычно относится к обработке, которая происходит с языковыми данными, чтобы преобразовать их в числовые веса, которые компьютер или нейронная сеть могут понять.

Преобразователи имеют ряд важных свойств, которые делают важным помнить об их определении всякий раз, когда мы обсуждаем языковые преобразователи, такие как ChatGPT. Есть несколько вещей, которые трансформеры и, в более широком смысле, модели внимания в целом обладают функциями, которые не обязательно являются эндемичными для всех типов моделей машинного обучения. В обычных условиях модель машинного обучения подгоняет некоторые данные и вычисляет веса; мы можем думать об этом так же, как о том, как язык программирования компилирует исполняемый файл: после компиляции исполняемый файл становится статичным и неизменяемым — его нельзя изменить, мы не можем настроить код изнутри. Преобразователи, с другой стороны, имеют мягкие веса, что больше похоже на использование REPL языка программирования с динамической типизацией, где веса модели изменяемы и могут быть изменены во время выполнения. . Это основа для многих различных и полезных типов моделей, таких как модели Long-Short-Term Memory или LSTM, и того, что мы обсуждают сегодня: Трансформер.

вложения

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

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

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

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



Легко представить, как эти вложения играют роль в обработке текста и создании точного предсказания языковой модели. Слова, безусловно, можно разделить на категории, и когда вы рассматриваете общую схему слов в английском языке, может быть очень трудно понять, что на самом деле делают слова. Однако, если мы разобьем эти слова на категории; артикли, существительные, глаголы, может быть гораздо проще получить представление о том, как на самом деле работает грамматика в нашем языке. Когда дело доходит до языковых моделей, цель встраивания слов состоит в том, чтобы зафиксировать значение слова в векторном представлении. Мы создаем общую категоризацию значения слова, а затем используем то, что мы узнали об этой категории, чтобы делать выводы на основе нашего вывода. Кроме того, детализация, которую ChatGPT использует для представления текста, представляет собой подслова, а не целые слова. Таким образом, ChatGPT использует такого рода вложения для классификации и описания определенных частей слов.

закрытие

Встраивания являются важным понятием для многих различных типов моделей машинного обучения: рекомендательные алгоритмы, языковые преобразователи и даже модели классификации — вот некоторые примеры целей, которые значительно выигрывают от наличия слоя внедрения. Реализация встраивания OpenAI помогает модели ChatGPT интерпретировать слова на основе категорий и их числового отношения к этим категориям, что намного проще, чем пытаться найти информацию по каждому отдельному слову. Если вы хотите узнать больше о встраиваниях и о том, как внедрить их в свои собственные сети Tensorflow, я настоятельно рекомендую руководство по встраиванию, которое Google выпустил несколько лет назад, вот ссылка:



Спасибо за прочтение!