Искусственный интеллект. Краткая история будущего - Тоби Уолш
Элис знала, что ее работа содержит ошибки,
но она не собиралась исправлять их.
Местоимение «их» относится к существительному «ошибки», а местоимение «она» к существительному «Элис». Оба местоимения находятся далеко от существительных, к которым они относятся. Именно здесь архитектура трансформеров играет важную роль. Она позволяет нейронным сетям идентифицировать такие зависимости на больших расстояниях, используя механизм внимания.
Думаю, что это не станет удивительным для вас фактом, но нам могут потребоваться различные нейронные архитектуры для выполнения разных задач. Этот факт нам известен благодаря человеческому мозгу. Лобные и височные доли отвечают за речь и язык, а зрительная кора головного мозга ответственна за зрение и восприятие. Разные части мозга имеют разные нейронные структуры.
Архитектура трансформера была впервые предложена в 2017 году командой Google Research в известной работе «Все, что вам нужно, – это внимание»[68] [4], ставшей классикой с более чем 100 000 цитирований, что делает эту работой четвертой в списке самых цитируемых трудов всей научной литературы. Сейчас трансформеры используются в различных ИИ-системах, обрабатывающих последовательные одномерные данные, от Google Translate, чат-бота ChatGPT от OpenAI до сервиса транскрибирования аудио от Zoom, и даже программного обеспечения для клонирования голоса от Descript. Трансформеры – одна из главных причин недавнего бума искусственного интеллекта. Стоит отметить, что в 2017 году Google открыто представила архитектуру трансформеров в научной публикации, сделав ее доступной для всех желающих.
Название знаменитой работы команды Google Research – добродушная отсылка к хиту The Beatles “All You Need Is Love” («Все, что вам нужно, – это любовь»). Эта песня также носит исторический характер, поскольку была написана для первого глобального телевизионного шоу в прямом эфире, состоявшегося 25 июня 1967 года. При помощи спутника их послание любви получили более чем 400 миллионов человек в 25 странах, а копию текста песни, написанного рукой Леннона, в 2005 году продали на аукционе за 1,25 миллиона долларов.
Как и следует из их названия, трасформеры нужны нам, чтобы трансформировать. Они изменяют сложные входные данные на сложные выходные данные. Например, они могут преобразовать следующее:
• последовательность слов на одном языке в аналогичную последовательность на другом языке, как это делает Google Translate;
• последовательность слов в изображение, как это делает DALL-E;
• последовательность слов в виде вопроса в другую последовательность слов в виде ответа, как это делает ChatGPT;
• аудиопоследовательность в последовательность из слов, то есть выполнить транскрибирование этого аудиоматериала, как это делает специальный инструмент перевода речи в текст от Zoom.
Трансформация состоит из четырех этапов. Возможно, вы уже подумали о входящих данных, поочередно проходящих все четыре этапа, преобразовываясь на каждом из них во что-то другое. Начнем с входных данных. Предположим, что это последовательность слов. Первое преобразование – это преобразование последовательности во что-то, что компьютер сможет обработать, то есть в последовательность чисел. Первый этап называется токенизация. В английском языке более миллиона слов, поэтому было бы непозволительно иметь отдельный номер для каждого из них. Следовательно, токенизация заменяет общеупотребимые слова на отдельные числа (это и есть токены), но разделяет более сложные слова на части, каждая из которых выражена токеном. Обычный трансформер использует от 50 до 200 000 различных токенов.
Давайте рассмотрим такое предложение: «Секрет успеха – делать обычное необычайно хорошо». Оно разбивается на следующие слова и части слов: «секрет», «успеха», «—», «делать», «обычное», «не», «обычайно», «хорошо». Обратите внимание, как менее частотное слово «необычайно» разбивается на две более распространенные части: «не» и «обычайно». Каждое слово или его части представлены числом. Таким образом, у нас получается следующая последовательность токенов: [24782, 14939, 101, 48251, 28573, 33811, 19973, 49084][69]. Числовая последовательность – это то, с чем нейронная сеть легко может взаимодействовать.
ВЕКТОРНОЕ ПРЕДСТАВЛЕНИЕ СЛОВ
Теперь мы уже разобрались, что трансформеры могут преобразовывать текст в числовую последовательность. Числа – это хорошо, компьютеры прекрасно справляются с их обработкой. Однако мы кое-что потеряли в превращении текста в числовую последовательность. Мы упустили сложные взаимосвязи, существующие между словами. Например, слово «королева» близко к слову «король». Но «королева» также близка к слову «пчела»[70]. И хотя «жук» близок к «пчеле», «жук» не очень близок к «королеве». Когда создание искусственного интеллекта доходит до взаимодействия с языком, начинается головная боль. Нет возможности выбрать числа так, чтобы токен для слова «королева» был численно близок к токену «пчела», токен «пчела» был близок к «жуку», но при этом токен «жук» был бы численно далек от «королевы».
Решение этой проблемы заключается в преобразовании чисел во что-то меньшее одномерного. Следовательно, следующий этап – это трансформация токенов в более сложное представление, называемое вектором, который может отразить сложные взаимосвязи. Число – это точка на одномерной линии, а вектор – точка в многомерном пространстве. И здесь я не имею в виду обычные двух– или трехмерные пространства, к котором вы привыкли. Я говорю о векторах с сотнями или даже тысячами измерений. Сейчас очень сложно представить больше, чем три. Джеффри Хинтон для того, чтобы представить 14 измерений, часто советовал представить три и самому себе вслух повторять «четырнадцать». Боюсь, что лучшего способа я предложить не смогу.
Этот шаг – превращение токенов в векторы чисел – называется кодированием (encoding). Превращая слова в векторы чисел, мы можем уловить сложную взаимосвязь между словами. Позвольте мне проиллюстрировать три измерения, но помните, что мы можем играть с сотнями или даже тысячами измерений и уловить более сложные взаимосвязи между словами.
Предположим, что слово «королева» преобразуется в вектор [0,5, 0,3, –0,2]. А слово «король» – в вектор [0,7, 0,5, –0,4]. Аналогично предположим, что слово «мужчина» преобразуется в вектор [0,6, 0,4, –0,3]. А слово «женщина» становится вектором [0,4, 0,2, –0,1]. Возьмем «королеву», или ее векторное представление [0,5, 0,3, –0,2]. Теперь вычтем из него вектор «женщина», компонент за компонентом. Это дает нам [0,5, 0,3, –0,2] – [0,4, 0,2, –0,1], что равно вектору [0,1, 0,1, –0,1]. Теперь добавим к этому вектору слово «мужчина», то есть [0,1, 0,1, –0,1] + [0,6, 0,4, –0,3]. Это равняется [0,7, 0,5, –0,4]. Изящно, но это и есть вектор слова «король». Таким образом, мы математически показали, что в этом многомерном пространстве векторов:
Король = Королева + (мужчина – женщина).
Такое