16 điểm bởi ninebow 2024-01-03 | 2 bình luận | Chia sẻ qua WhatsApp

PyTorchKR

Dưới đây là phần trích các nội dung chính theo mục lục


Giới thiệu về công nghệ Retrieval-Augmented Generation (RAG)

Mô hình ngôn ngữ lớn (LLM) cho thấy năng lực vượt trội, nhưng để sử dụng trong thực tế, chúng cần vượt qua những vấn đề như hallucination, cập nhật tri thức chậm và thiếu tính minh bạch trong câu trả lời. RAG (Retrieval-Augmented Generation) là kỹ thuật được đề xuất để giải quyết các vấn đề này.

Quảng cáo

RAG là phương pháp trong đó mô hình ngôn ngữ lớn (LLM) tìm kiếm thông tin liên quan trong một tập tài liệu quy mô lớn trước khi tạo câu trả lời cho câu hỏi hoặc sinh văn bản, rồi sử dụng thông tin đó để tạo phản hồi. Trọng tâm của cách tiếp cận này là khắc phục các vấn đề vốn có của LLM như tri thức lỗi thời, thiếu hiểu biết về các lĩnh vực chuyên biệt và thiếu tính minh bạch trong phản hồi.

RAG có thể cải thiện đáng kể độ chính xác của câu trả lời và đặc biệt hữu ích trong việc giảm hallucination của mô hình ở các tác vụ đòi hỏi nhiều tri thức. Người dùng có thể kiểm chứng độ chính xác của câu trả lời thông qua việc trích dẫn nguồn, từ đó tăng mức độ tin cậy đối với đầu ra của mô hình. Ngoài ra, RAG cũng thuận tiện cho việc cập nhật tri thức và đưa tri thức của các lĩnh vực chuyên biệt vào hệ thống.

Ngoài RAG, có thể dùng fine-tuning để khiến mô hình ngôn ngữ lớn tập trung vào một tập tri thức cụ thể. Tuy nhiên, fine-tuning cần thời gian để phản ánh thông tin được cập nhật theo thời gian thực, đồng thời tiêu tốn thêm tài nguyên cho việc huấn luyện lại mô hình. Ngược lại, RAG giống như việc cung cấp cho LLM một “sách tham khảo” để tra cứu thông tin cho từng truy vấn cụ thể.

Ba mô hình chính của RAG - Tổng quan

Các mô hình nghiên cứu về RAG liên tục phát triển theo thời gian. Ba mô hình chính là RAG cơ bản, RAG nâng cao và RAG mô-đun. Ở giai đoạn đầu, RAG cơ bản có hiệu quả chi phí tốt và cho hiệu năng vượt trội so với chỉ dùng LLM, nhưng vẫn tồn tại nhiều hạn chế. Sự xuất hiện của RAG nâng cao và RAG mô-đun nhằm giải quyết những khuyết điểm cụ thể của RAG cơ bản.

Ba mô hình chính của RAG - RAG cơ bản (Naive RAG)

RAG cơ bản là cách tiếp cận ban đầu trong nghiên cứu RAG, bao gồm các quy trình lập chỉ mục, truy xuất và sinh nội dung theo kiểu truyền thống. RAG cơ bản chủ yếu tập trung vào phương thức truy xuất và sinh nội dung đơn giản, đồng thời có vai trò quan trọng trong việc giải thích các khái niệm và nguyên lý nền tảng của RAG.

Quảng cáo

Tuy nhiên, do độ chính xác truy xuất thấp, chất lượng sinh phản hồi thấp và khó khăn trong quá trình augmentation, nó có thể dẫn đến lặp lại không cần thiết, thông tin thiếu chính xác và tích hợp sai ngữ cảnh. Vì vậy, RAG cơ bản có thể không phù hợp cho các kịch bản phức tạp hoặc nhiều thách thức.

Ba mô hình chính của RAG - RAG nâng cao (Advanced RAG)

RAG nâng cao là mô hình được phát triển để cải thiện các điểm còn thiếu của RAG cơ bản. Nó chủ yếu bao gồm các phương pháp trước và sau truy xuất nhằm nâng cao chất lượng của quá trình truy xuất và sinh nội dung. Có thể chia RAG nâng cao thành 3 giai đoạn lớn: quy trình trước truy xuất (Pre-Retrieval Process), quy trình sau truy xuất (Post-Retrieval Process) và tối ưu hóa pipeline RAG (RAG Pipeline Optimization):

Ba mô hình chính của RAG - RAG mô-đun (Modular RAG)

RAG mô-đun là hình thức phát triển hơn của RAG nâng cao, tiến thêm một bước so với framework RAG hiện có bằng cách tích hợp nhiều mô-đun và chức năng khác nhau để mang lại mức độ đa dạng và linh hoạt cao hơn. Cách tiếp cận này bao gồm nhiều mô-đun và mẫu thiết kế mới, giúp điều chỉnh hệ thống RAG phù hợp với nhiều kịch bản và yêu cầu khác nhau.

Các thành phần chính của công nghệ RAG: Retriever

Retriever đảm nhiệm vai trò truy tìm thông tin quan trọng trong hệ thống, đến mức chữ cái đầu tiên trong tên viết tắt RAG chính là R. Retriever có nhiệm vụ tìm ra thông tin liên quan từ các tập dữ liệu lớn và chuẩn bị dữ liệu cho quá trình sinh văn bản. Những retriever như vậy được dùng để thu hẹp khoảng cách giữa tri thức tổng quát của LLM và nhu cầu về thông tin hiện thời, chính xác theo ngữ cảnh. Điều này đặc biệt quan trọng trong các kịch bản cần dữ liệu thời gian thực, tri thức chuyên ngành hoặc kiểm chứng sự thật.

Các thành phần chính của công nghệ RAG: Generator

Nếu vai trò của retriever như đã nói ở trên là trích xuất các tài liệu ứng viên từ đầu vào của người dùng, thì vai trò của generator là sử dụng kết quả đã truy xuất để tạo ra câu trả lời cung cấp cho người dùng. Để tận dụng hiệu quả thông tin đã truy xuất và tạo ra phản hồi chính xác, có liên quan cao, generator thực hiện các quy trình hậu xử lý như nén thông tin, xếp hạng lại, cùng với các bước tối ưu hóa để thích ứng với dữ liệu đầu vào.

Quảng cáo

Các thành phần chính của công nghệ RAG: Phương pháp augmentation

Trong chương này, các phương pháp augmentation trong RAG sẽ được xem xét từ 3 khía cạnh sau.

  • giai đoạn augmentation (the stage of augmentation)
  • augmentation của nguồn dữ liệu (augmentation data sources)
  • quy trình augmentation (the process of augmentation)

Đánh giá RAG (RAG Evaluation)

Đánh giá RAG là việc xem xét RAG vận hành hiệu quả đến mức nào. Về cơ bản, đánh giá được chia thành 2 loại lớn: một là đánh giá độc lập (independent evaluation) đối với từng mô-đun như retriever hoặc generator, và hai là đánh giá end-to-end đối với toàn bộ quá trình từ đầu vào đến đầu ra. Bài viết cũng sẽ xem xét các phương pháp đánh giá tương ứng, các chỉ số (metric) dùng trong đánh giá và những framework có thể sử dụng.

Triển vọng tương lai của RAG (Future Prospects)

Nội dung này đề cập đến tối ưu hóa theo chiều dọc và mở rộng theo chiều ngang của RAG, cũng như hệ sinh thái RAG.


⚠️Quảng cáo: Bạn thấy bài tổng hợp này của Cộng đồng người dùng PyTorch Hàn Quốc hữu ích chứ? Nếu đăng ký thành viên, bạn sẽ nhận được các bài viết nổi bật qua email! (Mặc định là Weekly, nhưng bạn cũng có thể chuyển sang Daily.)

2 bình luận

 
959ma 2024-01-04

Cảm ơn bạn đã chia sẻ tài liệu hữu ích.

 
ninebow 2024-01-04

Ôi, cảm ơn bạn đã đọc!
Nếu trong lúc đọc bạn phát hiện chỗ nào kỳ lạ hoặc sai sót, mong bạn vui lòng cho tôi biết. ^^;