1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án tốt nghiệp Kỹ thuật dữ liệu: Tìm hiểu Retrieval augmented generation(RAG) và ứng dụng cho bài toán trả lời các câu hỏi

74 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm Hiểu Retrieval Augmented Generation (RAG) Và Ứng Dụng Cho Bài Toán Trả Lời Các Câu Hỏi
Tác giả Trần Văn Thắng, Trần Minh Đức
Người hướng dẫn ThS. Quách Đình Hoàng
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Kỹ Thuật Dữ Liệu
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 74
Dung lượng 7,7 MB

Cấu trúc

  • 1. Tính cấp thiết của đề tài (15)
  • 2. Mục tiêu và nhiệm vụ nghiên cứu (15)
  • 3. Phương pháp nghiên cứu (16)
  • 4. Kết quả dự kiến đạt được (0)
  • CHƯƠNG 1: MÔ HÌNH NGÔN NGỮ LỚN (17)
    • 1.1. MÔ HÌNH NGÔN NGỮ LỚN (17)
      • 1.1.1. Giới thiệu (17)
      • 1.1.2. Các thành phần chính (17)
      • 1.1.3. Mô hình ngôn ngữ lớn hoạt động như thế nào? (18)
      • 1.1.4. Một số mô hình ngôn ngữ lớn hiện nay (19)
    • 1.2. TỔNG QUAN KIẾN TRÚC TRANSFORMER (0)
      • 1.2.1. Giới thiệu (19)
      • 1.2.2. Kiến trúc (20)
        • 1.2.2.1. Encoder và Decoder (20)
        • 1.2.2.2. Attention (22)
        • 1.2.2.3. Position Encoding (23)
        • 1.2.2.4. The Residual Connection (24)
        • 1.2.2.5. Linear and Softmax (25)
  • CHƯƠNG 2: TRUY XUẤT THÔNG TIN (26)
    • 2.1. GIỚI THIỆU (26)
      • 2.1.1. Khái niệm (26)
      • 2.1.2. Một số phương pháp truy xuất thông tin (27)
      • 2.1.3. Các thành phần của hệ thống truy xuất thông tin (27)
    • 2.2. MÔ HÌNH TRUY XUẤT (28)
      • 2.2.1. Khái niệm (28)
      • 2.2.2. Các loại mô hình truy xuất thông tin (29)
    • 2.3. Các mô hình và kỹ thuật truy xuất thông tin (30)
      • 2.3.1. Mô hình Boolean (30)
      • 2.3.2 MÔ HÌNH VECTOR SPACE (0)
        • 2.3.2.1. Giới thiệu (32)
        • 2.3.2.2. Độ tương đồng (32)
      • 2.3.3 TF-IDF (33)
        • 2.3.3.1 Tần số xuất hiện của từ (33)
        • 2.3.3.2. Tần số nghịch đảo xuất hiện của từ (34)
        • 2.3.3.3. Cách tính trọng số tf-idf (35)
      • 2.3.4. BM25 (35)
        • 2.3.4.1 Giới thiệu (35)
        • 2.3.4.2. Phương pháp xếp hạng (Ranking function) (35)
  • CHƯƠNG 3: TÌM HIỂU VỀ KỸ THUẬT RETRIEVAL AUGMENTED (38)
    • 3.1. KỸ THUẬT NHÚNG TỪ (38)
      • 3.1.1. Giới thiệu (38)
      • 3.1.2. Các kỹ thuật nhúng từ (38)
      • 3.1.3. Mô hình Word2Vec (39)
        • 3.1.3.1. Mô hình CBOW (39)
        • 3.1.3.2. Mô hình Skip-gram (42)
        • 3.1.3.3. Đánh giá mô hình CBOW và Skip-gram (44)
    • 3.2. TỔNG QUAN VỀ RETRIEVAL AUGMENTED GENERATION (45)
      • 3.2.1. Giới thiệu (45)
      • 3.2.2. Kiến trúc (45)
      • 3.2.3. Lợi ích và hạn chế (47)
  • 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 (49)
    • 4.1. MÔI TRƯỜNG CÀI ĐẶT VÀ CÁC THƯ VIỆN LIÊN QUAN (49)
      • 4.1.1. Môi trường cài đặt (49)
      • 4.1.2. Một số thư viện quan trọng (49)
        • 4.1.2.1. Transformer (49)
        • 4.1.2.2. LangChain (50)
        • 4.1.2.3. Chroma (51)
        • 4.1.2.4. Streamlit (52)
        • 4.1.2.5. FastAPI (52)
        • 4.1.2.6. Ragas (53)
    • 4.2. CÁC MÔ HÌNH ĐƯỢC SỬ DỤNG (54)
      • 4.2.1. Mô hình nhúng Bge-base-en-v1.5 (54)
      • 4.2.2. Mô hình ngôn ngữ lớn Meta-Llama-3-8B-Instruct (55)
    • 4.3. XÂY DỰNG ỨNG DỤNG RAG (56)
      • 4.3.1. Hệ thống truy xuất (56)
        • 4.3.1.1. Xử lí tài liệu (0)
        • 4.3.1.2. Ensemble Retrieval (57)
        • 4.3.1.3 Xếp hạng lại các tài liệu liên quan (57)
      • 4.3.2 Hệ thống tạo sinh (59)
        • 4.3.2.1. Thiết lập thông số cho mô hình Llama3 (59)
        • 4.3.2.2. Kỹ thuật nhắc nhở (Prompt Engineering) (59)
      • 4.3.3 Thiết lập hệ thống RAG (61)
      • 4.3.4. Đánh giá hệ thống RAG (61)
        • 4.3.4.1. Các Metric đánh giá (61)
        • 4.3.4.1. Tập dữ liệu (0)
        • 4.3.4.2. Đánh giá và so sánh (0)
      • 4.3.5. Xây dựng API (0)
      • 4.3.6. Triển khai API và ứng dụng chat (68)
    • 1. KẾT QUẢ ĐẠT ĐƯỢC (0)
    • 2. ƯU ĐIỂM VÀ NHƯỢC ĐIỂM (4)
    • 3. HƯỚNG PHÁT TRIỂN (70)
  • TÀI LIỆU THAM KHẢO (72)

Nội dung

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 n

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

Hiện nay, sự tiến bộ vượt bậc của trí tuệ nhân tạo đã mở ra nhiều cánh cửa mới trong lĩnh vực xử lý ngôn ngữ tự nhiên, đặc biệt là trong thời gian gần đây, với sự ra mắt của ChatGPT (1 chatbot do OpenAI phát triển) đã được lan truyền rộng rãi và nhận về nhiều đánh giá tích cực của người dùng Trong bối cảnh này, một trong những phương pháp đang thu hút sự quan tâm đặc biệt là retrieval augmented generation (RAG), một chiến lược độc đáo kết hợp sự mạnh mẽ của việc trích xuất thông tin và khả năng sinh văn bản của mô hình ngôn ngữ lớn RAG không chỉ là một xu hướng mới mẻ trong nghiên cứu, mà còn đại diện cho sự tiến bộ đáng kể trong việc giải quyết những thách thức phức tạp trong việc trả lời câu hỏi và tạo ra văn bản có tính ngữ cảnh Bài toán trả lời câu hỏi là một trong những ứng dụng chính của mô hình ngôn ngữ, và việc kết hợp retrieval và generation hứa hẹn mang lại sự hiệu quả và độ chính xác cao hơn

Quá trình này bắt đầu bằng việc trích xuất thông tin từ nguồn dữ liệu đa dạng, có thể là văn bản, câu chuyện, hay thông tin liên quan Thông qua quá trình này, hệ thống có khả năng chọn lọc những thông tin quan trọng và liên quan đến câu hỏi cụ thể Một khi thông tin này đã được chọn lọc, mô hình ngôn ngữ lớn, thường là những mô hình như GPT, BERT, Llama, sẽ đảm nhận vai trò sinh văn bản Tích hợp giữa hai khả năng này mang lại những lợi ích đáng kể Ứng dụng của RAG cho bài toán trả lời câu hỏi không chỉ giúp cải thiện độ chính xác mà còn mở ra những khả năng mới trong việc đối mặt với những câu hỏi phức tạp và đa chiều Khả năng đồng thời tận dụng cả thông tin trích xuất và khả năng sáng tạo của mô hình ngôn ngữ lớn giúp xử lý hiệu quả những bài toán yêu cầu sự hiểu biết sâu sắc và ngữ cảnh phong phú

Nhằm tìm hiểu sâu rộng về ứng dụng tiềm năng của RAG trong bài toán trả lời câu hỏi, chúng tôi quyết định đề xuất đề tài "Tìm hiểu retrieval augmented generation (RAG) và ứng dụng cho bài toán trả lời câu hỏi" làm đề tài luận văn chuyên ngành của mình Qua đó, chúng tôi hy vọng có cơ hội khám phá và đóng góp vào sự phát triển của lĩnh vực này, đồng thời hiểu rõ hơn về cách mà sự kết hợp giữa trích xuất và sinh văn bản có thể nâng cao khả năng xử lý ngôn ngữ tự nhiên của máy tính.

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

Mục tiêu là xây dựng và phát triển một hệ thống có khả năng trả lời câu hỏi với độ chính xác và tính ngữ cảnh cao, nhờ vào sự kết hợp linh hoạt giữa thông tin trích xuất và khả năng sáng tạo của mô hình ngôn ngữ lớn

Nhiệm vụ chi tiết để đạt được mục tiêu này có thể được liệt kê như sau:

 Tìm hiểu về mô hình ngôn ngữ lớn (Large Language Model)

 Tìm hiểu về truy xuất thông tin (Information Retrieval)

 Tìm hiểu về các kỹ thuật nhúng từ (Word Embedding)

 Tìm hiểu về nguyên tắc hoạt động của retrieval augmented generation (RAG)

 Tìm hiểu về các công cụ và thư viện như Langchain, Chroma, Transformer, Streamlit, FastAPI, Ragas để có thể được tích hợp vào quá trình xây dựng ứng dụng và đánh giá hệ thống.

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

 Xác định và lựa chọn nguồn dữ liệu phù hợp cho bài toán trả lời câu hỏi, bao gồm cả văn bản, tài liệu và thông tin liên quan…

 Phát triển một hệ thống hoặc sử dụng công cụ có sẵn để trích xuất thông tin từ nguồn dữ liệu

 Chọn một mô hình ngôn ngữ lớn phù hợp với bài toán có thể sinh ra văn bản có tính ngữ cảnh và đáp ứng với yêu cầu cụ thể của bài toán trả lời câu hỏi

 Kết hợp thông tin đã trích xuất từ nguồn dữ liệu vào quá trình sinh văn bản

 Dựa trên kết quả đạt được để đánh giá hệ thống, thực hiện các điều chỉnh và tối ưu hóa hệ thống để cải thiện hiệu suất và tính ứng dụng của hệ thống

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

Hoàn thành việc thực nghiệm và hiểu rõ về cách kỹ thuật retrieval augmented generation (RAG) hoạt động, đặc biệt là quá trình tích hợp thông tin từ quá trình trích xuất và quá trình sinh văn bản Xác định những ưu điểm và hạn chế của phương pháp này trong ngữ cảnh của bài toán trả lời câu hỏi

Phát triển một ứng dụng RAG có khả năng tích hợp thông tin từ quá trình trích xuất vào quá trình sinh văn bản một cách hiệu quả Đảm bảo rằng hệ thống có khả năng đưa ra câu trả lời đầy đủ, chính xác và phản ánh tính ngữ cảnh của câu hỏi

PHẦN NỘI DUNG 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

1.1 MÔ HÌNH NGÔN NGỮ LỚN

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.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

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

 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

1.1.3 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ể

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

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

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.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

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

 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

1.1.3 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í!

TỔNG QUAN KIẾN TRÚC TRANSFORMER

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"

1.1.4 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ữ

1.2 TỔNG QUAN KIẾN TRÚC TRANSFORMER

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)

6 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

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

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:

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

2 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

Bộ giải mã cũng bao gồm 1 ngăn xếp 𝑁 = 6 lớp giống hệt nhau

1 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ệ

2 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á

8 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

3 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

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

Cơ chế này được sử dụng để tính trọng số attention giữa các từ (hoặc đối tượng) trong chuỗi dựa trên sự tương quan giữa chúng Đầu vào là các truy vấn và khóa có chiều 𝑑 𝑘 được sử dụng để "scale" (tăng giảm) độ lớn của đầu ra để tránh việc giá trị gradients quá nhỏ khi tính toán 𝑠𝑜𝑓𝑡𝑚𝑎𝑥 Sau khi đã tính được trọng số attention bằng hàm 𝑠𝑜𝑓𝑡𝑚𝑎𝑥, cuối cùng dùng nó để tính tổng có trọng số với các vector giá trị 𝑉, ma trận đầu ra được tính như sau:

Thay vì sử dụng một bộ trọng số attention duy nhất, multi-head attention sử dụng nhiều đầu attention độc lập, mỗi đầu attention sẽ tính toán các trọng số

9 attention từ các không gian con (subspace) khác nhau của embedding Cơ chế này cải thiện hiệu năng của lớp attention theo hai khía cạnh:

1 Mở rộng khả năng của mô hình trong việc tập trung vào các vị trí khác nhau

2 Mang lại cho lớp attention nhiều không gian con để biểu diễn Với multi-head attention không chỉ có một mà nhiều bộ ma trận trọng số query/key/value (Transformer sử dụng tám đầu attention, do đó ta sẽ có 6 bộ cho mỗi encoder/decoder) Mỗi bộ được khởi tạo ngẫu nhiên Sau khi được đào tạo, mỗi bộ được dùng để đánh giá embedding đầu vào (hoặc vec-tơ từ các encoder/decoder phía dưới) trong một không gian con riêng biệt

TRUY XUẤT THÔNG TIN

GIỚI THIỆU

Truy xuất thông tin (information retrieval - IR) là quá trình tìm kiếm, thu thập, và trích xuất thông tin cụ thể từ một tập hợp lớn hay dữ liệu không cấu trúc Mục tiêu chính của IR là cung cấp cho người dùng các kết quả có liên quan nhất đối với các truy vấn hoặc yêu cầu thông tin của họ

Thông tin có thể tồn tại trong nhiều định dạng, bao gồm văn bản, hình ảnh, âm thanh, video, và nhiều định dạng khác IR thường được áp dụng trong các lĩnh vực như thư viện số, công cụ tìm kiếm web, hệ thống quản lý tài liệu, và nhiều ứng dụng khác

Một hệ thống IR là một chương trình phần mềm có khả năng biểu diễn, lưu trữ thông tin trên những tài liệu (văn bản, hình ảnh, ) và hỗ trợ việc trong việc tìm kiếm, truy xuất các tài liệu có liên quan Một hệ thống IR thường có kiến trúc tổng quan thông qua hình 5 sau đây

Hình 5: Sơ đồ hệ thống truy xuất thông tin

Hình 5 cho thấy rằng khi một người dùng muốn tìm kiếm, truy xuất một thông tin nào đó thì họ sẽ phải đưa ra yêu cầu dưới dạng câu truy vấn (query) bằng ngôn ngữ tự nhiên Sau đó, hệ thống IR sẽ phản hồi bằng cách truy xuất các tài liệu có liên quan đến thông tin được yêu cầu và đưa thông tin liên quan

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

Các phương pháp sử dụng kỹ thuật truy xuất thông tin:

 Ad-hoc search: phương pháp này đề cập tới việc người dùng cung cấp một câu truy vấn hoặc những từ khóa cụ thể và hệ thống tìm kiếm thông tin sẽ cố gắng trả về kết quả tìm kiếm liên quan nhất đến câu trả lời đó Việc tìm kiếm thông tin trong một ngữ cảnh hoặc một tình huống cụ thể thay vì tìm kiếm thông tin tổng quan liên quan đến một chủ đề rộng lớn

 Filtering: phương pháp này đề cập tới việc lựa chọn hoặc loại bỏ các tài liệu hoặc thông tin có liên quan theo một tiêu chí cụ thể

 Classification: phương pháp này đề cập đến quá trình gán một tài liệu vào một hoặc nhiều danh mục cụ thể dựa trên các đặc điểm của tài liệu đó nhằm xác định độ liên quan của một tài liệu đối với đối một doanh mục của thể nhằm tối ưu hóa truy xuất

 Summarization: phương pháp này đề cập đến quá trình tạo ra phiên bản ngắn gọn, chọn lọc của một tài liệu để trình bày các thông tin quan trọng nhất một cách tổng hợp

 Question answering: phương pháp này liên quan đến việc phát triển các hệ thống hoặc các thuật toán có khả năng trả lời các câu hỏi của người dùng bằng cách tìm kiếm và trích xuất thông tin từ nguồn dữ liệu lớn và không cấu trúc như tài liệu văn bản hoặc cơ sở dữ liệu

 Cross-language retrieval (CLR): phương pháp này liên quan đến việc tìm kiếm và trích xuất thông tin từ nguồn dữ liệu được viết bằng các ngôn ngữ khác nhau Vấn đề cơ bản của CLR là làm thế nào để cho phép người dùng tìm kiếm thông tin bằng một ngôn ngữ và nhận kết quả từ các nguồn dữ liệu viết bằng các ngôn ngữ khác một cách hiệu quả

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

1 Chỉ mục ngược (inverted index): Cấu trúc dữ liệu chính của hầu hết các hệ thống truy xuất thông tin (IR) thường được biểu diễn dưới dạng chỉ mục ngược Ta có thể định nghĩa một chỉ mục ngược là một cấu trúc dữ liệu liệt kê, đối với mỗi từ, tất cả các tài liệu chứa nó và tần suất xuất hiện của nó trong tài liệu Nó làm cho việc tìm kiếm các "hit" của một từ truy vấn trở nên dễ dàng

2 Loại bỏ stop word: stop word là những từ có tần suất xuất hiện cao và được xem là các từ không quan trọng để sử dụng trong tìm kiếm Tất cả các từ loại này được liệt kê trong một danh sách gọi là danh sách stop word Ví dụ, các từ "a",

"an", "the" và các giới từ như "in", "of", "for", "at", Tuy nhiên, đôi khi việc loại bỏ stop word có thể dẫn đến việc loại bỏ các từ có ý nghĩa cho tìm kiếm Ví dụ, nếu chúng ta loại bỏ chữ cái "A" từ "Vitamin A" thì nó sẽ không còn ý nghĩa

3 Stemming: hình thức đơn giản của phân tích hình thái, là quá trình khai thác hình thức cơ bản của các từ bằng cách cắt bỏ các phần cuối của từ Ví dụ, các từ laughing, laughs, laughed sẽ được cắt giảm thành từ gốc là laugh

4 Thu thập dữ liệu: quá trình thu thập thông tin từ các trang web khác nhau để lập chỉ mục chúng để hỗ trợ một công cụ tìm kiếm

5 Truy vấn: các câu lệnh tìm kiếm mô tả yêu cầu thông tin trong các công cụ tìm kiếm Một truy vấn sẽ không xác định một kết quả cụ thể, nó sẽ tìm thấy nhiều kết quả khác nhau phù hợp với truy vấn với các mức độ khác nhau.

MÔ HÌNH TRUY XUẤT

Mô hình truy xuất thông tin (information retrieval model) là một hệ thống hoặc phương pháp được sử dụng để tìm kiếm và truy xuất thông tin từ một tập hợp dữ liệu lớn các tài liệu hoặc dữ liệu dựa trên yêu cầu của người dùng Mục tiêu chính của một mô hình truy xuất thông tin là tìm ra các tài liệu có liên quan nhất đối với một truy vấn cụ thể từ người dùng Hình 6 minh họa một mô hình truy xuất thông tin thông thường

Hình 6: Mô hình truy xuất thông tin

Các khía cạnh của mô hình truy xuất thông tin: Mô hình truy xuất thông tin cần cung cấp khuôn khổ để hệ thống hoạt động và xác định nhiều khía cạnh của quy trình truy xuất của các công cụ truy xuất

 Mô hình IR phải cung cấp một hệ thống về cách chuyển đổi các tài liệu trong bộ sưu tập và các truy vấn của người dùng

 Mô hình IR cũng cần tích hợp chức năng về cách hệ thống xác định mức độ liên quan của tài liệu dựa trên truy vấn do người dùng cung cấp

 Hệ thống trong mô hình truy xuất thông tin cũng cần kết hợp logic để xếp hạng các tài liệu truy xuất dựa trên mức độ liên quan

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

Một mô hình truy xuất thông tin có thể được phân loại thành ba mô hình sau:

 Mô hình IR cổ điển (classical IR model): đây là mô hình IR đơn giản dễ thực hiện nhất dựa trên kiến thức toán học do đó dễ dàng nhận biết và hiểu được Các mô hình cổ điển như boolean, vector, probabilistic

 Mô hình IR phi cổ điển (non-classical IR model): là một thuật ngữ thường được sử dụng để thể hiện các mô hình IR không thuộc về những mô hình cổ điển Information logic model, situation theory model và interaction models là những ví dụ cho mô hình phi cổ điển

 Mô hình IR thay thế (alternative IR model): đó là sự cải tiến của mô hình IR cổ điển, sử dụng một số kỹ thuật đặc thù của một số lĩnh vực khác Mô hình cụm, mô hình mờ và mô hình lập chỉ mục ngữ nghĩa tiềm ẩn (LSI) là ví dụ về mô hình IR thay thế.

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

Mô hình boolean trong truy xuất thông tin là một loại mô hình sử dụng các phép toán logic boolean để tìm kiếm và trả về các tài liệu liên quan đối với một truy vấn từ người dùng Mô hình này dựa trên các phép toán cơ bản của đại số bool, bao gồm and, or và not, để kết hợp và loại trừ các từ hoặc điều kiện trong truy vấn

Một số khái niệm quan trọng trong mô hình boolean trong IR:

 AND: Truy vấn and được sử dụng để tìm kiếm các tài liệu chứa tất cả các từ hoặc điều kiện trong truy vấn Ví dụ, nếu bạn tìm kiếm "máy tính and phần mềm," hệ thống sẽ trả về các tài liệu chứa cả "máy tính" và "phần mềm."

 OR: Truy vấn or được sử dụng để tìm kiếm các tài liệu chứa ít nhất một trong các từ hoặc điều kiện trong truy vấn Ví dụ, nếu bạn tìm kiếm "máy tính or laptop," hệ thống sẽ trả về các tài liệu chứa "máy tính," "laptop," hoặc cả hai

 NOT: Truy vấn not được sử dụng để loại trừ các tài liệu chứa từ hoặc điều kiện cụ thể Ví dụ, nếu bạn tìm kiếm "máy tính not Mac," hệ thống sẽ loại bỏ các tài liệu chứa "Mac."

Các truy vấn được thiết kế dưới dạng các biểu thức boolean có ngữ nghĩa chính xác và chiến lược truy xuất dựa trên tiêu chí quyết định nhị phân Mô hình boolean xem xét các từ khóa chỉ mục (term index) có mặt hay không có trong tài liệu

Ví dụ ta có tập các tài liệu có nội dung như sau:

Document 3 = 'term1 term2 term3 term4 term5’

Như vậy ta có ma trận biểu diễn mô hình boolean qua Bảng 1 như sau:

Bảng 1: Ma trận biểu diễn số lần xuất hiện của từ term1 term2 term3 term4 term5

Giả sử ta có một câu truy vấn như sau:

“Tìm tài liệu bao gồm term3 và term5 mà không có term2 ” sẽ được biểu diễn dưới dạng đại số boolean là “term3 ∧ term5 ∧ ơ term2”

Như vậy với cách tính toán trên ta có thể thấy các tài liệu document 1 và document

4 có liên quan đến câu truy vấn

2.3.2 Mô hình không gian vector

Hình 7: Mô hình không gian vector

Hình 7 biểu diễn minh họa một mô hình không gian vec-tơ, một phương pháp phổ biến trong xử lý ngôn ngữ tự nhiên và thông tin truy vấn Mô hình không gian vec- tơ (vector space model) là một mô hình đại số thể hiện thông tin văn bản dưới dạng vec-tơ Mỗi phần tử trong vec-tơ biểu thị mức độ quan trọng của một từ và sự xuất hiện hoặc không xuất hiện của nó trong một tài liệu

Mô hình này biểu diễn văn bản như những điểm trong không gian euclide n- chiều, với mỗi chiều tương ứng với một từ trong tập từ vựng Giá trị của từng chiều cho biết số lần xuất hiện của từ tương ứng trong văn bản Sự tương đồng giữa hai văn bản được đo bằng khoảng cách hoặc góc giữa các vec-tơ trong không gian Độ đo tương đồng của hai vec-tơ tài liệu với vec-tơ truy vấn thường là 𝑐𝑜𝑠𝑖𝑛 của góc giữa chúng được tính như sau:

Mỗi từ trong không gian vec-tơ sẽ có một trọng số Cách xác định và tính trọng số cho vector là hết sức quan trọng, ảnh hưởng đến độ chính xác của các thuật toán xếp hạng Có nhiều kỹ thuật tính trọng số: TF, IDF, TF-IDF, , nhưng trong đó TF- IDF (term frequency–inverse document frequency) là một phương pháp phổ biến để đánh giá và xếp hạng một từ trong một tài liệu

TF-IDF là hàm xếp hạng (ranking function) hay một thuật toán giúp chuyển đổi thông tin dưới dạng văn bản thành một vector space model thông qua các trọng số Thuật toán này được sử dụng vì trong ngôn ngữ tự nhiên luôn có một tập các từ mà tần số xuất hiện, sử dụng nhiều hơn các từ khác trong bất kỳ ngôn ngữ nào Do đó ta cần một phương pháp để cân bằng mức độ quan trọng giữa các từ

2.3.3.1 Tần số xuất hiện của từ

Tần số xuất hiện của từ (term frequency – TF) đo lường tần số xuất hiện của từ trong một tài liệu cụ thể, từ nào xuất hiện nhiều trong câu thì từ đó thực sự quan trọng

Trên thực tế, sự xuất hiện của một từ nhiều lần thì tài liệu đó được coi là phù hợp hơn tài liệu mà từ đó chỉ xuất hiện ít lần Nhưng không phải là phù hợp hơn tài liệu mà từ đó xuất hiện quá nhiều lần Sự phù hợp không tỷ lệ thuận với số lần xuất hiện của từ đó trong một tài liệu do đó ta có phương pháp tính trọng số tần suất logarit (log-frequency) như sau:

𝑊 𝑡,𝑑 = 1 + log (𝑡𝑓 𝑡,𝑑 ) Nếu từ đó không xuất hiện trong một tài liệu, thì 𝑡𝑓 𝑡,𝑑 bằng 0 Và bởi vì 𝑙𝑜𝑔(0) là một số âm vô cùng, cho nên chúng ta phải cộng 1 Để dễ hình dung chúng ta có thể thông qua ví dụ ở Bảng 2 sau dây:

Bảng 2: Ví dụ về cách tính trọng số tần suất (log -frequency)

𝑊 𝑡,𝑑 0 1 1.3 2 4 Điểm cho một cặp document-query được tính bằng tổng của các trọng số của term 𝑡 trong cả document 𝑑 và query 𝑞

20 và theo công thức trên ta thấy điểm sẽ bằng 0 nếu như từ đó không xuất hiện trong document

2.3.3.2 Tần số nghịch đảo xuất hiện của từ

Tần số nghịch đảo xuất hiện của một từ (inverse document frequency - IDF) là một tham số được sử dụng trong xử lý ngôn ngữ tự nhiên và truy xuất thông tin Nó đo lường mức độ quan trọng của một từ trong một tập văn bản lớn Cụ thể, IDF đánh giá xem một từ cụ thể xuất hiện trong bao nhiêu tài liệu trong tập dữ liệu Đối với TF, thì những từ càng xuất hiện càng nhiều thì có điểm càng cao, còn những từ ít xuất hiện hay những từ hiếm thì lại có điểm xếp hạng lại thấp hơn Do đó chúng ta cần một cách đánh giá khác với các từ hiếm, vì nó sẽ mang nhiều thông tin hơn là những từ phổ biến trong văn bản Một giải pháp để giải quyết vấn đề này là giảm trọng số của từ nào có tần số xuất hiện trong các tài liệu (hay còn gọi là document frequency) cao bằng cách lấy tổng số tài liệu (𝑁) chia cho số tài liệu mà một từ đó xuất hiện

Nếu gọi 𝑑 𝑓𝑡 là số tài liệu chứa term 𝑡 thì 𝑖𝑑𝑓 là cách đánh giá ngược độ quan trọng của 𝑡 do càng xuất hiện trong nhiều tài liệu thì từ đó càng ít quan trọng Chúng ta định nghĩa trọng số 𝑖𝑑𝑓 của một từ 𝑡 bởi công thức sau:

Chúng ta sử dụng hàm log 10 𝑁

𝑑 𝑓𝑡 để giảm tác dụng ảnh hưởng của 𝑖𝑑𝑓 như đã nêu ở trên do số lần một từ xuất hiện nhiều lần thì không quan trọng về mặt ngữ nghĩa Một ví dụ về 𝑖𝑑𝑓, giả sử 𝑁 = 1000000 Mỗi một từ trong tập hợp sẽ có một giá trị 𝑖𝑑𝑓 tương ứng Còn document frequency biểu diễn số document trong collection chứa một term 𝑡 nào đó, chúng ta có thể minh họa bằng Bảng 3 như sau:

Bảng 3: Ví dụ minh họa idf

Term 𝑑 𝑓𝑡 𝑖𝑑𝑓 dog 1 6 animal 100 4 run 1000 3 run 10,000 2

TÌM HIỂU VỀ KỸ THUẬT RETRIEVAL AUGMENTED

KỸ THUẬT NHÚNG TỪ

Nhúng từ (word embedding) là một trong những kỹ thuật được sử dụng trong lĩnh vực xử lý ngôn ngữ tự nhiên và học máy (machine learning) để biểu diễn các từ và văn bản dưới dạng vec-tơ số học Mục tiêu của nhúng từ là ánh xạ từng từ trong văn bản thành một không gian vec-tơ nhiều chiều sao cho các từ có nghĩa tương tự sẽ có biểu diễn gần nhau trong không gian vector này

Một trong những phương pháp phổ biến để tạo word embedding là sử dụng mô hình học máy, như Word2Vec, GloVe, BERT, Các mô hình này đào tạo trên dữ liệu văn bản lớn để tạo ra các vector biểu diễn cho từng từ Các vec-tơ này có thể được sử dụng cho nhiều tác vụ trong NLP như phân loại văn bản, dự đoán từ điển nghĩa, hoặc tìm kiếm semantic unit (ý nghĩa) của từ

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

Có nhiều kỹ thuật khác nhau để tạo word embedding, mỗi kỹ thuật có ưu điểm và ứng dụng riêng, thông thường nó được chia làm 2 loại chính:

Embedding dựa trên tần suất (frequency-based embedding): Dựa vào thông tin thống kê về tần suất xuất hiện của từ trong văn bản lớn Một số embedding phổ biến thuộc loại này bao gồm:

Embedding dựa trên dự đoán (prediction-based embedding): Dựa vào việc dự đoán từ xung quanh một từ đích trong một ngữ cảnh Các ví dụ của loại embedding này bao gồm:

 Word2Vec: Word2Vec sử dụng mạng nơ-ron để dự đoán từ xung quanh từ đích (skip-gram) hoặc dự đoán từ đích dựa trên từ xung quanh (continuous bag of words - CBOW)

 FastText: Tương tự Word2Vec, nhưng FastText mở rộng bằng cách sử dụng subword (từ con) để biểu diễn từng từ

Cả hai loại embedding này đều có ưu điểm và ứng dụng riêng, embedding dựa trên tần suất thường tốt cho các tác vụ liên quan đến thông tin thống kê và tần suất xuất hiện của từ, trong khi embedding dựa trên dự đoán thường hiệu quả hơn cho việc hiểu ngữ cảnh và mối quan hệ giữa các từ

Word2Vec là một mô hình word embedding phổ biến được phát triển bởi Tomas Mikolov và các nhà nghiên cứu tại Google Mô hình này sử dụng mạng nơ-ron để tạo ra biểu diễn vector cho từng từ trong một không gian nhiều chiều Word2Vec có hai cấu trúc mô hình chính là: Skip-gram và Continuous Bag of Words (CBOW) Trong đó kiến trúc tổng quan của cả 2 mô hình này gồm 3 phần chính: input ,projection và output (Hình 9)

Hình 9: Kiến trúc CBOW dự đoán từ hiện tại dựa trên ngữ cảnh, và Skip-gram dự đoán các từ xung quanh dựa trên từ hiện tại

Mô hình CBOW nhận đầu vào (input) là một hoặc nhiều từ ngữ cảnh (one-word context hay multi-word context) và dự đoán xác suất cho từ đích (output) dựa trên các từ ngữ cảnh xung quanh đó

Hình 10 minh họa kiến trúc chi tiết của mô hình CBOW:

Trong đó, 𝑉 là kích thước từ vựng, 𝑁 là kích thước lớp ẩn (hidden layer) Đầu vào (input layer) là một vector mã hóa one-hot có 𝐶 từ ngữ cảnh, đối với mỗi một từ ngữ ngữ cảnh đầu vào cụ thể, chỉ cú một trong số 𝑉 phần tử, {𝑥 1 ,ã ã ã , 𝑥 𝑉 }, sẽ cú giỏ trị bằng 1, và tất cả các phần tử khác đều bằng 0

Ví dụ như ta có 1 câu đầu vào được map với vị trí của nó:

{‘Tôi’: 0, ’đang’:1, ‘đọc’:2, ‘tài’:3, ‘liệu’:4}

Vector mã hóa one-hot của từ ‘đọc’ trong câu trên là [ 0, 0, 1, 0, 0 ]

Trở lại với cấu trúc CBOW, trọng số giữa lớp đầu vào (input layer) và lớp đầu ra (output layer) có thể được biểu diễn bằng ma trận 𝑊 kích thước 𝑉 × 𝑁 Mỗi hàng của ma trận 𝑊 là một biểu diễn vector 𝑣 𝑤 có số chiều là 𝑁 tương ứng với một từ trong input

Khi tính toán đầu ra của lớp ẩn (hidden layer), mô hình CBOW lấy trung bình của các vector của các từ ngữ cảnh đầu vào và sử dụng tích của ma trận trọng số ở lớp đầu vào đến lớp ẩn và vector trung bình làm đầu ra

Trong đó, 𝑥 1 … 𝑥 𝐶 là các one-hot vector đầu vào, 𝐶 là số từ trong ngữ cảnh,

𝑤 1 𝑤 𝐶 là các từ trong ngữ cảnh và 𝑣 𝑤 là vector đầu vào của từ 𝑤

Từ lớp ẩn (hidden layer) đến lớp đầu ra output layer) sử dụng ma trận trọng số 𝑊’ có kích thước 𝑁 𝑥 𝑉 Sử dụng các trọng số này để tính điểm số (score) 𝑢 𝑗 là độ khớp (fit) giữa 𝐶 từ ngữ cảnh đầu vào và từ đầu ra thứ 𝑗

Trong đó 𝑣′ 𝑤𝑗 là cột thứ j của ma trận 𝑊’ Sau đó chúng ta sử dụng 𝑠𝑜𝑓𝑡𝑚𝑎𝑥, để tính xác suất của từ đầu ra dựa trên các từ ngữ cảnh

Với 𝑦 𝑗 là xác suất của từ đầu ra thứ j của lớp đầu ra (output layer) Tiếp theo để tối ưu hóa mô hình chúng ta sẽ cực đại (4) max 𝑃(𝑤 𝑂 |𝑤 𝐼,1 … 𝑤 𝐼,𝐶 ) = max log 𝑦 𝑗∗ (5)

Trong đó , 𝑗 ∗ là vị trí hiện tại của từ đầu ra trong lớp đầu ra (output layer), 𝐸 là hàm mất mát (loss function), tức là chúng ta cần cực tiểu 𝐸

Tiếp theo chúng ta lấy đạo hàm của 𝐸 theo 𝑢 𝑗 để tính lỗi dự đoán (prediction error)

Bây giờ chúng ta cập nhật ma trận trọng số cho lớp đầu vào (input layer) đến lớp ẩn (hidden layer):

Trong đó, 𝑣 𝑤 𝐼,𝑐 là vector đầu vào của từ thứ 𝑐, η là learning rate , 𝐸 𝐻 la kết quả của đạo hàm 𝐸 trên đầu ra của lớp ẩn là h được tính như sau:

Với, ℎ 𝑖 là đầu ra thứ 𝑖 của lớp ẩn

Ma trận trọng số từ lớp ẩn (hidden layer) đến lớp đầu ra (output layer) có dạng:

Ngược với mô hình CBOW, mục tiêu chính của mô hình skip-gram là học cách biểu diễn từ dựa trên ngữ cảnh, tức là từ xung quanh một từ cụ thể trong một văn bản Cụ thể, mô hình này cố gắng dự đoán các từ ngữ cảnh lân cận (context words) của một từ mục tiêu (target word) Kiến trúc của mô hình skip-gram có dạng như sau (Hình 11):

TỔNG QUAN VỀ RETRIEVAL AUGMENTED GENERATION

Retrieval augmented generation (RAG) là một phương pháp kết hợp giữa việc truy xuất (retrieval) và sinh (generation) để tạo ra các văn bản hay nội dung dựa trên thông tin được truy xuất từ các nguồn dữ liệu bên ngoài RAG đã nổi lên sau khi bài nghiên cứu được công bố vào năm 2020 có tựa đề “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks” do Patrick Lewis và một nhóm tại Facebook AI Research viết Khái niệm này đã thu hút sự quan tâm của cả giới học thuật và các nhà nghiên cứu trong ngành, người ta thấy đây là một phương pháp tiềm năng để cải thiện đáng kể giá trị của hệ thống Generative AI Đây là một kỹ thuật tận dụng việc truy xuất thông tin từ các nguồn bên ngoài để bổ sung khả năng tạo nội dung của các mô hình ngôn ngữ lớn (LLMs), làm cho chúng trở nên có giá trị hơn và có khả năng cung cấp câu trả lời phù hợp với ngữ cảnh dựa trên dữ liệu liên quan đến một tổ chức hoặc ngành nghề cụ thể Phương pháp này có tiềm năng cải thiện chất lượng và độ chính xác tổng thể của nội dung được tạo ra bởi hệ thống Generative AI

Xét tất cả thông tin mà một tổ chức sở hữu - các cơ sở dữ liệu có cấu trúc, các tài liệu không cấu trúc dưới dạng PDF và các loại tài liệu khác, các blog, nguồn tin tức, các bản trò chuyện từ các phiên dịch vụ khách hàng đã được lưu trữ trước đó Trong RAG, lượng dữ liệu đa dạng và phong phú này được chuyển đổi thành một định dạng chung và lưu trữ trong một thư viện kiến thức mà hệ thống trí tuệ nhân tạo có thể truy cập

Dữ liệu trong thư viện kiến thức đó sau đó được xử lý thành các vec-tơ số học bằng cách sử dụng một loại kỹ thuật đặc biệt được gọi là nhúng từ, có thể được tìm kiếm và sử dụng nhanh chóng để truy xuất thông tin ngữ cảnh chính xác

Hình 12 mô tả tổng quan kiến trúc cách hoạt động của RAG:

Hình 12: Tổng quan cách hoạt động của RAG

Có thể giải thích tóm gọn kiến trúc trên như sau:

1 Hệ thống nhận truy vấn và sử dụng hệ thống để tìm kiếm các tài liệu liên quan từ cơ sở dữ liệu

2 Các tài liệu này sau đó được kết hợp với truy vấn để tạo ra một prompt (gợi ý)

3 Mô hình ngôn ngữ lớn (LLM) sử dụng gợi ý này để tạo ra câu trả lời

4 Câu trả lời được trả lại cho người dùng, giúp cung cấp thông tin chính xác và ngữ cảnh hơn nhờ vào sự kết hợp của truy xuất thông tin và khả năng sinh ngôn ngữ tự nhiên

Có thể coi RAG như một công cụ tìm kiếm cực kỳ hiệu quả với một bộ tạo nội dung tích hợp sẵn

Retriever trong RAG tương tự như một chỉ mục cơ sở dữ liệu (database index) Khi nhận một truy vấn, nó không quét toàn bộ cơ sở dữ liệu mà thay vào đó, nó sử dụng các kỹ thuật truy xuất để nhanh chóng xác định các tài liệu quan trọng nhất Điều này giống như cách chỉ mục trong cơ sở dữ liệu cho phép truy xuất hiệu quả các bản ghi mà không cần quét toàn bộ cơ sở dữ liệu

Khi retriever đã tìm thấy các tài liệu có liên quan, tuy nhiên các tài liệu này có thể không đầy đủ các nội dung cần tìm hoặc không hữu ích, hay còn gọi là dữ liệu nguyên thủy Đây cũng là lúc generator hoạt động Nó giống như một tầng ứng dụng tích hợp sẵn, chuyển đổi dữ liệu nguyên thủy thành định dạng thân thiện với

33 người dùng Trong trường hợp này, nó tạo ra một câu trả lời hợp lý và có ngữ cảnh đối với truy vấn

3.2.3 Lợi ích và hạn chế

RAG cung cấp sự kết hợp giữa tìm kiếm thông tin hiệu quả và tạo nội dung thông minh, giúp cải thiện trải nghiệm người dùng và hiệu suất trong nhiều ứng dụng AI và xử lý ngôn ngữ tự nhiên, có thể liệt kê 1 số lợi ích và mặt hạn chế của RAG như sau:

1 Truy cập thông tin cập nhật: RAG có khả năng truy cập thông tin có thể mới hơn so với dữ liệu được sử dụng để đào tạo các mô hình ngôn ngữ lớn (LLMs) Điều này giúp RAG cung cấp câu trả lời dựa trên dữ liệu cập nhật hơn cho các câu hỏi và yêu cầu từ người dùng

2 Cập nhật dữ liệu liên tục: Dữ liệu trong thư viện kiến thức của RAG có thể được cập nhật liên tục mà không phải mất chi phí đáng kể Điều này giúp đảm bảo rằng hệ thống trí tuệ nhân tạo có thể luôn cung cấp thông tin mới nhất cho người dùng

3 Dữ liệu phù hợp hơn với ngữ cảnh: Thư viện kiến thức của RAG có thể chứa dữ liệu phù hợp hơn với ngữ cảnh so với dữ liệu trong một LLM tổng quát Điều này giúp RAG tạo ra câu trả lời đúng ngữ cảnh và phù hợp hơn cho các câu hỏi cụ thể

4 Xác định nguồn thông tin: RAG cho phép xác định nguồn thông tin trong cơ sở dữ liệu vector Và do nguồn dữ liệu được biết đến, thông tin sai lệch trong RAG có thể được sửa chữa hoặc xóa Điều này đảm bảo tính chính xác và tin cậy của thông tin được cung cấp bởi hệ thống trí tuệ nhân tạo

1 Hiểu biết và triển khai RAG: Vì RAG là một công nghệ tương đối mới, được đề xuất lần đầu vào năm 2020, các nhà phát triển trí tuệ nhân tạo vẫn đang tìm hiểu cách triển khai cơ chế truy xuất thông tin một cách tốt nhất trong trí tuệ nhân tạo tạo Điều này đòi hỏi một sự hiểu biết sâu hơn về RAG và cách nó hoạt động

2 Chi phí cao: Mặc dù trí tuệ nhân tạo tạo sử dụng RAG sẽ tăng chi phí so với việc triển khai một LLM độc lập, nhưng con đường này sẽ ít tốn kém hơn so với việc

34 đào tạo lại thường xuyên mô hình LLM Do đó, việc tăng chi phí vẫn là một thách thức, và các tổ chức cần đảm bảo rằng sự đầu tư này đáng giá

3 Mô hình dữ liệu có cấu trúc và không có cấu trúc: Cách tốt nhất để mô hình dữ liệu trong thư viện kiến thức và cơ sở dữ liệu vector vẫn đang được nghiên cứu và phát triển Xử lý dữ liệu có cấu trúc và không có cấu trúc một cách hiệu quả là một thách thức đáng kể

Ứ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

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

Toàn bộ mã được thực hiện trên Google Colaboratory (hay còn gọi là Google Colab) đây là một sản phẩm đến từ Google Research, nó cho phép người dùng thực thi ngôn ngữ Python trên nền tảng đám mây một cách đơn giản thông qua trình duyệt (Chrome, Microsoft Edge,…) Google Colab là một sự lựa chọn thích hợp với data analysis, machine learning và giáo dục Khi sử dụng Google Colab ta không cần phải cài đặt hay cấu hình thêm thứ gì trên máy tính, mọi thứ có thể chạy thông qua trình duyệt và có thể sử dụng tài nguyên được cung cấp sẳn như CPU tốc độ cao, GPUs và cả TPUs

Hình 13: Thông tin phần cứng Colab cung cấp

Trong hình 13 là thông tin phần cứng được colab cung cấp cho người dùng sử dụng Colab cung cấp nhiều loại GPU, thường là Nvidia K80s, T4s, P4s và P100s, tuy nhiên người dùng không thể tự do lựa chọn sẽ sử dụng GPU nào trong Colab Vì là dịch vụ miễn phí nên Colab sẽ có giới hạn trong việc sử dụng tài nguyên của hệ thống và cũng giới hạn thời gian sử dụng, thời gian sử dụng tối đa lên đến 12 giờ Chúng tôi sử dụng Colab để thực hiện ứng dụng vì nó cung cấp tài nguyên hiệu quả (GPU) nhằm nâng cao hiệu suất thực hiện mô hình

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

Transformer cung cấp các API và công cụ để dễ dàng tải xuống và huấn luyện các mô hình được đào tạo trước, tinh chỉnh chúng dựa trên bộ dữ liệu riêng của bạn Transformer cung cấp hàng nghìn mô hình được đào tạo trước để thực hiện các tác vụ trên các phương thức khác nhau như văn bản, hình ảnh và âm thanh Việc sử

36 dụng các mô hình được đào tạo trước có thể giúp giảm chi phí tính toán, tiết kiệm thời gian và chi phí để đào tạo mô hình từ đầu

Transformer được hỗ trợ bởi ba thư viện deep learning phổ biến nhất là Jax, Pytorch và TensorFlow với sự tích hợp liền mạch giữa chúng giúp cho việc huấn luyện, tinh chỉnh các mô hình của bạn đơn giản hơn

Về cốt lõi, LangChain là một framework được xây dựng dựa trên mô hình ngôn ngữ lớn (LLM) Chúng ta có thể sử dụng nó cho các bài toán về chatbot, Generative Question-Answering (GQA), summarization, Ý tưởng cốt lõi của thư viện là có thể xâu chuỗi (chain) các thành phần khác nhau để tạo ra trường hợp sử dụng nâng cao hơn quanh mô hình ngôn ngữ lớn (LLM) Chuỗi có thể bao gồm nhiều thành phần từ một số mô đun như:

 Prompt templates: Mẫu lời nhắc là các mẫu dành cho các loại lời nhắc khác nhau như “Chatbot” style templates, ELI5 question-answering,…

 LLMs: Mô hình ngôn ngữ lớn như GPT-3, BLOOM,…

 Agent: Tác tử (Agent) sử dụng LLM để quyết định những hành động nào sẽ được thực hiện Có thể sử dụng các công cụ như tìm kiếm trên web hoặc máy tính và tất cả đều được gói gọn trong một vòng lặp hoạt động logic

 Memory: Là bộ nhớ ngắn hạn hoặc dài hạn

Chroma là một hệ thống cơ sở dữ liệu tận dụng sức mạnh của nhúng vector để lưu trữ và truy xuất dữ liệu văn bản Nó được xây dựng dựa trên các công nghệ nguồn mở phổ biến như Apache Lucene và Apache Arrow, giúp nó có khả năng mở rộng và linh hoạt cao Chroma hỗ trợ việc lưu trữ, tìm kiếm, và truy vấn các vector một cách hiệu quả, giúp tối ưu hóa hiệu suất của các ứng dụng xử lý dữ liệu lớn

Hình 14: Luồng làm việc với Chroma

Hình 14 mô tả Chroma hoạt động bằng cách nhận các truy vấn văn bản từ ứng dụng và chuyển đổi chúng thành nhúng vector thông qua một mô hình tạo nhúng Những vector này đại diện cho truy vấn dưới dạng số, giúp hệ thống có thể xử lý và so khớp một cách hiệu quả Sau đó, Chroma so khớp các vector truy vấn này với các nhúng vector của tài liệu đã được lưu trữ trong cơ sở dữ liệu Khi tìm thấy các tài liệu có vector gần giống nhất, hệ thống sẽ truy xuất chúng và đưa vào mô hình ngôn ngữ lớn (LLM) Mô hình này sử dụng ngữ cảnh từ các tài liệu liên quan để tạo ra câu trả lời chính xác và phù hợp cho truy vấn ban đầu, sau đó trả lời lại ứng dụng Quá trình này giúp tối ưu hóa việc lưu trữ và truy xuất dữ liệu văn bản, đồng thời tận dụng sức mạnh của nhúng vector và mô hình ngôn ngữ lớn để cung cấp thông tin chính xác hơn

Streamlit là một framework mã nguồn mở dành cho Python, được thiết kế để giúp các nhà khoa học dữ liệu và kỹ sư phần mềm tạo ra các ứng dụng web một cách nhanh chóng và dễ dàng chỉ với vài dòng mã Streamlit ra mắt vào năm 2019, và đã nhanh chóng trở thành công cụ phổ biến cho việc xây dựng giao diện người dùng (UI) cho các ứng dụng học máy và dữ liệu Điểm mạnh của Streamlit là tính dễ sử dụng và khả năng tích hợp mạnh mẽ với các thư viện Python phổ biến như Pandas, NumPy, Matplotlib, và Plotly

Streamlit cho phép quản lý trạng thái của ứng dụng thông qua st.session_state Điều này giúp lưu trữ thông tin giữa các lần tương tác của người dùng Streamlit có thể được triển khai trên nhiều nền tảng khác nhau như Heroku, AWS, Google Cloud, hoặc sử dụng Streamlit Sharing - một dịch vụ miễn phí của Streamlit để triển khai nhanh chóng

FastAPI là một framework web siêu nhanh cho Python được thiết kế để xây dựng các ứng dụng API RESTful Nó kết hợp sức mạnh của Python với tính năng tự động hóa của kiểu dữ liệu và tài liệu dựa trên chuẩn OpenAPI (trước đây là

Swagger) FastAPI cho phép xây dựng các ứng dụng web chất lượng cao một cách nhanh chóng và dễ dàng, với hiệu suất tốt và mã nguồn dễ đọc Đặc biệt, nó rất phổ biến trong cộng đồng Python với sự hỗ trợ của nhiều tính năng như tự động tạo tài liệu API và kiểm tra dữ liệu

Một số tính năng tiêu biểu của FastAPI như:

 Nhanh: Với hiệu suất tương đương với NodeJS và Go, FastAPI đảm bảo ứng dụng của bạn có thể xử lý một lượng lớn yêu cầu mỗi giây mà không làm giảm hiệu suất

 Lập trình nhanh chóng: FastAPI giúp tăng tốc độ lập trình lên đến 200-300%, giúp bạn xây dựng các tính năng nhanh chóng và hiệu quả

 Ít lỗi hơn: Với cấu trúc đơn giản và sự trợ giúp từ FastAPI, số lượng lỗi của các nhà phát triển có thể giảm đi đến 40%

 Dễ hiểu và tự nhiên: FastAPI cung cấp các công cụ hỗ trợ tự động gợi ý và giúp giảm thời gian gỡ lỗi, giúp việc lập trình trở nên dễ dàng và thú vị hơn

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

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

BGE-base-en-v1.5 là một mô hình nhúng văn bản được phát triển bởi Beijing Academy of Artificial Intelligence (BAAI) Mô hình này được thiết kế để chuyển đổi văn bản thành các vectơ số (embeddings), thể hiện ý nghĩa ngữ nghĩa của văn bản đó Các vectơ này sau đó có thể được sử dụng trong nhiều ứng dụng xử lý ngôn ngữ tự nhiên (NLP), chẳng hạn như:

 Tìm kiếm thông tin: Tìm các đoạn văn bản có liên quan đến một truy vấn nhất định

 Phân cụm văn bản: Nhóm các đoạn văn bản tương tự nhau về mặt ngữ nghĩa

 Phân loại văn bản: Gán nhãn cho các đoạn văn bản dựa trên nội dung của chúng

 Dịch máy: Dịch văn bản từ ngôn ngữ này sang ngôn ngữ khác

 Trả lời câu hỏi: Trả lời các câu hỏi dựa trên một đoạn văn bản nhất định BGE-base-en-v1.5 được đào tạo trên một lượng lớn dữ liệu văn bản tiếng Anh và có khả năng tạo ra các vectơ nhúng chất lượng cao Mô hình này cũng tương đối nhỏ và hiệu quả, khiến nó trở thành một lựa chọn tốt cho các ứng dụng cần thời gian xử lý nhanh

BGE-base-en-v1.5 có các thông số sau:

 Kích thước nhúng (Embedding dimensions): 768

 Số lượng token tối đa (Max tokens): 512

 Model ID: BAAI/bge-base-en-v1.5

Các thông số này có ý nghĩa như sau:

 Kích thước nhúng: Mỗi đoạn văn bản được biểu diễn bằng một vectơ có 768 chiều Kích thước nhúng lớn hơn thường dẫn đến khả năng biểu diễn ngữ nghĩa tốt hơn, nhưng cũng yêu cầu nhiều tài nguyên tính toán hơn

 Số lượng token tối đa: Mô hình chỉ có thể xử lý các đoạn văn bản có tối đa

512 token Token có thể là từ, cụm từ hoặc ký tự, tùy thuộc vào phương pháp mã hóa được sử dụng Nếu văn bản đầu vào vượt quá giới hạn này, bạn cần chia nhỏ nó thành các đoạn nhỏ hơn trước khi đưa vào mô hình

 Model ID: Đây là định danh duy nhất của mô hình trên Hugging Face, cho phép bạn dễ dàng tải và sử dụng mô hình này trong các ứng dụng của mình

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

Meta-Llama-3-8B-Instruct là một mô hình ngôn ngữ lớn (LLM) được phát triển bởi Meta Nó có 8 tỉ tham số, nhỏ hơn so với các phiên bản khác trong dòng Llama

3, nhưng vẫn rất mạnh mẽ và hiệu quả Các mô hình điều chỉnh hướng dẫn của

Llama 3 được tối ưu hóa cho các trường hợp sử dụng đối thoại và hoạt động tốt hơn nhiều mô hình trò chuyện nguồn mở có sẵn trên các tiêu chuẩn chung của ngành

Hơn nữa, khi phát triển những mô hình này, chúng tôi đã hết sức chú trọng tối ưu hóa tính hữu ích và an toàn

Hình 18: Thông số của các dòng mô hình Llama 3

Hình 18 thể hiện các thông số của từng mô hình Llama 3 được đào tạo với các tham số khác nhau Số lượng mã thông báo chỉ đề cập đến dữ liệu huấn luyện trước Cả hai phiên bản 8 và 70B đều sử dụng Chú ý truy vấn theo nhóm (GQA) để cải thiện khả năng mở rộng suy luận

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

Sau khi tìm hiểu toàn bộ lý thuyết liên quan đến RAG chúng tôi tiến hành áp dụng cho bài toán trả lời câu hỏi là xây dựng nên ứng dụng “Chat with your document” Nội dung chính là người dùng có thể tải lên file tài liệu của hộ dưới dạng pdf, docx, txt Từ đó có thể hỏi những thông tin cần biết trong tài liệu và ứng dụng sẽ đưa ra câu trả lời dựa vào thông tin của tài liệu

Toàn bộ pipeline của ứng dụng RAG được mô tả trong hình 19

1 Từ nội dung bài báo khoa học, tài liệu dưới dạng pdf, docx, txt ta tách thành các văn bản nhỏ Từ đó, xây dựng một hệ cơ sở dữ liệu vector với một embedding model

2 Bên cạnh câu hỏi đầu vào (question), ta truy vấn các mẫu văn bản có liên quan đến đến câu hỏi, dùng làm ngữ cảnh (context) trong câu prompt Đây là nguồn thông tin mà LLMs có thể dựa vào để trả lời câu hỏi

3 Đưa câu prompt vào mô hình (question và context) để nhận câu trả lời từ mô hình

Tài liệu được tải lên sẽ được các thư viện đặc thù để trích xuất text sau đó sẽ được đưa vào lớp RecursiveCharacterTextSplitter của Langchain để chia thành những đoạn văn bản nhỏ hơn

Tách hoặc phân đoạn văn bản thường là thao tác đầu tiên trong quy trình làm việc RAG (Thế hệ tăng cường truy xuất) Nó đơn giản có nghĩa là chuyển đổi các tài liệu văn bản dài thành các đoạn nhỏ hơn được nhúng, lập chỉ mục, lưu trữ và sau đó được sử dụng để truy xuất thông tin

Ensemble retrieval là kỹ thuật kết hợp nhiều mô hình truy xuất thông tin để tối ưu hóa kết quả tìm kiếm Thay vì dựa vào một mô hình duy nhất, hệ thống sẽ sử dụng một tập hợp các mô hình và kết hợp kết quả từ chúng để tạo ra một kết quả chung tối ưu Kỹ thuật này giúp giảm thiểu những hạn chế của từng mô hình đơn lẻ và tận dụng được điểm mạnh của nhiều mô hình khác nhau

Hệ thống truy xuất được sử dụng là sự kết hợp giữa 2 mô hình: mô hình tìm kiếm theo từ khóa là BM25 và mô hình tìm kiếm theo ngữ nghĩa là chức năng tìm kiếm tương tự của cơ sở dữ liệu vectơ Chroma, vì điểm mạnh của chúng là bổ sung cho nhau Nó còn được gọi là “tìm kiếm lai”

Hình 20: Sơ đồ tích hợp dữ liệu vào cơ sở dữ liệu vectơ

Hình 20 mô tả quá trình tích hợp dữ liệu vào trong cơ sở dữ liệu vectơ

Do mô hình nhúng được sử dụng cho Chroma là Bge-base-en-v1.5, mô hình nhúng được văn bản có độ dài 512 ký tự nên đầu ta phải thực hiện chia dữ liệu thành những đoạn nhỏ có độ dài là 512 ký tự Sau đó được biến đổi thành vectơ 768 chiều thông qua mô hình nhúng và được lưu vào cơ sở dữ liệu vectơ

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

Khi được tích hợp với RAG, việc sắp xếp lại các tài liệu được truy xuất đóng vai trò là một bước quan trọng để tối ưu hóa quá trình truy xuất Bằng cách đánh giá lại và sắp xếp lại nội dung được truy xuất dựa trên mức độ liên quan và mạch lạc Cohere cung cấp API để sắp xếp lại tài liệu một cách miễn phí ở mức dụng free trial API Coherence Rerank là một công cụ mạnh mẽ cho phép cải thiện hiệu suất

44 tìm kiếm bằng cách sử dụng mô hình ngôn ngữ lớn (LLM) để xếp hạng lại kết quả tìm kiếm

Tài liệu được truy xuất sẽ được gửi cho Coherence Rerank để xếp hạng lại tài liệu và sẽ được trả lại cùng với điểm xếp hạng (relevance_score) Ví dụ minh họa được trình bày bên dưới

Ta có tập document như sau:

[Document(page_content="LangChain là một thư viện mã nguồn mở giúp dễ dàng xây dựng các ứng dụng AI sử dụng các mô hình ngôn ngữ lớn (LLMs) và các nguồn thông tin khác nhau.", metadata={"source": "Document 1"}),

Document(page_content="Cohere là một công ty cung cấp dịch vụ AI với các mô hình ngôn ngữ mạnh mẽ, giúp tăng cường khả năng xử lý ngôn ngữ tự nhiên (NLP) cho các ứng dụng.", metadata={"source": "Document 2"}),

Document(page_content="Các ứng dụng AI ngày càng trở nên phổ biến trong nhiều lĩnh vực, từ y tế, tài chính đến giáo dục và thương mại điện tử.", metadata={"source": "Document 3"}),

Document(page_content="Việc sử dụng các mô hình ngôn ngữ lớn như GPT-3 đã cách mạng hóa cách chúng ta xử lý và hiểu văn bản, cung cấp các giải pháp thông minh và hiệu quả hơn.", metadata={"source": "Document 4"}),

Document(page_content="Học máy và AI đang tạo ra những thay đổi đáng kể trong nhiều ngành công nghiệp, giúp tự động hóa các quy trình và cải thiện hiệu suất làm việc.", metadata={"source": "Document 5"})]

Khi ta truy xuất với câu truy vấn là 'Cohere cung cấp dịch vụ gì?'

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

4 Đề nghị cho bảo vệ hay không ?

Tp Hồ Chí Minh, ngày tháng năm 2024

(Ký & ghi rõ họ tên) ĐH SƯ PHẠM KỸ THUẬT

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc Độc lập – Tự do – Hạnh Phúc

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

Họ và tên Sinh viên 1: Trần Văn Thắng MSSV 1: 20133121

Họ và tên Sinh viên 2: Trần Minh Đức MSSV 2: 20133037

Ngành: Kỹ Thuật Dữ Liệu

Tên đề tài: TÌM HIỂU RETRIEVAL AUGMENTED GENERATION (RAG) VÀ ỨNG DỤNG CHO BÀI TOÁN TRẢ LỜI CÁC CÂU HỎI

Họ và tên Giáo viên phản biện: Trần Trọng Bình

1 Về nội dung đề tài & khối lượng thực hiện:

4 Đề nghị cho bảo vệ hay không ?

Tp Hồ Chí Minh, ngày tháng năm 2024

(Ký & ghi rõ họ tên)

Luận văn này là công trình nghiên cứu của chúng tôi, được thực hiện dưới sự hướng dẫn khoa học của thầy Quách Đình Hoàng Các số liệu, những kết luận nghiên cứu và sản phẩm được tạo ra bởi chúng tôi được trình bày trong luận văn này là trung thực

Chúng tôi xin hoàn toàn chịu trách nhiệm về lời cam đoan này

(Ký và ghi rõ họ tên)

Sinh viên thực hiện (Ký và ghi rõ họ tên)

Trần Minh Đức Trần Văn Thắng

Lời nói đầu tiên chúng tôi xin được gửi lời cảm ơn chân thành nhất đến Thầy Quách Đình Hoàng trong khoảng thời gian qua đã hướng dẫn và đánh giá cho bài luận văn tốt nghiệp mà chúng tôi đã thực hiện dưới sự sáng tạo và hỗ trợ của Thầy Thầy đã đóng góp rất nhiều vào quá trình nghiên cứu của chúng tôi bằng cách chia sẻ kiến thức sâu sắc, kinh nghiệm phong phú và góp ý xâu chuỗi Qua đó, đã giúp chúng tôi hiểu rõ hơn về chủ đề và nắm bắt được những điểm cần thiết để phát triển đề tài của mình

Chúng tôi cũng xin gửi lời tri ân sâu sắc nhất đến Thầy Cô Khoa Công nghệ Thông tin - Đại học Sư phạm Kỹ thuật TP.HCM, những người đã đồng hành và hỗ trợ chúng tôi trong suốt quá trình học tập cũng như thực hiện luận văn Thầy Cô không chỉ là những người giảng dạy mà còn là những người hướng dẫn tận tâm, luôn tạo điều kiện thuận lợi và tạo động lực để chúng tôi có thể phát triển và hoàn thiện bản thân Trong quá trình thực hiện luận văn, sự hỗ trợ và góp ý chi tiết từ Thầy Cô đã giúp chúng tôi vượt qua những khó khăn, hoàn thiện những ý tưởng và đảm bảo rằng luận văn của chúng tôi đạt được chất lượng tốt nhất Những đóng góp của Thầy Cô đã tạo nên một hành trình học tập đáng nhớ và ý nghĩa với chúng tôi Cuối cùng, chúng tôi xin gửi lời tri ân đặc biệt tới tác giả của những bài báo khoa học mà chúng tôi đã tham khảo trong quá trình nghiên cứu và thực hiện luận văn Những nghiên cứu của quý vị đã là nguồn cảm hứng quan trọng, giúp chúng tôi mở rộng kiến thức, hiểu sâu hơn về chủ đề và xây dựng nền tảng cho đề tài Một lần nữa, chúng tôi xin chân thành cảm ơn các tác giả và hy vọng rằng những nghiên cứu của quý vị sẽ tiếp tục đóng góp vào sự phát triển và tiến bộ của cộng đồng khoa học hơn nữa

Chúng tôi xin chân thành cảm ơn!

Trường ĐH Sư Phạm Kỹ Thuật

Khoa : Công nghệ Thông tin ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP

Họ và Tên SV thực hiện 1: Trần Văn Thắng Mã Số SV: 20133121

Họ và Tên SV thực hiện 2: Trần Minh Đức Mã Số SV: 20133037

Thời gian làm luận văn: Từ: 02/2024 Đến: 07/2024

Chuyên ngành: Kỹ Thuật Dữ Liệu

Tên luận văn: Tìm hiểu Retrieval Augmented Generation và ứng dụng cho bài toán trả lời câu hỏi

GV hướng dẫn: ThS Quách Đình Hoàng

Nhiệm Vụ Của Luận Văn:

Nhiệm vụ của luận văn là tìm hiểu các lý thuyết nền tảng và áp dụng kỹ thuật

Retrieval Augmented Generation bài toán trả lời câu hỏi thông qua việc xây dựng một chatbot có khả năng trả lời các câu hỏi dựa trên tài liệu được cung cấp Luận văn tập trung vào việc xây dựng và đánh giá hệ thống chatbot sử dụng kỹ thuật

Retrieval Augmented Generation và sau đó xây dựng giao diện ứng dụng chat cho người dùng Để đạt được điều đó chúng tôi tập trung tìm hiểu những vấn đề sau:

1 Tìm hiểu về mô hình ngôn ngữ lớn (Large Language Model)

2 Tìm hiểu về truy xuất thông tin (Information Retrieval)

3 Tìm hiểu về các kỹ thuật nhúng từ (Word Embedding)

4 Tìm hiểu về nguyên tắc hoạt động của retrieval augmented generation (RAG)

5 Tìm hiểu về các công cụ và thư viện như Langchain, Chroma, Transformer,

Streamlit, FastAPI, Ragas để có thể được tích hợp vào quá trình xây dựng ứng dụng và đánh giá hệ thống

STT Thời gian Công việc dự kiến

1 19/2 – 3/3 Tìm hiểu lý thuyết liên quan đến mô hình ngôn ngữ lớn

2 4/3 – 10/3 Tìm hiểu lý thuyết liên quan đến bài toán tìm kiếm thông tin

3 11/3 – 17/3 Tìm hiểu lý thuyết về kỹ thuật nhúng từ

4 18/3 – 24/3 Tìm hiểu lý thuyết về kỹ thuật Retrieval Augmented Generation

5 25/3 – 7/4 Tìm hiểu và cài đặt mô hình ngôn ngữ lớn Llama3 và Bge

6 8/4 – 14/4 Tìm hiểu và cài đặt cơ sở dữ liệu vector Chroma

Tìm hiểu thuật toán tìm kiếm theo từ khóa BM25

Tìm hiểu cách thức xử lí tài liệu Xây dựng và tối ưu hệ thống truy xuất

8 29/4 – 5/5 Tìm hiểu về thư viện Langchain

Tiến hành xây dựng hệ thống RAG

9 6/5 – 19/5 Tìm hiểu thư viện Ragas

Tiến hành đánh giá hệ thống

10 20/5 – 2/6 Tìm hiểu thư viện Streamlit và FastAPI

Tiến hành xây dựng giao diện và API cho ứng dụng

Viết báo cáo Kiểm thử hệ thống

Soạn Slide bài báo cáo

14 1/7 – 5/7 Hoàn thiện báo cáo Ý kiến của giáo viên hướng dẫn

(ký và ghi rõ họ tên)

TP Thủ Đức, Ngày … Tháng … Năm 2024

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

4 Kết quả dự kiến đạt được 2

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

1.1 MÔ HÌNH NGÔN NGỮ LỚN 3

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

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

1.2 TỔNG QUAN KIẾN TRÚC TRANSFORMER 5

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

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

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

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

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

2.3.3.1 Tần số xuất hiện của từ 19

2.3.3.2 Tần số nghịch đảo xuất hiện của từ 20

2.3.3.3 Cách tính trọng số tf-idf 21

2.3.4.2 Phương pháp xếp hạng (Ranking function) 21

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

3.1.2 Các kỹ thuật nhúng từ 24

3.1.3.3 Đánh giá mô hình CBOW và Skip-gram 30

3.2 TỔNG QUAN VỀ RETRIEVAL AUGMENTED GENERATION 31

3.2.3 Lợi ích và hạn chế 33

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 35

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

4.1.2 Một số thư viện quan trọng 35

4.2 CÁC MÔ HÌNH ĐƯỢC SỬ DỤNG 40

4.2.1 Mô hình nhúng Bge-base-en-v1.5 40

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

4.3 XÂY DỰNG ỨNG DỤNG RAG 42

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

4.3.2.1 Thiết lập thông số cho mô hình Llama3 45

4.3.2.2 Kỹ thuật nhắc nhở (Prompt Engineering) 45

4.3.3 Thiết lập hệ thống RAG 47

4.3.4 Đánh giá hệ thống RAG 47

4.3.4.2 Đánh giá và so sánh 52

4.3.6 Triển khai API và ứng dụng chat 54

2 ƯU ĐIỂM VÀ NHƯỢC ĐIỂM 56

Hình 1: Kiến trúc mô hình Transformer 6

Hình 2: Scaled Dot-Product Attention và Multi-Head Attention 8

Hình 4: Chuẩn hóa lớp trong encoder 11

Hình 5: Sơ đồ hệ thống truy xuất thông tin 12

Hình 6: Mô hình truy xuất thông tin 15

Hình 7: Mô hình không gian vector 18

Hình 8: Đồ thị TF score theo các độ dài của tài liệu 22

Hình 9: Kiến trúc CBOW dự đoán từ hiện tại dựa trên ngữ cảnh, và Skip-gram dự đoán các từ xung quanh dựa trên từ hiện tại 25

Hình 11: Mô hình skip-gram 29

Hình 12: Tổng quan cách hoạt động của RAG 32

Hình 13: Thông tin phần cứng Colab cung cấp 35

Hình 14: Luồng làm việc với Chroma 37

Hình 18: Thông số của các dòng mô hình Llama 3 41

Hình 20: Sơ đồ tích hợp dữ liệu vào cơ sở dữ liệu vectơ 43

Hình 21: Sơ đồ hoạt động của lớp RetrivalQA 47

Hình 22: Hình ảnh minh họa cho tập dữ liệu 51

Hình 23: Gọi API insert into database 53

Hình 24: Phản hồi từ API insert into database 53

Hình 25: Gọi API return answer 54

Hình 26: Phản hồi từ API return answer 54

Hình 27: Giao diện chính của ứng dụng 54

Hình 28: Đưa file vào ứng dụng 55

Hình 29: Chat cùng ứng dụng 55

Bảng 1: Ma trận biểu diễn số lần xuất hiện của từ 17

Bảng 2: Ví dụ về cách tính trọng số tần suất (log -frequency) 19

Bảng 3: Ví dụ minh họa idf 20

Bảng 4: Kết quả đánh giá của Ragas 52

Bảng 5: Mô tả API Insert into database 53

Bảng 6: Mô tả API Return answer 53

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

Hiện nay, sự tiến bộ vượt bậc của trí tuệ nhân tạo đã mở ra nhiều cánh cửa mới trong lĩnh vực xử lý ngôn ngữ tự nhiên, đặc biệt là trong thời gian gần đây, với sự ra mắt của ChatGPT (1 chatbot do OpenAI phát triển) đã được lan truyền rộng rãi và nhận về nhiều đánh giá tích cực của người dùng Trong bối cảnh này, một trong những phương pháp đang thu hút sự quan tâm đặc biệt là retrieval augmented generation (RAG), một chiến lược độc đáo kết hợp sự mạnh mẽ của việc trích xuất thông tin và khả năng sinh văn bản của mô hình ngôn ngữ lớn RAG không chỉ là một xu hướng mới mẻ trong nghiên cứu, mà còn đại diện cho sự tiến bộ đáng kể trong việc giải quyết những thách thức phức tạp trong việc trả lời câu hỏi và tạo ra văn bản có tính ngữ cảnh Bài toán trả lời câu hỏi là một trong những ứng dụng chính của mô hình ngôn ngữ, và việc kết hợp retrieval và generation hứa hẹn mang lại sự hiệu quả và độ chính xác cao hơn

Quá trình này bắt đầu bằng việc trích xuất thông tin từ nguồn dữ liệu đa dạng, có thể là văn bản, câu chuyện, hay thông tin liên quan Thông qua quá trình này, hệ thống có khả năng chọn lọc những thông tin quan trọng và liên quan đến câu hỏi cụ thể Một khi thông tin này đã được chọn lọc, mô hình ngôn ngữ lớn, thường là những mô hình như GPT, BERT, Llama, sẽ đảm nhận vai trò sinh văn bản Tích hợp giữa hai khả năng này mang lại những lợi ích đáng kể Ứng dụng của RAG cho bài toán trả lời câu hỏi không chỉ giúp cải thiện độ chính xác mà còn mở ra những khả năng mới trong việc đối mặt với những câu hỏi phức tạp và đa chiều Khả năng đồng thời tận dụng cả thông tin trích xuất và khả năng sáng tạo của mô hình ngôn ngữ lớn giúp xử lý hiệu quả những bài toán yêu cầu sự hiểu biết sâu sắc và ngữ cảnh phong phú

Nhằm tìm hiểu sâu rộng về ứng dụng tiềm năng của RAG trong bài toán trả lời câu hỏi, chúng tôi quyết định đề xuất đề tài "Tìm hiểu retrieval augmented generation (RAG) và ứng dụng cho bài toán trả lời câu hỏi" làm đề tài luận văn chuyên ngành của mình Qua đó, chúng tôi hy vọng có cơ hội khám phá và đóng góp vào sự phát triển của lĩnh vực này, đồng thời hiểu rõ hơn về cách mà sự kết hợp giữa trích xuất và sinh văn bản có thể nâng cao khả năng xử lý ngôn ngữ tự nhiên của máy tính

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

Mục tiêu là xây dựng và phát triển một hệ thống có khả năng trả lời câu hỏi với độ chính xác và tính ngữ cảnh cao, nhờ vào sự kết hợp linh hoạt giữa thông tin trích xuất và khả năng sáng tạo của mô hình ngôn ngữ lớn

Nhiệm vụ chi tiết để đạt được mục tiêu này có thể được liệt kê như sau:

 Tìm hiểu về mô hình ngôn ngữ lớn (Large Language Model)

 Tìm hiểu về truy xuất thông tin (Information Retrieval)

 Tìm hiểu về các kỹ thuật nhúng từ (Word Embedding)

 Tìm hiểu về nguyên tắc hoạt động của retrieval augmented generation (RAG)

 Tìm hiểu về các công cụ và thư viện như Langchain, Chroma, Transformer, Streamlit, FastAPI, Ragas để có thể được tích hợp vào quá trình xây dựng ứng dụng và đánh giá hệ thống

 Xác định và lựa chọn nguồn dữ liệu phù hợp cho bài toán trả lời câu hỏi, bao gồm cả văn bản, tài liệu và thông tin liên quan…

 Phát triển một hệ thống hoặc sử dụng công cụ có sẵn để trích xuất thông tin từ nguồn dữ liệu

 Chọn một mô hình ngôn ngữ lớn phù hợp với bài toán có thể sinh ra văn bản có tính ngữ cảnh và đáp ứng với yêu cầu cụ thể của bài toán trả lời câu hỏi

 Kết hợp thông tin đã trích xuất từ nguồn dữ liệu vào quá trình sinh văn bản

 Dựa trên kết quả đạt được để đánh giá hệ thống, thực hiện các điều chỉnh và tối ưu hóa hệ thống để cải thiện hiệu suất và tính ứng dụng của hệ thống

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

Hoàn thành việc thực nghiệm và hiểu rõ về cách kỹ thuật retrieval augmented generation (RAG) hoạt động, đặc biệt là quá trình tích hợp thông tin từ quá trình trích xuất và quá trình sinh văn bản Xác định những ưu điểm và hạn chế của phương pháp này trong ngữ cảnh của bài toán trả lời câu hỏi

Phát triển một ứng dụng RAG có khả năng tích hợp thông tin từ quá trình trích xuất vào quá trình sinh văn bản một cách hiệu quả Đảm bảo rằng hệ thống có khả năng đưa ra câu trả lời đầy đủ, chính xác và phản ánh tính ngữ cảnh của câu hỏi

PHẦN NỘI DUNG 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

1.1 MÔ HÌNH NGÔN NGỮ LỚN

HƯỚNG PHÁT TRIỂN

Hướng phát triển của chúng tôi như sau:

 Thay thế mô hình với tham số lớn hơn để cải thiện khả năng hiểu ngữ nghĩa và tạo văn bản tốt hơn

 Cho người dùng biết chính xác nội dung được trích xuất từ đâu trong tài liệu

 Thêm tính năng bộ nhớ đệm giúp hệ thống có thể hiểu được ngữ cảnh câu hỏi dựa trên các câu hỏi trước đó

 Cải thiện hệ thống với số lượng tài liệu có thể đưa vào hệ thống và xử lí bài toán trả lời câu hỏi trên nhiều tài liệu

Ngày đăng: 19/11/2024, 08:48

HÌNH ẢNH LIÊN QUAN

Hình 1: Kiến trúc mô hình Transformer - Đồ án tốt nghiệp Kỹ thuật dữ liệu: Tìm hiểu Retrieval augmented generation(RAG) và ứng dụng cho bài toán trả lời các câu hỏi
Hình 1 Kiến trúc mô hình Transformer (Trang 20)
Hình 4: Chuẩn hóa lớp trong encoder - Đồ án tốt nghiệp Kỹ thuật dữ liệu: Tìm hiểu Retrieval augmented generation(RAG) và ứng dụng cho bài toán trả lời các câu hỏi
Hình 4 Chuẩn hóa lớp trong encoder (Trang 25)
Hình 5: Sơ đồ hệ thống truy xuất thông tin - Đồ án tốt nghiệp Kỹ thuật dữ liệu: Tìm hiểu Retrieval augmented generation(RAG) và ứng dụng cho bài toán trả lời các câu hỏi
Hình 5 Sơ đồ hệ thống truy xuất thông tin (Trang 26)
Hình 6: Mô hình truy xuất thông tin - Đồ án tốt nghiệp Kỹ thuật dữ liệu: Tìm hiểu Retrieval augmented generation(RAG) và ứng dụng cho bài toán trả lời các câu hỏi
Hình 6 Mô hình truy xuất thông tin (Trang 29)
Bảng 1: Ma trận biểu diễn số lần xuất hiện của từ - Đồ án tốt nghiệp Kỹ thuật dữ liệu: Tìm hiểu Retrieval augmented generation(RAG) và ứng dụng cho bài toán trả lời các câu hỏi
Bảng 1 Ma trận biểu diễn số lần xuất hiện của từ (Trang 31)
Hình 7: Mô hình không gian vector - Đồ án tốt nghiệp Kỹ thuật dữ liệu: Tìm hiểu Retrieval augmented generation(RAG) và ứng dụng cho bài toán trả lời các câu hỏi
Hình 7 Mô hình không gian vector (Trang 32)
Hình 8: Đồ thị TF score theo các độ dài của tài liệu - Đồ án tốt nghiệp Kỹ thuật dữ liệu: Tìm hiểu Retrieval augmented generation(RAG) và ứng dụng cho bài toán trả lời các câu hỏi
Hình 8 Đồ thị TF score theo các độ dài của tài liệu (Trang 36)
Hình 9: Kiến trúc CBOW dự đoán từ hiện tại dựa trên ngữ cảnh, và Skip-gram dự đoán các - Đồ án tốt nghiệp Kỹ thuật dữ liệu: Tìm hiểu Retrieval augmented generation(RAG) và ứng dụng cho bài toán trả lời các câu hỏi
Hình 9 Kiến trúc CBOW dự đoán từ hiện tại dựa trên ngữ cảnh, và Skip-gram dự đoán các (Trang 39)
Hình 10: Mô hình CBOW - Đồ án tốt nghiệp Kỹ thuật dữ liệu: Tìm hiểu Retrieval augmented generation(RAG) và ứng dụng cho bài toán trả lời các câu hỏi
Hình 10 Mô hình CBOW (Trang 40)
Hình 11: Mô hình skip-gram - Đồ án tốt nghiệp Kỹ thuật dữ liệu: Tìm hiểu Retrieval augmented generation(RAG) và ứng dụng cho bài toán trả lời các câu hỏi
Hình 11 Mô hình skip-gram (Trang 43)
Hình 13: Thông tin phần cứng Colab cung cấp - Đồ án tốt nghiệp Kỹ thuật dữ liệu: Tìm hiểu Retrieval augmented generation(RAG) và ứng dụng cho bài toán trả lời các câu hỏi
Hình 13 Thông tin phần cứng Colab cung cấp (Trang 49)
Hình 14: Luồng làm việc với Chroma - Đồ án tốt nghiệp Kỹ thuật dữ liệu: Tìm hiểu Retrieval augmented generation(RAG) và ứng dụng cho bài toán trả lời các câu hỏi
Hình 14 Luồng làm việc với Chroma (Trang 51)
Hình 19: Pipeline của project - Đồ án tốt nghiệp Kỹ thuật dữ liệu: Tìm hiểu Retrieval augmented generation(RAG) và ứng dụng cho bài toán trả lời các câu hỏi
Hình 19 Pipeline của project (Trang 56)
Hình 21: Sơ đồ hoạt động của lớp RetrivalQA - Đồ án tốt nghiệp Kỹ thuật dữ liệu: Tìm hiểu Retrieval augmented generation(RAG) và ứng dụng cho bài toán trả lời các câu hỏi
Hình 21 Sơ đồ hoạt động của lớp RetrivalQA (Trang 61)
Hình 22: Hình ảnh minh họa cho tập dữ liệu - Đồ án tốt nghiệp Kỹ thuật dữ liệu: Tìm hiểu Retrieval augmented generation(RAG) và ứng dụng cho bài toán trả lời các câu hỏi
Hình 22 Hình ảnh minh họa cho tập dữ liệu (Trang 65)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w