Generated Knowledge Prompting (VI)
Generated Knowledge Prompting (GKP, prompt với sinh tri thức) — là một phương pháp prompt engineering được phát triển nhằm cải thiện khả năng của các mô hình ngôn ngữ lớn (LLM) trong việc giải quyết các bài toán đòi hỏi suy luận và dựa trên kiến thức thực tế[1]. Ý tưởng cốt lõi của GKP là buộc mô hình thực hiện nhiệm vụ theo hai giai đoạn: trước tiên sinh ra một tập hợp các sự kiện liên quan đến chủ đề của câu hỏi, sau đó dựa trên những tri thức đó để xây dựng câu trả lời cuối cùng[2].
Phương pháp này cho phép LLM kích hoạt và sử dụng các kiến thức nội tại, được tham số hóa của mình — những kiến thức được mã hóa ngầm trong hàng tỷ tham số nhưng thường không thể tiếp cận khi sử dụng các câu lệnh thông thường. GKP giải quyết vấn đề khi các mô hình «không biết rằng chúng biết», và giúp chúng liên kết các sự kiện rời rạc để xây dựng suy luận đúng đắn[2].
Lịch sử và nguồn gốc
Phương pháp Generated Knowledge Prompting lần đầu tiên được giới thiệu trong bài báo khoa học «Generated Knowledge Prompting for Commonsense Reasoning», được soạn thảo bởi một nhóm các nhà nghiên cứu dưới sự dẫn dắt của Jiacheng Liu. Phiên bản ban đầu của công trình được đăng trên kho lưu trữ bản thảo arXiv vào ngày 15 tháng 10 năm 2021, và phiên bản hoàn chỉnh được trình bày tại hội nghị danh tiếng Association for Computational Linguistics (ACL) vào năm 2022[1].
GKP là một trong những phương pháp đầu tiên và có ý nghĩa nhất đề xuất thay đổi mô hình tương tác với LLM, chuyển trọng tâm từ việc sinh câu trả lời tức thì sang một quy trình nhận thức hai giai đoạn.
Cơ chế hoạt động hai giai đoạn
Cơ chế GKP chia nhiệm vụ phức tạp thành hai quy trình con đơn giản hơn: trích xuất thông tin liên quan và sau đó sử dụng thông tin đó để rút ra kết luận.
Giai đoạn 1: Sinh tri thức (Knowledge Generation)
Ở giai đoạn đầu, một mô hình ngôn ngữ («bộ sinh tri thức») được sử dụng để tạo ra M đoạn tri thức liên quan đến câu hỏi gốc. Quá trình này được khởi động bằng kỹ thuật few-shot prompting, trong đó mô hình được cung cấp một số ví dụ để học «trong ngữ cảnh».
Prompt để sinh tri thức có cấu trúc được xác định rõ ràng:
- Hướng dẫn: Chỉ dẫn tổng quát, ví dụ: «Hãy sinh ra một số sự kiện về chủ đề này».
- Các ví dụ minh họa: Một số cặp «câu hỏi — tri thức» được con người viết ra. Các ví dụ này đóng vai trò cực kỳ quan trọng vì chúng dạy mô hình loại thông tin nào được coi là hữu ích. Đồng thời, tri thức được sinh ra không được chứa trực tiếp câu trả lời.
- Câu hỏi mới: Câu truy vấn gốc của người dùng, cần sinh tri thức cho câu hỏi đó.
Với một câu hỏi, M biến thể tri thức được sinh ra (trong công trình gốc M=20) nhằm thu được một tập hợp đa dạng các sự kiện cho giai đoạn thứ hai[1].
Giai đoạn 2: Tích hợp tri thức và hình thành câu trả lời (Knowledge Integration)
Ở giai đoạn thứ hai, một mô hình ngôn ngữ khác («mô hình suy luận») được sử dụng — mô hình này có thể hoạt động theo chế độ zero-shot hoặc đã được tinh chỉnh cho một nhiệm vụ cụ thể.
Quá trình tích hợp diễn ra như sau:
- Bổ sung câu truy vấn: Câu hỏi gốc (q) lần lượt được kết hợp với từng đoạn trong số M đoạn tri thức được sinh ra (km). Kết quả tạo ra M+1 câu truy vấn được bổ sung (bao gồm cả câu hỏi gốc không có tri thức).
- Đánh giá và lựa chọn câu trả lời: Mô hình suy luận đánh giá xác suất có điều kiện của mỗi phương án trả lời (a) cho mỗi câu truy vấn được bổ sung. Câu trả lời cuối cùng là phương án nhận được điểm xác suất cao nhất ở ít nhất một trong các câu truy vấn.
Cơ chế hai giai đoạn này tạo ra một quá trình siêu nhận thức: «Trước khi trả lời, hãy suy nghĩ và xác định xem bạn biết gì về chủ đề này».
Hiệu quả và kết quả kiểm tra
Hiệu quả của GKP đã được kiểm tra trên một số benchmark học thuật để đánh giá suy luận dựa trên tri thức thông thường. Phương pháp cho thấy sự cải thiện đáng kể về hiệu suất so với các phương pháp cơ sở.
| Tên benchmark | Nhiệm vụ | Độ chính xác mô hình cơ sở (%) | Độ chính xác với GKP (%) | Mức tăng (%) |
|---|---|---|---|---|
| NumerSense | Tri thức thông thường về số | 64.05 | 72.47 | +8.42 |
| CommonsenseQA | Tri thức thông thường chung | 39.89 | 47.26 | +7.37 |
| CommonsenseQA 2.0 | Tri thức thông thường chung | 70.20 | 73.03 | +2.83 |
| QASC | Tri thức thông thường khoa học | 76.74 | 80.33 | +3.59 |
Mức tăng lớn nhất được quan sát ở chế độ zero-shot, điều này chứng minh khả năng GKP kích hoạt hiệu quả các kiến thức nội tại của mô hình mà không cần tinh chỉnh thêm.
Phân tích so sánh với các kỹ thuật khác
GKP vs. Chain-of-Thought (CoT)
Sự khác biệt chính giữa GKP và Chain-of-Thought (CoT) nằm ở loại thông tin được sinh ra:
- GKP sinh ra tri thức khai báo — các sự kiện, định nghĩa, phát biểu về thế giới («cái gì»). Nó cung cấp cho mô hình ngữ cảnh bổ sung.
- CoT sinh ra tri thức thủ tục — các bước logic, phép tính, chuỗi suy luận («như thế nào»). Nó cung cấp cho mô hình con đường suy luận.
Như vậy, GKP cung cấp nền tảng thực tế, còn CoT cung cấp cấu trúc logic của suy luận[3].
GKP vs. Retrieval-Augmented Generation (RAG)
Khác với GKP, phương pháp Retrieval-Augmented Generation (RAG) sử dụng các nguồn tri thức bên ngoài, phi tham số.
- GKP sử dụng tri thức nội tại mà mô hình đã tiếp thu trong quá trình huấn luyện. Nó buộc mô hình «nhớ lại» những gì nó đã biết.
- RAG sử dụng tri thức bên ngoài từ cơ sở dữ liệu, tài liệu hoặc internet. Nó buộc mô hình «tìm kiếm» thông tin từ thế giới bên ngoài.
Việc lựa chọn giữa GKP và RAG phụ thuộc vào nhiệm vụ: GKP hiệu quả khi kiến thức cần thiết là kiến thức phổ thông và được thể hiện tốt trong dữ liệu huấn luyện, trong khi RAG không thể thiếu đối với dữ liệu chuyên biệt, mới nhất hoặc độc quyền.
Hạn chế và rủi ro
- Vấn đề «ảo giác»: Rủi ro chính của GKP là khả năng sinh ra các sự kiện không chính xác. Nếu ở giai đoạn đầu mô hình sinh ra một phát biểu sai, ở giai đoạn thứ hai nó sẽ được tiếp nhận như là sự thật, dẫn đến câu trả lời tự tin nhưng hoàn toàn sai lầm.
- Chi phí tính toán: Phương pháp đòi hỏi nhiều lần gọi LLM (M+1 lần gọi cho một câu truy vấn), điều này làm tăng đáng kể thời gian phản hồi (latency) và chi phí sử dụng so với prompt thông thường.
- Độ phức tạp trong thiết kế prompt: Hiệu quả của GKP phụ thuộc nhiều vào chất lượng các ví dụ few-shot, việc tạo ra chúng là một nhiệm vụ không tầm thường và tốn nhiều công sức.
Sự phát triển và các phương pháp kết hợp
Những ý tưởng nền tảng trong GKP đã trở thành chất xúc tác cho sự phát triển của các kỹ thuật prompt phức tạp và mạnh mẽ hơn, chẳng hạn như:
- Hint-before-Solving (HSP): Người kế thừa trực tiếp về tư tưởng của GKP, áp dụng nguyên tắc hai giai đoạn («trước là tri thức, sau là hành động») không phải cho câu trả lời đơn giản mà cho quá trình suy luận phức tạp hơn trong CoT[4].
- Verify-and-Edit (VE): Một framework kết hợp, ra đời như câu trả lời cho vấn đề «ảo giác» trong GKP và CoT. VE trước tiên sinh ra chuỗi suy luận (như CoT), sau đó tự động kiểm tra các sự kiện chính bằng tìm kiếm bên ngoài (như RAG) và chỉnh sửa suy luận trước khi sinh câu trả lời cuối cùng[5].
Liên kết
- Generated Knowledge Prompting trong Prompt Engineering Guide
Tài liệu tham khảo
- Liu, J. et al. (2021). Generated Knowledge Prompting for Commonsense Reasoning. arXiv:2110.08387
- Liu, J. et al. (2022). Generated Knowledge Prompting for Commonsense Reasoning. In *Proc. ACL 2022*. ACL:2022
- Wei, J. et al. (2022). Chain-of-Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903
- Wang, X. et al. (2022). Self-Consistency Improves Chain-of-Thought Reasoning in Language Models. arXiv:2203.11171
- Fu, J. et al. (2024). Hint-before-Solving Prompting: Guiding LLMs to Effectively Utilize Encoded Knowledge. arXiv:2402.14310
- Zhao, R. et al. (2023). Verify-and-Edit: A Knowledge-Enhanced Chain-of-Thought Framework. arXiv:2305.03268
- Lin, B. et al. (2020). NumerSense: Probing Numerical Commonsense Knowledge of Pre-trained Language Models. Dataset page
- Talmor, A. et al. (2019). CommonsenseQA: A Question-Answering Challenge Targeting Commonsense Knowledge. ACL paper
- Khot, T. et al. (2019). QASC: A Dataset for Question Answering via Sentence Composition. arXiv:1910.11473
- Mu, J. et al. (2023). Learning to Compress Prompts with Gist Tokens. arXiv:2304.08467
Ghi chú
- ↑ 1.0 1.1 1.2 1.3 Liu, J., Liu, A., Lu, X., et al. (2022). «Generated Knowledge Prompting for Commonsense Reasoning». Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics. [1]
- ↑ 2.0 2.1 Liu, J., Liu, A., Lu, X., et al. (2021). «Generated Knowledge Prompting for Commonsense Reasoning». arXiv preprint arXiv:2110.08387. [2]
- ↑ Wei, J., Wang, X., Schuurmans, D., et al. (2022). «Chain-of-Thought Prompting Elicits Reasoning in Large Language Models». arXiv preprint arXiv:2201.11903. [3]
- ↑ Katz, O., Maman, Y., et al. (2024). «Hint-before-Solving Prompting: Guiding LLMs to Effectively Utilize Scaffolding». arXiv preprint arXiv:2402.14310. [4]
- ↑ Zhao, R., Zhang, J., et al. (2023). «Verify-and-Edit: A Knowledge-Enhanced Chain-of-Thought Framework». arXiv preprint arXiv:2305.03268. [5]