大模型03-大模型提示工程(Prompt),如何让大模型更好的为我们所用(上篇)

概念回顾

有了上一篇,我们对大模型一些相关的概念理解,大模型02-大模型的一些基本概念和知识

我们了解到,现在的大模型,基本都是基于transformer的GPT模型,以ChatGPT为例,之前我们提到了,它是一种基于GPT模型的对话生成模型,它可以让计算机自动学习对话语料库中的模式,并生成连贯、自然的对话回复。

对于我们普通用户来说,使用ChatGPT也好,还是文心一言、通义千问,等等这些大模型,就是通过一轮一轮的对话来实现我们的诉求。

像这样:

前言

关于ChatGPT等的账号如何注册,这里不再说描述,网上教程一搜一大把。

好多人有这样一种感觉,拿到ChatGPT的账号,一顿尝试操作,当你过了新鲜的阶段,发现不好用,ChatGPT 回答的好空,没有太多参考价值;或者说,发现自己好像并没有什么好问的,不知道可以用 GPT 怎么来使用,于是过了这阵风,可能好久也想不起来再登录一次了。

然而实际情况是,不管是相关技术从业者还是其他行业的从业者,越来越多的人正把它变为自己的生产力工具。

ChatGPT(以下我们就以ChatGPT为例来介绍),基于GPT模型的对话生成模型都一样,可能跟各自的训练情况,在回答上有差异,但是逻辑都是一样的。由于目前人类的技术对自然语言(人说的话)处理的技术还不完美,所以导致目前 AI 生成内容的质量,非常依赖于--提示工程(Prompt),来引导语言模型更好地响应。

提示工程(Prompt)

所谓提示词,就是如何让ChatGPT更精准的理解你的意图,输出你想要的答案。找到与ChatGPT对话的技巧。

学会写提示词

先让大家感受下不同的发问方式,ChatGPT的回答效果:

写提示词的一些原则

  • 清晰的指令:足够清晰明确地说明你希望模型为你返回什么,最后更加细致地说明需求,避免模糊表达。

  • 提供上下文和例子:给出较为充分的上下文信息,让模型更好地理解相关背景。如果能够提供示例,模型能表现更好(类似传统LLM中的in-context learning)。

  • 善用符号和语法:使用清晰的标点符号,标题,标记有助于转达意图,并使输出更加容易被解析

  • 让模型一步一步地思考:在这种方法中,模型逐步进行思考,并呈现出涉及的步骤,这样做可以降低结果的不准确的可能性,并对模型响应的可解释性有很大的帮助。

  • 激励模型反思和给出思路:可以在prompt中用一些措辞激励模型给出理由,这样有助于我们更好地分析模型生成结果,同时,思维过程的生成,也有助于其生成更高质量的结果。

  • 给容错空间:如模型无法完成指定的任务,给模型提供一个备用路径,比如针对文本提问,可以加入如果答案不存在,则回复"无答案"

  • 让模型给出信息来源:在模型结合搜索或者外部知识库时,要求模型提供他的答案的信息来源,可以帮助LLM的答案减少捏造,并获取到最新的信息。

善于总结自己的提示词模板

一个Prompt 可能包含的6个要素:任务,上下文,示例,角色,格式和语气,而且这些要素是按重要性降序排列的。

【角色】-- 选填 角色明确指定ChatGPT和Bard(如果涉及到虚构的角色)所扮演的角色或身份。这可以是具体的人,也可以是虚构的角色,有助于调整语气和内容以适应特定角色的需求。

【任务】-- 必填 明确表达你希望ChatGPT完成的任务或目标。

这里可以具体拆分:
1.你的问题或者任务描述
2.你的目标
3.你的要求

【上下文】--选填 上下文提供了与任务相关的背景信息,以确保模型可以理解问题的背景和约束条件。这包括用户的背景信息、成功标准、所处环境等。上下文对于任务的明确性和有效性至关重要。

【示例】--选填 提供示例可以明确示范所需的内容和格式,从而提高输出质量。

【输出格式】--选填 格式部分可视化了你期望输出的外观和结构,如表格、列表、段落等。明确指定输出的格式可以确保ChatGPT生成的内容符合你的预期。

【语气】--选填 语气定义了输出文本的语气或风格,如正式、非正式、幽默等。指定语气有助于确保ChatGPT的回应符合所需的情感和风格要求。

我们再来根据模板进行提问,看下效果:

带示例与不带示例的区别:

以上,我们如果能够用好提示词模板,符合提示词的一些原则,在一些基本的场景中,我们能够准确的获得我们想要的答案。

基于ChatGPT可以多轮对话,我们可以通过追问、奖惩指令来,来进一步提升模型的推理能力

找到自己使用的场景

1.可以利用ChatGPT成为你的知识助手和百科全书。

2.让ChatGPT成为你的工作助理:

帮你写文章,优化文章,帮你做数据分析,帮你做各类场景的指导,比如健身教练,比如营养师。

3.你可以逐渐沉淀你各类场景的prompt,来形成你自己的多维度工具库

如何更深层次的激发大模型的涌现能力(学习一点点原理)

激发大型语言模型的涌现能力有两种方法:提示工程(prompt engineering)和微调(fine-tuning)

了解以下这些原理,对于理解和应用LLM模型来说,这些知识都具有重要的参考价值。

作为非技术人员的日常应用,我们要关注的是:

经典小样本提示(Few-shot)

最简单的提示工程的方法就是通过输入一些类似问题和问题答案,让模型参考学习,并在同一个prompt的末尾提出新的问题,以此来提升模型的推理能力。这种方法也被称为One-shot或者Few-shot提示方法。

zero-shot

zero-shot可以理解为:不给大模型任何的提示,直接提问,让大模型自己做决策。

当大模型遇到它未知的知识时,使用Zero-shot提示是无法得到比较好的回复,但并不意味着它不具备学习的能力,"照猫画虎" 它还是非常优秀的,所以进阶的提示法叫做Few-shot。

Few-shot提示法

Few-shot提示法可以简单理解为:在提问之前,先给大模型一个示例和解释让它学习和模仿,从而在一定程度上赋予它泛化能力。就像上述,我们提炼招标方的例子。

这里,从一个大佬从论文中总结的结论,我觉得我们也需要知道一点:

  • 在zero-shot、one-shot、few-shot 上,规模越大,效果越好
  • few-shot只要参数够不比fine-tuned差

从这些理论上,再回顾上述我们的提示词原则和实验,就能感受到,这些理论都有实际在指导我们如何写更好的prompt

CoT+Few-shot 提示

STaR Fine-Tune提示法

代码提示工程(Code Prompting)

代码提示工程是指通过设计特殊的代码提示来激发模型的涌现能力。这种方法不需要对模型进行额外的训练,只需要通过设计合适的代码提示来引导模型完成特定任务,代码提示工程通常用于解决那些无法通过语言提示工程解决的问题。这个不在这里描述,也是后续需要学习的一个重点专题。

更复杂的场景

对应的,我们在更复杂的应用场景: 思维链(CoT)提示、CoT+Few-shot 提示、STaR Fine-Tune提示法,由于篇幅限制,我们在下一篇文章中再重点讲解。

相关推荐
我算是程序猿26 分钟前
用AI做电子萌宠,快速涨粉变现
人工智能·stable diffusion·aigc
萱仔学习自我记录28 分钟前
微调大语言模型——超详细步骤
人工智能·深度学习·机器学习
湘大小菜鸡39 分钟前
NLP进阶(一)
人工智能·自然语言处理
XiaoLiuLB1 小时前
最佳语音识别 Whisper-large-v3-turbo 上线,速度更快(本地安装 )
人工智能·whisper·语音识别
哪 吒1 小时前
吊打ChatGPT4o!大学生如何用上原版O1辅助论文写作(附论文教程)
人工智能·ai·自然语言处理·chatgpt·aigc
Eric.Lee20211 小时前
音频文件重采样 - python 实现
人工智能·python·深度学习·算法·audio·音频重采样
爱喝白开水a1 小时前
关于大模型在企业生产环境中的独立部署问题
人工智能·深度学习·llm·大语言模型·ai大模型·计算机技术·本地部署大模型
可惜已不在2 小时前
AI 搜索引擎工具集合
人工智能·ai
Landy_Jay2 小时前
深度学习:基于MindSpore实现CycleGAN壁画修复
人工智能·深度学习
Langchain2 小时前
不可错过!CMU最新《生成式人工智能大模型》课程:从文本、图像到多模态大模型
人工智能·自然语言处理·langchain·大模型·llm·大语言模型·多模态大模型