Одна из распространённых ошибок, которую многие из нас допускают в отношении ИИ, заключается в том, что наши ожидания таковы:
graph TD
Вопрос -->|"Дорогая магия ИИ"| Ответ
Ответ["Идеальный ответ"]
Может быть крайне неприятно тратить значительные суммы на флагманскую модель и всё равно получать результаты ниже среднего.
В этой теме я хочу уделить время корректировке ожиданий и указать на различные функции, которые предоставляет Discourse AI, чтобы помочь получать более качественные ответы.
Как на самом деле работает Discourse AI
Реальность более сложна. Когда вы задаёте вопрос, происходит следующее:
graph TD
Вопрос --> Консолидация[Консолидация вопроса]
Консолидация --> RAG[Система RAG]
RAG --> ВыборИнструментов[Выбор инструментов]
ВыборИнструментов --> Поиск[Поиск]
ВыборИнструментов --> Категории[Категории]
ВыборИнструментов --> Теги[Теги]
Поиск --> Контекст[Сбор контекста]
Категории --> Контекст
Теги --> Контекст
Контекст --> Ответ[Генерация ответа]
- Ваш вопрос сначала консолидируется и понимается.
- Наша система RAG ищет в доступных знаниях (опционально).
- На основе найденного она решает, какие инструменты использовать (опционально).
- Инструменты собирают конкретную информацию.
- Всё объединяется для генерации ответа.
Контекст — это всё
При использовании систем ИИ для ответов на вопросы контекст имеет решающее значение.
Большие языковые модели (LLM), такие как GPT-4 или Claude 3.5 Sonnet, обучены на огромном массиве публичных данных. Однако есть два ограничения, которые делают их менее идеальными для ответов на вопросы в конкретной предметной области:
- LM обучены на публичных данных.
- LLM имеют дату отсечения обучения, что означает, что публичные данные, появившиеся всего несколько месяцев назад, скорее всего, отсутствуют в наборе данных.
В случае закрытого форума в наборе данных ничего не будет, что делает контекст ещё более важным.
Контекст — это информация, которую мы предоставляем LLM перед тем, как она ответит на вопрос, чтобы помочь ей дать правильный ответ.
Как получить контекст?
Контекст можно предоставить несколькими способами:
- Автоматически с помощью RAG (Retrieval-Augmented Generation — генерация с дополнением извлечением) — когда вы загружаете документы в персону, мы можем искать ответы в документе перед ответом. Сначала мы консолидируем ваш вопрос, а затем ищем в содержании с помощью семантического поиска. Это помогает определить, какие инструменты использовать.
- Автоматически с помощью инструментов — LLM могут использовать инструменты (например, поиск или чтение тем) для поиска дополнительной информации на основе рекомендаций RAG.
- Вручную — вы можете вставить большой объём текста, а затем задать LLM вопросы о нём.
Контекст на основе инструментов
Помощник форума Discourse использует инструменты для поиска, чтения тем и постов, а также для перечисления категорий или тегов.
Когда вы задаёте вопрос Помощнику форума, модель сначала использует RAG, чтобы понять, что может быть релевантным, а затем решает, какие инструменты помогут получить лучшие ответы.
В этом примере видно, что я спросил помощника форума, чем я занимался, и он решил поискать контент от Сэма, опубликованный за последнюю неделю, и получил 21 результат.
Чтобы понять, какой новый контекст модель получила в результате этого поиска, вы можете включить настройку: Разрешённые группы для отладки бота ИИ.
Это добавит кнопку отладки в нижней части каждого поста; при нажатии на неё можно увидеть точный контекст, который был предоставлен LLM.
Инструмент поиска Discourse очень богат в плане опций:
Это одновременно и благословение, и проклятие. LLM часто делают неоптимальный выбор, если на столе слишком много вариантов; мы пытались не делать количество вариантов слишком высоким, но в зависимости от ваших потребностей вам может быть удобнее использовать пользовательский инструмент для поиска.
Что мне делать, если я не получаю ожидаемых результатов?
Учитывая, что контекст — это всё, первое, что нужно проверить:
- Нашла ли система RAG релевантный контент для направления инструментов.
- Использовала ли LLM правильные инструменты на основе этих рекомендаций.
- Нашли ли инструменты ожидаемые результаты.
Например, рассмотрим этот провал:
Это классический провал как в направлении RAG, так и в использовании инструментов.
LLM выполнила поиск по запросу:
bug critical urgent broken order:latest status:open status:public
Ключевая часть этого поиска довольно слабая и даёт лишь один результат; семантический поиск затем с трудом находит результаты, потому что каждый раз, когда кто-то громко заявляет о проблеме, система считает её срочной.
Что, вероятно, дало бы лучший результат, так это:
Найти все открытые ошибки, отсортированные по количеству лайков, которые были сообщены за последние две недели. Однако этот конкретный поднабор информации недоступен функции поиска в таком виде; для этого потребуется пользовательский инструмент.
Учитывая большой разброс и нюансы здесь, первое, что нужно сделать, — это отслеживать существующие взаимодействия пользователей с вашими ботами и собирать как можно больше случаев неудач.
Что делать с неудачными случаями?
Когда у вас есть неудачное взаимодействие, у вас есть несколько вариантов:
- Вы можете улучшить системный промпт, чтобы лучше направлять бота.
- Вы можете опубликовать информацию на форуме, чтобы дать боту лучшие результаты поиска — вы можете приоритизировать категорию документации, чтобы она с большей вероятностью была найдена.
- Вы можете загрузить документ с большим контекстом; мы разобьём документ на фрагменты и предоставим ближайшие фрагменты к консолидированному вопросу, чтобы помочь боту сориентироваться.
- Если ваша персона преимущественно связана с поиском, принудительно используйте инструмент поиска.
- Вы можете разработать пользовательские инструменты, чтобы лучше соответствовать вашим потребностям.
- Вы можете увеличить объём контекста, предоставляемого LLM (больше результатов поиска и т. д.).
ИИ может быть размытым: решение одной проблемы может создать другую
Имейте в виду, что создание «идеального» бота для ответов на вопросы с помощью ИИ — это путь. Создание контролируемых циклов обратной связи и регулярная оценка его эффективности позволят вам со временем улучшить его.
Будьте внимательны к тому, как построена технология: если для ответа на вопрос вам нужен контекст из 10 000 постов, может оказаться невозможным загрузить весь список постов в контекст для ответа с учётом текущих окон контекста.
Ключ к успеху — понимание того, что получение лучших результатов — это итеративный процесс.}


