Многие из нас считают свои способности к «языку» само собой разумеющимися. Мы знаем, что есть некоторые животные, у которых есть базовые формы общения, однако ясно, что мы, люди, как правило, единственные живые существа, демонстрирующие такую ​​способность. Тем не менее, язык занимает глубокое место в нашей психике, и сегодня очень немногие технологии в любом секторе оказали такое большое влияние, как модели генеративного ИИ, которые мелькали в бесчисленных заголовках новостей, видео на Youtube и блогах, подобных этому.

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

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

В школе вы, вероятно, изучали «Математику», «Английский язык», «Науку», «Компьютеры», «Физику», «Биологию» и т. д. как отдельные области. Однако реальность такова, что все эти области теперь интегрируются в процессе искусственного интеллекта и машинного обучения.

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

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

НЛП: детские шаги

Подобно путешественнику, изучающему новый язык, наши машины начинают свое путешествие с помощью простых инструментов. Прежде чем мы перейдем к встраиванию слов, важно понять более ранние подходы к векторизации текста, такие как Bag of Words (BoW) и Term Frequency-Inverse Document Frequency (TF-IDF).

Bag of Words (BoW) и TF-IDF подобны нашим первым набегам на иностранный язык — схватывание отдельных слов, затем, возможно, произнесение фраз, а затем знакомство с часто встречающимися словами. . С помощью этих инструментов наши машины могут начать понимать текст, но нюансы теряются. BoW и TF-IDF преобразуют текст в числовое представление, подходящее для моделей машинного обучения. Однако у них есть ограничения, такие как высокая размерность и разреженность векторов, а также тот факт, что они не отражают значения слов.

Мешок слов

Bag of Words действительно похож на «алфавитный суп», или, скорее, на «словесный суп». Он просто объединяет все слова в предложении или документе и выясняет, сколько слов в каждом типе слова. Это понятие также называется частотой слов. Поняв частотность слов, мы могли бы в некоторой степени отличить что-то вроде «Новостной статьи» в «Политике» от детской книги (по крайней мере, теоретически).

Представьте, что мешок слов берет отпечатки всех разных слов и создает уникальный чернильный «отпечаток» разных типов слов. Там может быть больше сложности слов и более частое появление таких слов, как «Конгресс», «Представители», «Президент» и т. д. Между тем, в детской книге будут простые слова из 3–5 букв, более простые для понимания человеком. Однако машина на уровне Bag of Words ничего не принимает во внимание, она просто ведет «учет» того, какие типы слов встречаются с какой частотой, и, как показывает эта модель, мы действительно можем получить приличную статистику. представление о том, о чем этот документ. Визуальное представление этого часто показывается просто с помощью облаков слов.

PS: как однажды сказал один из моих инструкторов: «Если вы думаете, что можете произвести впечатление на кого-то с помощью облака слов и выдать его за «науку о данных», вы обманываете себя».

TF-IDF

TF-IDF расшифровывается как «Term Frequency-Inverse Document Frequency». Проще говоря, он добавляет дополнительный компонент в Bag of Words, не только представляя частоту слов в нашей языковой модели, но и уравновешивая это с «редкостью» этого слова в общем наборе документов или фраз, которые мы хотим изучить. Например, если вы сделали TF-IDF всех слов, которые вы прочитали до этого момента, отделив каждый абзац как отдельный документ, наиболее «частым» словом, которое вы, вероятно, встретите, будет «the». Однако, если мы на мгновение задумаемся о том, что «the», «is», «it» и другие местоимения или грамматические артикли так часто используются, они не будут действительно полезны для нас, чтобы построить настоящий «отпечаток пальца» закономерности в нашем тексте. Вот почему обратная частота документа по существу подавляет силу частых, но неважных/уникальных слов. Вместо этого вы, вероятно, увидите такие слова, как «НЛП», «слово» и «модель», в качестве лучших исполнителей по модели TF-IDF.

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

Вложения слов

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

Word2Vec

Word2Vec, представленный Google, является одним из первых методов для захвата контекста слов в документе. Он использует модель нейронной сети для изучения словесных ассоциаций из большого объема текста. Существует две архитектуры для реализации Word2Vec:

  1. CBOW (непрерывный пакет слов). Модель предсказывает текущее слово из окна слов окружающего контекста.
  2. Skip-Gram: модель предсказывает окружающие слова контекста, учитывая текущее слово.

Word2Vec учитывает слова компании и контексты, в которых они появляются. Это похоже на обучение вести разговор, понимание не только того, что означают слова, но и того, как их значения меняются в зависимости от того, с какими другими словами они сочетаются. В результате мы можем фактически создать своего рода языковую карту, ​​которая позволяет нам почувствовать, как разные слова соотносятся друг с другом. Чтобы узнать больше о математике, лежащей в основе Word2Vec, ознакомьтесь с замечательной статьей Нихила Бирайдара.

Большинство современных вложений слов каким-то образом создают этот тип математического представления слов. Ключевым достижением здесь является то, что теперь мы можем видеть, как слова соотносятся друг с другом. Задумывались ли вы когда-нибудь, как ваше электронное письмо или текстовое сообщение имеют удивительно хорошее автозаполнение? Вы когда-нибудь замечали, как со временем становится лучше? Это связано с тем, что общие «языковые модели» постоянно улучшались менее чем за десятилетие, в дополнение к автозаполнению, позволяющему предсказывать, что вы скажете, на основе вашего собственного исторического использования языка на этой конкретной платформе.

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

Перчатка

GloVe (глобальные векторы для представления слов), представленный Стэнфордом, представляет собой алгоритм обучения без учителя, который получает векторные представления для слов путем агрегирования глобальной статистики совпадений. Идея состоит в том, что мы хотим не просто сказать, как слова встречаются друг с другом в одном документе, а в корпусе (или коллективном наборе документов, который может состоять из тысяч или даже миллионов документов). В этой статье мы не будем вдаваться в причудливую математику, лежащую в основе каждого алгоритма, а давайте подумаем об этом в общем, как об использовании вероятностей слов, встречающихся вместе в предложениях. Это как способность понимать язык не только одного разговора или одного рынка, но и всего города или даже страны. По моему собственному опыту изучения иностранного языка, мне приходилось включать себя во множество разных сред людей, говорящих на этом языке, чтобы понять, как слова и фразы появляются в определенных разговорах. Это позволило мне собрать воедино, какие типы слов, фраз и понятий встречаются в определенном контексте.

Если вам интересно больше, вы можете посетить проект Stanford GloVe здесь.

Быстрый текст

FastText, представленный Facebook, является еще одним расширением Word2Vec с другим подходом. Он рассматривает каждое слово как состоящее из n-грамм символов. N-граммы — это в основном «фрагменты» слов, которые расположены рядом друг с другом, подобно фразам. Если взять предложение типа:

Мне нравятся слова, которые рифмуются,

но я вне времени.

«Биграммами» этого предложения были бы: «мне нравится», «слова нравятся», «слова, которые», «эта рифма»… и т. д.

«Триграммы» будут такими: «мне нравятся слова», «нравятся слова, которые», «слова, которые рифмуются»… и т. д.
N-граммы — это все возможные комбинации слов «фрагменты», которые мы можем составить таким образом, вплоть до N, то есть всех слов в предложении. Оказывается, это еще один способ кодирования контекста.

Если бы я спросил вас следующее, но был бы прерван на середине предложения: «Где я могу найти…?» Немедленная человеческая реакция — подумать о месте или, еще лучше, о местонахождении какого-то предмета. У нас уже есть так много контекста только из этой части. Однако даже с помощью триграммы «Где я могу» мы также можем получить важную подсказку относительно типа контекста, к которому может относиться то или иное предложение. FastText особенно полезен для языков с большим количеством интонаций. Это объяснение ELI5 того, как N-граммы помогают алгоритму FastText генерировать контекст и улучшать модель Word2Vec.

Глубокие контекстуализированные вложения слов

Итак, до этого момента мы рассмотрели большинство «распространенных» типов встраивания слов, о которых мы могли бы узнать на базовом курсе НЛП, без всей математики и кода. Глубокие контекстуализированные вложения слов представляют собой следующий шаг в эволюции встраивания слов. В отличие от традиционных вложений слов, таких как Word2Vec и GloVe, эти вложения основаны на моделях, которые генерируют уникальное встраивание слов для каждого слова в предложении на основе его контекста.

Настоящим секретным соусом передовых текстовых инструментов, таких как ChatGPT и множества других конкурентов, являются Large Language Models. Большие языковые модели (LLM) — это, по сути, языковые модели НЛП с глубоким контекстуальным встраиванием, которые включают в себя огромный объем обучения на многих и многих документах (думаю, миллионы или миллиарды), что приводит к огромным моделям глубокого обучения с большое количество параметров.

На самом деле модель OpenAI GPT-3 имеет около 175 миллиардов параметров. ("Источник"). Эта цифра просто поразительна! Это то, что потребовало бы столетий для работы на одном компьютере, если бы вы попытались сидеть там. Но не теряйте надежды! Результатом использования языковой модели, даже большой, является то, что мы можем перенести модель в другую среду, чтобы напрямую использовать это математическое представление.

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

Модельный ряд «Улицы Сезам» (издание LLM)

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

ELMo (встраивание языковых моделей)

Вложения ELMo, разработанные AllenAI, изучаются из внутренних состояний двухуровневой двунаправленной языковой модели (biLM). Эта модель biLM в основном относится к пониманию слов, которые шли раньше, и слов, которые следуют после определенного слова (отсюда «двунаправленный» — в обоих направлениях). Представления слов ELMo учитывают эти различные уровни biLM, которые охватывают как низкоуровневые лексические функции, так и высокоуровневые семантические функции. ELI5 (Объясните, как будто мне 5 лет): Представьте себе ребенка, который учится читать. Сначала она просто узнает формы и звуки букв. По мере продвижения она начинает понимать, что значение слова может меняться в зависимости от окружающих его слов.

BERT (представление двунаправленного кодировщика от трансформаторов)

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

Вот еще более здравый способ подумать об этом: представьте, что вы читаете предложение с пропущенным словом, например: «Я люблю есть ____ по утрам». Даже без пропущенного слова вы, наверное, догадались, что слово может быть «завтрак» или какая-то еда, верно? Ваш мозг в состоянии сделать это, потому что он понимает контекст предложения и знает, что люди обычно едят, особенно завтракают, утром. Именно такие рассуждения использует BERT при прогнозировании замаскированных слов.

BERT расшифровывается как представление двунаправленного кодировщика от трансформаторов. «Двунаправленная» часть означает, что BERT рассматривает контекст с обеих сторон (слова до и после пропущенного слова), чтобы сделать хорошее предположение о том, каким должно быть пропущенное (или «замаскированное») слово. Итак, в нашем примере BERT будет учитывать как «я люблю поесть», так и «утром», чтобы предсказать замаскированное слово.

Эта стратегия позволяет BERT глубже понять язык. Вместо того, чтобы просто запоминать пары слов, BERT изучает контекст, в котором появляются слова. Это приводит к более тонкому пониманию языка, подобно тому, как люди понимают язык.

BERT обучается с использованием большого количества текстовых данных, и во время этого обучения около 15 % слов случайным образом маскируются (сохраняются), и BERT пытается предсказать их. Со временем и с большим количеством текстовых данных BERT довольно хорошо предсказывает правильное слово. Хорошая детективная работа БЕРТ!

Другие вкусы BERT: RoBERTa и DistilBERT

RoBERTa (надежно оптимизированный подход к предварительному обучению BERT), разработанный Facebook AI, представляет собой вариант BERT, который использует другой подход к обучению и удаляет цель прогнозирования следующего предложения BERT. RoBERTa похож на высокопроизводительный гоночный автомобиль, созданный на основе модели BERT. Инженеры Facebook AI усовершенствовали и настроили BERT для создания RoBERTa, который использует другой подход к обучению и еще более эффективен в понимании языка.

ДистилБЕРТ

DistilBERT, также разработанный командой Hugging Face, представляет собой уменьшенную, быструю и дешевую версию BERT. Это очищенная версия BERT, которая сохраняет 95 % производительности BERT, будучи на 60 % меньше и на 60 % быстрее. Придерживаясь аналогии с автомобилем, DistilBERT — это компактный, экологически чистый автомобиль в мире языковых моделей. Он меньше и быстрее, чем BERT, но по-прежнему предлагает 95% производительности BERT. Это разумный и экономичный выбор для многих задач понимания языка.

GPT-2 и GPT-3 (генеративный предварительно обученный преобразователь)

Теперь представьте себе опытного рассказчика, без усилий подбирающего идеальное слово, чтобы история развивалась. Вместо детектива, который пытается найти идеальное слово для предложения, рассказчик ищет идеальный способ объединить потоки языка воедино. Это то, что делают модели GPT-2 и GPT-3. Они предсказывают следующее слово в предложении, делая разговор естественным и увлекательным. В то время как BERT обучается предсказывать замаскированные слова в предложении, GPT-2 и GPT-3 обучаются с помощью задачи языкового моделирования, где они предсказывают следующее слово в предложении.

Модели GPT (ChatGPT), разработанные OpenAI, также используют архитектуру Transformer. Мы расскажем больше об основных концепциях трансформеров, таких как BERT и GPT, в следующей статье, так как это заслуживает отдельного внимания.

Вложения Word… Для чего они нужны? Абсолютно все!

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

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

Если вам понравилась эта статья, поделитесь ею со своими друзьями и/или нажмите зеленую кнопку «Подписаться», чтобы следить за другими обновлениями, подобными этому, и получать дополнительные руководства по освоению сложных тем в области технологий!

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