С помощью баз знаний для Amazon Bedrock вы можете безопасно подключить базовые модели (FM) в Amazon Bedrock к данным вашей компании для извлечения дополненной генерации (RAG). Доступ к дополнительным данным помогает модели генерировать более релевантные, контекстно-зависимые и точные ответы без переобучения FM.
В этом посте мы обсуждаем две новые функции баз знаний для Amazon Bedrock, характерные для RetrieveAndGenerate
API: настройка максимального количества результатов и создание пользовательских подсказок с помощью шаблона подсказки базы знаний. Теперь вы можете выбрать их в качестве параметров запроса рядом с типом поиска.
Обзор и преимущества новых функций
Опция максимального количества результатов дает вам контроль над количеством результатов поиска, которые будут извлечены из векторного хранилища и переданы в FM для генерации ответа. Это позволяет вам настроить объем исходной информации, предоставляемой для генерации, тем самым предоставляя больше контекста для сложных вопросов или меньше для более простых вопросов. Это позволяет получить до 100 результатов. Эта опция помогает повысить вероятность соответствующего контекста, тем самым повышая точность и уменьшая галлюцинацию сгенерированного ответа.
Пользовательский шаблон приглашения базы знаний позволяет заменить шаблон приглашения по умолчанию собственным, чтобы настроить приглашение, отправляемое в модель для генерации ответа. Это позволяет вам настроить тон, формат вывода и поведение FM, когда он отвечает на вопрос пользователя. С помощью этой опции вы можете настроить терминологию так, чтобы она лучше соответствовала вашей отрасли или сфере деятельности (например, здравоохранению или юриспруденции). Кроме того, вы можете добавлять собственные инструкции и примеры, адаптированные к вашим конкретным рабочим процессам.
В следующих разделах мы объясним, как можно использовать эти функции с помощью Консоли управления AWS или SDK.
Предварительные условия
Чтобы следовать этим примерам, вам необходимо иметь существующую базу знаний. Инструкции по его созданию см. в разделе Создание базы знаний.
Настройте максимальное количество результатов с помощью консоли
Чтобы использовать параметр максимального количества результатов с помощью консоли, выполните следующие действия:
- На консоли Amazon Bedrock выберите Базы знаний в левой панели навигации.
- Выберите базу знаний, которую вы создали.
- Выбирать Тестовая база знаний.
- Выберите значок конфигурации.
- Выбирать Синхронизировать источник данных прежде чем вы начнете тестировать свою базу знаний.
- Под Конфигурациидля Тип поискавыберите тип поиска в зависимости от вашего варианта использования.
В этом посте мы используем гибридный поиск, поскольку он сочетает в себе семантический и текстовый поиск для обеспечения большей точности. Дополнительные сведения о гибридном поиске см. в разделе Базы знаний для Amazon. Bedrock теперь поддерживает гибридный поиск.
- Расширять Максимальное количество исходных фрагментов и установите максимальное количество результатов.
Чтобы продемонстрировать ценность новой функции, мы покажем примеры того, как можно повысить точность формируемого ответа. Мы использовали Документ Amazon 10K на 2023 год в качестве исходных данных для создания базы знаний. Для экспериментов мы используем следующий запрос: «В каком году годовой доход Amazon увеличился с $245 млрд до $434 млрд?»
Правильный ответ на этот запрос: «Годовой доход Amazon увеличился с 245 миллиардов долларов в 2019 году до 434 миллиардов долларов в 2022 году», согласно документам в базе знаний. Мы использовали Claude v2 в качестве FM для генерации окончательного ответа на основе контекстной информации, полученной из базы знаний. Claude 3 Sonnet и Claude 3 Haiku также поддерживаются в качестве FM поколения.
Мы выполнили еще один запрос, чтобы продемонстрировать сравнение извлечения с различными конфигурациями. Мы использовали тот же входной запрос («В каком году годовой доход Amazon увеличился с 245 миллиардов долларов до 434 миллиардов долларов?») и установили максимальное количество результатов равным 5.
Как показано на следующем снимке экрана, сгенерированный ответ был «Извините, я не могу помочь вам с этим запросом».
Далее устанавливаем максимальное количество результатов 12 и задаем тот же вопрос. Полученный ответ: «Годовой доход Amazon увеличится с 245 миллиардов долларов в 2019 году до 434 миллиардов долларов в 2022 году».
Как показано в этом примере, мы можем получить правильный ответ на основе количества полученных результатов. Если вы хотите узнать больше об указании источника, составляющем окончательный результат, выберите Показать сведения об источнике для проверки сгенерированного ответа на основе базы знаний.
Настройка шаблона приглашения базы знаний с помощью консоли
Вы также можете настроить приглашение по умолчанию, добавив собственное приглашение в зависимости от варианта использования. Для этого на консоли выполните следующие действия:
- Повторите шаги из предыдущего раздела, чтобы начать тестирование базы знаний.
- Давать возможность Генерировать ответы.
- Выберите модель по вашему выбору для генерации ответа.
В этом посте в качестве примера мы используем модель Claude v2. Модель Claude 3 Sonnet и Haiku также доступна для генерации.
- Выбирать Применять продолжать.
После того, как вы выберете модель, появится новый раздел под названием Шаблон запроса базы знаний появляется под Конфигурации.
- Выбирать Редактировать чтобы начать настройку подсказки.
- Настройте шаблон приглашения, чтобы настроить способ использования полученных результатов и создания контента.
В этом посте мы привели несколько примеров создания «ИИ-системы финансового консультанта» с использованием финансовых отчетов Amazon с настраиваемыми подсказками. Рекомендации по оперативному проектированию см. в Руководстве по оперативному проектированию.
Теперь мы настраиваем шаблон приглашения по умолчанию несколькими различными способами и наблюдаем за ответами.
Давайте сначала попробуем выполнить запрос с приглашением по умолчанию. Мы спрашиваем: «Какова была выручка Amazon в 2019 и 2021 годах?» Ниже показаны наши результаты.
Из выходных данных мы видим, что он генерирует ответ в свободной форме на основе полученных знаний. Цитаты также приведены для справки.
Допустим, мы хотим дать дополнительные инструкции о том, как форматировать сгенерированный ответ, например стандартизировать его как JSON. Мы можем добавить эти инструкции как отдельный шаг после получения информации, как часть шаблона приглашения:
Итоговый ответ имеет необходимую структуру.
Настраивая подсказку, вы также можете изменить язык сгенерированного ответа. В следующем примере мы проинструктируем модель дать ответ на испанском языке.
После удаления $output_format_instructions$
из приглашения по умолчанию цитата из сгенерированного ответа удаляется.
В следующих разделах мы объясним, как вы можете использовать эти функции с SDK.
Настройте максимальное количество результатов с помощью SDK
Чтобы изменить максимальное количество результатов с помощью SDK, используйте следующий синтаксис. В этом примере запрос звучит так: «В каком году годовой доход Amazon увеличился с 245 миллиардов долларов до 434 миллиардов долларов?» Правильный ответ: «Годовой доход Amazon увеличится с 245 миллиардов долларов в 2019 году до 434 миллиардов долларов в 2022 году».
‘numberOfResults
‘опция под’retrievalConfiguration
‘ позволяет вам выбрать количество результатов, которые вы хотите получить. Результат RetrieveAndGenerate
API включает в себя сгенерированный ответ, указание источника и полученные фрагменты текста.
Ниже приведены результаты для различных значений ‘numberOfResults
‘ параметры. Сначала мы устанавливаем numberOfResults = 5
.
Затем мы установили numberOfResults = 12
.
Настройте шаблон приглашения базы знаний с помощью SDK.
Чтобы настроить приглашение с помощью SDK, мы используем следующий запрос с различными шаблонами приглашений. В этом примере запрос звучит так: «Какова была выручка Amazon в 2019 и 2021 годах?»
Ниже приведен шаблон приглашения по умолчанию:
Ниже приведен настраиваемый шаблон приглашения:
Используя шаблон приглашения по умолчанию, мы получаем следующий ответ:
Если вы хотите предоставить дополнительные инструкции по выходному формату генерации ответа, например стандартизировать ответ в определенном формате (например, JSON), вы можете настроить существующее приглашение, предоставив дополнительные инструкции. Используя наш собственный шаблон приглашения, мы получаем следующий ответ.
‘promptTemplate
‘опция в’generationConfiguration
‘ позволяет настроить подсказку для лучшего контроля над генерацией ответов.
Заключение
В этом посте мы представили две новые функции в базах знаний для Amazon Bedrock: настройку максимального количества результатов поиска и настройку шаблона приглашения по умолчанию для RetrieveAndGenerate
API. Мы продемонстрировали, как настроить эти функции на консоли и через SDK, чтобы повысить производительность и точность генерируемого ответа. Увеличение максимальных результатов предоставляет более полную информацию, а настройка шаблона подсказки позволяет точно настроить инструкции для базовой модели, чтобы они лучше соответствовали конкретным вариантам использования. Эти улучшения обеспечивают большую гибкость и контроль, позволяя вам предоставлять индивидуальные возможности для приложений на основе RAG.
Дополнительные ресурсы для начала внедрения в вашей среде AWS см. ниже:
Об авторах
Сандип Сингх — старший специалист по данным генеративного ИИ в Amazon Web Services, помогающий предприятиям внедрять инновации с помощью генеративного ИИ. Он специализируется на генеративном искусственном интеллекте, искусственном интеллекте, машинном обучении и системном проектировании. Он увлечен разработкой современных решений на базе искусственного интеллекта и машинного обучения для решения сложных бизнес-задач для различных отраслей, оптимизации эффективности и масштабируемости.
Суйин Ван — специалист по архитектуре решений AI/ML в AWS. Она имеет междисциплинарное образование в области машинного обучения, финансовых информационных услуг и экономики, а также многолетний опыт создания приложений для анализа данных и машинного обучения, которые решали реальные бизнес-задачи. Ей нравится помогать клиентам определять правильные бизнес-вопросы и создавать правильные решения AI/ML. В свободное время она любит петь и готовить.
Шерри Дин — старший специалист по разработке решений в области искусственного интеллекта (ИИ) и машинного обучения (ML) в Amazon Web Services (AWS). Она имеет обширный опыт в области машинного обучения и имеет степень доктора компьютерных наук. В основном она работает с клиентами из государственного сектора над различными бизнес-задачами, связанными с искусственным интеллектом и машинным обучением, помогая им ускорить процесс машинного обучения в облаке AWS. Когда она не помогает клиентам, она любит активный отдых на свежем воздухе.