Chúng tôi xin giới thiệu bài viết của tác giả Thái Đặng về vấn đề hallucination của các mô hình ngôn ngữ lớn LLM.
Một trong những vấn đề nhức nhối của phần lớn các mô hình ngôn ngữ lớn (để tạo nên ứng dụng như ChatGPT) hiện tại là dễ gây “ảo giác” hay còn gọi là “hallucination”. Do đó, làm thế nào để giảm thiểu được hiệu ứng xấu này đặt ra một bài toán hóc búa cho những các nhà phát triển mô hình ngôn ngữ lớn hiện nay.
Các nhà phát triển hiện nay chỉ có thể cố gắng để giảm thiểu tính ảo giác của các mô hình ngôn ngữ lớn chứ không thể triệt tiêu hoàn toàn được do bản chất cố hữu của mô hình xác suất thống kê. Về mặt nguyên lý, muốn mô hình bớt “bịa đặt” thì cần 2 yếu tố sau: Khả năng ghi nhớ và phân biệt tri thức và Khả năng hiểu rõ câu hỏi hay chỉ dẫn của người dùng.
Thông thường khi huấn luyện mô hình ngôn ngữ, bản chất là chúng ta đang dạy cho mô hình “nhớ” tên thực thể (ví dụ như tên người, địa điểm, sự kiện, v.v.) và mối quan hệ giữa các thực thể được đề cập thông qua các câu chữ trong các văn bản đưa vào huấn luyện mô hình. Các thực thể cũng như mối quan hệ giữa chúng được gọi là tri thức. Ví dụ khi ta đưa câu: “Kim Lân là tác giả của tác phẩm Vợ nhặt” vào huấn luyện mô hình ngôn ngữ thì mô hình được dạy là: “Kim Lân” và “tác phẩm Vợ nhặt” có mối quan hệ với nhau vì hai thực thể này cùng xuất hiện trong 1 câu. Mối quan hệ giữa 2 thực thể này là “A là tác giả của B”. Mức độ mạnh yếu của mối quan hệ này phụ thuộc vào tần suất xuất hiện của nó trong dữ liệu huấn luyện. Đó là cách mô hình học tri thức từ các văn bản huấn luyện.
Bên cạnh năng lực ghi nhớ thì mô hình ngôn ngữ còn cần có khả năng phân biệt thông tin và tri thức trong dữ liệu. Ví dụ trong dữ liệu có thông tin “Tác phẩm Số đỏ của Vũ Trọng Phụng” thì mô hình cũng cần phân biệt thông tin về tác phẩm và tác giả để không nhớ nhầm tác giả của “Vợ nhặt” là “Vũ Trọng Phụng”.
Mô hình ngôn ngữ cũng cần phân biệt được các thông tin hàm chứa trong câu hỏi và chỉ dẫn của người dùng. Ví dụ, khi người dùng hỏi “tác giả của vợ nhặt là ai?” thì thông tin chính giúp hệ thống đưa ra câu trả lời chính xác nằm ở các cụm từ “tác giả” và “tác phẩm vợ nhặt”. Mô hình cần hiểu và phân biệt tác phẩm “vợ nhặt” với các tác phẩm khác và dựa trên khả năng ghi nhớ tri thức để không đưa ra những câu trả lời “ngớ ngẩn” kiểu như “Tác giả của Vợ nhặt là Vũ Trọng Phụng”.
Phần lớn các mô hình ngôn ngữ lớn hiện tại tiếp cận theo kiến trúc Transformer decoder only. Với kiến trúc này, mối quan hệ giữa thực thể trong câu được biểu diễn thông qua cơ chế self-attention của khối decoder. Và khả năng ghi nhớ và phân biệt tri thức trong dữ liệu phụ thuộc vào số lượng tham số của mô hình. Do đó để nhớ được khối lượng tri thức lớn trên thế giới thì mô hình cần có lượng tham số rất lớn. Điều này lý giải cho cái tên “mô hình ngôn ngữ lớn”. Chúng ta có thể thấy ChatGPT được phát triển dựa trên GPT-3 với 175 tỉ tham số, hay PaLM của Google cũng lên tới 540 tỉ tham số, và GPT-4 được cho là có số tham số nhiều hơn nữa. Việc các mô hình ngôn ngữ có số lượng tham số lớn vô hình chung làm tăng gánh nặng cho hạ tầng tính toán đặc biệt là cho quá trình huấn luyện mô hình.
Tuy nhiên nếu phân tích kỹ thì chúng ta sẽ thấy rằng kiến trúc Transformer decoder only chỉ là một con đường, và chúng ta hoàn toàn có thể tìm một con đường khác nhằm giúp xây dựng các mô hình ngôn ngữ không quá lớn để giảm chi phí hạ tầng nhưng vẫn có chất lượng tương đương các mô hình lớn ở một số tác vụ mà chúng ta hướng tới. Muốn vậy chúng ta phải đầu tư nghiên cứu và phát triển kiến trúc khác cho mô hình ngôn ngữ vì nếu với kiến trúc decoder only hiện tại thì nhiều nghiên cứu chỉ ra rằng mô hình càng to thì càng tốt.
Với cách tiếp cận hiện tại, tri thức được biểu diễn và kiểm soát thông qua cơ chế self-attention của chỉ mỗi khối decoder. Nhưng nếu chúng ta sử dụng kiến trúc gốc của Transformer bao gồm cả encoder và decoder thì chúng ta hoàn toàn có thể tăng cường năng lực kiểm soát vấn đề “bịa đặt” của mô hình ngôn ngữ thông qua 3 cơ chế sau: (1) bi-directional self-attention của encoder, (2) cross-attention giữa encoder-decoder, và (3) self-attention của decoder, thay vì chỉ sử dụng mỗi cơ chế self-attention của decoder như phần lớn các mô hình hiện tại.
Ngoài ra, việc huấn luyện với nhiều hàm mục tiêu (objective functions) đồng thời như masked language model và causal autoregressive (giống như các mô hình hiện tại) giúp tăng cường khả năng sinh văn bản cũng như năng lực zero-shot và few-shot của mô hình ngôn ngữ.
Đây là những điểm chính trong các nghiên cứu phát triển công nghệ lõi của ViGPT được thực hiện bởi các nhà nghiên cứu và kỹ sư của VinBigdata. Kết quả cho thấy, với kiến trúc này chúng ta hoàn toàn có thể tối ưu và đẩy nhanh quá trình huấn luyện mô hình ngôn ngữ, giảm chi phí hạ tầng (bao gồm chi phí huấn luyện và chi phí sử dụng), nhưng vẫn đảm bảo chất lượng của mô hình.
Ngày 27/12, ViGPT – “ChatGPT phiên bản Việt” đầu tiên dành cho người dùng cuối sẽ chính thức ra mắt. Phiên bản đầu tiên đầu này chắc hẳn sẽ còn được nhận rất nhiều góp ý, khen chê từ cộng đồng yêu mến nhưng điều quan trọng là chúng tôi vẫn luôn lắng nghe và nỗ lực hết mình để tiếp tục cải tiến, vì sứ mệnh sản phẩm công nghệ Việt dành cho người Việt.