Đồ án tốt nghiệp: Tìm hiểu Retrieval Augmented Generation và ứng dụng cho bài toán trả lời câu hỏi

Đồ án nghiên cứu tốt nghiệp kỹ thuật dữ liệu tìm hiểu retrieval augmented generationrag và ứng dụng cho bài toán trả, áp dụng công nghệ tiên tiến, tối ưu giải pháp kỹ thuật cho

Chuyên ngành

Kỹ Thuật Dữ Liệu

Người đăng

Ẩn danh

Thể loại

Đồ Án Tốt Nghiệp

2024

74
2
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CAM ĐOAN

LỜI CẢM ƠN

1. PHẦN MỞ ĐẦU

1.1. Tính cấp thiết của đề tài

1.2. Mục tiêu và nhiệm vụ nghiên cứu

1.3. Phương pháp nghiên cứu

1.4. Kết quả dự kiến đạt được

2. PHẦN NỘI DUNG

3. CHƯƠNG 1: MÔ HÌNH NGÔN NGỮ LỚN

3.1. MÔ HÌNH NGÔN NGỮ LỚN

3.2. Các thành phần chính

3.3. Mô hình ngôn ngữ lớn hoạt động như thế nào?

3.4. Một số mô hình ngôn ngữ lớn hiện nay

3.5. TỔNG QUAN KIẾN TRÚC TRANSFORMER

3.5.1. Encoder và Decoder

3.5.2. The Residual Connection

3.5.3. Linear and Softmax

4. CHƯƠNG 2: TRUY XUẤT THÔNG TIN

4.1. Một số phương pháp truy xuất thông tin

4.2. Các thành phần của hệ thống truy xuất thông tin

4.3. MÔ HÌNH TRUY XUẤT

4.4. Các loại mô hình truy xuất thông tin

4.5. Các mô hình và kỹ thuật truy xuất thông tin

4.5.1. Mô hình Boolean

4.5.2. MÔ HÌNH VECTOR SPACE

4.5.2.1. Tần số xuất hiện của từ
4.5.2.2. Tần số nghịch đảo xuất hiện của từ
4.5.2.3. Cách tính trọng số tf-idf

4.5.3. Phương pháp xếp hạng (Ranking function)

5. CHƯƠNG 3: TÌM HIỂU VỀ KỸ THUẬT RETRIEVAL AUGMENTED GENERATION

5.1. KỸ THUẬT NHÚNG TỪ

5.2. Các kỹ thuật nhúng từ

5.2.1. Mô hình Word2Vec

5.2.2. Mô hình CBOW

5.2.3. Mô hình Skip-gram

5.2.4. Đánh giá mô hình CBOW và Skip-gram

5.3. TỔNG QUAN VỀ RETRIEVAL AUGMENTED GENERATION

5.3.1. Lợi ích và hạn chế

6. CHƯƠNG 4: ỨNG DỤNG BÀI TOÁN TRẢ LỜI CÂU HỎI DỰA TRÊN TÀI LIỆU ĐÃ CUNG CẤP

6.1. MÔI TRƯỜNG CÀI ĐẶT VÀ CÁC THƯ VIỆN LIÊN QUAN

6.1.1. Môi trường cài đặt

6.1.2. Một số thư viện quan trọng

6.2. CÁC MÔ HÌNH ĐƯỢC SỬ DỤNG

6.2.1. Mô hình nhúng Bge-base-en-v1

6.2.2. Mô hình ngôn ngữ lớn Meta-Llama-3-8B-Instruct

6.3. XÂY DỰNG ỨNG DỤNG RAG

6.3.1. Hệ thống truy xuất

6.3.2. Xử lí tài liệu

6.3.3. Xếp hạng lại các tài liệu liên quan

6.3.4. Hệ thống tạo sinh

6.3.4.1. Thiết lập thông số cho mô hình Llama3
6.3.4.2. Kỹ thuật nhắc nhở (Prompt Engineering)
6.3.4.3. Thiết lập hệ thống RAG

6.3.5. Đánh giá hệ thống RAG

6.3.5.1. Các Metric đánh giá
6.3.5.2. Tập dữ liệu
6.3.5.3. Đánh giá và so sánh

6.3.6. Xây dựng API

6.3.7. Triển khai API và ứng dụng chat

7. PHẦN KẾT LUẬN

7.1. KẾT QUẢ ĐẠT ĐƯỢC

7.2. ƯU ĐIỂM VÀ NHƯỢC ĐIỂM

7.3. HƯỚNG PHÁT TRIỂN

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tìm hiểu về Retrieval Augmented Generation

Retrieval Augmented Generation (RAG) là một phương pháp kết hợp giữa truy xuất thông tin và sinh văn bản, nhằm nâng cao hiệu quả của các hệ thống trả lời câu hỏi. Phương pháp này tận dụng sức mạnh của mô hình ngôn ngữ lớn (Large Language Model)hệ thống thông tin để tạo ra câu trả lời chính xác và có ngữ cảnh. RAG hoạt động bằng cách trích xuất thông tin từ các nguồn dữ liệu lớn, sau đó sử dụng mô hình ngôn ngữ để sinh ra câu trả lời phù hợp. Điều này giúp cải thiện độ chính xác và tính ngữ cảnh của câu trả lời, đặc biệt trong các bài toán phức tạp.

1.1. Nguyên lý hoạt động của RAG

RAG hoạt động dựa trên hai giai đoạn chính: truy xuất thông tin và sinh văn bản. Trong giai đoạn truy xuất, hệ thống sử dụng các kỹ thuật như tối ưu hóa tìm kiếm để lọc ra các tài liệu liên quan từ cơ sở dữ liệu. Sau đó, mô hình ngôn ngữ lớn như GPT hoặc Llama được sử dụng để sinh ra câu trả lời dựa trên thông tin đã trích xuất. Sự kết hợp này giúp hệ thống không chỉ dựa vào kiến thức có sẵn của mô hình mà còn tận dụng thông tin từ nguồn dữ liệu bên ngoài.

1.2. Lợi ích và hạn chế của RAG

RAG mang lại nhiều lợi ích, đặc biệt trong việc cải thiện độ chính xác và tính ngữ cảnh của câu trả lời. Tuy nhiên, phương pháp này cũng có một số hạn chế, như yêu cầu nguồn dữ liệu lớn và chất lượng, cũng như chi phí tính toán cao. Việc tích hợp giữa truy xuất thông tin và sinh văn bản cũng đòi hỏi sự tối ưu hóa để đảm bảo hiệu suất hệ thống.

II. Ứng dụng của RAG trong trả lời câu hỏi

Ứng dụng của RAG trong trả lời câu hỏi đã chứng minh hiệu quả trong việc xử lý các câu hỏi phức tạp và đa chiều. Bằng cách kết hợp thông tin từ nhiều nguồn dữ liệu, RAG giúp hệ thống đưa ra câu trả lời chính xác và có ngữ cảnh. Điều này đặc biệt hữu ích trong các lĩnh vực như giáo dục, y tế và hỗ trợ khách hàng, nơi yêu cầu độ chính xác cao.

2.1. Xây dựng hệ thống trả lời câu hỏi dựa trên RAG

Để xây dựng hệ thống trả lời câu hỏi dựa trên RAG, cần thực hiện các bước như chọn lọc nguồn dữ liệu, tích hợp mô hình ngôn ngữ lớn và tối ưu hóa quá trình truy xuất thông tin. Các công cụ như Langchain, ChromaRagas được sử dụng để hỗ trợ quá trình này. Việc đánh giá hệ thống cũng được thực hiện thông qua các chỉ số như độ chính xác và thời gian phản hồi.

2.2. Thách thức và hướng phát triển

Mặc dù RAG mang lại nhiều lợi ích, nhưng việc triển khai hệ thống này cũng gặp phải một số thách thức, như yêu cầu nguồn dữ liệu chất lượng cao và chi phí tính toán lớn. Hướng phát triển trong tương lai bao gồm tối ưu hóa quá trình truy xuất thông tin và tích hợp các mô hình ngôn ngữ lớn hiệu quả hơn.

III. Công nghệ và công cụ hỗ trợ RAG

Việc triển khai RAG đòi hỏi sử dụng nhiều công nghệ và công cụ hỗ trợ, bao gồm học máy, xử lý ngôn ngữ tự nhiênphân tích ngữ nghĩa. Các công cụ như Langchain, ChromaRagas đóng vai trò quan trọng trong việc xây dựng và đánh giá hệ thống RAG.

3.1. Công cụ Langchain và Chroma

Langchain là một thư viện hỗ trợ tích hợp các mô hình ngôn ngữ lớn vào ứng dụng, trong khi Chroma là công cụ quản lý cơ sở dữ liệu vector, giúp tối ưu hóa quá trình truy xuất thông tin. Sự kết hợp giữa hai công cụ này giúp hệ thống RAG hoạt động hiệu quả hơn.

3.2. Đánh giá hệ thống với Ragas

Ragas là công cụ đánh giá hiệu suất của hệ thống RAG, giúp đo lường độ chính xác và tính ngữ cảnh của câu trả lời. Việc sử dụng Ragas giúp nhà phát triển tối ưu hóa hệ thống và cải thiện chất lượng đầu ra.

21/02/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1: MÔ HÌNH NGÔN NGỮ LỚN Trong chương này sẽ tìm hiểu tổng quan lý thuyết về mô hình ngôn ngữ lớn và mô hình transformer. Trong mô hình ngôn ngữ lớn với khả năng hiểu ngôn ngữ tự nhiên mạnh mẽ, cùng với cách thức hoạt động của mô hình đã đóng vai trò quan trọng trong việc phát triển và ứng dụng retrieval augmented generation. Ngoài ra việc hiểu rõ kiến trúc mô hình transformer với cơ chế chú ý (attention) và khả năng xử lý nhiều loại tác vụ ngôn ngữ đã tạo ra sự kết hợp linh hoạt giữa thông tin từ dữ liệu lưu trữ và sinh ra văn bản mới. MÔ HÌNH NGÔN NGỮ LỚN 1.

Giới thiệu Mô hình ngôn ngữ lớn (Large Language Model - LLM) là một thuật toán học sâu có thể thực hiện nhiều tác vụ xử lý ngôn ngữ tự nhiên. Những mô hình này được đào tạo trên dữ liệu văn bản lớn để có khả năng hiểu và tạo ra văn bản tự nhiên giống như con người. Các mô hình ngôn ngữ lớn còn được gọi là mạng thần kinh (neural network), là các hệ thống máy tính lấy cảm hứng từ bộ não con người. Các mạng nơ-ron này hoạt động bằng cách sử dụng mạng lưới các nút được xếp lớp, giống như các nơ-ron.

Ngoài việc dạy ngôn ngữ của con người cho các ứng dụng trí tuệ nhân tạo (AI), các mô hình ngôn ngữ lớn cũng có thể được đào tạo để thực hiện nhiều nhiệm vụ khác nhau như hiểu cấu trúc protein, viết mã phần mềm, v. Các mô hình ngôn ngữ lớn thường được đào tạo trước (pre-trained) trên một lượng lớn dữ liệu văn bản từ internet, sau đó có thể được tinh chỉnh (fine-tuned) cho các nhiệm vụ cụ thể như dịch ngôn ngữ, tóm tắt văn bản, trả lời câu hỏi, và nhiều ứng dụng khác. Các thành phần chính Kiến trúc của LLM chủ yếu bao gồm nhiều lớp mạng nơ-ron, như recurrent layers, feedforward layers, embedding layers, attention layers. Các lớp này hoạt động cùng nhau để xử lý văn bản đầu vào và tạo dự đoán cho đầu ra.

 Embedding layer chuyển đổi từng từ trong văn bản đầu vào thành biểu diễn vectơ nhiều chiều (high-dimensional). Những vec-tơ này nắm bắt thông tin ngữ nghĩa và cú pháp của từng đơn vị cấu tạo nên câu (từ hoặc token) và giúp mô hình hiểu được ngữ cảnh (context) của văn bản. 3  Feedforward layers gồm nhiều lớp được kết nối đầy đủ áp dụng các phép biến đổi tuyến tính và phi tuyến tính để học các biểu diễn phức tạp từ các embedding vector đầu vào.  Recurrent layers được thiết kế để diễn giải thông tin từ văn bản đầu vào theo trình tự.

Các lớp này duy trì trạng thái ẩn được cập nhật ở mỗi bước theo thời gian, cho phép mô hình nắm được sự phụ thuộc giữa các từ trong câu.  Attention layers cho phép mô hình tập trung chọn lọc vào các phần khác nhau của văn bản đầu vào. Cơ chế này giúp mô hình chú ý đến các phần có liên quan nhất của văn bản đầu vào và tạo ra các dự đoán chính xác hơn. Mô hình ngôn ngữ lớn hoạt động như thế nào? Mô hình ngôn ngữ lớn dựa trên mô hình Transformer và hoạt động bằng cách nhận đầu vào, mã hóa nó và sau đó giải mã để tạo dự đoán đầu ra.

Nhưng trước khi một mô hình ngôn ngữ lớn có thể nhận văn bản đầu vào và tạo ra dự đoán đầu ra, nó cần phải được đào tạo để có thể thực hiện các chức năng chung và tinh chỉnh để có thể thực hiện các tác vụ cụ thể. Huấn luyện: Các mô hình ngôn ngữ lớn được đào tạo trước bằng cách sử dụng bộ dữ liệu văn bản lớn từ các trang web. Các bộ dữ liệu này có thể lên đến hàng nghìn tỷ từ và chất lượng của chúng sẽ ảnh hưởng đến hiệu suất của mô hình ngôn ngữ. Ở giai đoạn này, mô hình ngôn ngữ lớn tham gia vào quá trình học không giám sát, nghĩa là nó xử lý các tập dữ liệu được cung cấp mà không có hướng dẫn cụ thể.

Trong quá trình này, các thuật toán AI của LLM có thể tìm hiểu ý nghĩa của các từ và mối quan hệ giữa các từ và phân biệt các từ dựa trên ngữ cảnh. Tinh chỉnh: Để một mô hình ngôn ngữ lớn có thể thực hiện một nhiệm vụ cụ thể, chẳng hạn như dịch thuật, nó phải được tinh chỉnh cho phù hợp với hoạt động cụ thể đó. Tinh chỉnh tối ưu hóa hiệu suất của các tác vụ cụ thể. Tinh chỉnh kịp thời: Thay vì chỉ dựa vào các ví dụ đầu vào và đầu ra, ở đây nó sử dụng các yêu cầu mà mô hình được yêu cầu làm theo.

Những yêu cầu này thường là các hướng dẫn hoặc mẫu cho mô hình. Mô hình được đào tạo để hiểu cách xử lý các yêu cầu và tạo ra đầu ra tương ứng. Ví dụ, một yêu cầu để đánh giá có thể như: Đánh giá của khách hàng: Cây này đẹp quá! Tâm trạng của khách hàng: tích cực Đánh giá của khách hàng: Cái cây này thật xấu xí! 4 Tâm trạng của khách hàng: tiêu cực Mô hình ngôn ngữ sẽ hiểu, thông qua ý nghĩa ngữ nghĩa của khách hàng là "xấu xí" và vì một ví dụ trái ngược nên cảm tính của khách hàng trong ví dụ thứ hai là "tiêu cực". Một số mô hình ngôn ngữ lớn hiện nay Các mô hình ngôn ngữ lớn đang được sử dụng trong nhiều ứng dụng thực tế.

Dưới đây là một số ví dụ:  GPT-3, được phát triển bởi OpenAI, là một trong những LLM lớn nhất với 175 tỷ tham số. Nó có thể tạo văn bản, dịch ngôn ngữ và tóm tắt văn bản.  BERT, được phát triển bởi Google, là một LLM khác đã được đào tạo trên một kho dữ liệu văn bản khổng lồ. Nó có thể hiểu ngữ cảnh của một câu và tạo ra các câu trả lời có ý nghĩa cho các câu hỏi.

 XLNet, được phát triển bởi Đại học Carnegie Mellon và Google, sử dụng một cách tiếp cận mới để lập mô hình ngôn ngữ được gọi là "permutation language modeling". Nó đạt được hiệu suất cao nhất trong các tác vụ ngôn ngữ, bao gồm tạo ngôn ngữ và trả lời câu hỏi.  T5, do Google phát triển, được đào tạo về nhiều tác vụ ngôn ngữ và có thể thực hiện chuyển đổi văn bản, như dịch văn bản sang ngôn ngữ khác, tạo bản tóm tắt và trả lời câu hỏi.  RoBERTa, được phát triển bởi Facebook AI Research, là phiên bản BERT cải tiến, hoạt động tốt hơn trên một số tác vụ ngôn ngữ.

TỔNG QUAN KIẾN TRÚC TRANSFORMER 1. Giới thiệu Mô hình Transformer là một kiến trúc mạng nơ-ron được giới thiệu trong bài báo "Attention is All You Need" của Vaswani và đồng nghiệp vào năm 2017. Transformer được áp dụng rộng rãi trong lĩnh vực xử lý ngôn ngữ tự nhiên và nhiều ứng dụng khác do khả năng xử lý hiệu quả các mối quan hệ không cố định và độ dài biến đổi của dữ liệu đầu vào. Điểm đặc biệt quan trọng của Transformer là cơ chế chú ý (attention mechanism) - một cơ chế giúp mô hình tập trung vào các phần quan trọng của đầu vào khi thực hiện dự đoán.

Transformer loại bỏ sự phụ thuộc tuần tự (sequential dependency) 5 trong xử lý ngôn ngữ tự nhiên và thay vào đó sử dụng cơ chế chú ý để hiểu mối quan hệ giữa các từ trong câu. Encoder và Decoder Mô hình sử dụng 2 khối chính là bộ mã hóa (encoder) và bộ giải mã (decoder), Hình 1 minh họa chi tiết kiến trúc của 2 khối trong mô hình. Hình 1: Kiến trúc mô hình Transformer Nhiệm vụ của bộ mã hóa là ánh xạ chuỗi đầu vào thành một chuỗi biểu diễn liên tục, sau đó được đưa vào bộ giải mã. Bộ giải mã nhận đầu ra của bộ mã hóa cùng với đầu ra của bộ giải mã để tạo ra chuỗi đầu ra.

Encoder Bộ mã hóa gồm một ngăn xếp 𝑁 = 6 lớp có cấu trúc giống nhau. Mỗi lớp gồm hai lớp con: 6 1. Lớp con đầu tiên triển khai cơ chế multihead-attention. Cơ chế này sử dụng ℎ đầu, mỗi đầu nhận một bản chiếu tuyến tính khác nhau của truy vấn, khóa và giá trị.

Mỗi đầu tạo ra ℎ kết quả song song, sau đó được kết hợp để tạo ra kết quả cuối cùng. Lớp con thứ hai là một mạng truyền thẳng (feed-forward network) có đầy đủ kết nối. Gồm hai phép biến đổi tuyến tính, được ngăn cách bởi hàm kích hoạt rectified linear unit (𝑅𝑒𝐿𝑈): 𝐹𝐹𝑁(𝑥) = 𝑅𝑒𝐿𝑈(𝑊1𝑥 + 𝑏1 )𝑊2 + 𝑏2 (1) Các lớp trong bộ mã hóa thực hiện các phép biến đổi tuyến tính giống nhau cho tất cả các từ trong chuỗi đầu vào. Tuy nhiên, mỗi lớp sử dụng các trọng số (𝑊1 , 𝑊2 ) và độ lệch (𝑏1 , 𝑏2 ) khác nhau.

Đầu ra của mỗi lớp con được chuẩn hóa bằng một lớp chuẩn hóa 𝑙𝑎𝑦𝑒𝑟𝑛𝑜𝑟𝑚(), thực hiện chuẩn hóa tổng giữa đầu vào của lớp con 𝑥 và và đầu ra được tạo ra bởi chính lớp con 𝑠𝑢𝑏𝑙𝑎𝑦𝑒𝑟(𝑥): 𝑙𝑎𝑦𝑒𝑟𝑛𝑜𝑟𝑚(𝑥 + 𝑠𝑢𝑏𝑙𝑎𝑦𝑒𝑟 (𝑥)) Tất cả các lớp con trong mô hình cũng như các lớp nhúng, tạo ra đầu ra có kích thước 𝑑𝑚𝑜𝑑𝑒𝑙 = 512. Decoder Bộ giải mã cũng bao gồm 1 ngăn xếp 𝑁 = 6 lớp giống hệt nhau. Ngoài hai lớp con trong mỗi lớp mã hóa, bộ giải mã chèn thêm một lớp con thứ ba, thực hiện multi-head attention trên đầu ra của mỗi lớp mã hóa. Việc dự đoán mỗi từ chỉ có thể phụ thuộc vào kết quả đầu ra đã biết đối với các từ đứng trước nó trong chuỗi.

Trong cơ chế multi-head attention, điều này đạt được bằng cách sử dụng hàm 𝑚𝑎𝑠𝑘 trên các giá trị được tạo ra bởi phép nhân ma trận theo tỷ lệ 𝑄 và 𝐾. Lớp thứ hai thực hiện cơ chế multi-head attention tương tự như cơ chế được triển khai ở lớp con đầu tiên của bộ mã hóa. Về phía bộ giải mã, cơ multi-head này nhận các truy vấn từ lớp con bộ giải mã trước đó cũng như các khóa và giá 7 trị từ đầu ra của bộ mã hóa, cho phép bộ giải mã xử lý tất cả các từ trong chuỗi đầu vào. Lớp thứ ba triển khai mạng chuyển tiếp nguồn cấp dữ liệu được kết nối đầy đủ, tương tự như mạng được triển khai ở lớp con thứ hai của bộ mã hóa.

Hơn nữa, ba lớp con ở phía bộ giải mã cũng có các kết nối còn lại xung quanh chúng và được tiếp nối bởi lớp chuẩn hóa. Attention Hình 2 biểu diễn thành phần quan trọng của cơ chế attention trong transformer là scaled dot-product attention và multi-head attention. Hình 2: Scaled Dot-Product Attention và Multi-Head Attention 1.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Tài liệu "Tìm hiểu Retrieval Augmented Generation và ứng dụng trong trả lời câu hỏi" cung cấp cái nhìn sâu sắc về mô hình RAG (Retrieval Augmented Generation), một phương pháp kết hợp tìm kiếm thông tin và tạo văn bản để cải thiện khả năng trả lời câu hỏi tự động. Tài liệu giải thích cách RAG tận dụng các nguồn dữ liệu bên ngoài để tạo ra câu trả lời chính xác và phù hợp hơn, đồng thời làm nổi bật các ứng dụng thực tế của nó trong lĩnh vực xử lý ngôn ngữ tự nhiên (NLP). Độc giả sẽ hiểu rõ hơn về cách RAG hoạt động, lợi ích của nó trong việc nâng cao chất lượng chatbot và hệ thống hỏi đáp, cũng như tiềm năng của nó trong tương lai.

Nếu bạn quan tâm đến các ứng dụng học sâu trong NLP, hãy khám phá thêm về Luận văn thạc sĩ phát triển chatbot trên nền tảng transformers ứng dụng trong tìm kiếm tra cứu thông tin về trường đại học công nghệ đông á, nơi bạn sẽ tìm thấy cách thức xây dựng chatbot hiệu quả. Bên cạnh đó, Luận văn thạc sĩ khoa học máy tính ứng dụng học sâu vào xây dựng mô hình rút trích thông tin sẽ giúp bạn hiểu sâu hơn về các mô hình học sâu trong việc trích xuất thông tin. Cuối cùng, Luận văn thạc sĩ khoa học máy tính phân loại văn bản dựa trên mô hình tiền xử lý transformer cung cấp thêm góc nhìn về cách transformer được áp dụng trong phân loại văn bản. Mỗi liên kết là cơ hội để bạn mở rộng kiến thức và khám phá sâu hơn về các chủ đề liên quan.