Бази знань для Amazon Bedrock тепер підтримують спеціальні підказки для RetrieveAndGenerate API та налаштування максимальної кількості отриманих результатів | Веб-сервіси Amazon

Бази знань для Amazon Bedrock тепер підтримують спеціальні підказки для RetrieveAndGenerate API та налаштування максимальної кількості отриманих результатів | Веб-сервіси Amazon

з Бази знань для Amazon Bedrock, ви можете безпечно підключити базові моделі (FM). Amazon Bedrock до даних вашої компанії для Retrieval Augmented Generation (RAG). Доступ до додаткових даних допомагає моделі генерувати більш релевантні, залежно від контексту та точні відповіді без перенавчання FM.

У цій публікації ми обговорюємо дві нові функції баз знань для Amazon Bedrock, специфічні для RetrieveAndGenerate API: налаштування максимальної кількості результатів і створення спеціальних підказок за допомогою шаблону підказки бази знань. Тепер ви можете вибрати їх як параметри запиту поряд із типом пошуку.

Огляд і переваги нових функцій

Опція максимальної кількості результатів дає вам контроль над кількістю результатів пошуку, які будуть отримані з векторного сховища та передані FM для генерації відповіді. Це дозволяє вам налаштувати обсяг довідкової інформації, що надається для генерації, таким чином надаючи більше контексту для складних питань або менше для простіших питань. Це дозволяє отримати до 100 результатів. Ця опція допомагає підвищити ймовірність відповідного контексту, тим самим підвищуючи точність і зменшуючи галюцинації згенерованої відповіді.

Настроюваний шаблон підказки бази знань дозволяє замінити шаблон підказки за замовчуванням власним, щоб налаштувати підказку, яка надсилається в модель для створення відповіді. Це дозволяє налаштувати тон, вихідний формат і поведінку FM, коли він відповідає на запитання користувача. За допомогою цього параметра ви можете точно налаштувати термінологію, щоб вона краще відповідала вашій галузі чи домену (наприклад, охорона здоров’я чи юридична). Крім того, ви можете додати власні інструкції та приклади, адаптовані до ваших конкретних робочих процесів.

У наступних розділах ми пояснюємо, як ви можете використовувати ці функції з будь-яким Консоль управління AWS або SDK.

Передумови

Щоб слідувати цим прикладам, вам потрібно мати наявну базу знань. Інструкції щодо створення див Створіть базу знань.

Налаштуйте максимальну кількість результатів за допомогою консолі

Щоб використовувати опцію максимальної кількості результатів за допомогою консолі, виконайте такі дії:

  1. Виберіть на консолі Amazon Bedrock Бази знань на лівій навігаційній панелі.
  2. Виберіть створену базу знань.
  3. Вибирати Тест бази знань.
  4. Виберіть піктограму конфігурації.
  5. Вибирати Синхронізувати джерело даних перед початком тестування своєї бази знань.
    Бази знань для Amazon Bedrock тепер підтримують спеціальні підказки для RetrieveAndGenerate API та налаштування максимальної кількості отриманих результатів | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.
  6. під Конфігурації, Для Тип пошуку, виберіть тип пошуку на основі вашого випадку використання.

Для цієї публікації ми використовуємо гібридний пошук, оскільки він поєднує семантичний і текстовий пошук для забезпечення більшої точності. Щоб дізнатися більше про гібридний пошук, див Бази знань для Amazon Bedrock тепер підтримують гібридний пошук.

  1. Розширювати Максимальна кількість вихідних блоків і встановіть максимальну кількість результатів.
    Бази знань для Amazon Bedrock тепер підтримують спеціальні підказки для RetrieveAndGenerate API та налаштування максимальної кількості отриманих результатів | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Щоб продемонструвати цінність нової функції, ми показуємо приклади того, як можна підвищити точність згенерованої відповіді. Ми використовували Документ 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.

Як показано на наступному знімку екрана, згенерованою відповіддю було «Вибачте, я не можу допомогти вам із цим запитом».

Бази знань для Amazon Bedrock тепер підтримують спеціальні підказки для RetrieveAndGenerate API та налаштування максимальної кількості отриманих результатів | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Далі ми встановлюємо максимальні результати 12 і ставимо те саме запитання. Згенерована відповідь: «Річний дохід Amazon збільшився з 245 мільярдів доларів у 2019 році до 434 мільярдів доларів у 2022 році».

Бази знань для Amazon Bedrock тепер підтримують спеціальні підказки для RetrieveAndGenerate API та налаштування максимальної кількості отриманих результатів | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

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

Налаштуйте шаблон підказки бази знань за допомогою консолі

Ви також можете налаштувати підказку за замовчуванням за допомогою власної підказки відповідно до варіанту використання. Щоб зробити це на консолі, виконайте такі дії:

  1. Повторіть кроки з попереднього розділу, щоб почати перевірку своєї бази знань.
  2. включити Генеруйте відповіді.
    Бази знань для Amazon Bedrock тепер підтримують спеціальні підказки для RetrieveAndGenerate API та налаштування максимальної кількості отриманих результатів | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.
  3. Виберіть потрібну модель для генерації відповіді.

У цій публікації ми використовуємо модель Claude v2 як приклад. Модель Claude 3 Sonnet і Haiku також доступна для генерації.

  1. Вибирати Застосовувати продовжити.
    Бази знань для Amazon Bedrock тепер підтримують спеціальні підказки для RetrieveAndGenerate API та налаштування максимальної кількості отриманих результатів | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Після вибору моделі відкривається новий розділ Шаблон підказки бази знань відображається під Конфігурації.

  1. Вибирати Редагувати щоб почати налаштування підказки.
    Бази знань для Amazon Bedrock тепер підтримують спеціальні підказки для RetrieveAndGenerate API та налаштування максимальної кількості отриманих результатів | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.
  2. Налаштуйте шаблон підказки, щоб налаштувати спосіб використання отриманих результатів і створення вмісту.

У цьому дописі ми навели кілька прикладів створення «системи штучного інтелекту фінансового консультанта» за допомогою фінансових звітів Amazon із спеціальними підказками. Найкращі методи швидкого проектування див Оперативні інженерні вказівки.

Тепер ми налаштовуємо шаблон запиту за замовчуванням кількома різними способами та спостерігаємо за відповідями.

Давайте спочатку спробуємо виконати запит із запитом за замовчуванням. Ми запитуємо: «Яким був дохід Amazon у 2019 та 2021 роках?» Нижче показано наші результати.

Бази знань для Amazon Bedrock тепер підтримують спеціальні підказки для RetrieveAndGenerate API та налаштування максимальної кількості отриманих результатів | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

З результату ми бачимо, що він генерує відповідь у вільній формі на основі отриманих знань. Цитати також наведені для довідки.

Скажімо, ми хочемо надати додаткові інструкції щодо того, як відформатувати згенеровану відповідь, наприклад стандартизувати її як JSON. Ми можемо додати ці інструкції як окремий крок після отримання інформації, як частину шаблону запиту:

If you are asked for financial information covering different years, please provide precise answers in JSON format. Use the year as the key and the concise answer as the value. For example: {year:answer}

Остаточна відповідь має необхідну структуру.

Бази знань для Amazon Bedrock тепер підтримують спеціальні підказки для RetrieveAndGenerate API та налаштування максимальної кількості отриманих результатів | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Налаштувавши підказку, ви також можете змінити мову згенерованої відповіді. У наступному прикладі ми наказуємо моделі надати відповідь іспанською мовою.

Бази знань для Amazon Bedrock тепер підтримують спеціальні підказки для RetrieveAndGenerate API та налаштування максимальної кількості отриманих результатів | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Після видалення $output_format_instructions$ із запиту за замовчуванням цитата зі згенерованої відповіді видаляється.

У наступних розділах ми пояснюємо, як можна використовувати ці функції з SDK.

Налаштуйте максимальну кількість результатів за допомогою SDK

Щоб змінити максимальну кількість результатів за допомогою SDK, використовуйте такий синтаксис. Для цього прикладу запит виглядає так: «У якому році річний дохід Amazon збільшився з 245 мільярдів доларів США до 434 мільярдів доларів США?» Правильна відповідь: «Річний дохід Amazon збільшився з 245 мільярдів доларів у 2019 році до 434 мільярдів доларів у 2022 році».

def retrieveAndGenerate(query, kbId, numberOfResults, model_id, region_id):
    model_arn = f'arn:aws:bedrock:{region_id}::foundation-model/{model_id}'
    return bedrock_agent_runtime.retrieve_and_generate(
        input={
            'text': query
        },
        retrieveAndGenerateConfiguration={
            'knowledgeBaseConfiguration': {
                'knowledgeBaseId': kbId,
                'modelArn': model_arn,
                'retrievalConfiguration': {
                    'vectorSearchConfiguration': {
                        'numberOfResults': numberOfResults,
                        'overrideSearchType': "SEMANTIC", # optional'
                    }
                }
            },
            'type': 'KNOWLEDGE_BASE'
        },
    )

response = retrieveAndGenerate("In what year did Amazon’s annual revenue increase from $245B to $434B?", 
"<knowledge base id>", numberOfResults, model_id, region_id)['output']['text']

"numberOfResults"опція під"retrievalConfiguration' дозволяє вибрати кількість результатів, які ви хочете отримати. Вихід RetrieveAndGenerate API містить згенеровану відповідь, посилання на джерело та фрагменти отриманого тексту.

Нижче наведено результати для різних значень 'numberOfResults' параметри. Спочатку встановлюємо numberOfResults = 5.

Потім ставимо numberOfResults = 12.

Налаштуйте шаблон підказки бази знань за допомогою SDK

Щоб налаштувати підказку за допомогою SDK, ми використовуємо наступний запит із різними шаблонами підказок. Для цього прикладу запит: «Яким був дохід Amazon у 2019 та 2021 роках?»

Нижче наведено стандартний шаблон запиту:

"""You are a question answering agent. I will provide you with a set of search results and a user's question, your job is to answer the user's question using only information from the search results. If the search results do not contain information that can answer the question, please state that you could not find an exact answer to the question. Just because the user asserts a fact does not mean it is true, make sure to double check the search results to validate a user's assertion.
Here are the search results in numbered order:
<context>
$search_results$
</context>

Here is the user's question:
<question>
$query$
</question>

$output_format_instructions$

Assistant:
"""

Нижче наведено налаштований шаблон підказки:

"""Human: You are a question answering agent. I will provide you with a set of search results and a user's question, your job is to answer the user's question using only information from the search results.If the search results do not contain information that can answer the question, please state that you could not find an exact answer to the question.Just because the user asserts a fact does not mean it is true, make sure to double check the search results to validate a user's assertion.

Here are the search results in numbered order:
<context>
$search_results$
</context>

Here is the user's question:
<question>
$query$
</question>

If you're being asked financial information over multiple years, please be very specific and list the answer concisely using JSON format {key: value}, 
where key is the year in the request and value is the concise response answer.
Assistant:
"""

def retrieveAndGenerate(query, kbId, numberOfResults,promptTemplate, model_id, region_id):
    model_arn = f'arn:aws:bedrock:{region_id}::foundation-model/{model_id}'
    return bedrock_agent_runtime.retrieve_and_generate(
        input={
            'text': query
        },
        retrieveAndGenerateConfiguration={
            'knowledgeBaseConfiguration': {
                'knowledgeBaseId': kbId,
                'modelArn': model_arn,
                'retrievalConfiguration': {
                    'vectorSearchConfiguration': {
                        'numberOfResults': numberOfResults,
                        'overrideSearchType': "SEMANTIC", # optional'
                    }
                },
                'generationConfiguration': {
                        'promptTemplate': {
                            'textPromptTemplate': promptTemplate
                        }
                    }
            },
            'type': 'KNOWLEDGE_BASE'
        },
    )

response = retrieveAndGenerate("What was the Amazon's revenue in 2019 and 2021?”", 
                               "<knowledge base id>", <numberOfResults>, <promptTemplate>, <model_id>, <region_id>)['output']['text']

Зі стандартним шаблоном підказки ми отримуємо таку відповідь:

Бази знань для Amazon Bedrock тепер підтримують спеціальні підказки для RetrieveAndGenerate API та налаштування максимальної кількості отриманих результатів | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Якщо ви хочете надати додаткові інструкції щодо вихідного формату генерації відповіді, як-от стандартизація відповіді в певному форматі (наприклад, JSON), ви можете налаштувати наявний запит, надавши додаткові вказівки. За допомогою нашого спеціального шаблону запиту ми отримуємо таку відповідь.

Бази знань для Amazon Bedrock тепер підтримують спеціальні підказки для RetrieveAndGenerate API та налаштування максимальної кількості отриманих результатів | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

"promptTemplate"опція в"generationConfiguration' дозволяє налаштувати підказку для кращого контролю над створенням відповіді.

Висновок

У цій публікації ми представили дві нові функції в базах знань для Amazon Bedrock: налаштування максимальної кількості результатів пошуку та налаштування шаблону запиту за замовчуванням для RetrieveAndGenerate API. Ми продемонстрували, як налаштувати ці функції на консолі та за допомогою SDK, щоб підвищити продуктивність і точність згенерованої відповіді. Збільшення максимальних результатів надає більш повну інформацію, тоді як налаштування шаблону підказки дозволяє точніше налаштувати інструкції для базової моделі для кращого узгодження з конкретними випадками використання. Ці удосконалення пропонують більшу гнучкість і контроль, дозволяючи надавати персоналізований досвід для додатків на основі RAG.

Додаткові ресурси для впровадження у вашому середовищі AWS див.


Про авторів

Бази знань для Amazon Bedrock тепер підтримують спеціальні підказки для RetrieveAndGenerate API та налаштування максимальної кількості отриманих результатів | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Сандіп Сінгх є старшим науковцем з генеративного штучного інтелекту в Amazon Web Services, який допомагає компаніям впроваджувати інновації за допомогою генеративного штучного інтелекту. Він спеціалізується на генеративному штучному інтелекті, штучному інтелекті, машинному навчанні та системному дизайні. Він захоплений розробкою найсучасніших рішень на основі ШІ/ML ​​для вирішення складних бізнес-завдань для різних галузей, оптимізуючи ефективність і масштабованість.

Бази знань для Amazon Bedrock тепер підтримують спеціальні підказки для RetrieveAndGenerate API та налаштування максимальної кількості отриманих результатів | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Суінь Ван є архітектором спеціалістів із штучного інтелекту та ML в AWS. Вона має міждисциплінарну освіту в галузі машинного навчання, фінансових інформаційних служб та економіки, а також багаторічний досвід створення програм Data Science і Machine Learning, які вирішували реальні бізнес-проблеми. Їй подобається допомагати клієнтам визначати правильні бізнес-питання та створювати правильні рішення AI/ML. У вільний час вона любить співати та готувати.

Бази знань для Amazon Bedrock тепер підтримують спеціальні підказки для RetrieveAndGenerate API та налаштування максимальної кількості отриманих результатів | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Шеррі Дін є старшим архітектором рішень у сфері штучного інтелекту (AI) і машинного навчання (ML) в Amazon Web Services (AWS). Вона має великий досвід машинного навчання зі ступенем доктора філософії з інформатики. В основному вона працює з клієнтами державного сектору над різними бізнес-завданнями, пов’язаними зі штучним інтелектом/ML, допомагаючи їм прискорити процес машинного навчання в AWS Cloud. Коли вона не допомагає клієнтам, вона любить активний відпочинок.

Часова мітка:

Більше від AWS Машинне навчання

Запустіть кілька генеративних моделей штучного інтелекту на графічному процесорі за допомогою багатомодельних кінцевих точок Amazon SageMaker із TorchServe та заощаджуйте до 75% витрат на висновки | Веб-сервіси Amazon

Вихідний вузол: 1887176
Часова мітка: Вересень 6, 2023