Sử dụng ChatGPT để trích xuất thông tin thông minh từ nhiều tài liệu khác nhau
Sử dụng ChatGPT để trích xuất thông tin thông minh từ nhiều tài liệu khác nhau
Kết hợp sức mạnh của Azure Search với ChatGPT cho phép phân tích thông minh dữ liệu văn bản của bạn. Ví dụ: https://github.com/Drop-Database-Cascade/chatGPT-azurefuncs.git
Toàn bộ công lao đã được đóng góp bởi các cá nhân sau đây trong việc thiết kế và phát triển giải pháp này:
- Matt Mellifont — https://www.linkedin.com/in/matthew-mellifont-6531b57b/
- Dan Sartor — https://www.linkedin.com/in/daniel-eddie-sartor/
- Sam Daley — https://www.linkedin.com/in/sam-daley-79253418b/
- Ameera Khan — https://www.linkedin.com/in/ameerah-khan-15031995/
Background
Không muốn bị bỏ lại phía sau trong cuộc đua ChatGPT, một nhóm đồng nghiệp và tôi đã quyết định thiết kế và xây dựng một giải pháp tùy chỉnh vượt trội nhờ khai thác khả năng của ChatGPT.
Chúng tôi đã quyết định tạo ra một "Document Search Chatbot" có thể được sử dụng như một công cụ bổ sung để trả lời những câu hỏi phổ biến (FAQ) dựa trên nội dung của một số tài liệu.
Một đội ngũ dịch vụ tài chính mà tôi đã từng làm việc đã gặp vấn đề khi họ thường xuyên sản xuất các tài liệu thông tin cho công chúng (báo cáo, tờ thông tin, văn bản tuyên truyền) và sau đó nhận được một lượng lớn yêu cầu hỏi đáp. Có một quan điểm rộng rãi rằng 70-80% trong số những yêu cầu hỏi này có thể được trả lời bằng thông tin trong một tài liệu cụ thể. Tuy nhiên, đối với các thành viên của công chúng, không phải lúc nào cũng rõ ràng rằng tài liệu nào sẽ trả lời câu hỏi của họ và tìm kiếm ở đâu trong tài liệu đó. Lý thuyết, một chatbot thông minh đủ để liên kết các yêu cầu hỏi với tài liệu nguồn có thể cải thiện trải nghiệm đáng kể cho đội ngũ dịch vụ tài chính và thành viên của công chúng.
Ngoài việc khám phá một trường hợp sử dụng thú vị, tôi cũng đặc biệt quan tâm đến cách một mô hình ngôn ngữ như ChatGPT có thể tăng cường các nền tảng đám mây hiện có.
Cách thức hoạt động
Để tóm tắt, Chatbot Tìm kiếm Tài liệu sử dụng Azure Search để trích xuất và xếp hạng những điểm nổi bật chính từ một tập hợp tài liệu văn bản dựa trên một truy vấn người dùng. Truy vấn người dùng và kết quả Azure Search được truyền cho OpenAI để được giải thích và định dạng thành một phản hồi dựa trên trò chuyện.
Đây là các quy trình cấp cao được thực hiện để tạo ra một phản hồi từ Chatbot Tìm kiếm Tài liệu:
- Tài liệu được tải lên Azure Blob Storage (được sử dụng để "cung cấp thông tin" cho Chatbot Tìm kiếm Tài liệu).
- Azure Search được sử dụng để tạo chỉ mục trên các tài liệu đã tải lên.
- Cấu hình Ngữ nghĩa được tạo cho chỉ mục. Điều này quy định cách tìm kiếm ngữ nghĩa xếp hạng các trường trong chỉ mục tài liệu khi được truy vấn.
- Người dùng gửi một truy vấn thông qua Cổng thông tin web, ví dụ: "Các dịch vụ nào được cung cấp bởi nhà cung cấp A?"
- Câu hỏi của người dùng kích hoạt một yêu cầu Azure Function điều hành cuộc gọi API đến Azure Search và OpenAI.
- Truy vấn được truyền cho Azure Search dưới dạng một truy vấn ngữ nghĩa và trả về các điểm nổi bật và trích xuất của các tài liệu phù hợp được xếp hạng theo tiêu chí trong Cấu hình Ngữ nghĩa (ví dụ: mức độ liên quan). Tham khảo tài liệu SDK Azure Search để biết thêm thông tin chi tiết.
- Một truy vấn ChatGPT được tạo bằng cách sử dụng các trích xuất Tìm kiếm thích hợp và truy vấn người dùng ban đầu. Truy vấn ChatGPT chỉ đạo ChatGPT trả lời truy vấn người dùng bằng cách sử dụng các trích xuất Tìm kiếm nếu chúng có liên quan đến truy vấn người dùng.
- Truy vấn ChatGPT được gửi và một phản hồi được nhận từ OpenAI. Tham khảo tài liệu API OpenAI để biết thêm thông tin chi tiết.
- Truy vấn của người dùng, phản hồi của Azure Search và phản hồi của ChatGPT được đăng nhập bằng Application Insights.
- Phản hồi này được truyền cho cổng thông tin web và được phục vụ cho người dùng.
Giải pháp này giúp giải quyết những vấn đề sau đây:
Từ quan điểm của Azure Search - Azure Search chỉ có thể trả về văn bản chính xác như nó xuất hiện trong tài liệu của bạn, giải pháp của chúng tôi sử dụng ChatGPT để giải thích phản hồi từ Azure Search và tùy chỉnh phản hồi cho một câu hỏi của người dùng trong khi xem xét xem có câu trả lời phù hợp cho câu hỏi đó trong các tài liệu của bạn hay không.
Từ quan điểm của ChatGPT - giải pháp của chúng tôi cung cấp một cơ chế để sử dụng sức mạnh của ChatGPT trên một tập hợp lớn các tài liệu văn bản tùy chỉnh mà không bị giới hạn bởi các giới hạn token.
Các hạn chế của giải pháp này bao gồm:
- Độ chính xác của các phản hồi: Mặc dù Chatbot Tìm kiếm Tài liệu có thể phân tích nhiều tài liệu khác nhau và cung cấp các câu trả lời nhanh chóng cho các câu hỏi đơn giản, không có cách nào để đảm bảo độ chính xác 100%.
- Bảo mật và riêng tư dữ liệu: Chatbot Tìm kiếm Tài liệu nên được sử dụng để phân tích các tài liệu có sẵn công khai, nhưng quan trọng là đảm bảo có một quy trình để tránh việc chia sẻ không cố ý các tài liệu được xem là tối mật.
- Trải nghiệm người dùng: Chatbot Tìm kiếm Tài liệu nên được thiết kế để cung cấp trải nghiệm tích cực và đáp ứng nhu cầu của người dùng. Điều này có thể đòi hỏi kiểm tra và cập nhật liên tục để đảm bảo Chatbot Tìm kiếm Tài liệu xử lý liên tục một loạt các truy vấn.
- Sự tham gia của con người: Mặc dù Chatbot Tìm kiếm Tài liệu có khả năng cung cấp các phản hồi nhanh chóng và chính xác cho các câu hỏi về nội dung trong một tập hợp các tài liệu, nó sẽ không thể thay thế khả năng hiểu biết của con người đối với các câu hỏi phức tạp hơn hoặc quan trọng hơn.
Có thể cải thiện hiệu suất của Chatbot Tìm kiếm Tài liệu bằng các phương pháp sau:
- Tooling (Công cụ) - Thêm các công cụ mã nguồn mở Chain of Thought (COT) như LangChain để cho phép tiếp tục hỏi từ người dùng khi truy vấn của người dùng không đủ để lấy trích xuất từ các tài liệu nguồn.
- Pre-processing (Tiền xử lý) - Xử lý truy vấn của người dùng trước khi gửi đến Azure Search, ví dụ: sử dụng Chat GPT để đổi lại truy vấn của người dùng với một số ngữ cảnh nền được nhúng để cải thiện kết quả Azure Search.
- Document Chunking (Phân đoạn Tài liệu) - Điều chỉnh kích thước các phân đoạn logic mà các tài liệu nguồn được phân chia để cải thiện tính liên quan của các đoạn văn bản được trả về bởi Azure Search. Tùy thuộc vào các tài liệu nguồn, bạn có thể muốn các đoạn văn bản nhỏ hơn để tăng số lượng các phần văn bản khác nhau được gửi đến ChatGPT hoặc bạn có thể muốn các đoạn văn bản dài hơn để đảm bảo ngữ cảnh của các đoạn văn bản không bị mất.
- Summarisation (Tóm tắt) - Sử dụng ChatGPT để tóm tắt các đoạn văn bản trả về bởi Azure Search trước khi trả lời truy vấn của người dùng có thể cho phép xem xét nhiều trích xuất từ các tài liệu nguồn hơn.
Tổng thể
Tổng thể, ví dụ này cho thấy cách Mô hình Ngôn ngữ Lớn (LLMs) có thể được tích hợp với các dịch vụ đám mây quản lý để cung cấp khả năng nâng cao. Khi các tổ chức tiếp tục phát triển các nền tảng đám mây của mình, họ có thể tận dụng các quy trình ML Ops để tích hợp các mô hình đã được huấn luyện trước như ChatGPT và Azure Semantic Search. Theo ý kiến của tôi, các tổ chức làm điều này tốt sẽ thu được những lợi ích từ các giải pháp hiệu quả và tùy chỉnh cao. Ngay trước khi bài viết này được phát hành, Microsoft đã phát hành một quan điểm với các ví dụ mã nguồn để tích hợp Azure Search với ChatGPT, có thể đọc thêm ở đây. Hơn nữa, dịch vụ Azure OpenAI hiện cho phép bạn sử dụng ChatGPT (xem trước) một cách phù hợp cho các ứng dụng doanh nghiệp. Với mối quan hệ giữa Microsoft và OpenAI, tôi sẽ không ngạc nhiên nếu họ phát hành một giải pháp trực tiếp để dễ dàng tích hợp Search và OpenAI trong tương lai không xa.
Vui lòng tham khảo các liên kết sau để đọc thêm và hiểu rõ hơn về chủ đề:
- Azure Search, Semantic Query: https://learn.microsoft.com/en-us/azure/search/semantic-how-to-query-request?tabs=portal%2Cportal-query
- Azure OpenAI ChatGPT release: https://azure.microsoft.com/en-gb/blog/chatgpt-is-now-available-in-azure-openai-service/
- Tích hợp ChatGPT và Azure Search: https://medium.com/r/?url=https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fai-applied-ai-blog%2Frevolutionize-your-enterprise-data-with-chatgpt-next-gen-apps-w%2Fba-p%2F3762087%3Ffbclid%3DIwAR0hoCcqzoBB_72nCdUuE1y-8mwI-LG0FPTggEUxk-cAReuaDtwo07HhI
- Lang Chain Repository: https://github.com/hwchase17/langchain
- Bài báo Chain Of Thought: https://arxiv.org/abs/2201.11903
- Thiết lập Azure Search: https://learn.microsoft.com/en-us/azure/search/search-get-started-portal
- Tài liệu Open AI: https://platform.openai.com/docs/quickstart
- Tài liệu Azure Search SDK: https://azuresdkdocs.blob.core.windows.net/$web/python/azure-search-documents/11.4.0b1/azure.search.documents.html
Nguồn: Max Fifield, Medium
All Rights Reserved