paint-brush
Достижение соответствующих ответов LLM путем решения общих проблем поиска дополненной генерациик@datastax
745 чтения
745 чтения

Достижение соответствующих ответов LLM путем решения общих проблем поиска дополненной генерации

к DataStax4m2024/01/16
Read on Terminal Reader

Слишком долго; Читать

Мы рассмотрим распространенные проблемы, которые могут возникнуть при реализации RAG и взаимодействии LLM.
featured image - Достижение соответствующих ответов LLM путем решения общих проблем поиска дополненной генерации
DataStax HackerNoon profile picture
0-item
1-item


Разработка генеративных приложений искусственного интеллекта с поиск дополненной генерации (RAG) и векторные базы данных могут быть сложными. Вам часто придется устранять неполадки в реализациях RAG, которые полагаются на векторные базы данных, чтобы гарантировать получение соответствующего контекста; это очень важно, поскольку этот контекст затем включается в приглашение к большой языковой модели для получения более точных результатов.


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

Здесь мы рассмотрим фактическое взаимодействие с LLM и рассмотрим пару распространенных проблем, которые могут привести к плохим результатам: неточные подсказки и недостаточные подходы к генерации.

Оперативное уточнение

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

Упрощенный взгляд на LLM


В частности, есть несколько вещей, которые следует учитывать при создании подсказок для приложений RAG. К ним относятся:


Расскажите LLM о его роли: при взаимодействии с агентами LLM, такими как ChatGPT, они по умолчанию действуют как полезный чат-бот. Однако вы можете изменить характер ответов, которые будут генерироваться, проинструктировав LLM действовать определенным образом. Примерами могут быть такие вещи, как «вы являетесь адвокатом, оценивающим, нарушает ли какая-либо из сторон соглашение» или «вы являетесь агентом по обслуживанию клиентов интернет-провайдера; ваша работа — помогать людям устранять их проблемы с Интернетом» или что-то еще, что имеет смысл для вашей конкретной ситуации.


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


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


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


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

Расширенные шаблоны

ВСПЫШКА

Перспективный активный поиск, или ВСПЫШКА , является примером метода RAG с несколькими запросами, который включает в себя итеративный вызов LLM с использованием в приглашении специальных инструкций, которые просят LLM предоставить дополнительные вопросы о ключевых фразах, которые помогут ему сгенерировать лучший ответ. Как только LLM имеет контекст без пробелов, он завершается окончательным ответом. Этот процесс добавляет цикл между LLM и агентом ИИ (чат-бот ИИ на диаграмме), чтобы облегчить эти итерации:

ВСПЫШКА


Вы можете увидеть пример того, как работает FLARE, в примере кулинарной книги LangChain FLARE .

РЭГ Фьюжн

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

РЭГ Фьюжн

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

Заключение

RAG — это подход, с которым легко начать работу, но он часто приводит разработчиков к разочарованию из-за неудовлетворительных результатов по неясным причинам. На актуальность результатов в приложениях генеративного искусственного интеллекта с поддержкой RAG может влиять несколько факторов. Тщательно выбирая модели внедрения, формулируя стратегии разбиения на блоки и разрабатывая подсказки, вы можете значительно повысить качество и точность генерируемых ответов в системах, работающих на основе LLM, таких как ChatGPT. Надеемся, эти советы помогут вам создать более полезные приложения RAG, которые обеспечат тот опыт и ценность, к которым вы стремитесь.


Попробуйте DataStax Astra DB , единственная векторная база данных для создания приложений искусственного интеллекта производственного уровня на основе данных в реальном времени .


Крис Латимер, DataStax


Также появляется здесь .