Поиск по смыслу, намерению и контексту

Это четвертая статья из серии Создание ИИ-приложений на базе LLM. Из предыдущей статьи мы представили вложения/векторы, которые являются вспомогательными технологиями для семантического поиска.

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

Обзор



В статье вводится семантический поиск и упоминаются два встраивания в НЛП: встраивание слов и встраивание предложений (могут быть встраивания изображений, аудио, видео, если это числовое представление части информации), а также соображения, когда вы решаете, следует ли использовать семантический поиск или нет.



В статье используется библиотека txtai.embeddings для демонстрации семантического поиска.



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

Приложения семантического поиска



  1. Интеллектуальный запрос/поиск/ответ на вопрос: семантический поиск позволяет пользователям вводить поисковые запросы, состоящие из слов, семантических выражений или примеров документов, и извлекать результаты, ранжированные на основе семантического сходства. Это помогает находить фрагменты информации, понимать намерения пользователя и предоставлять релевантные результаты поиска.
  2. Извлечение/индексирование/категоризация метаданных: семантический поиск помогает извлекать метаданные из различных источников, таких как изображения и документы. Это позволяет классифицировать информацию на основе ее назначения и контекстуального значения, обеспечивая эффективное управление и организацию неструктурированных данных.
  3. Управление знаниями. Решения для семантического поиска упрощают управление знаниями в организациях. Они позволяют осуществлять поиск и извлечение информации в масштабах всей организации, анализ тональности обзоров и комментариев, а также беспрепятственную интеграцию стратегий бизнес-аналитики.
  4. Правописание: семантический поиск может обрабатывать орфографические ошибки и варианты поисковых запросов. Он автоматически исправляет простые ошибки, такие как включение, пропуск, замена и перестановка символов, повышая точность поиска и удобство для пользователя.

Создание приложений семантического поиска



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

  • Извлекающий ответ на вопрос, когда ответы «извлекаются» из основного текста.
  • Генеративный ответ на вопрос, где ответы «генерируются» из существующих примеров вопросов и правильных ответов.
  • Поиск часто задаваемых вопросов: генерация ответов на вопросы на основе корпуса существующих вопросов и ответов.
  • Поиск во внутренних текстовых системах, таких как финансовые отчеты или системы поиска юридических дел (поиск документов).

Haystack поддерживает множество серверных хранилищ данных (вы можете увидеть Elasticsearch и популярные векторные базы данных) и служит интерфейсом для индексации и запросов. У него также есть конвейер (например, узел извлечения Elasticsearch, узел ответа на вопросы).



Дополнительные компоненты семантического поиска на основе стога сена:

  • ВстраиваниеRetriever
  • FAISSDocumentStore
  • DocumentSearchPipeline

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



Простое небольшое поисковое приложение, использующее встраивание OpenAI для преобразования документа (результирующие встраивания сохраняются в новом столбце фрейма данных и сохраняются в CSV-файл), при запросе используя cosine_similarity для вычисления сходства. Чтобы включить семантический поиск:

  1. Встраивание генератора
  2. Магазин встраивания
  3. Встроенная индексация (для эффективного поиска, например, индексация реляционной базы данных)
  4. Встраивание ретривера/движка запросов


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

  • Подобно BERT, только с использованием энкодера преобразователя. Хорош в классификации, обобщении и распознавании сущностей.
  • Семейство GPT, только декодер. Хорошо справляется с генеративными задачами, такими как перевод и контроль качества.

Тест MTEB/BEIR для оценки информационно-поисковых моделей. Текущие современные модели встраивания:

  • Модели SBERT (all-MiniLM-L6-v2, all-MiniLM-L12-v2 и all-mpnet-base-v2) обеспечивают хороший баланс между простотой и качеством ранжирования.
  • SGPT (5,8 млрд, 2,7 млрд, 1,3 млрд) — это недавняя версия доработанной LoRa модели GPT-NeoX с открытым исходным кодом для ранжирования.
  • GTR-T5 — это модель встраивания Google с открытым исходным кодом для семантического поиска, использующая T5 LLM в качестве основы.
  • E5 (v1 и v2) — новейшая модель встраивания от Microsoft.

Большинство моделей имеют многоязычные версии:



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



Фильтрация метаданных: магазин электронной коммерции будет иметь список данных продукта на своем веб-сайте, однако вы увидите дополнительные фильтры, такие как ценовой диапазон, цвета, материал. В статье рассказывается об использовании глубокого обучения для рекомендации фильтра (например, из запроса «золотой кулон», предсказать рекомендуемые грани: диапазон цен, длина цепи, цвет металла)

Традиционное поисковое решение с вложениями

Предыстория: в мире поиска Elasticsearch является лидером рынка полнотекстового поиска. Он был изобретен до того, как вложения стали широко использоваться. Как он включает семантический поиск?



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



Шаги по добавлению векторного поиска Elasticsearch:

  1. ES обрабатывает исходные данные процессором вывода, который будет добавлять вложение для каждого прохода. Для этого мы создаем конвейер загрузки текста, а затем переиндексируем наши исходные данные с помощью этого конвейера.
  2. нам нужно создать и определить сопоставление для нашего целевого индекса, в частности, для поля text_embedding.predicted_value, где принимающий процессор будет хранить вложения. Если мы этого не сделаем, эмбеддинги будут проиндексированы в обычные поля с плавающей запятой и не смогут использоваться для поиска векторного подобия. Затем переиндексируйте коллекцию с конвейером.
  3. Во время получите встраивание для запроса. Затем подключите полученный плотный вектор к _knn_search.

В Elasticsearch 8.8 добавлена ​​поддержка нативного гибридного поиска.





Программный способ индексации и запросов с векторами в Elasticsearch.

Приложение



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



Семантический поиск когнитивной службы Azure