Logo Zephyrnet

Cơ sở Kiến thức dành cho Amazon Bedrock hiện hỗ trợ lời nhắc tùy chỉnh cho API RetrieveAndGenerate và cấu hình số lượng kết quả được truy xuất tối đa | Dịch vụ web của Amazon

Ngày:

Với Cơ sở kiến ​​thức về Amazon Bedrock, bạn có thể kết nối các mô hình nền móng (FM) một cách an toàn trong nền tảng Amazon vào dữ liệu công ty của bạn cho Thế hệ tăng cường truy xuất (RAG). Việc truy cập vào dữ liệu bổ sung giúp mô hình tạo ra các phản hồi phù hợp hơn, theo ngữ cảnh cụ thể và chính xác hơn mà không cần đào tạo lại FM.

Trong bài đăng này, chúng tôi thảo luận về hai tính năng mới của Cơ sở kiến ​​thức dành cho Amazon Bedrock dành riêng cho RetrieveAndGenerate API: định cấu hình số lượng kết quả tối đa và tạo lời nhắc tùy chỉnh bằng mẫu lời nhắc cơ sở kiến ​​thức. Bây giờ bạn có thể chọn những tùy chọn này làm tùy chọn truy vấn cùng với loại tìm kiếm.

Tổng quan và lợi ích của các tính năng mới

Tùy chọn số lượng kết quả tối đa cho phép bạn kiểm soát số lượng kết quả tìm kiếm được truy xuất từ ​​kho lưu trữ vectơ và chuyển đến FM để tạo câu trả lời. Điều này cho phép bạn tùy chỉnh lượng thông tin cơ bản được cung cấp để tạo, từ đó cung cấp thêm ngữ cảnh cho các câu hỏi phức tạp hoặc ít hơn cho các câu hỏi đơn giản hơn. Nó cho phép bạn lấy tới 100 kết quả. Tùy chọn này giúp cải thiện khả năng xảy ra bối cảnh liên quan, từ đó cải thiện độ chính xác và giảm ảo giác của phản hồi được tạo ra.

Mẫu lời nhắc cơ sở kiến ​​thức tùy chỉnh cho phép bạn thay thế mẫu lời nhắc mặc định bằng mẫu lời nhắc của riêng bạn để tùy chỉnh lời nhắc được gửi đến mô hình để tạo phản hồi. Điều này cho phép bạn tùy chỉnh âm sắc, định dạng đầu ra và hoạt động của FM khi nó trả lời câu hỏi của người dùng. Với tùy chọn này, bạn có thể tinh chỉnh thuật ngữ để phù hợp hơn với ngành hoặc lĩnh vực của mình (chẳng hạn như chăm sóc sức khỏe hoặc pháp lý). Ngoài ra, bạn có thể thêm các hướng dẫn và ví dụ tùy chỉnh phù hợp với quy trình làm việc cụ thể của mình.

Trong các phần sau, chúng tôi giải thích cách bạn có thể sử dụng các tính năng này với Bảng điều khiển quản lý AWS hoặc SDK.

Điều kiện tiên quyết

Để làm theo những ví dụ này, bạn cần phải có sẵn nền tảng kiến ​​thức. Để biết hướng dẫn tạo một tài khoản, hãy xem Tạo cơ sở kiến ​​thức.

Định cấu hình số lượng kết quả tối đa bằng bảng điều khiển

Để sử dụng tùy chọn số lượng kết quả tối đa bằng bảng điều khiển, hãy hoàn thành các bước sau:

  1. Trên bảng điều khiển Amazon Bedrock, chọn Cơ sở kiến ​​thức trong khung điều hướng bên trái.
  2. Chọn cơ sở kiến ​​thức bạn đã tạo.
  3. Chọn Kiểm tra cơ sở kiến ​​thức.
  4. Chọn biểu tượng cấu hình.
  5. Chọn Đồng bộ nguồn dữ liệu trước khi bạn bắt đầu kiểm tra nền tảng kiến ​​thức của mình.
  6. Theo cấu hình, Cho Loại tìm kiếm, hãy chọn loại tìm kiếm dựa trên trường hợp sử dụng của bạn.

Đối với bài đăng này, chúng tôi sử dụng tìm kiếm kết hợp vì nó kết hợp tìm kiếm ngữ nghĩa và văn bản để cung cấp độ chính xác cao hơn. Để tìm hiểu thêm về tìm kiếm kết hợp, hãy xem Cơ sở Kiến thức cho Amazon Bedrock hiện hỗ trợ tìm kiếm kết hợp.

  1. Mở rộng Số lượng khối nguồn tối đa và đặt số lượng kết quả tối đa của bạn.

Để chứng minh giá trị của tính năng mới, chúng tôi đưa ra các ví dụ về cách bạn có thể tăng độ chính xác của phản hồi được tạo. Chúng tôi đã sử dụng Tài liệu Amazon 10K cho năm 2023 làm nguồn dữ liệu để tạo ra cơ sở tri thức. Chúng tôi sử dụng truy vấn sau để thử nghiệm: “Doanh thu hàng năm của Amazon đã tăng từ 245 tỷ USD lên 434 tỷ USD vào năm nào?”

Câu trả lời chính xác cho truy vấn này là “Doanh thu hàng năm của Amazon đã tăng từ 245 tỷ USD vào năm 2019 lên 434 tỷ USD vào năm 2022,” dựa trên các tài liệu trong cơ sở kiến ​​thức. Chúng tôi đã sử dụng Claude v2 làm FM để tạo phản hồi cuối cùng dựa trên thông tin theo ngữ cảnh được lấy từ cơ sở kiến ​​thức. Claude 3 Sonnet và Claude 3 Haiku cũng được hỗ trợ làm FM thế hệ.

Chúng tôi đã chạy một truy vấn khác để chứng minh sự so sánh của việc truy xuất với các cấu hình khác nhau. Chúng tôi đã sử dụng cùng một truy vấn đầu vào (“Doanh thu hàng năm của Amazon tăng từ 245 tỷ USD lên 434 tỷ USD vào năm nào?”) và đặt số lượng kết quả tối đa là 5.

Như được hiển thị trong ảnh chụp màn hình sau, phản hồi được tạo là “Xin lỗi, tôi không thể hỗ trợ bạn với yêu cầu này”.

Tiếp theo, chúng tôi đặt kết quả tối đa là 12 và đặt câu hỏi tương tự. Câu trả lời được tạo ra là “Doanh thu hàng năm của Amazon tăng từ 245 tỷ USD vào năm 2019 lên 434 tỷ USD vào năm 2022”.

Như được hiển thị trong ví dụ này, chúng tôi có thể truy xuất câu trả lời đúng dựa trên số lượng kết quả được truy xuất. Nếu bạn muốn tìm hiểu thêm về ghi công nguồn cấu thành đầu ra cuối cùng, hãy chọn Hiển thị chi tiết nguồn để xác thực câu trả lời được tạo dựa trên cơ sở kiến ​​thức.

Tùy chỉnh mẫu lời nhắc cơ sở kiến ​​thức bằng bảng điều khiển

Bạn cũng có thể tùy chỉnh lời nhắc mặc định bằng lời nhắc của riêng bạn tùy theo trường hợp sử dụng. Để làm như vậy trên bảng điều khiển, hãy hoàn thành các bước sau:

  1. Lặp lại các bước trong phần trước để bắt đầu kiểm tra nền tảng kiến ​​thức của bạn.
  2. Kích hoạt tính năng Tạo phản hồi.
  3. Chọn mô hình bạn chọn để tạo phản hồi.

Chúng tôi sử dụng mô hình Claude v2 làm ví dụ trong bài viết này. Mẫu Claude 3 Sonnet và Haiku cũng có sẵn để thế hệ.

  1. Chọn Đăng Nhập tiến hành với.

Sau khi bạn chọn mô hình, một phần mới có tên Mẫu lời nhắc cơ sở kiến ​​thức xuất hiện dưới cấu hình.

  1. Chọn Chỉnh sửa để bắt đầu tùy chỉnh lời nhắc.
  2. Điều chỉnh mẫu lời nhắc để tùy chỉnh cách bạn muốn sử dụng kết quả được truy xuất và tạo nội dung.

Đối với bài đăng này, chúng tôi đã đưa ra một số ví dụ về cách tạo “hệ thống AI cố vấn tài chính” bằng cách sử dụng báo cáo tài chính của Amazon với lời nhắc tùy chỉnh. Để biết các phương pháp thực hành tốt nhất về kỹ thuật nhanh chóng, hãy tham khảo Hướng dẫn kỹ thuật kịp thời.

Bây giờ chúng tôi tùy chỉnh mẫu lời nhắc mặc định theo nhiều cách khác nhau và quan sát phản hồi.

Trước tiên hãy thử truy vấn với lời nhắc mặc định. Chúng tôi hỏi “Doanh thu của Amazon trong năm 2019 và 2021 là bao nhiêu?” Sau đây cho thấy kết quả của chúng tôi.

Từ kết quả đầu ra, chúng tôi nhận thấy rằng nó đang tạo ra phản hồi dạng tự do dựa trên kiến ​​thức được truy xuất. Các trích dẫn cũng được liệt kê để tham khảo.

Giả sử chúng tôi muốn cung cấp thêm hướng dẫn về cách định dạng phản hồi được tạo, chẳng hạn như chuẩn hóa phản hồi đó dưới dạng JSON. Chúng ta có thể thêm các hướng dẫn này dưới dạng một bước riêng biệt sau khi truy xuất thông tin, như một phần của mẫu lời nhắc:

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}

Phản hồi cuối cùng có cấu trúc cần thiết.

Bằng cách tùy chỉnh lời nhắc, bạn cũng có thể thay đổi ngôn ngữ của phản hồi được tạo. Trong ví dụ sau, chúng tôi hướng dẫn mô hình đưa ra câu trả lời bằng tiếng Tây Ban Nha.

Sau khi loại bỏ $output_format_instructions$ từ lời nhắc mặc định, trích dẫn từ phản hồi được tạo sẽ bị xóa.

Trong các phần sau, chúng tôi sẽ giải thích cách bạn có thể sử dụng các tính năng này với SDK.

Định cấu hình số lượng kết quả tối đa bằng SDK

Để thay đổi số lượng kết quả tối đa bằng SDK, hãy sử dụng cú pháp sau. Trong ví dụ này, truy vấn là “Doanh thu hàng năm của Amazon tăng từ 245 tỷ USD lên 434 tỷ USD vào năm nào?” Câu trả lời đúng là “Doanh thu hàng năm của Amazon tăng từ 245 tỷ USD vào năm 2019 lên 434 tỷ USD vào năm 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']

Các 'numberOfResults' tùy chọn bên dưới 'retrievalConfiguration' cho phép bạn chọn số lượng kết quả bạn muốn truy xuất. Đầu ra của RetrieveAndGenerate API bao gồm phản hồi được tạo, ghi nhận nguồn và các đoạn văn bản được truy xuất.

Sau đây là kết quả cho các giá trị khác nhau của 'numberOfResults' thông số. Đầu tiên, chúng tôi thiết lập numberOfResults = 5.

Sau đó chúng tôi thiết lập numberOfResults = 12.

Tùy chỉnh mẫu lời nhắc cơ sở kiến ​​thức bằng SDK

Để tùy chỉnh lời nhắc bằng SDK, chúng tôi sử dụng truy vấn sau với các mẫu lời nhắc khác nhau. Trong ví dụ này, truy vấn là “Doanh thu của Amazon trong năm 2019 và 2021 là bao nhiêu?”

Sau đây là mẫu lời nhắc mặc định:

"""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:
"""

Sau đây là mẫu lời nhắc tùy chỉnh:

"""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']

Với mẫu lời nhắc mặc định, chúng tôi nhận được phản hồi sau:

Nếu muốn cung cấp hướng dẫn bổ sung về định dạng đầu ra của quá trình tạo phản hồi, chẳng hạn như chuẩn hóa phản hồi theo một định dạng cụ thể (như JSON), bạn có thể tùy chỉnh lời nhắc hiện có bằng cách cung cấp thêm hướng dẫn. Với mẫu lời nhắc tùy chỉnh, chúng tôi nhận được phản hồi sau.

Các 'promptTemplate' tùy chọn trong 'generationConfiguration' cho phép bạn tùy chỉnh lời nhắc để kiểm soát tốt hơn việc tạo câu trả lời.

Kết luận

Trong bài đăng này, chúng tôi đã giới thiệu hai tính năng mới trong Cơ sở kiến ​​thức dành cho Amazon Bedrock: điều chỉnh số lượng kết quả tìm kiếm tối đa và tùy chỉnh mẫu lời nhắc mặc định cho RetrieveAndGenerate API. Chúng tôi đã trình bày cách định cấu hình các tính năng này trên bảng điều khiển và thông qua SDK để cải thiện hiệu suất và độ chính xác của phản hồi được tạo. Việc tăng kết quả tối đa sẽ cung cấp thông tin toàn diện hơn, trong khi việc tùy chỉnh mẫu lời nhắc cho phép bạn tinh chỉnh các hướng dẫn cho mô hình nền tảng để phù hợp hơn với các trường hợp sử dụng cụ thể. Những cải tiến này mang lại sự linh hoạt và khả năng kiểm soát cao hơn, cho phép bạn mang lại trải nghiệm phù hợp cho các ứng dụng dựa trên RAG.

Để biết thêm tài nguyên để bắt đầu triển khai trong môi trường AWS của bạn, hãy tham khảo nội dung sau:


Giới thiệu về tác giả

Sandeep Singh là Nhà khoa học dữ liệu AI sáng tạo cấp cao tại Amazon Web Services, giúp các doanh nghiệp đổi mới bằng AI sáng tạo. Anh ấy chuyên về AI sáng tạo, Trí tuệ nhân tạo, Học máy và Thiết kế hệ thống. Anh đam mê phát triển các giải pháp tiên tiến được hỗ trợ bởi AI/ML để giải quyết các vấn đề kinh doanh phức tạp cho các ngành đa dạng, tối ưu hóa hiệu quả và khả năng mở rộng.

Suyin Wang là Kiến trúc sư giải pháp chuyên gia AI/ML tại AWS. Cô có nền tảng giáo dục liên ngành về Học máy, Dịch vụ thông tin tài chính và Kinh tế, cùng với nhiều năm kinh nghiệm trong việc xây dựng các ứng dụng Khoa học dữ liệu và Học máy để giải quyết các vấn đề kinh doanh trong thế giới thực. Cô thích giúp khách hàng xác định các câu hỏi kinh doanh phù hợp và xây dựng các giải pháp AI/ML phù hợp. Khi rảnh rỗi, cô thích ca hát và nấu ăn.

Sherry Đinh là kiến ​​trúc sư giải pháp chuyên môn về trí tuệ nhân tạo (AI) và máy học (ML) cấp cao tại Amazon Web Services (AWS). Cô có nhiều kinh nghiệm về học máy với bằng Tiến sĩ về khoa học máy tính. Cô chủ yếu làm việc với các khách hàng thuộc khu vực công về các thách thức kinh doanh khác nhau liên quan đến AI/ML, giúp họ đẩy nhanh hành trình học máy trên Đám mây AWS. Khi không giúp đỡ khách hàng, cô thích tham gia các hoạt động ngoài trời.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img