提示工程中的10个设计模式
我们可以将提示词定义为向大型语言模型(Large Language Model,LLM)提供的一个查询或一组指令,这些指令随后使模型能够维持一定程度的自定义或增强,以改进其功能并影响其输出。我们可以通过提供细节、规则和指导来引出更有针对性的输出,从而使提示词更加具体。提示词越具体,输出就越精确,关于提示工程的更多信息可以参考《解读提示工程(Prompt Engineering)》以及《Agent 应用于提示工程》。
而设计模式可以理解为对常见问题的通用可重复解决方案。每个设计模式绝不是一个可以直接应用于问题的完整解决方案,而是一个可以用来更好地构建应用最佳实践的解决方案的模板或框架。设计模式在面向对象编程领域应用广泛,在本文中,老码农尝试总结了提示工程中的10个常见设计模式。
1. 人物角色模式
人物角色模式是一种通过向语言模型注入特定的人格或说话的语气来实现。通过定义不同的角色,我们能够控制生成文本的风格和方式,以适应各种不同的应用场景。以下是一些示例:
客户支持:在客户支持领域,一个友好、耐心的角色可能更有效地与客户进行沟通,解决问题并提供帮助。例如,当客户提出问题时,语言模型可以以礼貌和亲切的语气回应,并提供清晰明了的解决方案,从而增强客户满意度。
故事讲述:在虚构故事或创意写作中,不同的角色可能需要具有不同的语气和情感表达。例如,一个幽默风趣的角色可能会使用幽默感和夸张来讲述故事,而一个严肃的角色可能会使用严肃和沉稳的语调。
教育内容:在教育领域,语言模型可以扮演各种不同的角色,以更好地适应不同学习者的需求和学习风格。例如,对于儿童教育内容,模型可以采用轻松、活泼的语气来吸引他们的注意力,而对于专业技术课程,模型可以采用更正式、严谨的语气来传递知识。
通过人物角色模式,语言模型能够以更加灵活、个性化的方式生成文本,从而提高与用户的互动体验,并在各种应用场景中发挥更大的作用。
2. 食谱模式
类似于烹饪食谱,食谱模式提供了一种逐步指导大模型生成文本的方法。这种模式对于需要详细和连续指令的任务非常有价值,例如教程、过程文档或制作装配指南。以下是部分示例:
教程:想象一下,正在写一篇教程文章,向读者介绍如何学会某项技能,比如学习编程或学习绘画。通过食谱模式,你可以提供清晰的步骤和指导,使读者能够逐步理解和实践所学内容,从而更容易地掌握新技能。
过程文档:在工业生产或科学实验中,经常需要编写详细的过程文档,以记录和共享操作步骤。利用食谱模式,你可以逐步描述每个操作步骤,确保读者能够准确地重现操作过程,从而提高工作效率并减少错误发生的可能性。
制作装配指南:在制造业中,制作装配指南对于工厂工人来说至关重要。你可以为每个装配步骤提供详细的说明,包括所需工具、材料和操作步骤,以确保产品能够正确组装并符合质量标准。
通过这种模式,大模型可以提供连贯性和结构性的文本输出,使读者能够轻松理解和实践其中的指导,从而在各种应用场景中实现更高效的工作和学习。
3. 反向查询模式
在反向查询模式中,大模型被要求以一种特殊的方式工作:首先,它接收一个输出或响应作为启动条件,然后被要求生成最适合的查询或输入,以产生特定的输出。这种技术不仅仅可以用于问答场景,还可以应用于各种其他情境中。以下是一些示例:
智能助手:假设你正在与智能助手对话,你问了一个问题,但是你想深入了解更多相关信息。在这种情况下,反向查询模式可以应用。你的智能助手可以根据你的问题生成一个响应,然后询问你是否想了解更多相关内容,从而引出更深入的查询。
搜索引擎优化:在网页内容创作中,反向查询模式可以用于优化搜索引擎结果。假设你是一个网站管理员,希望你的网站在特定的搜索查询中排名更高。你可以使用反向查询模式来创建内容,以确保网站在搜索引擎中出现在相关的查询结果中。
个性化推荐系统:在电子商务或内容推荐领域,反向查询模式可以用于个性化推荐系统。系统可以根据用户的行为和偏好生成一些输出,然后根据这些输出生成相应的查询,以提供更加个性化和精准的推荐。
通过反向查询模式,大模型能够根据特定的输出生成相应的查询或输入,从而更好地满足用户的需求,并提高系统的性能和用户体验。
4. 输出自动化模式
输出自动化模式是一种利用指示词来规范化大模型生成结构化或格式化输出的方式,以实现重复任务的自动化。举例来说,它可以用于以下情形:
报告生成:在企业环境中,每天都需要生成销售报告。通过输出自动化模式,可以将销售数据输入到语言模型中,然后生成预定义格式的报告,省去了人工编写报告的时间和劳动。
摘要生成:在学术研究中,需要从大量文献中提取信息并生成摘要。利用输出自动化模式,可以令大模型根据用户给定的关键词或主题自动生成文献摘要,极大地提高了处理大量文本的效率。
响应生成:在客户服务领域,经常需要对客户的常见问题进行快速响应。通过输出自动化模式,可以根据问题的关键词或分类,让语言模型自动生成适当的响应,从而提高客户服务的效率和准确性。
代码编写:对于开发人员来说,编写重复性代码是一种常见的任务。输出自动化模式可以被用来指示语言模型根据用户选择的首选编码语言自动生成代码段,从而加速开发过程并减少编码错误。
输出自动化模式特别是在涉及数据分析、内容生成和软件开发等领域中,它能够极大地提高工作效率和准确性。
5. 思维链模式
思维链(CoT)模式是一种指导大模型按照特定的推理或论证路径进行生成的技术。这种模式对于创作有说服力的文章、评论或者复杂的讨论非常有价值,因为逻辑流是构建其可信度和可理解性的关键要素。以下是一些示例:
评论文章:在撰写评论文章时,必须确保论点的逻辑连贯性和严谨性。思维链模式可以指导语言模型按照辩论的逻辑结构生成论据、反驳和结论,从而使文章更具有说服力和逻辑性。
科学论文:在科学领域,论文必须以科学推理为基础,确保实验结果和结论的可信度和可重复性。思维链模式可以帮助语言模型按照科学推理的逻辑链条,从问题陈述到实验设计再到结果分析,生成符合科学标准的论文。
辩护词:在法律场景中,律师必须提供有力的辩护词以支持其客户。思维链模式可以引导语言模型按照法律逻辑生成辩护词,包括陈述事实、引用法律条文、提出论证和反驳对方观点,从而为案件提供强有力的辩护。
通过思维链模式,大模型可以按照逻辑思维的路径生成文本,使其更具有连贯性、说服力和可理解性,从而在各种领域中发挥重要作用。
6 图谱辅助模式
图谱辅助模式是一种利用已有知识来增强提示的方法,从而帮助大型语言模型生成更准确的输出结果。这种模式通过将知识图谱或领域专业知识与模型结合,以提供更多背景信息和上下文,从而改善模型的理解能力和输出质量。以下是部分示例:
医学诊断:在医学领域,图谱辅助模式可以用于帮助语言模型更好地理解临床病例或医学报告。通过结合医学知识图谱和患者历史记录,模型可以生成更精准的诊断建议或治疗方案。
智能客服:在客户服务领域,图谱辅助模式可以用于改善智能客服系统的响应质量。模型可以利用行业领域知识图谱,为客户提供更专业和准确的解决方案,从而提高客户满意度。
法律咨询:在法律领域,图谱辅助模式可以帮助语言模型更好地理解法律文书或案件细节。通过整合法律知识图谱和案例法规,模型可以提供更精准的法律建议或法律分析,帮助律师和法律专业人士更好地处理案件。
通过图谱辅助模式,大模型可以利用丰富的知识资源来增强其输出的准确性和可靠性,从而在各种应用场景中发挥更大的作用。
7. 事实检查模式
为了降低产生错误或误导信息的风险,事实检查模式促使大型语言模型根据可靠的外部来源或数据库验证其输出。这种模式鼓励大模型提供支持性证据来证明其答案的可信性,从而促进准确的结果。以下是一些示例:
新闻报道:在新闻领域,事实检查模式可以帮助语言模型验证新闻事件的准确性。模型可以引用可信的新闻机构或官方消息来源,以支持其报道的事实,从而减少虚假信息的传播。
学术论文:在学术写作中,事实检查模式可以确保语言模型引用了经过同行评审的研究或权威性数据,以支持其论述。这有助于确保论文的准确性和可信度。
医学咨询:在医疗领域,事实检查模式可以帮助语言模型核实医学信息的准确性。模型可以引用权威的医学期刊或医学数据库,以支持其提供的医学建议或解释,从而降低误导性信息的风险。
通过事实检查模式,大模型可以提供更加可靠和准确的输出,从而增强其在各种应用场景中的可信度和实用性。
8. 反射模式
反射模式鼓励大模型以批判性的视角评估其生成的文本。这种模式促使大模型审视其输出中存在的潜在偏见或不确定性。以下是一些示例:
社交媒体评论:在社交媒体上,语言模型可能被用于生成评论或回复。在反射模式下,模型应当反思其生成的评论是否存在歧视性言论或误导性信息,并尽可能避免这些问题。
新闻报道:在新闻报道中,语言模型可能被用于撰写文章或提供评论。在反射模式下,模型应当审视其生成的内容是否准确、客观,并且是否有可能受到外部因素的影响。
教育资料:在教育领域,语言模型可能被用于生成教育资料或解答问题。在反射模式下,模型应当考虑其生成的内容是否有益于学习,是否存在错误或者主观偏见,并且是否需要进一步的核查或修正。
通过反射模式,大模型可以更加自觉地评估其输出,避免不当的言论或误导性信息,并且提供更加负责任和可信的回答。
9.问题精炼模式
问题精炼模式是一种迭代方法,其中根据语言模型的反馈不断优化输入的查询或提示。通过分析模型对不同提示的响应,开发人员可以微调查询,从而提高模型的性能。以下是一些示例:
搜索引擎优化:假设你是一个网站管理员,你想通过搜索引擎优化来提高你的网站在搜索结果中的排名。你可以使用问题精炼模式来不断优化你的搜索查询,根据语言模型的反馈调整关键词、语句结构等,以提高你的网站在搜索引擎中的可见性。
语音助手:在语音助手应用中,用户可能会提出各种问题或指令。通过问题精炼模式,开发人员可以分析语言模型对不同查询的响应,然后调整用户界面或系统设置,以改善语音助手的准确性和响应速度。
自然语言处理应用:在自然语言处理应用中,例如聊天机器人或智能客服系统,问题精炼模式可以用来不断优化模型的响应。开发人员可以通过分析模型对用户不同问题的回答,然后对模型进行微调,使其更加智能和适应性更强。
通过问题精炼模式,开发人员可以与语言模型进行交互,不断改进模型的性能和效果,从而提供更好的用户体验和更准确的结果。
10.部分拒绝模式
有时,人工智能模型在面对复杂的查询时可能会回答“我不知道”或拒绝生成输出。为了更有效地处理这种情况,引入了“断路拒绝模式”。这种模式的目标是训练模型在面对困难或无法准确回答的情况下,能够提供有用的答复或部分答案,而不是直接拒绝。以下是一些示例:
聊天机器人:当用户向聊天机器人提出一个超出其知识范围的问题时,传统的做法可能是简单地回答“我不知道”。然而,通过断路拒绝模式,聊天机器人可以尝试根据已有的信息或上下文提供相关的信息或建议,即使是部分答案也能为用户提供一些帮助。
搜索引擎:当搜索引擎无法找到与用户查询完全匹配的结果时,通常会显示一条消息,说明未找到结果。然而,采用本模式,搜索引擎可以尝试根据用户查询的意图提供相关的内容,即使没有完整的答案,也能提供一些相关信息或指导。
语音助手:在语音助手应用中,当用户提出一个超出语音助手知识范围的问题时,语音助手可以采用断路拒绝模式,尝试提供有用的提示或建议,以帮助用户更好地理解或解决问题,而不是简单地回答“我不知道”。
通过该模式,人工智能模型可以更加灵活和智能地处理复杂的情况,提高其适应性和用户体验。
没有结束
提示工程的设计模式是一种强大的工具,能够更好地发挥大模型的能力。本文介绍的这些模式可以帮助提高给定大模型的整体质量。通过利用这些模式,我们可以定制特定用例的输出,识别和纠正错误,并优化提示以获得更准确和更富有见地的响应。随着人工智能技术的不断发展和新模式的涌现,提示工程仍可能是创造更可靠和更智能的人工智能会话系统的关键因素之一。
【关联阅读】
在大模型RAG系统中应用知识图谱
大模型应用的10种架构模式
面向知识图谱的大模型应用
让知识图谱成为大模型的伴侣
如何构建基于大模型的App
Qcon2023: 大模型时代的技术人成长(简)
论文学习笔记:增强学习应用于OS调度
LLM的工程实践思考
大模型应用设计的10个思考
基于大模型(LLM)的Agent 应用开发
解读大模型的微调
解读ChatGPT中的RLHF
解读大模型(LLM)的token
解读提示词工程(Prompt Engineering)
解读Toolformer
解读TaskMatrix.AI
解读LoRA
解读RAG
大模型应用框架之Semantic Kernel
浅析多模态机器学习
深度学习架构的对比分析
老码农眼中的大模型(LLM)
系统学习大模型的20篇论文
相关文章:

提示工程中的10个设计模式
我们可以将提示词定义为向大型语言模型(Large Language Model,LLM)提供的一个查询或一组指令,这些指令随后使模型能够维持一定程度的自定义或增强,以改进其功能并影响其输出。我们可以通过提供细节、规则和指导来引出更有针对性的输出&#x…...

提高网站安全性,漏洞扫描能带来什么帮助
随着互联网的蓬勃发展,网站已经成为人们获取信息、交流思想、开展业务的重要平台。然而,与之伴随的是日益严重的网络安全问题,包括恶意攻击、数据泄露、隐私侵犯等。 为了保障网站的安全性,提前做好网站的安全检测非常有必要&…...

不要再使用 @Builder 注解了!有深坑呀!
曾经,我在《千万不要再随便使用 lombok 的 Builder 了!》 一文中提到 Builder 注解的其中一个大坑会导致默认值失效! 最近阅读了 《Oh !! Stop using Builder》 发现 Builder 的问题还不止一个,Builder 会让人误以为是遵循构建器…...

《UE5_C++多人TPS完整教程》学习笔记31 ——《P32 角色移动(Character Movement)》
本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P32 角色移动(Character Movement)》 的学习笔记,该系列教学视频为 Udemy 课程 《Unreal Engine 5 C Multiplayer Shooter》 的中文字幕翻译版,UP主(也是译者&…...

怎么使用jwt,token以及redis进行续期?
怎么使用jwt,token以及redis进行续期? 什么是jwt? 什么是token? 结合 JWT、Token 和 Redis 进行续期的一般步骤: 生成 JWT: 用户登录成功后,服务器生成一个 JWT,并返回给客户端。 import io.jsonwebtok…...

AI日报:北大Open Sora视频生成更强了;文心一言可以定制你自己的声音;天工 SkyMusic即将免费开放;
🤖📱💼AI应用 北大Open Sora视频生成更强了!时长可达10秒,分辨率更高 【AiBase提要:】 ⭐️ Open-Sora-Plan v1.0.0模型发布 显著提升视频生成质量和文本控制能力 ⭐️ 支持华为昇腾910b芯片,提升运行效率和质量。 ⭐…...

替换空格(替换特定字符)
😀前言 在字符串处理中,经常会遇到需要替换特定字符的情况。本文将介绍一道经典的字符串替换问题:将字符串中的空格替换成 “%20”。我们将探讨一种高效的解决方法,通过倒序遍历字符串来实现原地替换,避免额外空间的开…...

ctfshow web入门 php特性 web123--web139
web123 必须传CTF_SHOW,CTF_SHOW.COM 不能有fl0g 在php中变量名字是由数字字母和下划线组成的,所以不论用post还是get传入变量名的时候都将空格、、点、[转换为下划线,但是用一个特性是可以绕过的,就是当[提前出现后,…...

pta L1-002 打印沙漏
L1-002 打印沙漏 分数 20 全屏浏览 切换布局 作者 陈越 单位 浙江大学 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印 ************ *****所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中…...

【简单讲解下PHP AES加解密示例】
🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…...

设计模式总结-外观模式(门面模式)
外观模式 模式动机模式定义模式结构外观模式实例与解析实例一:电源总开关实例二:文件加密 模式动机 引入外观角色之后,用户只需要直接与外观角色交互,用户与子系统之间的复杂关系由外观角色来实现,从而降低了系统的耦…...

LiveGBS流媒体平台GB/T28181常见问题-系统服务日志如何配置日志个数日志路径日志时长web操作日志操如何配置保留天数及过滤
LiveGBS系统服务日志如何配置日志个数日志路径日志时长web操作日志操如何配置保留天数及过滤 1、系统服务日志1.1、日志目录1.2、配置日志文件个数及记录时间1.3、配置日志文件路径 2、Web 操作日志2.1、配置保留天数2.2、配置不记录操作日志2.1.1、不记录所有2.1.2、不记录指定…...

es6:set()和weakset()
一、Map() 1.1 简介 ES6 提供了 Set 数据结构,它类似于数组,但是值是唯一没有重复的。 我们可以通过 new Set()去创建它。 1.2. Set的创建、设置与获取 <script> const set new Set(); console.log(set.add(1)); //Set { 1 } …...

C#仿OutLook的特色窗体设计
目录 1. 资源图片准备 2. 设计流程: (1)用MenuStrip控件设计菜单栏 (2)用ToolStrip控件设计工具栏 (3)用StatusStrip控件设计状态栏 (4)ImageList组件装载树节点图…...

Jmeter的使用
Jmeter的使用 1.Jmeter简介 以下内容来自Jmeter中文网http://www.jmeter.com.cn/jieshao,很好的解释了Jmeter的作用: Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试…...

【蓝桥杯第十届省赛B】(部分详解)
特别数的和 #include <iostream> #include <string> using LLlong long; using namespace std;int main() {LL n;cin >> n;LL cnt 0;for (LL i 1; i < n; i) {string s to_string(i);for (LL j 0; j < s.size(); j) {if (s[j] 2 || s[j] 0 || s…...

计算机研究生规划
一、计算机研究生技术栈 两条腿走路: 左侧工程实践能力:要掌握python编程语言,它和机器学习、神经网络(这两门几乎是必须掌握的技能)的学习有很大关系 右侧学术创新能力 二、编程语言能力提升 左边基础,右边教你写…...

针孔相机、鱼眼相机、全景相机
先进性简述,后续慢慢会补充1. 针孔相机: 针孔相机是一种基于针孔成像原理的传统相机,它使用一个非常小的孔径(即“针孔”)来限制光线进入相机的方式。 这种相机通常具有简单的结构,由一个孔径较小的光学元…...

HTML5+CSS3+JS小实例:圣诞按钮
实例:圣诞按钮 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0&…...

【深度学习基础】
打基础日常记录 CNN基础知识1. 感知机2. DNN 深度神经网络(全连接神经网络)DNN 与感知机的区别DNN特点,全连接神经网络DNN前向传播和反向传播 3. CNN结构【提取特征分类】4. CNN应用于文本 RNN基础1. RNN的本质 词向量模型word2Vec1. 自然语言…...

银行业架构网络BIAN (Banking IndustryArchitecture Network)详细介绍
BIAN ( The Banking Industry Architecture Network) 是一个业界多方协作的非营利性组织,由全球领先银行、技术提供商、顾问和学者组成,定义了一个用以简化和标准化核心银行体系结构的银行技术框架。这一框架基于面向服务的架构 (SOA) 原则,银…...

[尚硅谷 flink] 基于时间的合流——双流联结(Join)
文章目录 8.1 窗口联结(Window Join)8.2 **间隔联结(Interval Join)** 8.1 窗口联结(Window Join) Flink为基于一段时间的双流合并专门提供了一个窗口联结算子,可以定义时间窗口,并…...

怎样恢复已删除的照片?教你3个方法,一键恢复!
很多人喜欢以拍照的形式记录生活,手机里的照片就很容易堆积成山,但当内存不够用时就不得不选择删除。可是这些美好的照片始终是很多人心中抹不去的记忆,那么该怎样恢复已删除的照片呢?下面几招,教你一键恢复࿰…...

植物糖基转移酶数据库-23年-地表最强系列-文献精读-6
pUGTdb: A comprehensive database of plant UDP-dependent glycosyltransferases pUGTdb:植物UDP依赖糖基转移酶的全面数据库 一篇关于植物糖基转移数据库的综述,地表最强,总结的最全面的版本之一,各位看官有推荐请留言评论区~…...

虚拟机打不开
问题 另一个程序已锁定文件的一部分,进程无法访问 打不开磁盘“G:\centeros\hadoop104kl\hadoop100-cl2.vmdk”或它所依赖的某个快照磁盘。 模块“Disk”启动失败。 未能启动虚拟机。 原因 前一次非正常关闭虚拟机导致.lck 文件是VMWare软件的一种磁盘锁文件&…...

MySQL数据库版本为5.5.62,时间戳超出2038年1月19日的解决方案
MySQL数据库版本是 5.5.62,已设置字段的类型为BIGINT,使用FROM_UNIXTIME()函数来转换时间戳,返回NULL。 SELECT FROM_UNIXTIME(1617970800)SELECT FROM_UNIXTIME(2185743121)MySQL数据库版本为5.5.62,已设置字段的类型为BIGINT&a…...

C++20 semaphore(信号量) 详解
头文件在C20中是并发库技术规范(Technical Specification, TS)的一部分。信号量是同步原语,帮助控制多线程程序中对共享资源的访问。头文件提供了标准C方式来使用信号量。 使用环境 Windows:VS中打开项目属性,修改C语…...

【简单讲解下Lisp的学习历程】
🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…...

构建高效网络:深入理解正向与反向代理的作用与配置
正向代理 如果把局域网外的互联网环境想象成一个巨大的资源库,则局域网中的客户端要访问互联网则需要通过代理服务器来访问,这种代理成为正向代理。 示例: 用户想要访问 https://chensir.ink (目标服务器)࿰…...

Linux:make/makefile的使用
一、什么是makefile/make 会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的 规则来指定,哪些文件需要先编译&am…...