Перейти к содержимому
BestSite

6 мин чтения

Что такое эмбеддинг: как ИИ понимает смысл

Как поиск находит результаты, в которых нет слова из запроса? Простыми словами о том, как слова становятся числами, о фокусе «король − мужчина + женщина», RAG-чат-ботах и о том, где эмбеддинги подводят.

Что такое эмбеддинг: как ИИ понимает смысл

Введите в хороший поиск «недорогое жильё в Баку», и он покажет хостел у Фонтанной площади, гостевой дом в Ичеришехер, какой-нибудь бюджетный отель у бульвара. Присмотритесь к выдаче: скорее всего, слова «недорогое» там нет ни в одном объявлении. Никто так не пишет о себе. Пишут «доступные цены», «эконом», «выгодно» или просто указывают цену.

Как же поиск догадался? Он сравнивал не ваши слова, а то, что вы имели в виду. Делает это возможным штука под названием эмбеддинг. Разберётесь с ней, и половина того, что сейчас называют «искусственным интеллектом», перестанет казаться магией.

Слово превращается в список чисел

Со словами компьютер работает плохо, с числами — отлично. Модель эмбеддингов берёт кусок текста (слово, предложение, целое описание товара) и превращает его в длинный ряд чисел. Примерно так:

"кот" → [0.021, -0.344, 0.187, 0.903, -0.052, ... ]

Чисел в таком ряду обычно от нескольких сотен до нескольких тысяч. У открытых моделей часто 768, у text-embedding-3-small от OpenAI — 1536. Прочитать их по одному не получится, и не нужно: ни одно отдельное число не означает «животное» или «пушистый». Смысл несёт весь ряд целиком.

Проще всего думать о нём как о координатах. У точки на карте их две: широта и долгота. Эмбеддинг — это точка в пространстве, где направлений не два, а 768. Представить такое нельзя, поэтому в видео выше и почти во всех объяснениях его сплющивают до плоской 2D-картинки. Это упрощение, но полезное.

Близкий смысл — близкие точки

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

Никто не объяснял модели, что кошки и собаки — домашние животные. Она вычислила это сама, по тому, как пишут люди. В этом и сила, и слабость всего подхода, к этому мы ещё вернёмся.

Как измеряют «близость»

Казалось бы, можно просто взять линейку и измерить расстояние между точками. На практике чаще смотрят на угол: проводят стрелку от начала координат к каждой точке и смотрят, насколько по-разному они направлены. Это называется косинусное сходство.

  • Стрелки смотрят почти в одну сторону (маленький угол) → оценка близка к 1 → смысл похож.

  • Стрелки под прямым углом → оценка около 0 → тексты не связаны.

Почему угол, а не расстояние? Длина вектора часто отражает то, что нам неинтересно, например, насколько длинным и многословным был текст. А смысл живёт в направлении. Короткий отзыв «ужасный сервис» и длинный злой абзац о том же самом должны смотреть в одну сторону, даже если одна стрелка длиннее.

Знаменитый фокус: король − мужчина + женщина

В 2013 году команда Google во главе с Томашем Миколовым выпустила word2vec, а вместе с ним пример, который с тех пор есть в каждом докладе про ИИ. Берём вектор «король», вычитаем «мужчину», прибавляем «женщину» и ищем ближайшее слово к результату. Получается «королева».

Работает это потому, что направление от «мужчины» к «женщине» примерно такое же, как от «короля» к «королеве». Модель нашла в своём пространстве что-то вроде «оси пола», хотя её никто не задавал. То же самое обнаружилось у стран и столиц, у времён глаголов и так далее.

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

И всё же суть верна: смысл стал геометрией, а с геометрией можно считать.

Где это используется на самом деле

Это не просто тема для лекции. Если за последний год вы пользовались чем-то из списка ниже, вы пользовались эмбеддингами.

Поиск, который вас понимает

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

Рекомендации

«С этим товаром также смотрят…» можно сделать, поместив товары, статьи или фильмы в одно пространство и предлагая соседей. Интернет-магазину не нужен год истории покупок, чтобы начать рекомендовать: для старта хватит описаний.

Чат-боты, которые знают ваш бизнес (RAG)

Когда компании нужен чат-бот, который отвечает по её собственным документам (прайсам, правилам, договорам), обычно используют RAG, retrieval-augmented generation. Все документы один раз режут на фрагменты и превращают в эмбеддинги. Когда клиент задаёт вопрос, его тоже превращают в вектор, достают самые близкие фрагменты и передают языковой модели только их. Модели не нужно «помнить» вашу компанию: она просто читает нужную страницу в нужный момент.

Как это выглядит в коде

Не так страшно, как звучит. Если проект уже работает на Postgres (в том числе на Supabase), расширение pgvector позволяет хранить эмбеддинги прямо рядом с обычными данными. Найти пять самых похожих товаров можно одним запросом:

select title, price
from products
order by embedding <=> $1
limit 5;

Здесь $1 — эмбеддинг запроса пользователя, а <=> — косинусное расстояние. Для большинства небольших и средних проектов отдельная векторная база не нужна.

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

Где эмбеддинги подводят

Нам эта технология очень нравится, и именно поэтому стоит честно сказать о её ограничениях:

  • Точные вещи. Артикулы, телефоны, номера счетов, названия моделей вроде «iPhone 15» и «iPhone 16». По смыслу они почти одинаковые, и чистый векторный поиск легко их путает. Тут обычный поиск по словам работает лучше.

  • Отрицание. «Отель с бассейном» и «отель без бассейна» в векторном пространстве стоят совсем рядом. Модель видит одну и ту же тему и не замечает единственное слово, которое переворачивает смысл.

  • Язык. Многие модели учились в основном на английском. С азербайджанским и русским хорошие мультиязычные модели справляются, но качество сильно разнится. Проверяйте на своих реальных данных, прежде чем выбирать.

  • Нарезка. В RAG то, как вы режете документы, важно не меньше самой модели. Разрежьте прайс-таблицу пополам, и чат-бот уверенно назовёт не ту цену.

Поэтому в реальных проектах мы редко используем одни только векторы. Обычная схема — гибридный поиск: поиск по словам и векторный поиск работают параллельно, а результаты объединяются. Точные совпадения остаются точными, а размытые запросы всё равно находят то, что люди имели в виду.

Если одной фразой

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

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

Расскажите о своём проекте

Опишите задачу в нескольких предложениях. Мы вернёмся с вопросами или предварительной оценкой.

Emailoffice@bestsite.az

Что будет после заявки

  1. 1Читаем заявкуРазбираемся в задаче и при необходимости задаём уточняющие вопросы.
  2. 2Обсуждаем деталиСозваниваемся или переписываемся, чтобы понять цели, сроки и бюджет.
  3. 3Присылаем оценкуГотовим предварительную оценку сроков и стоимости работ.

Отправляя форму, вы соглашаетесь с политикой конфиденциальности.

Частые вопросы

Зависит от объёма работ: корпоративный сайт и CRM-система отличаются по стоимости в разы. После короткого созвона мы бесплатно готовим письменную смету с разбивкой по этапам.

Мы работаем быстро: лендинг запускаем от 5 рабочих дней, корпоративный сайт от 2 недель, интернет-магазин от 4 недель. Мобильное приложение или CRM занимает от 3 месяцев. Точные сроки фиксируем в смете.

Да. Мы ведём проекты удалённо: созвоны, общая доска задач и регулярные демонстрации.

Вам. После финальной оплаты мы передаём исходный код, дизайн и все аккаунты.

Да. Мы предлагаем ежемесячную поддержку: мониторинг, резервное копирование, обновления, исправления и небольшие доработки.

Да. Мы начинаем с технического аудита и предлагаем, что исправить, что переписать, а что оставить как есть.

Не нашли ответ?

Оставьте заявку или напишите на почту, и мы ответим на все вопросы о вашем проекте.