Поиск с использованием ИИ для нахождения неточных совпадений

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

  • когда будут доступны оценки для магистров?
  • какой проходной балл для студентов программы MPsych?
  • сколько недель отпуска я могу взять за один раз?
  • что происходит, если мой тьютор не сдает модуль первого этапа?
  • что требует университет от меня, если мой тьютор причиняет себе вред?
  • сколько мы платим участникам исследований?
  • как получить повышение?
  • какие источники финансирования для PhD доступны? или когда выпускаются стипендии для студентов PhD в школе?
  • где в программе студенты изучают повторные измерения ANOVA?

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

5 лайков

Спасибо за обратную связь, Бен.

Посмотрите очередь PR, над которой работает @falco: семантический поиск на основе Hyde. Как только он будет готов, я попробую добавить для него команду.

2 лайка

К сведению

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

DeepLearning.AI недавно (14.08.2023) добавила этот бесплатный базовый курс по

Большие языковые модели с семантическим поиском (ссылка)

который можно найти на странице коротких курсов.


Те, кто следит за тем, кто есть кто в мире ИИ, должны узнать некоторых из выступающих.

1 лайк

Для тех, кто, как я, любит научные статьи и, как я, не знал о HyDE, вот эта статья.

“Точный поиск без плотных меток релевантности в режиме нулевого обучения” авторов Луи Гао, Сюэгуан Ма, Джимми Лин и Джейми Коллана (pdf)

1 лайк

Можете предоставить ссылку? (Ответ ниже)

Извините за вопрос, я просто не мог найти это. Хотя я узнал о командах бота. (ссылка)

@EricGT спасибо за ссылку. Эта статья довольно сложная для тех, кто уже не очень хорошо разбирается в машинном обучении.

Суть, как я понимаю, заключается в следующем: в данном контексте HyDE использует большую языковую модель (LLM) для создания сначала «выдуманного» ответа на основе вопроса. Этот ответ будет иметь форму реального поста на форуме (например), но может содержать галлюцинации и быть фактологически неверным, поскольку контент генерируется LLM, а не берётся из канонического набора документов. Этот документ никогда не показывается пользователю, но хитрость в том, что он будет семантически похож на реальные документы/темы на вашем сайте. Поиск возвращает реальные документы, наиболее похожие на «выдуманный» документ, и эмпирически это работает лучше, чем простое сопоставление исходного поискового запроса с семантически похожими документами в базе векторных представлений.

@sam Поиск на основе гипотез звучит круто, и я с нетерпением жду возможности это попробовать. Планируете ли вы сделать настраиваемые параметры для некоторых из этих функций ИИ? Например, мне кажется, было бы удобно иметь возможность редактировать промпты, используемые как для генерации гипотетического документа, так и для управления сводкой/ответом. Например, текущий чат-бот довольно многословен, когда находит ответы. Было бы здорово иметь возможность добавлять префиксы «кратко» или «сжато» к промпту (как я часто делаю при использовании самого ChatGPT).

4 лайка
4 лайка

Отличное замечание!


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

Смотрите:

Промпты

40–90%: Сумма, сэкономленная за счёт добавления «Будь краток» к вашему промпту

Важно помнить, что вы платите за токены в ответах. Это означает, что просьба к LLM быть кратким может сэкономить вам много денег [1]. Это можно расширить за пределы простого добавления «будь краток» к вашему промпту: если вы используете GPT-4, чтобы придумать 10 вариантов, возможно, попросите 5 и сохраните половину денег.

1 лайк

У нас уже готов бэкенд для этого, но нам потребуется время, чтобы корректно интегрировать его в страницу результатов поиска Discourse, так как интерфейс довольно сложный.

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

3 лайка

Вы можете попробовать это здесь, на Meta: просто перейдите на страницу поиска и задайте несколько вопросов. Дайте знать, как всё получится.

2 лайка

Отлично! Особенно когда вводишь поисковый запрос, который для точного совпадения возвращает «Результатов не найдено».

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

Возможно, некоторые поисковые запросы можно ограничить конкретными категориями или тегами. Например:

  • При поиске «Как предотвратить отправку писем активации при входе пользователей через WordPress?» лучшие результаты будут найдены в категориях Documentation или Support > WordPress.

  • При поиске «Как написать запрос Data Explorer, возвращающий темы с наибольшим количеством лайков?» лучшие результаты будут найдены в категориях #data-reporting и Documentation.

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

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

4 лайка

Именно эту проблему я и хотел решить с помощью новой функции. Семантический поиск всегда найдёт что-нибудь.

На данный момент семантический поиск довольно прост. Он состоит всего из нескольких строк кода на бэкенде и возвращает то, что семантически ближе всего. В нём отсутствуют многие функции поиска, которые мы добавляли в стандартный поиск за последнее десятилетие, например Улучшения поиска в версии 2.3 и многие другие. Из-за этого сейчас он предлагается как дополнительный набор результатов.

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

5 лайков

Да, это действительно впечатляет для сложных запросов.

Хотя для этого запроса он не нашел конкретный пост, ему удалось найти достаточно тем, которые указывают в нужном направлении!

5 лайков