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

相关推荐
qzhqbb1 小时前
基于统计方法的语言模型
人工智能·语言模型·easyui
冷眼看人间恩怨2 小时前
【话题讨论】AI大模型重塑软件开发:定义、应用、优势与挑战
人工智能·ai编程·软件开发
2401_883041082 小时前
新锐品牌电商代运营公司都有哪些?
大数据·人工智能
AI极客菌3 小时前
Controlnet作者新作IC-light V2:基于FLUX训练,支持处理风格化图像,细节远高于SD1.5。
人工智能·计算机视觉·ai作画·stable diffusion·aigc·flux·人工智能作画
阿_旭3 小时前
一文读懂| 自注意力与交叉注意力机制在计算机视觉中作用与基本原理
人工智能·深度学习·计算机视觉·cross-attention·self-attention
王哈哈^_^3 小时前
【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!
前端·人工智能·深度学习·yolo·目标检测·计算机视觉·pyqt
Power20246664 小时前
NLP论文速读|LongReward:基于AI反馈来提升长上下文大语言模型
人工智能·深度学习·机器学习·自然语言处理·nlp
数据猎手小k4 小时前
AIDOVECL数据集:包含超过15000张AI生成的车辆图像数据集,目的解决旨在解决眼水平分类和定位问题。
人工智能·分类·数据挖掘
好奇龙猫4 小时前
【学习AI-相关路程-mnist手写数字分类-win-硬件:windows-自我学习AI-实验步骤-全连接神经网络(BPnetwork)-操作流程(3) 】
人工智能·算法
沉下心来学鲁班4 小时前
复现LLM:带你从零认识语言模型
人工智能·语言模型