Разработка генеративных приложений искусственного интеллекта с
В предыдущей статье этой серии мы рассмотрели конвейер внедрения, который заполняет
Здесь мы рассмотрим фактическое взаимодействие с LLM и рассмотрим пару распространенных проблем, которые могут привести к плохим результатам: неточные подсказки и недостаточные подходы к генерации.
Даже самые лучшие стратегии внедрения и фрагментации не могут заменить потребность в качестве.
В частности, есть несколько вещей, которые следует учитывать при создании подсказок для приложений RAG. К ним относятся:
Расскажите LLM о его роли: при взаимодействии с агентами LLM, такими как ChatGPT, они по умолчанию действуют как полезный чат-бот. Однако вы можете изменить характер ответов, которые будут генерироваться, проинструктировав LLM действовать определенным образом. Примерами могут быть такие вещи, как «вы являетесь адвокатом, оценивающим, нарушает ли какая-либо из сторон соглашение» или «вы являетесь агентом по обслуживанию клиентов интернет-провайдера; ваша работа — помогать людям устранять их проблемы с Интернетом» или что-то еще, что имеет смысл для вашей конкретной ситуации.
Явно сообщите LLM использовать предоставленный контекст . Дайте понять LLM, что вы предоставляете контекст и хотите, чтобы сгенерированный ответ отражал этот контекст. Вы можете сделать это, сказав что-то вроде «ваш ответ должен учитывать следующий контекст», а затем контекст. Используйте примеры: В только что упомянутом сценарии, когда вы просите LLM выступить в качестве адвоката по оценке контрактов, вы можете включить в подсказку несколько примеров. Например, вы можете привести пример контракта, в котором указано, что оплата должна быть произведена в течение 30 дней, но покупатель отправил платеж только через 40 дней после подписания контракта и, следовательно, нарушил соглашение. Вы можете привести дополнительные примеры прав на возмещение ущерба и возможные способы устранения нарушений контракта.
Укажите формат вывода. Если ваш вариант использования требует определенного вывода, вы можете указать формат, которому должен соответствовать сгенерированный вывод. Вы можете объединить этот метод с приведенным выше советом, чтобы предоставить примеры, чтобы прояснить LLM как то, как вы хотите, чтобы он реагировал, так и ключевые моменты информации, которую вы ожидаете в сгенерированном ответе.
Используйте цепочку мыслей . В случаях использования, когда для определения соответствующего ответа требуется рассуждение, вы можете рассмотреть возможность использования метода, называемого цепочкой мыслей , чтобы объяснить шаги, которые вы хотите, чтобы LLM выполнил для получения сгенерированного ответа. Например, в случае с юридическими контрактами вы можете провести LLM через логические шаги, которым должен следовать человек, чтобы определить, было ли нарушено условие контракта. Например, при работе с юридическими контрактами вы можете попросить LLM сначала поискать положения, определяющие условия оплаты, затем определить количество времени, в течение которого покупатель должен был отправить платеж, а затем подсчитать количество дней между моментом получения платежа и датой получения платежа. дату подписания договора. Тогда, если оплата заняла больше времени, чем оговорено, покупатель нарушил соглашение.
Использование этих методов для улучшения оперативного проектирования может оказать существенное влияние на качество получаемых результатов, которые вы можете получить в своих приложениях RAG. Однако иногда вам придется использовать методы, предполагающие множественный обмен информацией с LLM, чтобы получить приемлемый ответ.
Перспективный активный поиск, или
Вы можете увидеть пример того, как работает FLARE, в примере кулинарной книги LangChain FLARE .
Создавая запросы, аналогичные запросу пользователя, и получая соответствующий контекст как для исходного запроса, так и для сгенерированных похожих запросов, мы можем повысить вероятность того, что мы выбрали наиболее полезный контекст для получения точных результатов. Процесс, получивший название «RAG-слияние», выглядит следующим образом:
Ключевым шагом здесь является использование функции взаимного ранга для дальнейшего уточнения результатов ИНС и определения наиболее релевантного контекста, который будет использоваться для генерации ответа.
RAG — это подход, с которым легко начать работу, но он часто приводит разработчиков к разочарованию из-за неудовлетворительных результатов по неясным причинам. На актуальность результатов в приложениях генеративного искусственного интеллекта с поддержкой RAG может влиять несколько факторов. Тщательно выбирая модели внедрения, формулируя стратегии разбиения на блоки и разрабатывая подсказки, вы можете значительно повысить качество и точность генерируемых ответов в системах, работающих на основе LLM, таких как ChatGPT. Надеемся, эти советы помогут вам создать более полезные приложения RAG, которые обеспечат тот опыт и ценность, к которым вы стремитесь.
Крис Латимер, DataStax
Также появляется здесь .