chương 1 giới thiệu, trình bày tổng quan, lý do thực hiện đề tài và ý nghĩa thực tiễn của bài toán, cũng như giới hạn và phạm vi của đề tài. Các phần sau của Luận văn Hệ thống hỗ trợ học vụ sử dụng mô hình ngôn ngữ lớn sẽ bao gồm các chương với nội dung chính sau đây: • Chương 2: Các công trình nghiên cứu liên quan. Chương này sẽ tìm hiểu và tổng hợp các nghiên cứu, xu hướng phát triển liên quan tới đề tài đang nghiên cứu. • Chương 3: Cơ sở lý thuyết.
Chương này tổng hợp những lý thuyết liên quan để triển khai cho bài toán, tập trung chủ yếu vào giới thiệu các mô hình ngôn ngữ lớn, mô hình Transformer, kỹ thuật Embedding. • Chương 4: Mô hình đề xuất. Chương này sẽ trình bày mô hình tham khảo mà học viên sẽ làm cơ sở, từ đó đưa ra đề xuất cải tiến và các hướng thực hiện để phù hợp với đề tài học viên đang nghiên cứu. • Chương 5: Kết luận.
Chương này sẽ tổng hợp các kết quả đạt được trong quá trình thực hiện luận văn từ bước nghiên cứu và xây dựng mô hình đề xuất đến triển khai thực nghiệm. Phần này cũng trình bày những hạn chế và vấn đề tồn đọng và đề xuất các giải pháp cải tiến trong tương lai. Mục lục, Danh sách hình vẽ, Danh sách bảng được cung cấp ở đầu luận văn. Tài liệu tham khảo, Phụ lục sẽ được trình bày ở cuối luận văn.
6 Chương 2 CÔNG TRÌNH NGHIÊN CỨU LIÊN QUAN 2.1 Hệ thống hỏi đáp Hệ thống hỏi đáp đã có một quá trình phát triển dài từ những năm 1960 [6] trước khi có những bước chuyển mình phát triển vượt bật như hôm nay. Hệ thống hỏi đáp thường được phân loại dựa trên nguồn của dữ liệu, loại câu hỏi và phương pháp xây dựng hệ thống [5], [9], [10].1: Phân loại các hệ thống hỏi đáp. Một hệ thống trả lời câu hỏi có thể được phân loại dựa trên nguồn thông tin mà nó sử dụng để cung cấp câu trả lời [6]. • Nguồn thông tin mở (Open domain): Hệ thống này có khả năng đáp ứng các câu hỏi 7 trên mọi chủ đề, không bị ràng buộc bởi một nguồn thông tin cụ thể.
Điều này yêu cầu hệ thống có khả năng xử lý và truy xuất thông tin từ một nguồn tri thức rộng lớn, sâu rộng và đa dạng. • Nguồn thông tin giới hạn/đóng (Closed domain): Trong trường hợp này, hệ thống chỉ sử dụng thông tin từ một nguồn hạn chế hoặc từ một lĩnh vực cụ thể để trả lời câu hỏi. Các câu hỏi cần phải được giới hạn trong phạm vi nguồn thông tin đã cho để hệ thống có thể cung cấp câu trả lời chính xác, ví dụ như trong các lĩnh vực: y tế, giáo dục, luật pháp,. Trong khi đó, hệ thống hỏi đáp có thể phân chia theo loại câu hỏi [11].
Loại câu hỏi được chia thành hai loại chính là câu hỏi thông thường và câu hỏi phức tạp. Câu hỏi thông thường là những câu hỏi có thể bắt đầu hoặc chứa những từ cái gì, khi nào, ở đâu, là ai (bắt đầu bằng từ khóa wh trong tiếng anh what, when, where, which, who). Những câu hỏi này không đòi hỏi xử lý sâu để có được câu trả lời. Câu hỏi dạng thứ hai là câu hỏi phức tạp, những câu hỏi thường là những câu hỏi tại sao, như thế nào (why, how) và những câu hỏi xác nhận có không (yes/no question).
Đây là những dạng câu hỏi thường đòi hỏi phải tổng hợp nhiều nguồn thông tin, mô hình cần có khả năng suy luận, đưa ra các suy nghĩ tuần tự để có thể có được câu trả lời cuối cùng. Bên cạnh đó, hệ thống hỏi đáp có thể được phân chia theo phương pháp tiếp cận [11], bao gồm 2 hướng chính: cách tiếp cận cổ điển (Classical) và cách tiếp cận hiện đại (Modern). Các phương pháp cổ điển tập trung vào các cách tiếp cận như rule-based và retrieval-based, trong khi hướng tiếp cận hiện đại tập trung vào các mô hình học sâu và gần đây là các mô hình ngôn ngữ lớn dựa trên Transformer đang được chú ý rất nhiều.1 Phương pháp tiếp cận cổ điển Phương pháp dựa trên rule-based [12] cho hệ thống hỏi đáp được xây dựng dựa trên một loạt các quy tắc và mô hình đã được xác định trước để tìm câu trả lời phù hợp với câu hỏi. Những quy tắc này thường được phát triển bởi các chuyên gia trong lĩnh vực hoặc thông qua việc gán nhãn dữ liệu thủ công.
Hướng tiếp cận này có thể chia thành 8 Hình 2.2: Phân loại phương pháp tiếp cận hệ thống hỏi đáp. nhiều loại như dựa trên mẫu (template-based) [13], dựa trên cú pháp (syntax-based) [14] và dựa trên ngữ nghĩa (semantic-based) [15]. Các kỹ thuật này thường đòi hỏi nhiều nỗ lực để xây dựng các đặc trưng thủ công và yêu cầu kinh nghiệm trong các lĩnh vực liên quan. Phương pháp học máy dựa trên retrieval-based (truy xuất thông tin) [16] dựa trên việc tiền xử lý và chỉ mục dữ liệu để làm cho mô hình có thể tìm kiếm được thông tin cần thiết.
Sau đó, mô hình sử dụng các phương pháp như cosine similarity hoặc TF-IDF để tìm câu trả lời phù hợp nhất với câu hỏi. Những phương pháp này rất hiệu quả cho các tác vụ mà câu hỏi và câu trả lời đã có sẵn trong một kho văn bản lớn, chẳng hạn như thông qua một công cụ tìm kiếm hoặc một hệ thống truy xuất tài liệu. Tuy nhiên, những mô hình này không thể hiểu ý nghĩa của văn bản và có thể cung cấp kết quả không liên quan. Những phương pháp này chủ yếu dựa trên việc khớp từ khóa hoặc mẫu, và mô hình không thể hiểu được ngữ cảnh hoặc ý định của câu hỏi.
Ngoài ra, những phương pháp này cần một lượng lớn dữ liệu đã được gán nhãn để hoạt động hiệu quả.2 Phương pháp tiếp cận hiện đại Học sâu là một trong những phương pháp tiếp cận hiện đại cho hệ thống hỏi đáp dựa trên các mạng neural để hiểu ngôn ngữ tự nhiên. Những mạng này được đào tạo trên 9 lượng lớn dữ liệu và có khả năng hiểu ý nghĩa của văn bản. Các kiến trúc phổ biến bao gồm mạng CNN, mạng LSTM, mạng RNN và các biến thể của các mô hình này. Những mô hình này có thể được tinh chỉnh cho các nhiệm vụ cụ thể như hỏi đáp [17], có khả năng hiểu ngữ cảnh và ý định của câu hỏi, và chúng có thể cung cấp các phản hồi phù hợp và tự nhiên.
Sau những kết quả đáng chú ý của các mô hình Seq2Seq dựa trên RNN kết hợp với cơ chế attention, Transformer đã được giới thiệu như một hướng tiếp cận mới cho hệ thống hỏi đáp. Mô hình này cho phép thông tin có thể được “chú ý” từ cả hai hướng khi tổng hợp vector biểu diễn cho một từ trong văn bản, đồng thời hỗ trợ việc tính toán song song [18]. Có thể thấy Transformer đã khắc phục được các hạn chế của các mô hình Seq2Seq trước đó và mang lại nhiều cải tiến cho các bài toán NLP nói chung và hệ thống hỏi đáp nói riêng. Kể từ khi Transformer ra đời, nhiều mô hình ngôn ngữ lớn được tiền huấn luyện dựa trên Transformer.
có thể kể đến như BERT [19], GPT-3 [20], Llama-2 [21],. Các mô hình ngôn ngữ lớn dựa vào Transformer này có thể được chia thành ba nhóm chính: Encoder only, Decoder only và Encoder-Decoder [9]. • Encoder only, ví dụ nổi bật như BERT, RoBERTa, mô hình sẽ mã hóa dữ liệu đầu vào để tạo thành một dạng vector biểu diễn chứa đựng thông tin ngữ nghĩa cho các ứng dụng khác như phân loại, nhận dạng thực thể, đo lường sự tương đồng ngữ nghĩa trong trong các mô hình truy xuất thông tin và hệ thống hỏi đáp. • Encoder-Decoder, mô hình gồm hai khối Encoder và Decoder.
Khối Encoder sẽ mã hóa dữ liệu đầu vào thành vector embedding, sau đó khối Decoder sẽ sẽ thực hiện chú ý chéo (cross attention) trên các vector đầu vào và tạo ra chuỗi mục tiêu. Các mô hình tiêu biểu như T5 [22], BART [23] đã cho nhiều hiệu quả trên nhiều bài toán NLP. • Decoder only, dữ liệu nhập vào sẽ được đưa vào trực tiếp đưa vào khối Encoder kết hợp với ngữ cảnh dựa trên lời nhắc (prompt) từ đó sẽ tạo ra chuỗi đầu ra. Mô hình GPT-3 đã chứng minh độ hiệu quả của kiến trúc này.2 Mô hình Retrieval-Augmented Generation Hiện nay, các mô hình ngôn ngữ lớn thể hiện sự vượt trội trong hầu hết các bài toán xử lý ngôn ngữ tự nhiên [20] [21] [24] , dẫn đến các hệ thống hỏi đáp dựa trên các mô hình ngôn ngữ lớn ngày càng được chú ý.
Tuy nhiên các mô hình này thường gặp phải một số vấn đề chính đó là dữ liệu không được cập nhật và thiếu kiến thức trong các nguồn hay miền thông tin đóng. Một trong những phương pháp được chú ý nhiều để giải quyết những vấn đề này trong thời gian gần đây đó là việc tích hợp cơ sở dữ liệu của kho ngữ liệu liên quan tới nguồn thông tin cần quan tâm với mô hình ngôn ngữ lớn [25]. Phương pháp này được gọi là Retrieval-Augmented Generation (RAG), kiến trúc này được giới thiệu lần đầu vào năm 2020 [7]. Cách tiếp cận này lấy thông tin từ cơ sở dữ liệu bên ngoài, sử dụng dữ liệu truy xuất được là đầu vào cho các mô hình ngôn ngữ lớn để tổ chức và đưa ra câu trả lời.
Một quy trình cơ bản cho RAG được mô tả như Hình 2.3 và được trình bày như dưới đây [25]: • Tiền xử lý dữ liệu và phân đoạn (pre-processing and chunking). Làm sạch và trích xuất các dữ liệu cần thiết từ các định dạng khác nhau như PDF, Word, HTML,. Sau đó tiến hành chia văn bản đã được xử lý trước đó thành các đoạn nhỏ hơn. Điều này cần thiết vì đa phần các mô hình ngôn ngữ lớn đều có giới hạn về số lượng token ngữ cảnh.
• Embedding và tạo chỉ mục (Embedding and Indexing). Đây là quá trình mã hóa văn bản thành các vector embedding thông qua một mô hình ngôn ngữ, sau đó sẽ tiến hành tao chỉ mục, lưu trữ các phần văn bản gốc và vector nhúng dưới dạng cặp khóa-giá trị để thuận tiện cho việc tìm kiếm sau này. Câu hỏi của người dùng sẽ được mã hóa thành vector cùng mô hình ban đầu. Sau đó mô hình sẽ tính toán sự tương đồng giữa câu hỏi và các đoạn văn bản liên quan.
Cuối cùng các đoạn văn bản liên quan nhất sẽ được chọn làm thông tin ngữ cảnh cho câu hỏi. • Sinh câu trả lời (Generation).