当前位置:   article > 正文

大模型LLM提示工程(Prompt)(上篇):掌握Prompt原理与技巧_同样的prompt,大模型网站上与调用大模型api答案不同

同样的prompt,大模型网站上与调用大模型api答案不同

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

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

像这样:

image.png image.png

前言

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

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

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

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

提示工程(Prompt)

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

学会写提示词

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

image.png image.png

写提示词的一些原则

  • 清晰的指令:足够清晰明确地说明你希望模型为你返回什么,最后更加细致地说明需求,避免模糊表达。
  • 提供上下文和例子:给出较为充分的上下文信息,让模型更好地理解相关背景。如果能够提供示例,模型能表现更好(类似传统LLM中的in-context learning)。
  • 善用符号和语法:使用清晰的标点符号,标题,标记有助于转达意图,并使输出更加容易被解析
  • 让模型一步一步地思考:在这种方法中,模型逐步进行思考,并呈现出涉及的步骤,这样做可以降低结果的不准确的可能性,并对模型响应的可解释性有很大的帮助。
  • 激励模型反思和给出思路:可以在prompt中用一些措辞激励模型给出理由,这样有助于我们更好地分析模型生成结果,同时,思维过程的生成,也有助于其生成更高质量的结果。
  • 给容错空间:如模型无法完成指定的任务,给模型提供一个备用路径,比如针对文本提问,可以加入如果答案不存在,则回复“无答案”
  • 让模型给出信息来源:在模型结合搜索或者外部知识库时,要求模型提供他的答案的信息来源,可以帮助LLM的答案减少捏造,并获取到最新的信息。

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

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

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

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

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

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

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

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

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

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

image.png

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

image.png

image.png

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

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

image.png

image.png

image.png

找到自己使用的场景

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提示法,由于篇幅限制,我们在下一篇文章中再重点讲解。

如何系统的去学习大模型LLM ?

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料 包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】

推荐阅读
相关标签