目录
3.4 Prompt 技巧
基于上下文学习和思维链等Prompt工程技术,进一步提升大语言模型生成质量的Prompt技巧,包括合理归纳提问、适时运用思维链(CoT)、巧妙运用心理暗示等。应用这些技巧可引导模型生成更精准、符合预期的内容,提升其在实际应用中的表现。
.
3.4.1 规范Prompt 编写
经典的Prompt 通常由任务说明,问题,上下文,输出格式等部分中的一个或几个组成。
图3.16: 经典的Prompt示例
1)任务说明要明确
明确的任务说明是构建有效Prompt的关键要素之一。一个清晰、具体的任务说明能够确保模型准确理解任务要求,并产生符合预期的输出。
为确保任务说明的明确性,需做到以下几点:
使用明确的动词,如“判断”、“分类”、“生成”等,避免模糊动词;
使用具体的名词定义任务输出或目标,如情感分类中的“积极”和“消极”;
任务说明应简洁明了,避免冗长复杂;
结构化布局,将任务说明置于较长Prompt的开头和结尾,以突出关键信息。
2)上下文丰富且清晰
在Prompt设计中,上下文对模型回答的准确性至关重要。
一是上下文的丰富性,其内容的多样性和相关性能够提升模型的理解和回答准确率,可以包括与问题直接相关的背景信息、具体的演示示例,或是对话的连续性内容。
二是上下文的清晰性,要求上下文信息必须与问题紧密相关,避免包含冗余或不必要的信息,直接指向任务的核心,减少模型在处理信息时的混淆和误解。
3)输出格式要规范
规范的输出格式对模型输出的可用性和准确性至关重要。指定明确的输出格式可使其结构化,便于下游任务提取和使用内容。常用格式有JSON、XML、HTML、Markdown、CSV等,各具用途和优势。
为确保输出格式的规范性,有以下措施:
明确指定输出格式:在Prompt中指出模型应使用的格式,如“请以JSON格式返回结果”,并选择广泛接受且易于处理的格式(如JSON、CSV),便于解析和数据交换。
提供输出格式示例:在Prompt中给出具体示例,如在JSON中明确关键字,帮助模型理解预期的输出结构。
4)排版要清晰
清晰的排版对模型理解Prompt至关重要,能助其准确捕捉任务关键信息,提高执行准确性和效率。复杂排版易致信息模糊,影响输出质量。清晰排版需使用合适分隔符和格式化技巧,明确区分Prompt各部分。
为了确保Prompt的排版清晰,有以下措施:
使用一致的分隔符:选一种或几种分隔符(如“#”、“###”、“—”等)区分Prompt不同部分。
合理使用空白和缩进:增加空白行和适当缩进,增强可读性,帮助模型区分内容块。
清晰的标题和子标题:为每个部分提供清晰的标题或子标题,使模型快速识别主题。
.
3.4.2 合理归纳提问
在与大语言模型交互时,提问质量影响信息获取的效率和深度。精心设计的提问能明确需求,引导模型聚焦问题核心,获得精准且有价值的答案。
本节介绍“合理归纳提问”以提升交互质量,重点讲解“复杂问题拆解”和“追问”两个高级策略。它们能帮助理解问题本质,提高获取信息和解决问题的效率,使模型输出更准确全面,满足需求。
1)复杂问题拆解
在处理复杂问题时,我们可以将问题分解为更小、更易于理解的子问题,并逐一解决。
这一过程包括两个关键步骤:分步引导和归纳总结。
分步引导:把复杂问题细化为多个子问题,引导模型逐一深入分析和回答,确保每个子问题得到详尽解答,为归纳总结奠定基础。
归纳总结:汇总各子问题答案,综合形成全面回答,把握问题各方面,确保最终答案准确完整。
2)追问
在对话中,用户通过追问可使大语言模型输出更符合心意。这种交互能加深理解、丰富讨论,更精准地表达用户想法,指导模型输出更贴近需求。
追问依形式和目的分为三种:深入追问、扩展追问、反馈追问。
深入追问:用户根据模型输出继续发问,挖掘特定话题的深层信息,适用于需要详尽解释的场景,引导模型提供更细致深入的信息,加深对特定领域的理解。
扩展追问:在模型回答基础上,要求提供更多相关信息或例子,拓宽讨论广度,收集更多数据、例证或选项,帮助用户获得更广泛的视角,增加对话题的理解,适用于需要全面了解主题的场景。
反馈追问:当模型输出不符合预期或存在错误时,用户提供反馈,指出问题并请求更正或澄清,通过反馈机制提升模型准确性,确保信息正确性,提高对话质量。
.
3.4.3 适时使用CoT
1)何时使用CoT
使用CoT需综合考虑任务类别、模型规模和模型能力:
任务类别:CoT适用于算术、常识和符号推理等复杂推理任务,能引导模型生成中间推理步骤,提升正确率。但对于情感分类、常识问答等简单问题,标准提示方法已足够,使用CoT可能适得其反。
模型规模:CoT在参数量超千亿的巨型模型上效果显著,如PaLM和GPT-3。但在小模型上可能生成逻辑不连贯的思维链,甚至不如标准提示方法。
模型能力:未进行推理指令微调的模型(如早期GPT-3、LLaMA2-13B-Base等),CoT提示可激发其推理能力;而已微调的模型(如ChatGPT、GPT-4、LLaMA2-13B-Chat等)即使无CoT指令,也能生成清晰推理步骤,有时无CoT指令反而性能更佳,可能因已内化CoT指令。
2)灵活使用CoT
灵活使用CoT需根据任务需求和模型特性调整其使用方式,主要体现在调整详细程度和使用不同形式:
调整详细程度:
- 根据用户需求指定CoT输出的详细程度。简单计算问题可直接给出结果,复杂推理问题需通过样例引导展示完整推理步骤。
使用不同形式:
Zero-Shot CoT和Auto CoT:在无需特定领域知识、仅需逻辑推理和逐步分析的任务中,通过“让我们一步一步思考”这种提示词引导模型以CoT形式回答。
Self-Consistency:处理需高准确度和可靠性的任务时,要求模型生成多个回答并筛选出一致性最强的答案,如编写代码时确保逻辑一致。
ToT和GoT:对于包含创意思维的任务,利用ToT和GoT在多个思维路径中探索和选择,如创作故事时选取最有趣或合理的情节发展方向。
.
3.4.4 善用心理暗示
在硅谷,有句创业金句“Fake it till you make it”(假装它直到你成功)。含义是先吹嘘想法吸引资本和人才,再努力实现目标。它源于积极心理暗示方法,即通过模仿自信乐观,可在生活中实现这些品质。积极心理暗示也可用于激发大语言模型潜力,可通过角色扮演和情景代入传达给模型。
角色扮演:
- 通过Prompt指导大语言模型扮演特定角色(如数据科学家、诗人、律师等),可显著改善其与角色相关的技能。在指令中包含具体属性、职责、知识和技能等信息,能引导模型输出更准确、更高质量的回答
情景代入:
- 将大语言模型置于特定的“情景”或“环境”中,可影响其生成的文本内容和风格。情景代入是将特定情境下的专业知识、历史背景等信息嵌入到模型的响应中,使其能够深入理解并反映特定情境下的文化社会背景与现实环境,从而生成更加丰富和有深度的回答。
.
其他参考:【大模型基础_毛玉仁】系列文章
声明:资源可能存在第三方来源,若有侵权请联系删除!