Bỏ qua đến nội dung chính

Trang chủ › Blog › AI & AI tạo sinh

AI & AI tạo sinhTác giả: Miichisoft

Từ ảo giác đến độ chính xác: RAG (Retrieval Augmented Generation) đang tái định hình bức tranh AI tạo sinh năm 2024 như thế nào

幻覚から精度へ:RAG(Retrieval Augmented Generation)が2024年の生成AIの風景を再構築する方法

Những năm gần đây, sự phát triển của các mô hình ngôn ngữ lớn đã tạo ra bước tiến đáng kể trong lĩnh vực xử lý ngôn ngữ tự nhiên, thúc đẩy nhanh chóng việc ứng dụng thực tế của AI tạo sinh. Tuy nhiên, những mô hình mạnh mẽ này vẫn còn tồn tại những thách thức cần vượt qua. Trong đó, một vấn đề lớn là hiện tượng "ảo giác" (hallucination) — khi mô hình ngôn ngữ lớn (LLM) tạo ra thông tin không chính xác, sai lệch hoặc thiếu căn cứ. Bài viết này tập trung vào Retrieval Augmented Generation — một kỹ thuật rất hữu ích và được ứng dụng rộng rãi để giải quyết vấn đề trên.

Các mô hình ngôn ngữ lớn (LLM) thông thường mang tính tĩnh, không thể tiếp nhận thông tin cập nhật hay dữ liệu mới nhất. Dữ liệu huấn luyện của chúng bị "đóng băng" tại một thời điểm nhất định và không thể phản ánh các sự kiện, thay đổi diễn ra sau đó. Ngoài ra, LLM được huấn luyện cho các tác vụ mang tính phổ quát nên thiếu kiến thức chuyên ngành, khiến chúng không thể đáp ứng dữ liệu hay yêu cầu riêng của từng doanh nghiệp.

1. RAG (Retrieval Augmented Generation) là gì

1.1. Retrieval Augmented Generation (RAG) là gì

Các nhà nghiên cứu tại Meta AI (Meta, trước đây là Facebook) đã giới thiệu kỹ thuật gọi là "Retrieval Augmented Generation (RAG)" để giải quyết các tác vụ đòi hỏi nhiều tri thức. RAG kết hợp thành phần truy xuất thông tin với mô hình sinh văn bản, có thể tinh chỉnh, cho phép thay đổi tri thức nội bộ một cách hiệu quả mà không cần huấn luyện lại toàn bộ mô hình.

Quy trình cơ bản của RAG là trích xuất các đoạn văn liên quan thông qua tìm kiếm tài liệu, rồi đưa chúng vào mô hình ngôn ngữ lớn (LLM) dưới dạng prompt. Trong trường hợp này, trong số các kỹ thuật phổ biến của RAG, chúng tôi đã chuyển đổi câu văn thành vector, lưu trữ các vector này vào cơ sở dữ liệu vector (Vector DB), sau đó thực hiện tìm kiếm theo độ tương đồng (similarity search).

1.2. 4 gợi ý giúp nâng cao độ chính xác và hiệu năng của ứng dụng Generative AI

Các sản phẩm được xây dựng dựa trên mô hình ngôn ngữ lớn (LLM) như ChatGPT của OpenAI hay Claude của Anthropic đều rất ấn tượng, nhưng cũng tồn tại một số hạn chế nhất định. LLM hiện nay tuy mạnh mẽ nhưng vẫn tồn tại một số nhược điểm như dưới đây.

  1. LLM mang tính tĩnh. Nói cách khác, chúng bị "đóng băng thời gian" và không thể truy cập thông tin mới nhất. Việc cập nhật bộ dữ liệu huấn luyện khổng lồ là không thực tế.
  2. LLM thiếu kiến thức chuyên ngành. Chúng được huấn luyện cho các tác vụ phổ quát và không am hiểu dữ liệu riêng của doanh nghiệp.
  3. Các mô hình này hoạt động như một "hộp đen". Không dễ để hiểu được LLM đã tham khảo nguồn thông tin nào trước khi đưa ra kết luận.
  4. Ngoài ra, các mô hình này còn thiếu hiệu quả và tốn kém chi phí xây dựng. Việc xây dựng và triển khai một mô hình nền tảng đòi hỏi nguồn lực tài chính và con người rất lớn, không phải tổ chức nào cũng đáp ứng được.

Đáng tiếc, những vấn đề này ảnh hưởng tiêu cực đến độ chính xác của ứng dụng AI tạo sinh. Với ứng dụng doanh nghiệp yêu cầu khắt khe hơn demo chatbot thông thường, dùng LLM "nguyên bản" không điều chỉnh gì ngoài prompt sẽ khiến hiệu năng suy giảm, đặc biệt với tác vụ phụ thuộc nhiều vào ngữ cảnh.

Trong bài viết này, chúng ta sẽ tìm hiểu lý do vì sao Retrieval Augmented Generation (RAG) được khuyến nghị để khắc phục những hạn chế trên, giải thích chi tiết cơ chế hoạt động của RAG, đồng thời lý giải vì sao nhiều doanh nghiệp lựa chọn RAG để nâng cao hiệu năng ứng dụng AI tạo sinh của mình.

2. 3 thách thức của mô hình ngôn ngữ lớn (LLM) hiện nay

"Điểm giới hạn" (cutoff point) của dữ liệu huấn luyện ChatGPT là tháng 9/2021. Nếu bạn hỏi ChatGPT về điều gì đó xảy ra tháng trước, nó không chỉ không thể trả lời đúng sự thật, mà có thể còn đưa ra một câu trả lời sai hoàn toàn nhưng nghe rất thuyết phục. Chúng ta thường gọi hành vi này là "ảo giác" (hallucination).

Các LLM như ChatGPT tạo cảm giác thông minh vượt trội vì đã "nhìn thấy" khối lượng khổng lồ thành quả sáng tạo của con người — mã nguồn mở tương đương cả doanh nghiệp, sách vở tương đương cả thư viện, vô số hội thoại, tập dữ liệu khoa học. Nhưng dữ liệu huấn luyện cốt lõi này vẫn mang tính tĩnh.

Sau khi OpenAI hoàn tất huấn luyện mô hình nền tảng (FM) đứng sau ChatGPT năm 2021, mô hình không nhận thêm thông tin cập nhật nào về thế giới. Nó vẫn không biết các sự kiện lớn toàn cầu, hệ thống thời tiết, luật mới, kết quả thể thao, và như hình trên, thậm chí cả hướng dẫn vận hành ô tô đời mới nhất.

2.1. Tính tĩnh của mô hình ngôn ngữ lớn (LLM)

Retrieval Augmented Generation (RAG) là kiến trúc giúp truy xuất thông tin mới nhất, gắn với ngữ cảnh cụ thể từ cơ sở dữ liệu bên ngoài, rồi cung cấp cho LLM khi thực hiện tác vụ sinh nội dung. Bằng cách lưu trữ dữ liệu doanh nghiệp và thông tin thế giới để LLM sử dụng khi tạo sinh, RAG giúp giảm nguy cơ ảo giác và nâng cao hiệu năng, độ chính xác của ứng dụng AI tạo sinh.

2.2. Thiếu kiến thức trong lĩnh vực chuyên biệt

Hạn chế lớn thứ hai của LLM hiện nay là dù sở hữu kho tri thức phong phú, chúng vẫn không nắm được chi tiết, yêu cầu, tệp khách hàng hay bối cảnh ứng dụng đang vận hành (ví dụ: email) của doanh nghiệp. RAG giải quyết vấn đề thứ hai này bằng cách cung cấp thêm ngữ cảnh và thông tin thực tế cho LLM của ứng dụng AI tạo sinh tại thời điểm sinh nội dung. Đó có thể là bất kỳ thông tin nào — từ hồ sơ khách hàng, lời thoại kịch bản, thông số sản phẩm, tồn kho hiện tại, cho đến âm thanh như giọng nói, bài hát. LLM sử dụng nội dung được cung cấp này để tạo ra câu trả lời có căn cứ.

2.3. RAG giúp nâng cao tính minh bạch

RAG (Retrieval Augmented Generation) được phát triển để giải quyết thách thức về thông tin mới nhất và dữ liệu gắn với từng lĩnh vực chuyên biệt. Kỹ thuật này cũng cho phép ứng dụng AI tạo sinh trích dẫn nguồn thông tin — tương tự như việc trích dẫn nguồn dữ liệu quan trọng trong một bài nghiên cứu khoa học.

Nhờ sử dụng RAG, việc kiểm tra và hiểu rõ cơ chế hoạt động nội bộ của ứng dụng AI tạo sinh trở nên dễ dàng hơn. Người dùng cuối có thể truy cập trực tiếp vào tài liệu nguồn mà ứng dụng đã dùng để tạo câu trả lời, từ đó xác minh độ tin cậy. Cuối cùng, cách tiếp cận tích hợp này giúp mang lại thông tin đáng tin cậy và ra quyết định hiệu quả trong lĩnh vực pháp lý cũng như nhiều lĩnh vực khác.

3. 3 lý do chính để triển khai RAG

Ngoài RAG, còn có 3 lựa chọn chính khác để nâng cao hiệu năng ứng dụng AI tạo sinh. Hãy cùng tìm hiểu các lựa chọn này để hiểu vì sao RAG vẫn tiếp tục được nhiều doanh nghiệp lựa chọn làm phương án chủ đạo cho tới ngày nay.

3.1. Tự xây dựng mô hình nền tảng riêng

Ông Sam Altman của OpenAI ước tính việc huấn luyện mô hình nền tảng đứng sau ChatGPT tốn khoảng 100 triệu USD.

Không phải mô hình nào cũng cần khoản đầu tư lớn như vậy, nhưng mức giá của ChatGPT cho thấy chi phí chính là rào cản lớn để xây dựng một mô hình tinh vi với công nghệ hiện nay.

Bên cạnh chi phí điện toán, bạn còn đối mặt với thiếu hụt nhân tài. Giải quyết các thách thức kỹ thuật khi xây dựng mô hình như vậy cần đội ngũ chuyên biệt gồm tiến sĩ machine learning, kỹ sư hệ thống hàng đầu và nhân sự vận hành tay nghề cao — trong khi các công ty AI khác trên thế giới cũng tranh giành cùng nguồn nhân lực hiếm này.

Một thách thức khác là thu thập, làm sạch, gán nhãn tập dữ liệu cần thiết cho một mô hình nền tảng đủ năng lực. Ví dụ, một công ty e-discovery pháp lý cân nhắc huấn luyện mô hình trả lời câu hỏi về tài liệu pháp lý cũng cần chuyên gia luật dành nhiều giờ gán nhãn dữ liệu huấn luyện.

Ngay cả khi có đủ vốn, đội ngũ phù hợp, dữ liệu gán nhãn đúng, vượt qua rào cản kỹ thuật để vận hành mô hình thực tế, thành công vẫn không được đảm bảo. Ngành này đã chứng kiến nhiều startup AI đầy tham vọng ra đời rồi biến mất, và dự kiến sẽ còn nhiều thất bại hơn nữa.

3.2. Tinh chỉnh mô hình dựa trên dữ liệu chuyên ngành

Tinh chỉnh (fine-tuning) là quá trình huấn luyện lại mô hình nền tảng dựa trên dữ liệu mới. Cách này chắc chắn rẻ hơn so với xây dựng mô hình nền tảng từ đầu. Tuy nhiên, cách tiếp cận này vẫn mang nhiều hạn chế tương tự việc xây mô hình nền tảng — vẫn cần chuyên môn sâu, hiếm có và đủ dữ liệu, đồng thời không loại bỏ được chi phí và độ phức tạp kỹ thuật khi vận hành mô hình trong môi trường thực tế.

Hiện nay, khi LLM đã có thể kết hợp với cơ sở dữ liệu vector để truy xuất ngữ cảnh, tinh chỉnh không còn là cách tiếp cận khả thi. Một số nhà cung cấp LLM, trong đó có OpenAI, đã không còn hỗ trợ tinh chỉnh cho các mô hình thế hệ mới nhất.

Tinh chỉnh là phương pháp đã lỗi thời để cải thiện đầu ra LLM. Nó đòi hỏi công việc gán nhãn lặp lại, tốn kém bởi chuyên gia trong ngành, cùng giám sát liên tục để phát hiện suy giảm chất lượng hay sai lệch độ chính xác do thiếu cập nhật định kỳ hoặc do phân bố dữ liệu thay đổi.

Khi dữ liệu thay đổi theo thời gian, độ chính xác mô hình tinh chỉnh cũng có thể suy giảm, đòi hỏi gán nhãn dữ liệu, giám sát chất lượng liên tục và tinh chỉnh lặp lại — tốn kém hơn.

Hãy hình dung việc bạn phải cập nhật mô hình mỗi khi bán một chiếc xe, chỉ để đảm bảo ứng dụng AI tạo sinh của bạn luôn có dữ liệu tồn kho mới nhất.

3.3. Chỉ prompt engineering thôi là chưa đủ để giảm ảo giác

Prompt engineering nghĩa là kiểm thử và tinh chỉnh các chỉ dẫn cung cấp cho mô hình để mô hình hoạt động đúng như mong muốn.

Đây cũng là lựa chọn rẻ nhất để nâng cao độ chính xác của ứng dụng AI tạo sinh, vì bạn có thể nhanh chóng cập nhật chỉ dẫn cung cấp cho LLM chỉ với vài thay đổi nhỏ trong code.

Phương pháp này giúp cải thiện phản hồi mà LLM trả về, nhưng không thể cung cấp ngữ cảnh mới hay ngữ cảnh động cho LLM. Do đó, ứng dụng AI tạo sinh vẫn thiếu ngữ cảnh cập nhật và dễ gặp hiện tượng ảo giác.

4. Retrieval Augmented Generation (RAG) hoạt động như thế nào?

4.1. Cơ chế hoạt động của Retrieval Augmented Generation

Chúng tôi đã giải thích cách RAG, tại thời điểm sinh nội dung, truyền thêm nội dung liên quan từ cơ sở dữ liệu chuyên ngành tới LLM thông qua "cửa sổ ngữ cảnh" (context window), cùng với prompt hoặc câu hỏi gốc.

Cửa sổ ngữ cảnh của LLM là "tầm nhìn" của LLM tại một thời điểm nhất định. RAG giống như việc đưa ra các thẻ gợi ý (cue card) chứa các điểm quan trọng để LLM tham khảo, giúp mô hình tạo ra phản hồi chính xác hơn, có kết hợp dữ liệu quan trọng.

Để hiểu RAG, trước tiên bạn cần hiểu tìm kiếm ngữ nghĩa (semantic search). Thay vì chỉ đơn thuần khớp từ khóa trong truy vấn của người dùng, tìm kiếm ngữ nghĩa cố gắng tìm ra ý nghĩa thực sự đằng sau truy vấn để truy xuất thông tin liên quan. Mục tiêu của tìm kiếm ngữ nghĩa là mang lại kết quả phù hợp với ý định của người dùng, chứ không chỉ dừng ở các từ ngữ chính xác họ đã nhập.

Sơ đồ này minh họa cách xây dựng cơ sở dữ liệu vector từ dữ liệu độc quyền theo từng lĩnh vực chuyên biệt. Để xây dựng cơ sở dữ liệu vector, bạn đưa dữ liệu qua mô hình embedding để chuyển đổi thành vector.

Mô hình embedding là một loại LLM chuyển đổi dữ liệu thành vector — tức là một dãy hoặc nhóm các con số. Trong ví dụ trên, chúng ta đang chuyển đổi một cuốn sổ tay hướng dẫn sử dụng chứa thông tin vận hành mẫu xe Volvo mới nhất, nhưng dữ liệu cũng có thể là văn bản, hình ảnh, video hoặc âm thanh.

Điều quan trọng nhất cần hiểu là vector đại diện cho ý nghĩa của văn bản đầu vào — tương tự như cách một người khác hiểu được bản chất của nội dung khi bạn nói to văn bản đó ra. Dữ liệu được chuyển đổi thành vector để máy tính có thể truy xuất các mục có ý nghĩa tương đồng, dựa trên biểu diễn số của dữ liệu đã lưu trữ.

Tiếp theo, các vector được lưu trữ vào cơ sở dữ liệu vector. Hãy nhớ rằng việc tạo vector, đưa chúng vào cơ sở dữ liệu và cập nhật chỉ mục (index) theo thời gian thực có thể giải quyết vấn đề tính cập nhật của LLM trong ứng dụng GenAI.

Ví dụ, bạn có thể viết code để tự động tạo vector cho các sản phẩm mới nhất và cập nhật/chèn vào chỉ mục mỗi khi ra mắt sản phẩm mới. Ứng dụng chatbot hỗ trợ khách hàng của doanh nghiệp có thể sử dụng RAG để truy xuất thông tin mới nhất về tình trạng còn hàng của sản phẩm cũng như dữ liệu về khách hàng đang trò chuyện.

4.2. Sử dụng cơ sở dữ liệu vector để truy vấn dữ liệu bằng ngôn ngữ tự nhiên

Cơ sở dữ liệu vector tích hợp sẵn biểu diễn số của dữ liệu mục tiêu, nhờ đó cho phép tìm kiếm ngữ nghĩa. Cơ sở dữ liệu vector phát huy hiệu quả cao trong các trường hợp tìm kiếm ngữ nghĩa, khi người dùng cuối đặt truy vấn mơ hồ bằng ngôn ngữ tự nhiên.

4.3. Tìm kiếm ngữ nghĩa: cơ chế chuyển truy vấn thành embedding và tìm mục tương đồng trong cơ sở dữ liệu vector

Đầu tiên, dữ liệu riêng của bạn được chuyển đổi thành embedding. Khi người dùng đặt truy vấn hoặc câu hỏi, cụm từ tìm kiếm bằng ngôn ngữ tự nhiên đó cũng được dịch thành embedding.

Tiếp theo, các embedding này được gửi tới cơ sở dữ liệu vector. Cơ sở dữ liệu thực hiện tìm kiếm "lân cận gần nhất" (nearest neighbor) để tìm ra các vector khớp nhất với ý định của người dùng. Khi cơ sở dữ liệu vector trả về kết quả liên quan, ứng dụng sẽ cung cấp kết quả đó cho mô hình ngôn ngữ thông qua cửa sổ ngữ cảnh, để thúc đẩy việc thực hiện tác vụ sinh nội dung.

Giờ đây, mô hình ngôn ngữ có thể truy cập những sự kiện phù hợp và có căn cứ nhất từ cơ sở dữ liệu vector. Điều này giúp ứng dụng cung cấp câu trả lời chính xác cho người dùng. RAG giúp giảm nguy cơ xảy ra ảo giác.

5. Câu hỏi thường gặp (FAQ)

Câu hỏi 1: Retrieval Augmented Generation (RAG) là gì?

Trả lời: RAG là quy trình trong đó mô hình ngôn ngữ lớn (LLM) tạo ra phản hồi dựa trên thông tin được truy xuất từ bên ngoài để trả lời truy vấn của người dùng. Nhờ đó, hiện tượng ảo giác của AI được giảm bớt, đồng thời câu trả lời mang tính căn cứ thực tế cao hơn.

Câu hỏi 2: Hiện tượng "ảo giác" là gì?

Trả lời: Hiện tượng ảo giác là khi mô hình ngôn ngữ lớn (LLM) tạo ra thông tin không chính xác, sai lệch hoặc thiếu căn cứ. Điều này có thể khiến đầu ra của mô hình trở nên kém tin cậy.

Câu hỏi 3: Cơ chế hoạt động cơ bản của RAG (Retrieval Augmented Generation) là gì?

Trả lời: RAG truy xuất thông tin liên quan tới prompt hoặc câu hỏi gốc từ cơ sở dữ liệu chuyên ngành, sau đó cung cấp thông tin đó cùng cửa sổ ngữ cảnh cho mô hình ngôn ngữ lớn (LLM), giúp tạo ra phản hồi chính xác hơn.

Câu hỏi 4: Cơ sở dữ liệu vector được tạo ra như thế nào?

Trả lời: Cơ sở dữ liệu vector được tạo ra bằng cách sử dụng mô hình embedding để chuyển đổi dữ liệu thành vector (dãy số), sau đó lưu trữ các vector này vào cơ sở dữ liệu.

6. Kết luận

Tìm kiếm ngữ nghĩa và Retrieval Augmented Generation mang lại trải nghiệm vượt trội cho người dùng cuối, thông qua việc nâng cao mức độ liên quan của phản hồi AI tạo sinh. Khác với việc xây dựng mô hình nền tảng, tinh chỉnh mô hình sẵn có hay chỉ dùng prompt engineering, RAG giải quyết đồng thời vấn đề tính cập nhật và ngữ cảnh chuyên biệt một cách hiệu quả và ít rủi ro. Mục đích cốt lõi của RAG là cung cấp câu trả lời chi tiết, phù hợp bối cảnh cho các câu hỏi đòi hỏi truy cập dữ liệu cá nhân.

Là một doanh nghiệp công nghệ Việt Nam, Miichisoft đã tích lũy nhiều thành công trong lĩnh vực phát triển đa nền tảng. Miichisoft có kinh nghiệm phong phú trong việc phát triển các giải pháp ứng dụng công nghệ RAG. Để biết thêm chi tiết, vui lòng truy cập website của chúng tôi.

Tư vấn miễn phí