大模型的应用如今已越来越广泛,虽然和大模型对话非常符合我们的直觉,但是为了能够获得满意的回答,仍然有一些小技巧需要知晓。提问看起来是一件小事情,但在OpenAI官方文档中是以工程来命名的,即Prompt Engineering(提示词工程)。OpenAI官方文档中给出了6大提示词撰写技巧,龙宝做了一些归纳和整理,来一起学习一下吧。
技巧一 :提供尽可能清晰的指示
大模型无法读懂我们的心思。因此如果对结果有较多的要求,那么在撰写提示词时也应该尽可能详细的把每条要求写出来。如果对结果有任何意见,可以直接提出修改要求。
可以采用如下的提问策略:
1: 为了获得更加符合我们要求的回答,在提问中包括尽可能多的细节
例子:
不好的提示词:在Excel中如何将数字相加;
好的提示词:如何在Excel中计算每一行金额的总和?我希望能自动完成整个工作表中每一行的计算,并且所有的总和都显示在右侧名为“总金额”的列中。
2: 让模型承担一个相关角色
例子:
第一个提示词(设定角色):当我让你帮忙写一些东西时,你的回复在每一段中至少包含一个笑话或者搞笑评论。
后续提示词:给我的钢螺栓供应商写一封感谢信,感谢他们及时内交付订单。这使我们能够按时交付一批重要货物。
3: 提问中用分隔符(例如句号、分号等)清晰的区分提问的不同部分;
例子:
第一个提示词(告诉模型提问格式和要求):我将会给你两篇相同主题的文章(通过XML标识区隔),首先总结每篇文章的主要论点,之后指出哪篇文章的论点更好并解释原因。
后续提示词(提供文章):
4: 指定完成任务所需的步骤
例子:
第一个提示词(告诉模型回答的步骤):请通过如下方式来回答我的提问:第一步,我会给你一段文字,用三引号标识,用一句话总结这段文字的主要内容,并加前缀:“总结“。第二步,把第一步的总结翻译成英语,并加前缀:”翻译“。
后续提示词(提供文字):’’’一段文字’’’
5: 提供示例
例子:
第一个提示词(提供示例):请按照如下示例回答我后续的提问:示例
后续提示词(提供问题):提问
6: 指定期望的输出长度
例子:
提示词:用100字总结上述文章的主要内容
技巧二 :提供参考的文本
大模型在被问及比较深奥话题、引用时,有可能会一本正经的胡说八道(模型幻觉,GPT3.5经常出现,GPT4极大缓解),打个不太恰当的比方,就像学生考试时有个抄了答案的小抄会表现更好一样,给模型一些已知的参考信息会帮助大模型减少虚构的内容。
可以采用如下的提问策略:
1: 提供前置资料或参考文本来引导AI回答提问
例子:
第一个提示词(提供示例):请使用在三引号中的文章来回答问题,如果答案没有在文章中提及,请回答“找不到答案”。
后续提示词:’’’文章’’’,问题:问题。
2: 引导AI在回答提问时引用参考文本中的内容
例子:
第一个提示词(提供示例):我会提供你一篇用三引号区隔的文章和一个问题,你的任务就是仅使用提供文章中的内容来回答问题。如果文章中没有答案,请回答:“信息不足”,如果文章中有答案,回答时必须添加引用的段落,引用的格式如下:{“引用”: …}
技巧三 :将复杂任务分割成几个简单任务
软件工程中通常会将一个复杂系统分解成几个实现简单功能的模块。于此相似,与其让模型直接完成一个复杂任务,不如拆解成几个简单任务分别让模型完成,这样模型出错的概率会大大降低。
可以采用如下的提问策略:
1: 将意图分类,找出最适合提问的提示词
例子:
第一个提示词(设定情景):您将收到客户服务查询。请将每个查询分为一个主要类别和一个次要类别。以json格式提供您的输出,键为:primary和secondary。主要类别包括:账单、技术支持、账户管理或一般咨询。账单的次要类别有:- 取消订阅或升级 - 添加支付方式 - 收费说明 - 争议收费;技术支持的次要类别有:- 故障排除 - 设备兼容性 - 软件更新;账户管理的次要类别有:- 重置密码 - 更新个人信息 - 关闭账户 - 账户安全;一般咨询的次要类别有:- 产品信息 - 定价 - 反馈 - 与人交谈。
后续提示词:我没网了
此后AI会给出合适类别,再针对具体的类别进行后续的提问。
2.: 对于需要长对话过程的任务,适当总结、过滤之前对话的内容
由于大模型对话具有固定的上下文长度(GPT4记忆的长度比GPT3.5更长,但都是有限的),如果整个对话都包含在上下文窗口中,是无法无限延续的。
针对这个问题有多种解决方案,其中之一是总结先前对话中的内容。一旦输入接近预定的阈值长度,就可以在设定背景信息的提示词中总结先前对话的内容。另一种选择是在整个对话过程中总是异步地总结先前对话。
3: 逐段总结长文档的内容,并据此归纳一个摘要。
由于模型具有固定的上下文长度,它们无法在单个查询中总结过长的文本。
为了达到这个目的,比如总结一本书的内容,我们可以使用一系列查询来总结文档的每个部分。将各个部分的摘要串联起来,形成摘要的摘要。这个过程可以递归进行,直到完成整个文档的总结。如果需要使用关于之前部分的信息来理解后续部分,那么一个有用的技巧是在总结这一点内容时,同时包含需要的前置信息的摘要。
技巧四 :让模型有时间去“思考“
如果直接问一个人17×28等于多少,他可能并不能一下子回答上来,但如果时间足够仍然可以手算出来。同样,如果让模型直接回复一个复杂的问题,可能会导致一些逻辑错误。在要求模型给出最后答案之前,引导他做一系列思考,会对给出正确的答案更有帮助。
可以采用如下的提问策略:
1: 逐步引导模型给出他自己的答案,避免直接提问结果
例子:
第一个提示词(设定情景):帮我判断这个学生的解是否正确
后续提示词:问题阐述:我正在建造一个太阳能发电站,需要计算财务情况。- 土地成本为每平方英尺100美元 - 我可以以每平方英尺250美元购买太阳能电池板 - 我已经谈判好了维护合同,每年将花费我固定的10万美元和另外每平方英尺10美元 请问第一年运营的总成本是多少,作为平方英尺数量的函数。学生的答案:设 x 为以平方英尺为单位的安装面积。1. 土地成本:100x 2. 太阳能电池板成本:250x 3. 维护成本:100,000 + 100x 总成本:100x + 250x + 100,000 + 100x = 450x + 100,000
这里如果在后续提示词中直接给出学生的解答,并直接要求判断是否正确,大模型将给出错误的结论。解决这个问题的思路是先引导大模型做出自己的回答,然后比较二者判断正确与否,下面看更加合理的提问方式:
第一个提示词修改为(设定情景):首先独立解决问题。然后将你的解决方案与学生的解决方案进行比较,并评估学生的解决方案是否正确。在你自己解决问题之前,不要决定学生的解决方案是否正确。
后续提示词同上。
2: 通过对话和一系列的提示词帮助模型构建内在的推理过程
有些时候不方便将模型内在的推理过程直接展示时,例如上面的例子,如果直接展示模型的推理结果,学生将知道正确答案是什么,而我们的目的是让学生自己得出答案。因此可以通过提示词告诉模型将推理过程内化,不展示出来。亦或者先不告诉模型学生的结果,让模型自己求解一遍,此后再输入学生的结果进行判断。
例子:
前述第一个提示词修改为(设定情景):按照以下步骤来回答问题。第一步 - 首先独立解决问题。不要依赖学生的解决方案,因为可能是错误的。将这一步的所有工作放在三重引号(“”“)之间。第二步 - 将你的结果与学生的结果进行比较,并评估学生的结果是否正确。将这一步的所有工作放在三重引号(”“”)之间。第三步 - 如果学生的结果错误,确定您可以给学生什么提示而不是直接给出答案。将这一步的所有工作放在三重引号(“”")之间。第四步 - 如果学生犯了错误,向学生提供来自上一步的提示(不在三重引号之内)。而不是写“第四步 - …”,写“提示:”。
3: 也可向模型提问之前的推理中是否遗漏了某些内容
例子:
第一个提示词(设定情景):你将会收到一个由三重引号界定的文档。你的任务是选择涉及以下问题的摘录:“人工智能历史上发生了哪些重大范式转变。”确保摘录包含解释它们所需的所有相关上下文 - 换句话说,不要提取缺少重要上下文的小片段。按照以下 JSON 格式提供输出:[{“excerpt”: “…”}, … {“excerpt”: “…”}]
后续提示词:’’’文档内容’’’
模型回答:[{“excerpt”: “…”}, … {“excerpt”: “…”}]
后续提示词:有更多相关的摘录吗?注意不要重复摘录。同时确保摘录包含解释它们所需的所有相关上下文 - 换句话说,不要提取缺少重要上下文的小片段。
技巧五 :使用外部工具
通过将其他工具的输出反馈给模型来弥补模型的不足之处。例如,一个文本检索系统(有时被称为RAG,即检索增强生成系统)可以向模型提供与之相关的文档信息。像OpenAI的代码解释器这样的代码执行引擎可以帮助模型进行数学计算和运行代码。如果某项任务可以通过工具而非语言模型更可靠或高效地完成,那么将其外包出去,以便结合两者的优势。
可以采用如下的提问策略:
1: 采用基于嵌入的搜索技术来实现高效的知识检索,
由于大模型的知识库并非与时俱进的,当需要问及与事实相关的问题时,可以将搜索引擎检索到的最新的信息作为提示词告诉模型,这样也更有利于模型再自身的知识库中检索相关内容。
2: 通过代码执行来进行更准确的计算或调用外部API
大语言模型并不能进行准确的算术运算。在需要这样做的情况下,可以指导模型编写和运行代码,而不是让语言模型自己计算。特别是,可以指导模型将需要运行的代码放入指定格式,例如三个反引号。在生成输出后,可以提取并运行代码。最后,如有必要,代码执行引擎(即 Python 解释器)生成的输出可以作为下一个查询的模型输入。
3: 同时赋予模型特定功能的访问权限
这部分内容主要是进行大模型API调用时使用,普通用户很少用到,这里就不赘述了。
技巧六 :对输出结果进行评价
给定一个原则让模型自行对给出的多条回答进行打分,从而辅助我们选择最想要的答案。
例子:
提示词:针对如下这句话:“开源项目的创作者们无疑是技术社区的重要支柱,他们的贡献不仅推动了技术的发展,也帮助了许多人学习新的技术和工具,解决了实际问题。”给出三条翻译,并从一位英语老师的角度对翻译是否符合当地人的语言习惯给出得分,满分10分。
模型回答:
\1. The creators of open-source projects are undoubtedly important pillars of the tech community. Their contributions not only drive technological advancement but also help many people learn new technologies and tools, solving practical problems.
得分:9分
\2. The creators of open-source projects are undoubtedly vital to the tech community, as their contributions not only advance technology but also assist many individuals in learning new skills and tools, ultimately solving real-world issues.
得分:8分
\3. The founders of open-source initiatives are unquestionably crucial members of the tech community. Their input not only propels technological progress but also aids numerous individuals in acquiring new skills and tools, addressing practical challenges.
得分:7分
以上就是OpenAI官方文档中对于撰写提示词的六条建议,欢迎大家进行实践,别忘了关注我,感谢大家支持。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
![](https://img-blog.csdnimg.cn/img_convert/727680104efea2d4b52dc6ea6ee2fd1b.png)