提示词工程技术
类比提示
“类比提示”利用类比推理的概念,鼓励模型生成自己的例子和知识,从而实现更灵活和高效的解决问题。
后退提示
“后退提示”专注于抽象,引导模型推导出高级概念和原理,进而提高其推理能力。
使用一个基本的数学问题来展示“后退提示”技术:
Original Question: If a train travels at a speed of 60 km/h and covers a distance of 120 km, how long will it take?
Options:
3 hours / 2 hours / 1 hour / 4 hours
Original Answer [Incorrect]: The correct answer is 1).
Stepback Question: What is the basic formula to calculate time given speed and distance?
Principles:
To calculate time, we use the formula:
Time = Distance / Speed.
Final Answer:
Using the formula, Time = 120 km / 60 km/h = 2 hours.
The correct answer is 2) 2 hours.
动态少样本
少样本学习—为基础模型提供几个任务和响应的示例,使模型能够迅速适应特定领域并学会遵循任务格式。有了足够的可用数据,可以为不同的任务输入选择不同的少样本示例,这种方法称为使用动态少样本示例。该方法利用一种机制根据其与待处理情况的相似度来确认示例。给定一个测试示例,使用k-NN聚类在嵌入空间中选择语义上相似的k个训练示例。具体来说,首先使用OpenAI的text-embedding-ada-002
模型对候选示例进行嵌入表示以进行少样本学习。然后,对于每个测试问题x,从训练集中检索其嵌入空间中最近的k个邻居x1、x2、...、xk(根据text-embedding-ada-002的嵌入空间中的距离)。这些示例—在嵌入空间中与测试问题最相似的示例—最终被记录在提示中。
自动生成的思维链 (CoT)
思维链 (CoT) 使用自然语言语句,比如“我们一步一步地思考”,明确地鼓励模型生成一系列中间推理步骤。这种方法被发现显著提高基础模型进行复杂推理的能力。
多数投票集成
集成学习是指将多个算法的输出组合在一起,以产生比任何个别算法更好的预测性能。一种简单的技术是使用多种提示或者使用多种温度来生成单个提示,并报告集成成员中最频繁出现的答案。对于多项选择题,我们使用一种增加集成多样性的进一步技巧,称为选择打乱
,即在生成每个推理路径之前打乱答案选项的相对顺序。然后选择最一致的答案,即最不受选择打乱敏感的答案,从而增加了答案的鲁棒性。
其他利器
OpenAI官方提示词教程与实战指南修正版
GPT Engineer和Reflexion—构建AI工程和prompt的利器
Awesome-Prompt-Engineering 最全的AI prompt知识库之一
一个包含了所有GPT AI代理系统提示词的资源库—chatgpt_system_prompt
可构建和定制您自己的AI城镇的热门项目—AI Town
crewAI—用于编排角色扮演的AI agent(超级智能体)
幻觉概述
LLM 中的幻觉是指生成不准确、荒谬或脱离实际的文本,这对使用这些模型的组织来说,可能带来潜在风险和挑战。
与数据库或搜索引擎不同,LLM缺乏准确引用其来源的能力,因为它们通过对提供的提示进行推断来生成文本。这种推断可能导致与训练数据不一致的幻觉输出。
幻觉的起因
数据集存在偏差
幻觉的一个重要原因源于训练数据中的源文本与参考答案之间的偏差(source-reference divergence)。这种偏差可能是由于启发式数据收集方法或某些自然语言生成 (NLG) 任务的固有属性所导致的。因此,生成的文本可能缺乏现实依据,并偏离提供的源文本。
“越狱”提示词
导致幻觉的另一个因素是 LLM 可能会被“越狱”提示词攻击,使用者通过越狱提示词操纵模型的行为或输出超出其预期能力的结果。
数据集不完整
此外,LLM 使用的庞大且多样化的数据集也引入了幻觉的可能性。这些数据集可能包含不完整、矛盾甚至错误的信息,对 LLM 的响应产生重大影响。LLM 只依赖于它们的训练数据,缺乏对外部真实世界的知识。因此,它们的输出可能包含不相关或未询问的细节,导致准确性和一致性崩溃。
训练过拟合
过拟合是机器学习中的一个常见挑战,也会导致 LLM 产生幻觉。过拟合出现在模型与训练数据过于接近时,这使得模型难以生成超出其所学习模式的原创文本。这种新颖性不足导致幻觉性反应,无法准确反映预期输出。
提示词模糊
此外,模糊或细节不足的提示词也可能导致幻觉。LLM 在面对模糊输入时可能會根据所学习的模式进行猜测。这种在缺乏提供信息的基础上生成答案的倾向,可能会导致产出捏造或毫无意义的文本。
幻觉的类型
LLM 中的幻觉可以以各种形式表现出来,每个形式都突出了生成准确可靠的文本所面临的挑战。通过对这些幻觉进行分类,我们可以了解 LLM 偏离预期输出的不同方式,并利用这些信息克服其局限性,并改善客户体验。让我们一起探索这些常见的幻觉类型。
句子矛盾
LLM 有可能生成前后矛盾的句子,破坏内容的整体一致性。这些句子矛盾对于维护逻辑流程来说是重大挑战,并让用户感到困惑。近期针对 LLM 自相矛盾幻觉的研究表明,LLM 自相矛盾频率很高,其中 ChatGPT 的发生率为 14.3%,GPT-4 的发生率为 11.8%。
提示矛盾
提示矛盾指的是 LLM 生成的句子与使用的提示矛盾。提示矛盾会削弱 LLM 输出的可信度,因为它们破坏了与提供的输入所需的一致性。
事实矛盾
LLM 拥有生成虚构信息的能力,并错误地将其呈现为事实。事实矛盾发生在 LLM 生成不准确陈述并错误地将其呈现为可靠信息时。这些幻觉具有深远的影响,因为它们会导致错误信息的传播并削弱 LLM 生成内容的可信度。例如,一项针对 ChatGPT 幻觉的研究表明,ChatGPT 3.5 的总体成功率约为 61%,正确回答了 33 个提示,同时对 21 个提示词提供错误答案,导致幻觉率为 39%。类似地,ChatGPT 4 的总体成功率约为 72%,准确回答了 39 个提示,幻觉率为 28%。
无意义的输出
有时,LLM 会生成无意义的文本,无法传递任何相关或可理解的信息。
无关输出或随机输出
LLM 还可能生成无关或随机的信息,这些信息与输入或期望输出无关。这些幻觉导致生成额外的并且可能具有误导性的内容。
幻觉的应对策略
为了应对 LLM 幻觉带来的挑战,整合生成式 AI 的能力,可以采用各种策略,以尽量减少出现不准确或误导性答案的情况。
通过以下方法,可以提高 LLM 输出的可靠性、准确性和可信度:
预处理和输入控制
-
限制响应长度:通过设置生成响应的最大长度,可以最大限度地减少出现无关内容的可能性。这可以确保生成的文本保持一致,并为用户提供个性化和更好的体验。
-
控制输入:提供特定的样式选项或结构化提示,而不是提供可自由输入的文本框,可以引导模型的生成过程。这有助于缩小可能输出的范围,并通过更明确的指导来降低出现幻觉的可能性。
模型配置和结构
-
调整模型参数:生成的输出受到各种模型参数的影响,包括 temperature、frequency penalty、presence penalty 和 top-p。较高的 temperature 会增加随机性和创造性,而较低的值会使输出更加确定。增加 frequency penalty 会鼓励模型更加保守地使用重复的词元。类似地,较高的 presence penalty 会增加生成尚未包含在生成文本中的词元的可能性。top-p 参数通过设置词语选择的累积概率阈值来控制响应多样性。总而言之,这些参数提供了微调的灵活性,并可以在生成多样化的响应和确保准确性之间找到平衡点。
-
使用审核层:使用审核系统(如额外的控制层)有助于过滤掉模型生成的不适当、不安全或无关的内容。
学习和改进
-
建立反馈、监控和改进机制:为了确保 LLM 输出的可靠性,应该建立评估、反馈和改进机制。这包括根据用户反馈和互动进行提示改进和数据集调整,还可以进行严格的对抗性测试,以识别漏洞和潜在的幻觉来源。纳入人工验证和审查过程,以及持续监控模型性能并更新,是减轻幻觉和改善客户体验的关键步骤。
-
适配特定领域:为了提高响应准确性并减少幻觉,可以向 LLM 提供特定领域的知识。用特定领域的信息增强知识库可以使模型回答查询并生成相关的响应。此外,可以使用特定领域的数据对预训练模型进行微调,将其与目标领域对齐来减少幻觉。
上下文和数据增强
-
整合外部数据库:在预测过程中访问相关外部数据源可以丰富模型的知识。通过利用外部知识,模型可以生成更准确、更适合上下文且更难出现幻觉的响应。
-
采用上下文提示工程: 设计包含明确指示或上下文线索的提示,可以帮助指导 LLM 生成过程,有利于模型生成更可靠、更一致的响应。
这些策略共同旨在通过控制输入、微调模型、整合用户反馈以及增强模型的上下文和知识来减少 LLM 中的幻觉。通过这些方法,可以提高生成响应的可靠性、准确性和可信度。