Trả lời câu hỏi bằng cách sử dụng Retrieval Augmented Generation với các mô hình nền tảng trong Amazon SageMaker JumpStart

Trả lời câu hỏi bằng cách sử dụng Retrieval Augmented Generation với các mô hình nền tảng trong Amazon SageMaker JumpStart

Hôm nay, chúng tôi thông báo về sự sẵn có của sổ ghi chép mẫu thể hiện các tác vụ trả lời câu hỏi bằng cách sử dụng phương pháp tiếp cận dựa trên Thế hệ Tăng cường Truy xuất (RAG) với các mô hình ngôn ngữ lớn (LLM) trong Khởi động Amazon SageMaker. Tạo văn bản bằng cách sử dụng RAG với LLM cho phép bạn tạo đầu ra văn bản dành riêng cho miền bằng cách cung cấp dữ liệu bên ngoài cụ thể như một phần của ngữ cảnh được cung cấp cho LLM.

JumpStart là một trung tâm máy học (ML) có thể giúp bạn tăng tốc hành trình ML của mình. JumpStart cung cấp nhiều mô hình ngôn ngữ được đào tạo trước được gọi là mô hình nền tảng có thể giúp bạn thực hiện các tác vụ như tóm tắt bài viết, trả lời câu hỏi, tạo hội thoại và tạo hình ảnh.

Trong bài đăng này, chúng tôi mô tả RAG và các ưu điểm của nó, đồng thời trình bày cách bắt đầu nhanh chóng bằng cách sử dụng sổ ghi chép mẫu để giải quyết nhiệm vụ trả lời câu hỏi bằng cách triển khai RAG với LLM trong Khởi động. Chúng tôi chứng minh hai cách tiếp cận:

  • Cách giải quyết vấn đề với mã nguồn mở LangChain thư viện và Amazon SageMaker điểm cuối trong một vài dòng mã
  • Cách sử dụng thuật toán SageMaker KNN để thực hiện tìm kiếm ngữ nghĩa cho dữ liệu quy mô lớn bằng điểm cuối SageMaker

LLMS và các ràng buộc

Các LLM được đào tạo về một lượng lớn dữ liệu phi cấu trúc và rất giỏi trong việc tạo văn bản chung. LLM có thể lưu trữ kiến ​​thức thực tế bằng cách đào tạo các tham số của chúng trên một kho dữ liệu ngôn ngữ tự nhiên lớn.

Có một số hạn chế khi sử dụng các LLM được đào tạo sẵn có sẵn:

  • Chúng thường được đào tạo ngoại tuyến, khiến mô hình không thể biết được thông tin mới nhất (ví dụ: một chatbot được đào tạo từ năm 2011–2018 không có thông tin về COVID-19).
  • Họ đưa ra dự đoán bằng cách chỉ tìm kiếm thông tin được lưu trữ trong các tham số của nó, dẫn đến khả năng diễn giải kém hơn.
  • Họ chủ yếu được đào tạo về kho dữ liệu miền chung, khiến họ kém hiệu quả hơn trong các nhiệm vụ dành riêng cho miền. Có những tình huống khi bạn muốn các mô hình tạo văn bản dựa trên dữ liệu cụ thể thay vì dữ liệu chung. Ví dụ: một công ty bảo hiểm y tế có thể muốn bot trả lời câu hỏi của họ trả lời các câu hỏi bằng cách sử dụng thông tin mới nhất được lưu trữ trong cơ sở dữ liệu hoặc kho lưu trữ tài liệu doanh nghiệp của họ, để câu trả lời chính xác và phản ánh các quy tắc kinh doanh độc đáo của họ.

Hiện tại, có hai cách phổ biến để tham chiếu dữ liệu cụ thể trong LLM:

  • Chèn dữ liệu dưới dạng ngữ cảnh trong dấu nhắc mô hình như một cách để cung cấp thông tin mà mô hình có thể sử dụng trong khi tạo kết quả
  • Tinh chỉnh mô hình bằng cách cung cấp một tệp có các cặp dấu nhắc và hoàn thành

Thách thức của phương pháp tiếp cận dựa trên ngữ cảnh là các mô hình có kích thước ngữ cảnh hạn chế và bao gồm tất cả các tài liệu vì ngữ cảnh có thể không vừa với kích thước ngữ cảnh cho phép của mô hình. Tùy thuộc vào mô hình được sử dụng, cũng có thể có thêm chi phí cho bối cảnh lớn hơn.

Đối với phương pháp tinh chỉnh, việc tạo ra thông tin được định dạng phù hợp tốn nhiều thời gian và chi phí. Ngoài ra, nếu dữ liệu bên ngoài được sử dụng để tinh chỉnh thay đổi thường xuyên, điều đó có nghĩa là cần phải tinh chỉnh và đào tạo lại thường xuyên để tạo ra kết quả chính xác. Đào tạo thường xuyên tác động đến tốc độ đưa ra thị trường và làm tăng thêm chi phí giải pháp tổng thể.

Để chứng minh những hạn chế này, chúng tôi đã sử dụng mô hình LLM Flan T5 XXL và đặt câu hỏi sau:

question = "Which instances can I use with Managed Spot Training in SageMaker?"

Chúng tôi nhận được phản hồi sau:

"""For model: huggingface-text2text-flan-t5-xxl, the generated output is: the Managed Spot Training is a subscriptions product available for the following instances: Data Science Virtual Machine (DSVM), DSVM High, and DSVM Low. """

Như bạn có thể thấy, phản hồi không chính xác. Câu trả lời đúng phải là tất cả các phiên bản SageMaker đều hỗ trợ Đào tạo tại chỗ được quản lý.

Chúng tôi đã thử câu hỏi tương tự nhưng với ngữ cảnh bổ sung được chuyển cùng với câu hỏi:

question + context + prompt = """
Answer based on context: Managed Spot Training can be used with all instances supported in Amazon SageMaker. Managed Spot Training is supported in all AWS Regions where Amazon SageMaker is currently available. Which instances can I use with Managed Spot Training in SageMaker? """

Lần này chúng tôi nhận được phản hồi như sau:

"""For model: huggingface-text2text-flan-t5-xxl, the generated output is: instances supported in Amazon SageMaker """

Phản hồi tốt hơn nhưng vẫn chưa chính xác. Tuy nhiên, trong các trường hợp sử dụng sản xuất thực tế, người dùng có thể gửi nhiều truy vấn khác nhau và để cung cấp phản hồi chính xác, bạn có thể muốn bao gồm tất cả hoặc hầu hết thông tin có sẵn như một phần của ngữ cảnh tĩnh để tạo phản hồi chính xác. Do đó, với cách tiếp cận này, chúng tôi có thể gặp phải giới hạn kích thước ngữ cảnh vì ngay cả thông tin không liên quan cho câu hỏi được hỏi cũng được gửi như một phần của ngữ cảnh. Đây là nơi bạn có thể sử dụng phương pháp dựa trên RAG để tạo phản hồi chính xác và có thể mở rộng cho các truy vấn của người dùng.

Truy xuất thế hệ tăng cường

Để giải quyết các ràng buộc mà chúng ta đã thảo luận, chúng ta có thể sử dụng Thế hệ tăng cường truy xuất (RAG) với LLM. RAG truy xuất dữ liệu từ bên ngoài mô hình ngôn ngữ (không tham số) và bổ sung lời nhắc bằng cách thêm dữ liệu đã truy xuất có liên quan vào ngữ cảnh. Các mô hình RAG đã được giới thiệu bởi Lewis và cộng sự. vào năm 2020 là một mô hình trong đó bộ nhớ tham số là mô hình seq2seq được đào tạo trước và bộ nhớ không tham số là chỉ mục vectơ dày đặc của Wikipedia, được truy cập bằng trình truy xuất thần kinh được đào tạo trước.

Trong RAG, dữ liệu ngoài có thể đến từ nhiều nguồn dữ liệu, chẳng hạn như kho lưu trữ tài liệu, cơ sở dữ liệu hoặc API. Bước đầu tiên là chuyển đổi các tài liệu và truy vấn của người dùng sang định dạng để chúng có thể được so sánh và có thể thực hiện tìm kiếm liên quan. Để làm cho các định dạng có thể so sánh được để thực hiện tìm kiếm liên quan, một bộ sưu tập tài liệu (thư viện kiến ​​thức) và truy vấn do người dùng gửi được chuyển đổi thành biểu diễn số bằng cách sử dụng các mô hình ngôn ngữ nhúng. Các phần nhúng về cơ bản là các biểu diễn số của khái niệm trong văn bản. Tiếp theo, dựa trên việc nhúng truy vấn của người dùng, văn bản có liên quan của truy vấn đó được xác định trong bộ sưu tập tài liệu bằng một tìm kiếm tương tự trong không gian nhúng. Sau đó, lời nhắc do người dùng cung cấp được thêm vào văn bản có liên quan đã được tìm kiếm và văn bản đó được thêm vào ngữ cảnh. Lời nhắc hiện được gửi đến LLM và do ngữ cảnh có dữ liệu bên ngoài liên quan cùng với lời nhắc ban đầu nên đầu ra của mô hình có liên quan và chính xác.

Để duy trì thông tin cập nhật cho các tài liệu tham khảo, bạn có thể cập nhật không đồng bộ các tài liệu và cập nhật phần trình bày nhúng của các tài liệu. Bằng cách này, các tài liệu cập nhật sẽ được sử dụng để tạo câu trả lời cho các câu hỏi trong tương lai nhằm đưa ra câu trả lời chính xác.

Sơ đồ sau đây cho thấy luồng khái niệm về việc sử dụng RAG với LLM.

Trả lời câu hỏi bằng cách sử dụng Thế hệ tăng cường truy xuất với các mô hình nền tảng trong Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Trong bài đăng này, chúng tôi trình bày cách triển khai ứng dụng trả lời câu hỏi với các bước sau:

  1. Tạo nhúng cho từng tài liệu trong thư viện kiến ​​thức với mô hình nhúng SageMaker GPT-J-6B.
  2. Xác định K tài liệu phù hợp nhất dựa trên truy vấn của người dùng.
    1. Đối với truy vấn của bạn, hãy tạo nhúng truy vấn bằng cách sử dụng cùng một mô hình nhúng.
    2. Tìm kiếm các chỉ mục của K tài liệu hàng đầu có liên quan nhất trong không gian nhúng bằng cách sử dụng tìm kiếm FAISS trong bộ nhớ.
    3. Sử dụng các chỉ mục để lấy các tài liệu tương ứng.
  3. Sử dụng các tài liệu có liên quan đã truy xuất làm ngữ cảnh với lời nhắc và câu hỏi, đồng thời gửi chúng đến SageMaker LLM để tạo phản hồi.

Chúng tôi chứng minh các cách tiếp cận sau:

  • Cách giải quyết nhiệm vụ trả lời câu hỏi với SageMaker LLM và nhúng điểm cuối cũng như thư viện mã nguồn mở LangChain trong một vài dòng mã. Cụ thể, chúng tôi sử dụng hai điểm cuối SageMaker cho LLM (Flan T5 XXL) và mô hình nhúng (GPT-J 6B) và cơ sở dữ liệu vectơ được sử dụng là trong bộ nhớ THẤT ​​BẠI. Để biết thêm chi tiết, hãy xem Repo GitHub.
  • Nếu FAISS trong bộ nhớ không phù hợp với tập dữ liệu lớn của bạn, chúng tôi sẽ cung cấp cho bạn một Thuật toán SageMaker KNN để thực hiện tìm kiếm ngữ nghĩa, cũng sử dụng FAISS làm thuật toán tìm kiếm cơ bản. Để biết chi tiết, xem Repo GitHub.

Sơ đồ sau mô tả kiến ​​trúc giải pháp.

Trả lời câu hỏi bằng cách sử dụng Thế hệ tăng cường truy xuất với các mô hình nền tảng trong Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Sổ tay triển khai dựa trên JumpStart RAG với LangChain

LangChain là một khung nguồn mở để phát triển các ứng dụng được cung cấp bởi các mô hình ngôn ngữ. LangChain cung cấp giao diện chung cho nhiều LLM khác nhau. Nó cũng giúp các nhà phát triển dễ dàng kết hợp các LLM khác nhau lại với nhau và xây dựng các ứng dụng mạnh mẽ. LangChain cung cấp một giao diện tiêu chuẩn cho bộ nhớ và một tập hợp các triển khai bộ nhớ để duy trì trạng thái giữa các lệnh gọi của tác nhân hoặc chuỗi.

LangChain có nhiều tính năng tiện ích khác có thể tăng thêm năng suất cho nhà phát triển. Các tính năng này bao gồm mẫu lời nhắc giúp tùy chỉnh lời nhắc bằng cách sử dụng các biến trong mẫu lời nhắc, tác nhân để xây dựng ứng dụng đầu cuối, lập chỉ mục cho các bước tìm kiếm và truy xuất của chuỗi, v.v. Để khám phá thêm các khả năng của LangChain, hãy tham khảo Tài liệu LangChain.

Tạo mô hình LLM

Bước đầu tiên, hãy triển khai mô hình JumpStart LLM mà bạn chọn. Trong bản trình diễn này, chúng tôi sử dụng điểm cuối của mẫu Jumpstart Flan T5 XXL. Để biết hướng dẫn triển khai, hãy tham khảo Nhắc Zero-shot cho mô hình nền tảng Flan-T5 trong Amazon SageMaker JumpStart. Dựa trên trường hợp sử dụng của bạn, bạn cũng có thể triển khai các mô hình điều chỉnh hướng dẫn khác như Bánh Flan T5 UL2 or BloomZ 7B1. Để biết chi tiết, hãy xem ví dụ máy tính xách tay.

Để sử dụng điểm cuối SageMaker LLM với LangChain, chúng tôi sử dụng langchain.llms.sagemaker_endpoint.SagemakerEndpoint, tóm tắt điểm cuối SageMaker LLM. Chúng ta cần thực hiện chuyển đổi cho tải trọng yêu cầu và phản hồi như được hiển thị trong đoạn mã sau để tích hợp LangChain SageMaker. Lưu ý rằng bạn có thể cần điều chỉnh mã trong ContentHandler dựa trên content_type và chấp nhận định dạng của mô hình LLM mà bạn chọn sử dụng.

from langchain.llms.sagemaker_endpoint import SagemakerEndpoint class ContentHandler(ContentHandlerBase): content_type = "application/json" accepts = "application/json" def transform_input(self, prompt: str, model_kwargs={}) -> bytes: input_str = json.dumps({"text_inputs": prompt, **model_kwargs}) return input_str.encode("utf-8") def transform_output(self, output: bytes) -> str: response_json = json.loads(output.read().decode("utf-8")) return response_json["generated_texts"][0] content_handler = ContentHandler() sm_llm = SagemakerEndpoint( endpoint_name=_MODEL_CONFIG_["huggingface-text2text-flan-t5-xxl"]["endpoint_name"], region_name=aws_region, model_kwargs=parameters, content_handler=content_handler,
)

Tạo mô hình nhúng

Tiếp theo, chúng ta cần chuẩn bị sẵn mô hình nhúng của mình. Chúng tôi triển khai các GPT-J 6B mô hình như mô hình nhúng. Nếu đang sử dụng mô hình nhúng JumpStart, bạn cần tùy chỉnh lớp nhúng điểm cuối LangChain SageMaker và chuyển đổi yêu cầu và phản hồi của mô hình để tích hợp với LangChain. Để triển khai chi tiết, hãy tham khảo Repo GitHub.

embeddings = SagemakerEndpointEmbeddingsJumpStart( endpoint_name=_MODEL_CONFIG_["huggingface-textembedding-gpt-j-6b"]["endpoint_name"], region_name=aws_region, content_handler=content_handler,
)

Tải tài liệu dành riêng cho miền bằng trình tải tài liệu LangChain và tạo chỉ mục

Chúng tôi sử dụng CSVLoader gói trong LangChain để tải tài liệu có định dạng CSV vào trình tải tài liệu:

loader = CSVLoader(file_path="rag_data/processed_data.csv")
documents = loader.load()

Tiếp theo, chúng tôi sử dụng TextSplitter để xử lý trước dữ liệu cho mục đích nhúng và sử dụng mô hình nhúng SageMaker GPT-J-6B để tạo nhúng. Chúng tôi lưu trữ phần nhúng trong kho lưu trữ vectơ FAISS để tạo chỉ mục. Chúng tôi sử dụng chỉ mục này để tìm các tài liệu có liên quan tương tự về mặt ngữ nghĩa với truy vấn của người dùng.

Đoạn mã sau đây cho thấy tất cả các bước này được thực hiện như thế nào bởi VectorstoreIndexCreator class chỉ trong vài dòng mã trong LangChain để tạo ra cách triển khai trả lời câu hỏi ngắn gọn với RAG:

index_creator = VectorstoreIndexCreator( vectorstore_cls=FAISS, embedding=embeddings, text_splitter=CharacterTextSplitter(chunk_size=300, chunk_overlap=0),
)
index = index_creator.from_loaders([loader])

Sử dụng chỉ mục để tìm kiếm bối cảnh có liên quan và chuyển nó sang mô hình LLM

Tiếp theo, sử dụng phương thức truy vấn trên chỉ mục đã tạo và chuyển câu hỏi của người dùng cũng như LLM điểm cuối SageMaker. LangChain chọn bốn tài liệu gần nhất hàng đầu (K=4) và chuyển ngữ cảnh có liên quan được trích xuất từ ​​​​các tài liệu để tạo phản hồi chính xác. Xem đoạn mã sau:

index.query(question=question, llm=sm_llm)

Chúng tôi nhận được phản hồi sau cho truy vấn bằng cách sử dụng phương pháp dựa trên RAG với Flan T5 XXL:

"""For model: huggingface-text2text-flan-t5-xxl, the generated output is: Managed Spot Training can be used with all instances supported in Amazon SageMaker """

Phản hồi có vẻ chính xác hơn so với phản hồi mà chúng tôi nhận được với các cách tiếp cận khác mà chúng tôi đã trình bày trước đó mà không có ngữ cảnh hoặc ngữ cảnh tĩnh có thể không phải lúc nào cũng phù hợp.

Cách tiếp cận thay thế để triển khai RAG với nhiều tùy chỉnh hơn bằng cách sử dụng SageMaker và LangChain

Trong phần này, chúng tôi chỉ cho bạn một cách tiếp cận khác để triển khai RAG bằng SageMaker và LangChain. Cách tiếp cận này cung cấp sự linh hoạt để định cấu hình tham số K hàng đầu cho tìm kiếm có liên quan trong tài liệu. Nó cũng cho phép bạn sử dụng tính năng LangChain của mẫu lời nhắc, cho phép bạn dễ dàng tham số hóa việc tạo lời nhắc thay vì mã hóa cứng các lời nhắc.

Trong đoạn mã sau, chúng tôi rõ ràng sử dụng FAISS để tạo nhúng cho từng tài liệu trong thư viện kiến ​​thức với mô hình nhúng SageMaker GPT-J-6B. Sau đó, chúng tôi xác định K (K=3) tài liệu phù hợp nhất dựa trên truy vấn của người dùng.

docsearch = FAISS.from_documents(documents, embeddings)
docs = docsearch.similarity_search(question, k=3)

Tiếp theo, chúng tôi sử dụng một mẫu lời nhắc và xâu chuỗi nó với SageMaker LLM:

prompt_template = """Answer based on context:nn{context}nn{question}"""
PROMPT = PromptTemplate(template=prompt_template, input_variables=["context", "question"])
chain = load_qa_chain(llm=sm_llm, prompt=PROMPT)

Chúng tôi gửi ba tài liệu liên quan hàng đầu (K=3) mà chúng tôi tìm thấy dưới dạng ngữ cảnh tới lời nhắc bằng cách sử dụng chuỗi LangChain:

result = chain({"input_documents": docs, "question": question}, return_only_outputs=True)["output_text"]

Với cách tiếp cận triển khai RAG này, chúng tôi có thể tận dụng tính linh hoạt bổ sung của các mẫu dấu nhắc LangChain và tùy chỉnh số lượng tài liệu được tìm kiếm để phù hợp với mức độ liên quan bằng cách sử dụng siêu tham số K hàng đầu.

Sổ ghi chép triển khai dựa trên JumpStart RAG với SageMaker KNN

Trong phần này, chúng tôi triển khai phương pháp dựa trên RAG bằng cách sử dụng thuật toán KNN để tìm tài liệu liên quan nhằm tạo ngữ cảnh nâng cao. Theo cách tiếp cận này, chúng tôi không sử dụng LangChain mà sử dụng cùng một bộ dữ liệu Câu hỏi thường gặp về Amazon SageMaker dưới dạng tài liệu kiến ​​thức, nhúng các mô hình GPT-J-6B và LLM Flan T5 XXL giống như chúng tôi đã làm trong phương pháp LangChain trước đây.

Nếu bạn có một tập dữ liệu lớn, Thuật toán SageMaker KNN có thể cung cấp cho bạn một tìm kiếm ngữ nghĩa hiệu quả. Thuật toán SageMaker KNN cũng sử dụng FAISS làm thuật toán tìm kiếm cơ bản. Sổ tay cho giải pháp này có thể được tìm thấy trên GitHub.

Đầu tiên, chúng tôi triển khai các mô hình nhúng LLM Flan T5 XXL và GPT-J 6B theo cách tương tự như trong phần trước. Đối với mỗi bản ghi trong cơ sở dữ liệu kiến ​​thức, chúng tôi tạo một vectơ nhúng bằng cách sử dụng mô hình nhúng GPT-J.

Tiếp theo, chúng tôi sử dụng một Nhà hiền triết KNN công việc đào tạo để lập chỉ mục nhúng dữ liệu tri thức. Thuật toán cơ bản được sử dụng để lập chỉ mục dữ liệu là THẤT ​​BẠI. Chúng tôi muốn tìm năm tài liệu có liên quan nhất, vì vậy chúng tôi đặt TOP_K biến thành 5. Chúng tôi tạo công cụ ước tính cho thuật toán KNN, chạy công việc đào tạo và triển khai mô hình KNN để tìm chỉ mục của năm tài liệu hàng đầu phù hợp với truy vấn. Xem đoạn mã sau:

from sagemaker.amazon.amazon_estimator import get_image_uri def trained_estimator_from_hyperparams(s3_train_data, hyperparams, output_path): """ Create an Estimator from the given hyperparams, fit to training data, and return a deployed predictor """ # set up the estimator knn = sagemaker.estimator.Estimator( get_image_uri(boto3.Session().region_name, "knn"), aws_role, instance_count=1, instance_type="ml.m5.2xlarge", output_path=output_path, sagemaker_session=sess, ) knn.set_hyperparameters(**hyperparams) # train a model. fit_input contains the locations of the train data fit_input = {"train": s3_train_data} knn.fit(fit_input) return knn hyperparams = {"feature_dim": train_features.shape[1], "k": TOP_K,"sample_size": train_features.shape[0], "predictor_type": "classifier"}
output_path = f"s3://{bucket}/{prefix}/default_example/output"
knn_estimator = trained_estimator_from_hyperparams( s3_train_data, hyperparams, output_path)

Tiếp theo, chúng tôi tạo một bản trình bày nhúng của truy vấn bằng cách sử dụng mô hình nhúng GPT-J-6B mà chúng tôi đã sử dụng để tạo một bản nhúng các tài liệu thư viện kiến ​​thức:

query_response = query_endpoint_with_json_payload(question, endpoint_name_embed, content_type="application/x-text")
question_embedding = parse_response_text_embed(query_response)

Sau đó, chúng tôi sử dụng điểm cuối KNN và chuyển việc nhúng truy vấn đến điểm cuối KNN để lấy chỉ mục của K tài liệu hàng đầu có liên quan nhất. Chúng tôi sử dụng các chỉ mục để truy xuất các tài liệu văn bản tương ứng. Tiếp theo, chúng tôi nối các tài liệu, đảm bảo không vượt quá độ dài tối đa cho phép của ngữ cảnh. Xem đoạn mã sau:

"""With maximum sequence length 500, selected top 4 document sections: Managed Spot Training can be used with all instances supported in Amazon SageMaker. Managed Spot Training is supported in all AWS Regions where Amazon SageMaker is currently available. The difference between Savings Plans for Amazon SageMaker and Savings Plans for EC2 is in the services they include. SageMaker Savings Plans apply only to SageMaker ML Instance usage. There are no fixed limits to the size of the dataset you can use for training models with Amazon SageMaker. """

Bây giờ chúng ta đến bước cuối cùng, trong đó chúng ta kết hợp truy vấn, lời nhắc và ngữ cảnh chứa văn bản từ các tài liệu liên quan và chuyển nó sang mô hình LLM Flan T5 XXL tạo văn bản để tạo câu trả lời.

Chúng tôi nhận được phản hồi sau cho truy vấn bằng cách sử dụng phương pháp dựa trên RAG với Flan T5 XXL:

"""
For model: huggingface-text2text-flan-t5-xxl, the generated output is: Managed Spot Training can be used with all instances supported in Amazon SageMaker """

Làm sạch

Đảm bảo xóa các điểm cuối mà chúng tôi đã tạo trong sổ ghi chép này khi không sử dụng chúng để tránh phát sinh chi phí.

Kết luận

Trong bài đăng này, chúng tôi đã trình bày việc triển khai phương pháp tiếp cận dựa trên RAG với LLM cho các nhiệm vụ trả lời câu hỏi bằng hai cách tiếp cận: LangChain và thuật toán KNN tích hợp. Cách tiếp cận dựa trên RAG tối ưu hóa độ chính xác của việc tạo văn bản bằng cách sử dụng Flan T5 XXL bằng cách cung cấp động ngữ cảnh có liên quan được tạo bằng cách tìm kiếm danh sách tài liệu.

Bạn có thể sử dụng nguyên trạng những sổ ghi chép này trong SageMaker hoặc bạn có thể tùy chỉnh chúng theo nhu cầu của mình. Để tùy chỉnh, bạn có thể sử dụng bộ tài liệu của riêng mình trong thư viện kiến ​​thức, sử dụng các triển khai tìm kiếm liên quan khác như OpenSearch và sử dụng các mô hình nhúng và LLM tạo văn bản khác có sẵn trên JumpStart.

Chúng tôi mong muốn được thấy những gì bạn xây dựng trên JumpStart bằng cách sử dụng phương pháp dựa trên RAG!


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

Trả lời câu hỏi bằng cách sử dụng Thế hệ tăng cường truy xuất với các mô hình nền tảng trong Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Tiến sĩ Xin Huang là Nhà khoa học ứng dụng cấp cao cho Amazon SageMaker JumpStart và các thuật toán tích hợp sẵn của Amazon SageMaker. Anh ấy tập trung vào việc phát triển các thuật toán học máy có thể mở rộng. Mối quan tâm nghiên cứu của ông là trong lĩnh vực xử lý ngôn ngữ tự nhiên, học sâu có thể giải thích được trên dữ liệu dạng bảng và phân tích mạnh mẽ về phân cụm không-thời gian phi tham số. Ông đã xuất bản nhiều bài báo tại các hội nghị ACL, ICDM, KDD và Hiệp hội Thống kê Hoàng gia: Series A.

Trả lời câu hỏi bằng cách sử dụng Thế hệ tăng cường truy xuất với các mô hình nền tảng trong Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.rachna chadha là Kiến trúc sư giải pháp chính AI/ML trong Tài khoản chiến lược tại AWS. Rachna là một người lạc quan tin rằng việc sử dụng AI có đạo đức và có trách nhiệm có thể cải thiện xã hội trong tương lai và mang lại sự thịnh vượng về kinh tế và xã hội. Khi rảnh rỗi, Rachna thích dành thời gian cho gia đình, đi bộ đường dài và nghe nhạc.

Trả lời câu hỏi bằng cách sử dụng Thế hệ tăng cường truy xuất với các mô hình nền tảng trong Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Tiến sĩ Kyle Ulrich là Nhà khoa học ứng dụng với nhóm thuật toán tích hợp Amazon SageMaker. Lĩnh vực nghiên cứu của ông bao gồm các thuật toán học máy có thể mở rộng, thị giác máy tính, chuỗi thời gian, phi tham số Bayesian và quy trình Gaussian. Tiến sĩ của anh ấy đến từ Đại học Duke và anh ấy đã xuất bản các bài báo trên NeurIPS, Cell và Neuron.

Trả lời câu hỏi bằng cách sử dụng Thế hệ tăng cường truy xuất với các mô hình nền tảng trong Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Hemant Singh là Kỹ sư máy học có kinh nghiệm về Amazon SageMaker JumpStart và thuật toán tích hợp sẵn Amazon SageMaker. Anh ấy lấy bằng thạc sĩ tại Viện Khoa học Toán học Courant và B.Tech từ IIT Delhi. Anh ấy đã có kinh nghiệm làm việc với nhiều vấn đề khác nhau về Học máy trong lĩnh vực xử lý ngôn ngữ tự nhiên, thị giác máy tính và phân tích chuỗi thời gian.

Trả lời câu hỏi bằng cách sử dụng Thế hệ tăng cường truy xuất với các mô hình nền tảng trong Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Manas Dadarkar là Giám đốc phát triển phần mềm sở hữu kỹ thuật của dịch vụ Amazon Forecast. Anh ấy đam mê các ứng dụng của máy học và làm cho các công nghệ ML trở nên dễ dàng cho mọi người áp dụng và triển khai vào sản xuất. Ngoài công việc, anh ấy có nhiều sở thích bao gồm du lịch, đọc sách và dành thời gian cho bạn bè và gia đình.

Trả lời câu hỏi bằng cách sử dụng Thế hệ tăng cường truy xuất với các mô hình nền tảng trong Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Tiến sĩ Ashish Khetan là Nhà khoa học ứng dụng cấp cao với các thuật toán tích hợp Amazon SageMaker và giúp phát triển các thuật toán máy học. Ông lấy bằng Tiến sĩ tại Đại học Illinois Urbana-Champaign. Ông là một nhà nghiên cứu tích cực về học máy và suy luận thống kê, đồng thời đã xuất bản nhiều bài báo tại các hội nghị NeurIPS, ICML, ICLR, JMLR, ACL và EMNLP.

Dấu thời gian:

Thêm từ Học máy AWS