LLM 提示工程技巧总结:减少幻觉与提升一致性方法
截止至今,关于大语言模型(LLM)的优化与技巧层出不穷,几乎每个月都有新的技术和方法论被提出。随着模型规模的扩大,虽然生成能力显著增强,但幻觉、逻辑不一致及知识时效性等问题依然突出。因此,本篇主要介绍在各种不同情境下,LLM 的各种 Prompt Engineering 技巧。每篇都附上相关技术原理与架构图解,方便读者快速检阅,希望能帮助大家深入了解 Prompt Engineering 领域的最新进展及其发展趋势。
3. 减少幻觉现象 (Reduce Hallucination)
减少幻觉现象是 LLM 应用中的一个关键挑战。幻觉指的是模型生成的内容与事实不符或完全虚构的情况。技术如检索增强生成 (RAG)、ReAct Prompting、验证链 (CoVe) 等,都是为了减少 LLM 产生无依据或不准确输出的情况。这些方法通过结合外部信息检索、增强模型的自我检查能力或引入额外的验证步骤来实现。
3.1 检索增强生成 (Retrieval Augmented Generation, RAG)
虽然 LLM 在文本生成领域已经取得了突破性的进展,但它们对有限且固定训练数据的依赖,限制了它们在需要广泛外部知识的任务上提供准确答案的能力。传统的提示技术无法克服这一限制,而且需要进行成本高昂的模型重新训练。面对这一挑战,Lewis et al. (2020) 提出了一种称为 RAG 的创新方法,它通过将资讯检索技术无缝融入提示过程中,提供了一个全新的解决方案。
RAG 方法分析用户的输入,生成针对性的查询,在一个预建的知识库中检索相关资讯,然后将检索到的资讯片段整合进原始提示,为之增添背景上下文。这种方法不仅提升了答案的创新性和准确性,而且通过其灵活的特性,突破了传统模型的局限,为那些依赖于最新知识的任务带来了显著的改进。在开放域问答 (ODQA) 的标准测试中,RAG 模型超越了 seq2seq 模型和特定任务的架构,其准确匹配得分在 TriviaQA 数据集上达到了 56.8%,在 Natural Questions 数据集上达到了 44.5%。
在实际应用中,RAG 通常包含以下流程:
- 索引构建:将文档分块并嵌入向量数据库。
- 查询处理:将用户问题转化为向量查询。
- 检索:从向量库中召回最相关的 Top-K 片段。
- 生成:将检索结果作为上下文输入给 LLM 进行回答。

3.2 ReAct 提示法 (ReAct Prompting)
与传统研究将推理和行动视为独立元素的方法不同,Yao et al. (2022) 提出 ReAct 技术,在赋予 LLM 生成推理的同时,也给予其采取行动的能力。这种一体化的方法促进了推理与行动之间更强的协同作用,使模型在面对突发事件时,能够更加有效地拟定、跟踪及更新其行动计划。
ReAct 技术已被运用于多种语言处理和决策任务中,并在效能上超越了当前的先进方法。特别是在问题解答 (HotpotQA) 和事实核查 (Fever) 任务中,ReAct 通过与 Wikipedia API 交互,有效地应对了信息的虚构与错误传播问题,提供了更加清晰的解决方案路径。在如 ALFWorld 和 WebShop 这样的互动式决策任务中,ReAct 同样展现了优异的表现,成功率分别达到 34% 和 10%,这些成绩是在最小上下文范例输入的条件下实现的。
ReAct 的核心在于交替执行两个模块:
- Thought:思考当前状态和下一步计划。
- Action:调用工具获取环境反馈。

3.3 验证链 (Chain-of-Verification, CoVe) 提示法
为了减少幻觉现象,Dhuliawala et al. (2023) 提出了一种称为 CoVe 的方法。这个方法主要有四个步骤:
- 生成初步答案:让模型基于初始提示生成一个草稿答案。
- 规划验证问题:针对初步答案中的关键事实点,设计一系列验证性问题。
- 独立解答这些问题:利用模型再次生成对这些验证问题的回答,确保独立性。
- 根据验证的结果来修正初步答案:综合所有验证结果,修正原始答案中的错误或遗漏。
CoVe 模仿人类进行验证的思维过程,提升了大语言模型输出的一致性与准确性。在处理列表问题、问答和长文本生成等任务时,CoVe 有效降低了虚构信息的发生,同时确保了提供信息的真实性。通过精心设计的验证问题,模型能够辨识自身的错误并进行修正,从而显著提高了准确率。

3.4 笔记链 (Chain-of-Note, CoN) 提示法
检索增强型语言模型 (RALMs) 通过整合外部知识以减少信息虚构现象,但这些外部信息的准确性不总是正确,有时候甚至可能会误导答案。面对判断现有知识是否充分的挑战,标准 RALMs 往往在缺乏确切信息时难以回答'不知道'。为了解决这些问题,Yu et al. (2023) 提出了一个新方法,旨在通过有效管理噪音较大和不相关的文档,以及准确处理未知情境来增强 RALMs 的稳健性。
CoN 方法通过系统性地评估文档的相关性,专注于筛选出关键且可靠的信息,同时排除那些无关的内容。这使得模型在给出答案时,能够更加精确且与上下文紧密相关。在多个开放域问答数据集上的实验证明,CoN 方法显著提高了对于含有较大噪音文档的准确匹配得分,平均提升了 7.9 分,并将对于超出预训练知识范围的问题的拒答率提高了 10.5 分,从而在性能和可靠性上获得了明显的提升。

4. 用户界面与交互优化 (User Interface)
在这章节中,我们将探讨如何通过 Active-Prompt 技术增强与使用者的交互。这涉及到设计能够激励使用者,使其提供更有帮助的反馈或信息的提示,从而实现更高效和满意的交互体验。
4.1 主动提示 (Active Prompting)
Diao et al. (2023) 开发的 Active Prompting,旨在使 LLM 更有效地适应各种复杂的推理任务。这个方法引入了针对任务的范例提示和思维链 (CoT),来提升模型在复杂问答中的表现。与传统依赖固定样本的 CoT 不同,Active Prompting 采用了一种新策略,专注于识别并选择对模型进步最有帮助、最具不确定性的问题进行标注。
这一方法得到了基于不确定性的主动学习策略的启发,透过评估不同的不确定性指标来优化问题的选择过程。在八项复杂推理任务的表现上,Active Prompting 显著优于自我一致性策略,在 text-davinci-002 和 code-davinci-002 模型上分别达到了平均 7.0% 和 1.8% 的提升,展示了其领先的技术效果。
Active Prompting 的关键在于动态选择样本,而不是静态使用 Few-Shot 示例。它允许系统在运行过程中不断收集高价值的数据点,从而持续优化模型性能。

5. 微调与优化 (Fine-Tuning and Optimization)
这部分将介绍如何优化模型的表现。这包括使用机器学习技术来发现和应用最有效的提示策略,从而进一步提升 LLM 的效率和准确性。
5.1 自动提示工程师 (Automatic Prompt Engineer, APE)
一般而言,为 LLM 设计有效的 Prompts 需专家细心打造,这是一项复杂的任务。然而,Zhou et al. (2022) 提出的 APE 技术,开启了自动创建并选择指令的新途径。APE 技术突破了手动和固定提示的限制,能够针对特定任务动态生成并选出最有效的提示。
这一方法先分析用户输入,设计一系列候选指令,再透过强化学习选择最优提示,并能即时适应不同情境。经过在多样的 BIG-Bench 测试套件和 CoT 任务上的广泛测试,APE 展现了显著成效,在大部分情况下 (19/24 个任务) 胜过了人工编写的 Prompts,显著增强了 LLM 的推理性能。APE 技术的创新性进展,为 LLM 处理更广泛任务提供了更高效、更灵活的方式,最大化发挥了它们在各种应用场景中的潜力。
APE 的工作流通常包括:
- 初始化:定义任务描述和目标。
- 生成:使用 LLM 生成多个候选提示。
- 评估:在验证集上测试每个提示的效果。
- 选择:保留表现最好的提示用于最终部署。

6. 基于知识的推理与生成 (Knowledge-Based Reasoning and Generation)
6.1 自动推理与工具使用 (Automatic Reasoning and Tool-use, ART)
LLM 在处理复杂任务时,因推理能力有限和无法利用外部工具而受限。针对这一问题,Paranjape et al. (2023) 提出的 ART 技术,赋予了 LLM 透过多步骤过程进行推理并无缝整合外部知识的能力。
ART 技术有效地补充了推理的不足,使 LLM 能够处理更复杂的问题,远超简单的文本生成。通过整合外部专业知识和计算工具,ART 为 LLM 带来了前所未有的多功能性和实用性,使它们能在科学研究、数据分析和决策支持等领域发挥作用。ART 通过结构化程序自动化推理步骤,免除了繁琐的手动设计需求,其动态工具整合能力确保了与外部工具的顺畅协作。
在 BigBench 和 MMLU 这两个挑战性基准的实证测试中,ART 展示了卓越的效果,不仅超越了传统引导技巧,在某些情况下甚至达到了与精心设计的示范相媲美的水平。

7. 提升一致性与连贯性 (Improving Consistency and Coherence)
7.1 对比思维链 (Contrastive Chain-of-Thought, CCoT) 提示法
传统的 CoT 技术,经常漏掉了从错误中学习的重要环节。为解决此,Chia et al. (2023) 提出 CCoT 技术。这种技术通过同时提供正确与错误的推理示例来引导模型,就像是在探索一张既标示正确路径又指出错误弯道的地图,展现了 CCoT 的独到之处。
这种双重视角的方法在 SQuAD 和 COPA 等推理基准测试中得到了验证,促使 LLM 进行逐步推理,在战略性和数学推理的评估中相比传统 CoT 取得了 4% 到 16% 的提升。当与 self-consistency 结合使用时,性能进一步提升了约 5%。然而,这项技术仍面临一些挑战,如如何为不同问题自动生成对比示例,以及其在推理之外的其他自然语言处理任务中的适用性问题。
CCoT 的实施建议:
- 构造负样本:故意生成包含常见逻辑谬误的推理路径。
- 混合训练:在提示中同时展示正例和反例。
- 反馈循环:根据模型对反例的反应调整后续提示。

8. 实施指南与最佳实践
在实际项目中应用上述技巧时,建议遵循以下原则:
- 明确任务边界:确定任务是知识密集型还是推理密集型,据此选择 RAG 或 CoT。
- 迭代优化:Prompt Engineering 是一个迭代过程,应持续监控输出质量并调整提示词。
- 成本控制:RAG 和 CoVe 会增加 Token 消耗,需权衡延迟与准确性。
- 安全合规:在使用外部工具和知识库时,注意数据隐私和合规性要求。
9. 总结与展望
本文总结了 LLM 提示工程领域的多种关键技术,涵盖了从减少幻觉到提升推理能力的各个方面。随着技术的发展,未来的 Prompt Engineering 将更加自动化和智能化。例如,结合强化学习自动优化提示结构,或者利用多模态信息进一步增强检索效果。开发者应持续关注社区动态,灵活运用这些技巧,以构建更可靠、更强大的 AI 应用系统。
通过深入理解 RAG、ReAct、CoVe、CoN、Active Prompt、APE、ART 及 CCoT 等方法的原理与应用场景,我们可以更好地驾驭大语言模型,解决实际问题,推动人工智能技术在各行各业的落地生根。