[МСК]

Что такое семантический поиск и что он даёт бизнесу

Зачем это знать

  • Понять, почему база знаний не отвечает на вопросы, ответы на которые в ней лежат
  • Оценить, какая часть обращений в поддержку закрывается поиском без участия человека
  • Спрашивать подрядчика, как измеряется качество поиска на документах компании

Что такое семантический поиск простыми словами

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

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

Семантический поиск переносит на машину ровно ту работу, которую делает опытный продавец. Каждый кусок текста заранее переводится в набор чисел — эмбеддинг. Близкие по смыслу тексты получают близкие числа. Дальше сравниваются уже числа, и совпадение слов перестаёт быть условием.

Поиск по словам
Семантический поиск
Что сравнивается
буквы и словоформы
смысл запроса и текста
Синонимы и жаргон
нужен ручной словарь
разбираются из коробки
Опечатки в запросе
результат пустой
чаще находит нужное
Артикулы и номера договоров
точное попадание
слабое место, нужен гибрид
Подготовка
индекс по словам
разбиение на куски и векторы
Что меняется при переходе с поиска по словам

Как это работает

Шаг 1
Режут на куски
Регламенты и инструкции делят на фрагменты по 200–500 слов: целиком документ в поиск не отдают
Шаг 2
Считают векторы
Каждый кусок отдельная модель переводит в набор чисел, который отражает его смысл
Шаг 3
Кладут в хранилище
Векторы вместе со ссылкой на исходный документ складывают в векторную базу
Шаг 4
Переводят запрос
Вопрос сотрудника проходит через ту же модель и становится вектором той же природы
Шаг 5
Отдают ближайшее
База возвращает несколько ближайших кусков — их читает человек или на них отвечает модель
Путь от документа до ответа

Первые три шага делаются один раз и повторяются при обновлении документов. Последние два занимают доли секунды на каждый запрос.

Дальше развилка. Найденные куски показывают человеку списком — получается умный поиск по базе знаний. Или их передают языковой модели, чтобы она собрала из них связный ответ со ссылками на источник: этот сценарий называется RAG.

Само хранилище — векторная база. На объёмах до нескольких сотен тысяч кусков подойдёт расширение к обычной базе данных, которая в компании уже есть.

Пример из практики

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

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

Качество меряют до запуска и после. Берут 100 обращений из журнала звонков за прошлый квартал, для каждого отмечают правильный документ и считают долю, где он попал в первые пять результатов. Тот же список прогоняют после каждой правки разбиения. Растёт доля — правка полезна.

Здесь же честное ограничение: поиск по номеру наряда и по серийному номеру оставляют старый, по точному совпадению. Смысла в номере нет, сравнивать нечего.

Что это даёт бизнесу

  • Ответ находится без посредника. Вопросы, ради которых сотрудник писал в поддержку или звонил коллеге, закрываются самостоятельно. Освободившиеся часы стоит заранее расписать — иначе экономия останется на бумаге.
  • Знания перестают быть привязаны к людям. Регламенты, переписка и накопленные решения становятся доступны новичку с первого дня. Срок ввода в должность сокращается, и это измеримо по журналу обращений.
  • База знаний оживает без переписывания. Документы остаются на месте и в прежнем формате. Работы уходят на разбиение и проверку, а не на ручную разметку каждого файла.
  • Открывается путь к ответам от модели. Поиск по смыслу — обязательная часть RAG: модель отвечает по документам компании и ссылается на источник. Без поиска модель отвечает по памяти, а память бывает неточной.

Когда без этого можно обойтись

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

Поиск по строгим идентификаторам тоже лучше оставить прежним. Номера договоров, артикулы, ИНН, даты — здесь нужно точное совпадение, и вычисление близости только мешает. Рабочее решение обычно гибридное: точный поиск для номеров, смысловой для формулировок.

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

Что важно проверить

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

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

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

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

Семантический поиск простыми словами — это что?

Это поиск, который сравнивает смысл запроса со смыслом документов. Слова в вопросе и в тексте могут не совпадать совсем. Запрос «щётки на лобовое» находит карточку «стеклоочиститель бескаркасный», потому что система сравнивает не буквы, а близость значений. Работает это на числовых представлениях текста, которые считает языковая модель.

Чем он отличается от обычного поиска по сайту

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

Что нужно, чтобы его запустить

Нужны три вещи: собранные документы, модель для перевода текста в векторы и хранилище этих векторов. Документы режут на куски по 200–500 слов, каждый кусок переводят в вектор, векторы складывают в базу. Дальше запрос проходит тот же путь, и система отдаёт ближайшие куски. Сложность обычно не в поиске, а в подготовке самих документов.

Как понять, что поиск работает хорошо

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

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

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