Как простой инструмент порождает удивительную сложность

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

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

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

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

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

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

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

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

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

Здесь на сцену выходит скалярное произведение, любимая мера сходства ИИ.

Скалярное произведение — это простая математическая операция, которая измеряет сходство между двумя векторами. Математически скалярное произведение двух векторов x и y вычисляется как:

x · y = Σ (x_i * y_i) для i = 1 до n

где x_i и y_i — компоненты векторов x и y соответственно, а n — размерность векторов. Это также может быть записано как

х · у = |х| * |у| * потому что (θ)

где θ — угол между двумя векторами и || обозначает их длину. В этой интерпретации скалярное произведение измеряет степень, в которой x и y выровнены. Если два вектора параллельны, скалярное произведение соответствует их длине. Если векторы перпендикулярны друг другу, он стремится к нулю.

Скалярное произведение часто сочетается с косинусным сходством, которое нормализует скалярное произведение по величине векторов, обеспечивая меру подобия, инвариантную к их величинам:

cosine_similarity(y, x) = (y · x) / (|y| * |x|)

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

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

Возвращаясь к нашему предыдущему примеру, рассмотрим два фильма, фильм А и фильм Б. Для простоты предположим, что они характеризуются двумерным вектором, основанным на двух различных свойствах: интенсивности действия (ИИ) и эмоциональной глубине (ЭД). (обычно эти векторы, конечно, могут быть намного больше). Первый компонент вектора представляет Интенсивность Действия, а второй компонент представляет Эмоциональную Глубину. Допустим, оба свойства измеряются по шкале от -5 до 5, где -5 означает наименее интенсивный или эмоционально глубокий, а 5 — самый интенсивный или эмоционально глубокий.

Один фильм, относительно неглубокий развлекательный боевик с попкорном, имеет Интенсивность действия 4 и Эмоциональную глубину -3. Его векторное представление будет A = [4, -3].

Фильм Б — это 4-х часовая черно-белая медитация о сербском правительстве, увиденная глазами голубя. Он довольно требователен к эмоциям, но не имеет большого количества экшн-сцен, получив рейтинг B = [-4, 4].

Мы можем сравнить оба фильма, используя скалярное произведение, оценивая

A · B = (4 * -4) + (-3 * 4)= -28

При нормализации по размеру обоих векторов это дает
-28/(sqrt(25)*sqrt(32))= -0,99.

Как и следовало ожидать, эти два фильма чрезвычайно непохожи, поэтому их оценка косинусного (нес)похожести близка к -1.

Так почему же эта простая операция сравнения сходства двух векторов так важна в ИИ?

Машинное обучение и, возможно, его сердцевина (искусственный интеллект) в целом основаны на сравнении шаблонов и измерении их сходства в огромных масштабах.

Однако придумать шаблоны для сравнения не так уж и просто.

Часть, которую я упустил из предыдущего примера, касается того, как придумывать метки для фильмов. Рейтинги «Интенсивность действия» и «Эмоциональная глубина» не могут быть прямо извлечены из реальных данных фильма, но являются человеческими оценками, которые выполняют сложную когнитивную (субъективную) задачу просмотра фильма и преобразования его в представление значительно меньшего размера. в котором становится очевидным, что фильмы совершенно разные. С точки зрения пиксельного пространства фильмов (для 2-часового фильма в 4K это примерно 1,4*10¹² пикселей) это огромное уменьшение размерности, которое включает в себя индивидуальные смещения и априорные значения.

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

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

Эта комбинация становится еще более очевидной в контексте функций ядра.

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

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

Стандартной задачей для большой языковой модели является перевод предложения между двумя языками, скажем, между английским и немецким:

«Я читаю статью о важности скалярного произведения в ИИ».

«Ich lese einen Artikel über die Bedeutung des Skalarproduktes für die KI».

Оба предложения несут примерно одно и то же значение, но существенно различаются по своей репрезентации.

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

Если «измерение сходства» уже не вызывает у вас паучьих чувств, значит, я плохо справился с этой статьей.

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

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

Входные элементы (обычно встраивания/токенизированные версии входного текста) сначала линейно проецируются в три разных пространства: запрос (Q), ключ (K) и значение (V) с использованием отдельных изученных весовых матриц. Это приводит к трем наборам векторов для каждого входного элемента: векторы запросов, ключевые векторы и векторы значений.

Затем скалярное произведение используется для вычисления оценок внимания между каждой парой векторов запроса и ключа (score_ij = q_i · k_j).

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

После вычисления всех показателей сходства они масштабируются и отправляются через функцию сходства, а затем могут использоваться для вычисления контекстной функции, которая снова представляет собой простую сумму внимания. баллы и значения: (context_i = Σ (внимание_ij * v_j))

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

Как и в других примерах, скалярное произведение в сочетании с нелинейными преобразованиями входного и выходного текста и проекций определяет механизм внутреннего внимания.

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

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

Иногда может быть немного страшно видеть, насколько эффективной была эта стратегия: в недавнем подкасте Макс Тегмарк прокомментировал удивительную простоту/глупость обучения больших языковых моделей (просто дайте им кучу текста и заставьте их предсказывать следующие слова/предложения с использованием трансформеров с вниманием к себе). В каком-то смысле разведка может быть проще, чем мы думаем, что подтверждает большинство тех, кто играл с ChatGPT.

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

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