Generated Knowledge Prompting — 生成知识提示
Generated Knowledge Prompting (GKP, 生成知识提示) 是一种提示工程方法,旨在提升大型语言模型 (LLM) 解决需要推理和事实知识支持的任务的能力[1]。GKP的核心思想是让模型分两步完成任务:首先,根据查询主题生成一组相关事实;然后,基于这些知识形成最终答案[2]。
这种方法使LLM能够激活并利用其内部的“参数化”知识,这些知识被隐式地编码在数十亿个参数中,但在标准查询中通常无法访问。GKP解决了模型“不知道自己知道什么”的问题,并帮助它们连接零散的事实以构建正确的推论[2]。
历史与起源
Generated Knowledge Prompting方法首次在科学论文《Generated Knowledge Prompting for Commonsense Reasoning》中提出,该论文由刘家诚(Jiacheng Liu)领导的研究小组撰写。该工作的初版于2021年10月15日发表在预印本档案库arXiv上,而最终版本则在2022年的顶级会议计算语言学协会(Association for Computational Linguistics, ACL)上发表[1]。
GKP成为首批提出改变与LLM交互范式的重要方法之一,其重点从一次性生成答案转向了一个两阶段的认知过程。
两阶段工作机制
GKP机制将一个复杂的任务分解为两个更简单的子过程:提取相关信息,然后利用这些信息进行推理。
阶段一:知识生成 (Knowledge Generation)
在第一阶段,使用一个语言模型(“知识生成器”)为原始问题生成多个(M个)相关的知识片段。该过程通过少样本提示(few-shot prompting)技术启动,即向模型提供几个示例以进行“上下文学习”。
用于知识生成的提示具有严格定义的结构:
- 指令:一个通用指示,例如:“围绕该主题生成一些事实”。
- 演示示例:几个人工编写的“问题-知识”对。这些示例起着至关重要的作用,因为它们教会模型哪种类型的信息是有用的。同时,生成的知识不应直接包含答案本身。
- 新问题:需要为其生成知识的原始用户查询。
针对一个问题,会生成M个知识变体(在原始论文中 M=20),以便为第二阶段获取多样化的事实集合[1]。
阶段二:知识整合与答案形成 (Knowledge Integration)
在第二阶段,使用另一个语言模型(“推理模型”),它既可以在零样本(zero-shot)模式下工作,也可以针对特定任务进行微调。
整合过程如下:
- 查询增强:将原始问题(q)与M个生成的知识片段(km)中的每一个依次结合。最终会创建M+1个增强后的查询(包括不带知识的原始问题)。
- 评估与选择答案:推理模型为每个增强后的查询评估每个可能答案选项(a)的条件概率。最终答案是至少在一个查询中获得最高概率评估的那个选项。
这种两阶段机制引入了一种元认知过程:“在回答之前,先思考并阐述你对这个主题的了解。”
有效性与测试结果
GKP的有效性在一系列用于评估常识推理的学术基准测试中得到了验证。与基线方法相比,该方法在性能上表现出显著提升。
| 基准测试名称 | 任务 | 基线模型准确率 (%) | 使用GKP的准确率 (%) | 提升 (%) |
|---|---|---|---|---|
| NumerSense | 数字常识 | 64.05 | 72.47 | +8.42 |
| CommonsenseQA | 通用常识 | 39.89 | 47.26 | +7.37 |
| CommonsenseQA 2.0 | 通用常识 | 70.20 | 73.03 | +2.83 |
| QASC | 科学常识 | 76.74 | 80.33 | +3.59 |
最大的提升出现在零样本(zero-shot)模式下,这证明了GKP能够在无需额外微调的情况下有效激活模型的内部知识。
与其他技术的比较分析
GKP vs. Chain-of-Thought (CoT) - GKP 与思维链 (CoT) 的对比
GKP与思维链(Chain-of-Thought, CoT)之间的关键区别在于所生成信息的类型:
- GKP 生成陈述性知识——关于世界的事实、定义、断言(“是什么”)。它为模型提供了额外的上下文。
- CoT 生成程序性知识——逻辑步骤、计算过程、推理序列(“如何做”)。它为模型提供了推理路径。
因此,GKP提供了事实基础,而CoT则提供了逻辑推理结构[3]。
GKP vs. Retrieval-Augmented Generation (RAG) - GKP 与检索增强生成 (RAG) 的对比
与GKP不同,检索增强生成(Retrieval-Augmented Generation, RAG)方法使用外部的、非参数化的知识源。
- GKP 使用模型在训练期间学到的内部知识。它促使模型“回忆”起已经知道的内容。
- RAG 使用来自数据库、文档或互联网的外部知识。它促使模型在外部世界中“搜索”信息。
GKP与RAG之间的选择取决于具体任务:如果所需知识是众所周知的,并且在训练数据中有很好的体现,那么GKP会很有效;而对于高度专业化、最新的或专有数据,RAG则是不可或缺的。
局限性与风险
- “幻觉”问题:GKP的主要风险在于可能生成不正确的事实。如果在第一阶段模型生成了错误的陈述,那么在第二阶段它将被视为事实,从而导致一个自信但完全错误的答案。
- 计算成本:该方法需要多次调用LLM(单个查询需 M+1 次调用),与标准提示相比,这显著增加了响应时间(延迟)和使用成本。
- 提示开发复杂性:GKP的有效性在很大程度上取决于少样本示例的质量,而创建这些示例是一项复杂且耗时的工作。
演进与混合方法
GKP中蕴含的思想催生了更复杂、更可靠的提示技术的发展,例如:
- Hint-before-Solving (HSP):作为GKP的直接思想继承者,它将“先知识,后行动”的两阶段原则应用于CoT中更复杂的推理过程,而不仅仅是简单的回答[4]。
- Verify-and-Edit (VE):一个混合框架,旨在解决GKP和CoT中的“幻觉”问题。VE首先生成一个推理链(如CoT),然后利用外部搜索(如RAG)自动验证关键事实,并在生成最终答案之前编辑推理过程[5]。
链接
参考文献
- 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
注释
- ↑ 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]