Что такое эмбеддинг (embedding)?
Эмбеддинг — это представление текста, изображения или другого объекта в виде вектора чисел, в котором близкие по смыслу объекты оказываются близко друг к другу. Именно эмбеддинги позволяют компьютеру сравнивать документы по смыслу, а не по совпадению слов.
Эмбеддинг создаёт отдельная модель: на вход подаётся текст, на выходе получается список из сотен или тысяч чисел. Сами по себе эти числа нечитаемы, но расстояние между двумя векторами показывает, насколько похожи исходные тексты.
Благодаря этому фразы «как вернуть товар» и «условия возврата покупки» оказываются рядом, хотя не имеют ни одного общего слова. На этом свойстве построены семантический поиск, рекомендации, кластеризация и RAG.
Где применяется
Эмбеддинги стоят за большинством «умных» функций в продуктах: поиск по смыслу в базе знаний, подбор похожих товаров и статей, кластеризация обращений по темам, обнаружение дубликатов, антиспам. Во всех случаях задача сводится к сравнению векторов, а не текстов.
В AI-разработке это первый шаг любой системы с поиском по собственным данным. Документы режут на фрагменты, превращают в векторы моделью эмбеддингов, складывают в векторную базу — и уже поверх этого работает поиск, который подаёт найденное языковой модели.
Пример
Запросы «как вернуть товар» и «оформление возврата покупки» не имеют общих слов, но их векторы оказываются рядом. Обычный поиск по ключевым словам второй запрос не найдёт, а поиск по эмбеддингам вернёт нужную инструкцию.
from sentence_transformers import SentenceTransformer, util
model = SentenceTransformer('intfloat/multilingual-e5-base')
a = model.encode('как вернуть товар')
b = model.encode('оформление возврата покупки')
print(util.cos_sim(a, b)) # близко к 1 — тексты о том же самом Эмбеддинг и векторная база — это разные вещи
Эмбеддинг — это сам вектор, результат работы модели. Векторная база данных — хранилище, куда эти векторы складывают, чтобы быстро искать ближайшие. Эмбеддинги можно получать и без векторной базы, но искать по миллионам векторов без неё непрактично.
Частые вопросы
Чем эмбеддинг отличается от обычного поиска по ключевым словам?
Поиск по словам ищет точные совпадения и не находит синонимы или другие формулировки. Эмбеддинги сравнивают смысл, поэтому находят подходящий документ, даже если в нём нет ни одного слова из запроса. На практике оба подхода часто комбинируют.
Какую модель эмбеддингов выбрать?
Для украинского и русского берут многоязычные модели — обычные англоязычные заметно хуже работают с кириллицей. Выбор зависит и от способа запуска: через API у провайдера или собственной моделью локально, когда данные нельзя отдавать наружу.
Можно ли восстановить исходный текст из эмбеддинга?
Точно — нет, это не обратимое сжатие. Но вектор всё же несёт информацию о содержании, и исследования показывают возможность приблизительной реконструкции. Поэтому хранилище векторов защищают так же, как и исходные документы.
Эмбеддинги бывают только у текста?
Нет, тем же способом кодируют изображения, аудио и видео. Мультимодальные модели размещают разные типы данных в общем пространстве, поэтому можно искать изображение по текстовому описанию — их векторы окажутся рядом.