在上一篇《大模型智能体(LLM Agent)学习笔记》中提到,提示词是开发大模型智能体的编程语言。提示词工程是为了让我们更好地与大模型打交道,也可以说是调教大模型更好地为人类服务。常言道,实践出真知,本文是将提示词工程的原则技巧应用到实际工作中的尝试。

内容如下:  
  1. 提示词工程原则

  2. 编写提示词的方法

  3. 应用案例

  4. 结束语

1.提示词工程原则

根据吴恩达的《ChatGPT提示词工程》视频课内容,提示词工程有两条基本原则:

  1. 指令清晰且具体

  2. 给大模型思考时间

为什么会有这两条原则呢?

我们可以把大模型想象成刚毕业的应届大学生,TA在图书管里博览群书(大规模数据集训练),吸收了浩如烟海的知识,这些知识存储在神经网络的参数里。TA具有完成各种任务的潜力,但没有实际工作经验。做过管理的人可能都有这样的体会:当你带一个新人,给他安排工作任务的时候,下达的指令越清晰越具体,他完成的效果可能会越好,否则,他很可能一头雾水,按照自己的想法乱做一通,结果差强人意。同时,一项工作任务,新人往往需要花费更长的时间才能完成。培养新人是不是完美契合上面两条原则?

调教大模型和调教职场新人是非常类似的。

2.编写提示词的方法

光有原则是不够的,要想编写出好的提示词,还需要有一套科学实用的方法。

编写提示词是一个逐步迭代的过程,对于复杂的任务,很难一蹴而就,因此,我们可以按以下方法来编写并逐步完善提示词:

1. 明确目标

这个不用多说了,你想让大模型做某件事情,一定会有一个目标。如果是漫无目的闲聊,那就自由发挥了。

2.从简单的描述开始

例如,如果你想生成一幅山水画,可以先写“一幅山水画,包含山峦、流水、树木等元素”。当生成结果不满意时,再按下述方法修改。

3. 添加细节

在初始描述的基础上增加更多细节,使内容更丰富、更具体。例如,“高耸入云的山峰,山脚下潺潺流淌的小溪,茂密的树林环绕”。

4. 使用分隔符

可以使用各种标点符号(如引号、分号、换行、<>等)将提示词中不同部分隔开,以便让大模型更容易理解和响应。例如:

将<>包围的文字翻译成英语:``<提示词是开发大模型智能体的编程语言>``下面开始翻译:

5. 指定风格或格式

你可以指定生成内容的风格或格式。例如:“用中国传统水墨画风格绘制一幅山水画”,“推荐几部热播美剧,以json格式输出剧名、上映日期、主演”。

6.添加限定条件

可以添加多种限定条件(第5条也属于是限定条件),例如:“用2~3句话概括大模型能做什么”防止大模型长篇大论,也可以限定字数。

7.增加示例:

例如,你想写一首诗,可以提供一两句古诗作为例子,让大模型模仿。

8.让大模型按照指定的步骤执行

例如:

输出1-100之间的素数:首先,用python实现一个查找1-100之间素数的函数然后,调用python解释器运行上面的函数``最后将你的运行结果输出

9.使用思维链(COT)提示法

可以使用前文介绍的零样本或少样本COT技术,让大模型输出中间推理过程。

零样本提示,即在提示词后面加上一句话“让我们一步步思考”。如:

鸡和兔共49只,一共有100只脚,问鸡和兔各多少只?让我们一步步思考

少样本提示,即在提示词中包含一个或多个带有解答过程的示例。

10.让大模型玩角色扮演

例如:

您是一名数学老师,帮助各年级学生解答各种数学问题。您使用清晰的语言使复杂的概念更容易理解。现在请解答以下问题:``问题:鸡和兔共49只,一共有100只脚,问鸡和兔各多少只?

以上10条方法,在我们编写提示词时,可以灵活加以运用。其中:

1-6条对应原则1:指令清晰且具体。

7-10条对应原则2:给大模型思考时间。

3.应用案例

下面,我们以3个实际案例来演示上述方法的运用。为了简单起见,示例都是通过国内厂商的聊天机器人来实现的。

示例1:让大模型搜集整理相关资料

#第一次尝试,可以看到输出的内容比较多,而我实际上只需要厂商名+产品名即可。

#第二次尝试,要求大模型只输出:厂商名+产品名,这次好了很多。

#第三次,将格式转换为markdown,这次基本符合要求了。因为大模型聊天机器人可以从历史对话中获得上下文信息,因此,这次的提示词只有转换格式的描述,而没有重复前面的要求了。

示例2:让大模型总结文章重点

有一点需要说明,聊天机器人通常对输入的内容(即提示词)有最大长度限制,通常是几千个字符,对上面这篇万字长文,没法一次性发送给聊天机器人。而直接发网址也不行,试了几个厂商,都不具备爬取网页的能力。但主流的聊天机器人,除了文本输入方式,基本都支持文件和图片。所以,我们可以把文章内容打印成一个PDF文件,然后把PDF文件上传到聊天机器人,并要求总结文章重点。

如下图所示,大模型总结的结果看起来还可以。从输出结果看,后台实际上是把原文档分成了4份分别处理,再把结果合并。

示例3:让大模型帮忙写代码

作为技术人员,写代码这件事当然也可以让大模型来帮忙。不过目前大模型只能写一些通用性较强的基础代码,比如写个排序算法什么的,而对于领域比较特殊的业务逻辑,可能就不是那么擅长了。当然如果有足够多的该领域数据,也可以通过微调或RAG等方式让大模型学习领域知识,从而能够生成特定领域代码。

下面是我让大模型写的一个五子棋小游戏,生成的结果挺像那么回事的,文件名都给起好了,我直接按文件名将内容保存下来,在浏览器打开,确实能运行。不过它原来生成的是黑色+白子棋子,白色跟背景色相同,所以我给改成了红色,确实能下。

4.结束语

本文介绍了调教大模型的技巧,包括提示词工程的原则以及编写提示词的10个方法。当然,学习提示词工程的目的是为了能在实际工作生活中能够更好地与大模型打交道,让大模型的能力充分为我所用,我以三个真实案例演示了提示词工程方法的应用。你也可以尝试一下。

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐