
Чтобы применять большие языковые модели (LLM) в бизнесе, важно разобраться, что такое эмбеддинги. Эмбеддинг (от англ. embedding — вложение или встраивание) — это числовое представление данных, которое позволяет моделям анализировать и интерпретировать текст.
Эмбеддинги используются не только для текста, но и для изображений, видео и аудио, с различными методами для каждого типа данных. В этой публикации мы рассмотрим текстовые эмбеддинги.
Текстовые эмбеддинги представляют собой числовые векторы, отображающие слова или фразы в многомерном пространстве. Эти векторы помогают моделям машинного обучения распознавать смысл и взаимосвязи в тексте.
Технология создания эмбеддингов появилась задолго до генеративного ИИ и уже давно используется в обработке естественного языка (NLP). С появлением LLM эмбеддинги особенно «пригодились» для решение двух задач: преобразования текста в подходящую математическую форму и выполнения быстрого семантического поиска. Одним из популярных применений эмбеддингов является Retrieval-Augmented Generation (RAG), пример реализации можно посмотреть в нашем блоге.
В этой публикации мы рассмотрим, как эти задачи решаются с помощью векторных баз данных и оптимизированных алгоритмов поиска.
Начнём с того, что текст нельзя использовать для вычислений напрямую, потому что он не имеет числового представления, необходимого для выполнения математических операций. Возникает вопрос — как мы можем сделать его пригодным для анализа и обработки?
Для этого текст необходимо перевести в числовой формат. Для этого и используется текстовые встраивания — эмбеддинги. Давайте разберёмся, что такое эмбеддинги и как они работают.
Почему это важно? Дело в том, что числовые представления позволяют моделям применять методы линейной алгебры и машинного обучения для анализа неструктурированных данных. Например, текстовые эмбеддинги помогают моделям понимать, насколько похожи или различаются два текста, даже если в них используются разные слова. Давайте посмотрим, как текст преобразуется в числовые значения и становится вектором.
Суть эмбеддинга заключается в преобразовании слов, предложений или их частей в многомерные векторы, где каждое измерение отражает характеристику или связь с другими элементами текста.
Существует больше десятка моделей, преобразующих текст в векторы. Если кратко, то они различаются тем, как учитывают контекст. Статистические модели создают эмбеддинги, опираясь на статистику совместного употребления слов, без учёта контекста. Нейросетевые модели строят контекстуализированные эмбеддинги, используя нейросетевые архитектуры.
Современные модели всё чаще основываются на нейросетях, особенно на архитектуре трансформеров. С момента появления модели Transformer, она стала стандартом для обработки текста.
Рассмотрим, как различные методы решают эту задачу и чем они отличаются друг от друга.

BoW преобразует текст в векторы фиксированной длины. Это возможно путем подсчета количества раз, когда слово присутствует в тексте. Количество слов позволяет сравнивать разные тексты и оценивать их сходство. Название “Bag of Words” связана с тем, что алгоритм представляет предложение как набор отдельных слов. Он не учитывает порядок слов, а только проверяет, сколько раз появилось слово в тексте. В модели Bag of Words фразы «кошка спит на ковре» и «ковёр спит на кошке» интерпретируются одинаково, поскольку содержат одни и те же слова, несмотря на разный порядок.
В модели TF-IDF редкие слова, такие как «ковёр», получают больший вес, чем часто встречающиеся слова, такие как «на».
Эти статитические модели создают числовые представления слов, учитывая контекст их использования. Они «обучаются» на больших объёмах текстов и фиксируют смысловые связи между словами на основе их совместного использования.
Ключевые характеристики:
Эти динамические модели учитывают значение слов в зависимости от их окружения, создавая динамические представления. Это значит, что одно и то же слово может иметь разные значения в разных контекстах, и модель это учитывает.
Ключевые характеристики:
Эти модели разработаны для работы с разнообразными задачами и языками. Они обучаются на обширных данных с различными типами текста, чтобы быть максимально универсальными.
Ключевые характеристики: модели используют архитектуры трансформеров и синтетические данные, что позволяет им решать задачи классификации, кластеризации и поиска.
Мы рассмотрели, какие модели есть для эмбеддинга. Давайте разберёмся, что внутри у этих решений и почему.
В основе векторных представлений лежит модель векторного пространства. В этом пространстве каждое измерение может представлять определённый семантический признак: различие между частями речи, временами, формами слов и т.д.
В основе векторного поиска лежит концепция измерения сходства между векторами. Для этого используются косинусное сходство (путём оценки угла между векторами) и евклидово расстояние (путём вычисления прямого расстояния между точками в пространстве).
Это позволяет вычислить степень близости между двумя наборами чисел, чтобы определить, насколько они похожи или связаны между собой.
Получается, что если удаётся представить текстовые данные в виде векторов, то математические инструменты помогают измерить степень схожести между словами и находить взаимосвязи в текстах.
Вспомним школьные уроки геометрии: когда два вектора направлены в одном и том же направлении, угол между ними равен 0 градусов. Косинус такого угла равен 1. Это значит, что чем ближе значение косинуса угла к 1, тем больше векторы похожи. Самые похожие векторы на картинке — оранжевые.

Пример с книгами. Представьте себе, что мы создаём эмбеддинги для описания книг. Каждый эмбеддинг представляет собой вектор, который кодирует ключевые характеристики текста. Чтобы сравнить векторы, модели используют косинусное сходство — метод, который измеряет угол между ними. Чем меньше угол между векторами, тем больше схожесть между книгами.
Конечно, нет. Но использование методов линейной алгебры позволяет моделям находить скрытые взаимосвязи и проводить анализ текстов. Это особенно важно в задачах, где смысл текста зависит от контекста, например, в семантическом поиске, генерации ответов и других задачах обработки естественного языка.
Плотные векторы содержат больше ненулевых значений, что помогает моделям фиксировать и обрабатывать больше информации. Разреженные векторы, наоборот, состоят преимущественно из нулей, что делает их менее эффективными для задач, где нужно учитывать сложные связи между данными.
Плотные векторы экономят память и ресурсы, что ускоряет работу алгоритмов и моделей, особенно в задачах, связанных с поиском, классификацией и анализом данных.
Разреженный вектор. Представьте, что в разреженном векторе мы храним предпочтения пользователя для каждого товара в каталоге из 100,000 позиций. Если пользователь интересуется только 10–20 товарами, остальные 99980 элементов в векторе будут нулевыми. Это значит, что вычисления будут менее эффективными.
Плотный вектор. Вместо хранения каждого отдельного товара, плотный вектор описывает предпочтения пользователя более обобщёнными категориями, например, «спорт», «электроника» «активный отдых» В результате вектор становится короче, поскольку фиксирует общие интересы, а не конкретные товары. Это позволяет лучше анализировать предпочтения и быстрее обрабатывать данные.
Векторные базы данных — это специализированные системы хранения, предназначенные для работы с векторными вложениями, которые представляют числовые характеристики неструктурированных данных, таких как текст, изображения или аудио.
Векторные базы данных используются для для хранения, индексирования и поиска похожих векторов на основе числовых представлений данных (эмбеддингов). Позволяют быстро находить и сопоставлять векторные представления эмбуддингов.
В векторных базах данных используется метрики подобия, чтобы найти вектор, наиболее похожий на вектор запроса.

Векторные базы данных оптимально подходят для работы с LLM (Large Language Models) благодаря тому, что они решают ключевую задачу — поиск и хранение данных в многомерных векторных представлениях, которые отражают смысловое содержание данных и структуру работы LLM.
Основные причины:
Реляционные базы данных оптимально подходят для задач, связанных с чётко структурированными данными и точными операциями, например, для финансовых систем или управления складскими запасами. В отличие от них, векторные базы данных предназначены для обработки данных с использованием поиска по сходству и работы с неструктурированными данными, такими как текст и изображения.
Реляционные базы данных (RDBMS). Данные организованы в виде таблиц, состоящих из строк и столбцов. Каждый столбец соответствует определённому типу данных (например, числа, строки, даты), а строки представляют отдельные записи. RDBMS используют схемы данных и связи между таблицами.
Векторные базы данных. Хранят данные в виде многомерных векторов, которые могут иметь сотни или тысячи измерений. Эти векторы представляют числовые значения, полученные с помощью алгоритмов машинного обучения (например, текстовые эмбеддинги). Векторные базы данных не требуют жёсткой схемы данных.
Реляционные базы данных. Для поиска используются SQL-запросы для выбора записей, соответствующих конкретным условиям. Например, поиск значений в определённом диапазоне или точное совпадение значений.
Векторные базы данных. Поддерживают поиск по схожести, сравнивая вектора на основе расстояний (например, косинусного, евклидова). Это позволяет искать семантически похожие объекты.
Реляционные базы данных. Используются индексы, такие как B-деревья и хэш-индексы, оптимизированные для точного поиска по значениям и фильтрации по ключевым значениям.
Векторные базы данных. Используются алгоритмы индексации, такие как HNSW, ANNOY и IVF, которые специально разработаны для поиска ближайших соседей в многомерных пространствах. Эти алгоритмы оптимизированы для работы с текстовыми эмбеддингами.

Базы данных, работающие с векторными представлениями данных, можно разделить на две основные категории:

Итак, мы разобрали все составляющие векторного поиска. Теперь посмотрим, как модели эмбеддингов и векторные базы работают вместе в процессе семантического поиска.

Эмбеддинги — это числовое представление текстов, которое используется в широком спектре задач: от построения поисковых систем и кластеризации до рекомендаций и анализа тональности. Они не являются самостоятельным решением, а служат инструментами для более сложных моделей и алгоритмов.
LLM, такие как ChatGPT, используют эмбеддинги для генерации текста и выполнения сложных задач, где требуется гибкость в понимании и создании контента. Из-за вероятностного характера LLM могут генерировать нестабильные результаты, но они незаменимы для задач, требующих понимания контекста и адаптации.
Эмбеддинги позволяют заранее подготовить числовые представления текстов, а это снижает требования к оперативной памяти и вычислительной мощности.
Пример: Анализ отзывов или новостных заголовков на мобильных устройствах, где использование мощных LLM просто невозможно.
Эмбеддинги устойчивы к атакам, таким как «инъекция промптов» (prompt injection), потому что они просто переводят текст в числа, не пытаясь его интерпретировать. Это означает:
LLM иногда генерируют неверную или бессмысленную информацию, потому что они предсказывают следующий фрагмент текста на основе вероятностей. Если в данных были пробелы или контекст плохо распознан, модель может «придумать» что-то, что выглядит правдоподобно, но не имеет смысла. Эмбеддинги работают иначе — они преобразуют текст в числа, без попыток предсказывать следующей слова в генерируемом тексте, поэтому результат более надёжный.
Эмбеддинги появились раньше, чем большие языковые модели (LLM) и успешно используются с середины 2010-х годов. Они проверены временем и отлично справляются с такими задачами, как:
Эмбеддинги улучшают способность LLM анализировать текст, помогают учитывать контекст и зависимости между частями текста. Это повышает точность анализа и поиска и позволяет создавать более точные и полезные ИИ-приложения. Например, чат-боты начинают лучше понимать намерения пользователей, а системы рекомендаций подбирают контент с учетом смысла, а не просто ключевых слов. С развитием генеративных моделей эмбеддинги останутся основой для точного понимания запросов и подготовки наиболее подходящих ответов.
Получайте свежие статьи об AI, данных и аналитике прямо на почту