Prompt提示工程上手指南:基础原理及实践(一)
想象一下,你在装饰房间。你可以选择一套标准的家具,这是快捷且方便的方式,但可能无法完全符合你的个人风格或需求。另一方面,你也可以选择定制家具,选择特定的颜色、材料和设计,以确保每件家具都符合你的喜好和空间要求。
比如,选择一个特制的沙发,你可以决定其尺寸、布料类型、甚至是扶手的样式。你还可以根据房间的主题选择颜色,甚至添加一些独特的装饰,比如刺绣或特别的缝线。
这就是Prompt工程的概念。就像你通过选择不同的设计元素来定制家具一样,Prompt工程涉及对AI的输入进行精细调整,以获得更加贴合需求的结果。通过改变、添加或精确化输入的提示,你可以引导AI产生更符合特定要求或风格的输出,就像为房间挑选和定制合适的家具一样。
很多人对语言大模型的认知和理解局限于智能回答层面,将它定位为取代搜索平台的智能应答机器人。但是随着更多大模型在各个领域应用的逐渐渗入,更多企业业务落地场景也在不断挖掘,人们会逐渐意识到大模型的能力远不止仅仅的问答作用。如果我们想要开始正式深入学习大模型的应用,迈开的第一步就会了解到Prompt提示工程,本系列文章将Prompt提示工程从简入深全面讲解以及实际落地运用,赋能不限于直媒体运营、AIGC文案生成,以及语音视频合成方面的运用。
1.什么是Prompt工程?
在AI语境中,"Prompt"通常指的是向模型提出的一个请求或问题,这个请求或问题的形式和内容会影响模型的输出。例如:在一个文本生成模型中,提示可以是一个问题、一个话题或者是一段描述,模型根据这个提示生成相应的文本。Prompt工程是指人们向生成性人工智能(AI)服务输入提示以生成文本或图像的过程中,对这些提示进行精炼的过程。任何人都可以使用文言一心和DALL-E这样的生成器,通过自然语言来进行操作。这也是AI工程师在使用特定或推荐提示对大型语言模型(LLMs)进行精炼时使用的技术。
例如,如果你在使用文言一心来头脑风暴你的简历的专业概述时,你可能会写下这样的命令:“为市场分析师编写一个样本专业概述。”对于文言一心的回答,你可能会给出像“太正式”或“缩短到不超过100个词”这样的反馈。而Prompt工程就是不断整理优化每一次的提示词,让LLM能够做出最符合我们需要的效果回答。在某些情况下,调整提示可能是提高模型输出质量的唯一途径,特别是在使用那些不允许直接修改内部机制的预训练模型时。
我们再来看看ChatGPT的Prompt工程师给的例子:
-
For text models like ChatGPT:
- What’s the difference between a professional summary and an executive summary?
- Write a professional summary for a marketing analyst looking for a marketing manager job.
- Now trim it down to less than 60 words.
- Rewrite it with a less formal tone.
-
For image models like DALL-E:
- A painting of a cat.
- A painting of a cat chasing a mouse in Impressionist style.
- Now use only warm tones in the painting.
文本模型ChatGPT和DALL-E例子都差不多,以文本模型ChatGPT为例子,提出的提示词有四句:
第一句为提出问题,专业和执行总结,引出两个具体目标;
第二句指明场景情景和具体服务对象。
第三句对生成内容提出要求。
第四句加入情感内容到生成文本中。
这里我们要知道,因为生成人工智能是一个根据人类和机器产生的数据训练的机器人,它不具备筛选你正在交流的内容以理解你实际在说什么的能力。也就是说你说的就是你得到的。当将查询输入到AI生成器中时,最好使用特定的、简单的语言进行查询,并且没有不必要的填充符。例如,您可以查询“为学术研究提案编写大纲,包括标题、摘要和下一步行动”,而不是“编写包含标题和下一步骤的大纲”。所以构建Prompt工程也有一些技巧和原则,简单可以归结为:
问题式Prompt
问题式Prompt通过提出问题来引导模型生成答案。这类Prompt最直接、最简单,适用于需要获取具体信息的场景。就像第一个例子给出的What’s the difference between a professional summary and an executive summary?
陈述式Prompt
陈述式Prompt通过描述一个场景或状态来引导模型生成相关内容。这类Prompt更注重模型的创造性和表现力,适用于需要模型产生描述、故事或观点等内容的场景。比如为一位正在寻找营销经理工作的营销分析师写一篇专业摘要,Write a professional summary for a marketing analyst looking for a marketing manager job.
指令式Prompt
指令式Prompt通过给出明确的指令来引导模型完成特定任务。这类Prompt要求模型具有较强的执行能力,适用于需要模型进行翻译、纠错、编程等任务的场景。比如现在把它缩减到不到60个单词,Now trim it down to less than 60 words.
情感传入Prompt
在特点的条件下我们可以会需要生成一些带有强烈情感的文本内容,带有主观意识的思想去批判或者是抨击,而如果我们想要生成一些此类内容就需要让语言模型知道我们所处的环境以及主观情感色彩。不提供Prompt情感词,AI回答的永远是中性感情的内容生成。
当然,以上对于Prompt工程来说仅仅是浅显分类,真正要做好针对特点场景的分类还得让Prompt工程师对症下药。参考微软举垂直Prompt复杂度举例,帮助我们更好认识到Prompt工程:
Instruction Type Prompt Completion Simple instructions Write an introduction for a weekly newsletter. Welcome to our weekly newsletter. This week we have a special focus on productivity. We’ll be sharing tips and tricks on how to be productive in all areas of your life. We hope you enjoy and please share with your friends! Complex instructions Write an introduction for a weekly newsletter to my company named Contoso. It should mention the great all hands meeting we had last week and thank the team for all their hard work over the tough past few months. Welcome to Contoso’s weekly newsletter! We had a great all hands meeting last week and I want to thank the team for all their hard work over the tough past few months. We’re looking forward to a bright future and I’m confident that with our team’s dedication and commitment, we will achieve great things. Thank you for being a part of our team and I look forward to working with you all in the coming weeks and months. Sincerely, [Your name]. Complex Instructions Write an introduction for a weekly newsletter, including the following:
- My company is named contoso
- An exuberant greeting
- Thanking the team for their hard work over a couple tough months
- Positive outlook for the coming quarter
- Signed by the SLTHello Contoso team! I wanted to take a moment to thank you for all your hard work over the past few months. It’s been a tough couple of months, but you’ve all pulled together and done an amazing job. I’m really proud of you all. Looking ahead to the next quarter, I’m feeling really positive. I think we’re going to achieve some great things. Thanks again, The Senior Leadership Team.
2.Prompt工程师主要做什么?
Prompt工程师的主要工作是设计、优化和精炼用于生成性人工智能系统的提示(prompts)。这些提示是指导AI系统生成特定输出的文本输入,例如文本、图像或代码。Prompt工程师的角色在不同的AI应用领域中可能有所不同,主要是根据对于的业务场景来构建特征提示词。Prompt工程师对于人工智能工程师创造更好的服务很重要,比如处理客户服务任务或生成合法合同的聊天机器人。确保像文言一心这样的生成性人工智能服务能够提供输出,需要工程师构建代码,并根据广泛准确的数据对人工智能进行培训。
在数据驱动的大世界里,我们已经到了一个地步,训练人工智能模型可以帮助更高效地提供解决方案,而无需手动对大量数据进行排序。适当的Prompt工程师还可以识别和减轻注入攻击(恶意入侵ChatGPT或聊天机器人背后的逻辑),以确保公司提供一致和准确的服务。Coursera对Prompt工程师的要求有:
Prompt engineers need to be skilled in the fundamentals of natural language processing(NLP), including libraries and frameworks, Python programming language, generative AI models, and contribute to open-source projects.
Prompt工程师需要熟练掌握自然语言处理(NLP)的基础知识,包括库和框架、Python编程语言、生成人工智能模型,并为开源项目做出贡献。成功的提示往往依赖于“一次性”或“少量”学习的实践。这是指通常通过包括输入和输出对来包括模型的期望行为的一个或多个示例。这不是在模型被永久改变的意义上的学习,而是在示例更好地调节模型,使其仅对当前推理做出所需的响应。使用没有示例的提示有时被称为“零样本”学习。使用Chat Completion API,通常会在初始系统消息之后以示例用户/助手交互的形式向消息阵列中添加少量的热学习示例:
Learning Type | Prompt | Completion |
---|---|---|
Zero-shot | Headline: Coach confident injury won’t derail Warriors Topic: | The coach is confident that the injury won’t derail the Warriors’ season. The team is still focused on their goals and that they will continue to work hard to achieve them. |
Few-shot | Headline: Twins’ Correa to use opt-out, test free agency Topic: Baseball Headline: Qatar World Cup to have zones for sobering up Topic: Soccer Headline: Yates: Fantasy football intel for Week 6 Topic: Football Headline: Coach confident injury won’t derail Warriors Topic: | Basketball |
Prompt工程师一般会根据其目的和设计方式将Prompt分为几个主要类别:
零样本(Zero-shot)Prompting:
- 在这种情况下,prompt被设计成直接询问模型一个问题或请求,而不提供任何特定的训练例子。
- 这种方法依赖于模型已经通过预训练获得的知识。
单样本(One-shot)或少样本(Few-shot)Prompting:
- 这种方法在prompt中包含一个或几个示例,以指导模型如何响应。
- 这些例子充当了模型应该如何处理类似情况的示范。
链式(Chain-of-thought)Prompting:
- 在这种方法中,prompt被设计为引导模型展示其思考过程,尤其是在解决复杂问题时。
- 这有助于提高模型输出的透明度和可解释性。
模板式(Template-based)Prompting:
- 在这种情况下,prompt是根据特定的模板或结构来设计的,这些模板旨在有效地激发模型的正确响应。
- 这种方法通常用于具体的应用场景,如文本分类或实体识别。
对话式(Conversational)Prompting:
- 这种prompt设计为对话形式,模拟自然语言对话场景,以引导模型在对话环境中产生响应。
- 这种方式适用于聊天机器人和交互式应用。
任务特定(Task-specific)Prompting:
- 这类prompt专门为特定的任务或应用场景量身定制,如翻译、摘要、问题回答等。
- 这种方法强调根据任务需求来优化prompt的设计。
这里仅展开一个具体Prompting给大家演示,并不展开所有形式,后续文章将会详细讲解,以模板式(Template-based)Prompting为例:
任务:对给定的文本段落进行情感分析,判断它是正面的、负面的还是中性的。
模板式Prompt:
- “文本:[待分类的文本段落]
- 情感分析结果:这段文本的情绪是[正面/负面/中性]。”
在这个例子中,模板由两部分组成:
- “文本:”后跟随待分类的文本段落。
- “情感分析结果:”引导模型基于所提供的文本作出情感分类。
使用模板式Prompt的一个具体例子可能是:
- “文本:我今天过得非常愉快,天气晴朗,和朋友们度过了美好的一天。
- 情感分析结果:这段文本的情绪是[正面/负面/中性]。”
本章内容已经足够多了,下篇文章将展开Prompt在不同场景下的构建和使用。
想要获取更多内容欢迎私聊交流,点关注,防走丢,如有纰漏之处,请留言指教,非常感谢
本章内容已经足够多了,下篇文章将展开Prompt在不同场景下的构建和使用。
相关文章:

Prompt提示工程上手指南:基础原理及实践(一)
想象一下,你在装饰房间。你可以选择一套标准的家具,这是快捷且方便的方式,但可能无法完全符合你的个人风格或需求。另一方面,你也可以选择定制家具,选择特定的颜色、材料和设计,以确保每件家具都符合你的喜…...
Redis如何保证缓存和数据库一致性?
背景 现在我们在面向增删改查开发时,数据库数据量大时或者对响应要求较快,我们就需要用到Redis来拿取数据。 Redis:是一种高性能的内存数据库,它将数据以键值对的形式存储在内存中,具有读写速度快、支持多种数据类型…...

学完C/C++,再学Python是一种什么体验?
你好,我是安然无虞。 文章目录 变量及类型变量类型动态类型特性 注释输入输出通过控制台输出通过控制台输入 运算符算术运算符关系运算符逻辑运算符赋值运算符 条件循环语句条件语句语法格式代码案例缩进和代码块空语句pass 循环语句while循环语法格式代码案例 for…...

ssm基于Java的壁纸网站设计与实现论文
目 录 目 录 I 摘 要 III ABSTRACT IV 1 绪论 1 1.1 课题背景 1 1.2 研究现状 1 1.3 研究内容 2 2 系统开发环境 3 2.1 vue技术 3 2.2 JAVA技术 3 2.3 MYSQL数据库 3 2.4 B/S结构 4 2.5 SSM框架技术 4 3 系统分析 5 3.1 可行性分析 5 3.1.1 技术可行性 5 3.1.2 操作可行性 5 3…...
零基础也可以探索 PyTorch 中的上采样与下采样技术
目录 torch.nn子模块Vision Layers详解 nn.PixelShuffle 用法与用途 使用技巧 注意事项 参数 示例代码 nn.PixelUnshuffle 用法与用途 使用技巧 注意事项 参数 示例代码 nn.Upsample 用法与用途 使用技巧 注意事项 参数 示例代码 nn.UpsamplingNearest2d …...
代码随想录算法训练营Day23|669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
目录 669. 修剪二叉搜索树 前言 思路 递归法 108.将有序数组转换为二叉搜索树 前言 递归法 538.把二叉搜索树转换为累加树 前言 递归法 总结 669. 修剪二叉搜索树 题目链接 文章链接 前言 本题承接昨天二叉搜索树的插入和删除操作题目,要对整棵二叉搜索树…...

乱 弹 篇(一)
题记 对于“乱弹”这个词汇的释义,《辞海》上仅有“ 戏曲剧种,亦指声腔 ”8个字。而由于“乱弹 ”的“ 弹”谐音谈”,这就容易让人联想到“乱谈”。不过从文体上看,“乱谈”也非乱七八糟之谈,反倒是“东西南北&#x…...
《JVM由浅入深学习【八】 2024-01-12》JVM由简入深学习提升分(JVM的垃圾回收算法)
目录 JVM的垃圾回收算法1. 标记-清除算法(Mark-Sweep)原理步骤优点缺点 2. 复制算法(Copying)原理步骤优点缺点 3. 标记-整理算法(Mark-Compact)原理步骤优点缺点 4. 分代收集算法(Generational…...
在矩阵回溯中进行累加和比较的注意点
1 总结 在回溯时,如果递归函数采用void返回,在入口处使用了sum变量,那么一般在初次调用dfs的地方,这个sum的初始值可能不是0,而是数组的对应指针的值,在比较操作的时候,需要在for循环开始之前进行…...

AI语音机器人的发展
第一代AI语音机器人具体投入研发的开始时间不太清楚,只记得2017年的下半年就已经开始接触到成型的AI语音机器人,并且正式商用。语音识别效果还不多,大多都是接入的科大讯飞或者百度的ASR。 2018年算是AI语音机器人的“青春期”吧,…...

SQL语句错误this is incompatible with sql_mode=only_full_group_by解决方法
一、原理层面 这个错误发生在mysql 5.7.5 版本及以上版本会出现的问题: mysql 5.7.5版本以上默认的sql配置是:sql_mode“ONLY_FULL_GROUP_BY”,这个配置严格执行了"SQL92标准"。 很多从5.6升级到5.7时,为了语法兼容,大部…...
静态长效代理IP和动态短效代理IP有哪些用途?分别适用场景是什么?
静态长效代理IP和动态短效代理IP是两种常见的代理IP类型,它们在用途和适用场景上存在一定的差异。了解它们的特性以及使用场景有助于我们更好地利用代理IP,提高网络访问的效率和安全性。 一、静态长效代理IP 1. 用途 静态长效代理IP是指长期保持稳定的代…...

基于Spring Boot+Vue的课堂管理系统(前后端分离)
该项目完全免费 介绍 基于Spring BootVue的课堂管理系统。前后端分离。包含教师授课管理、学生选退课、聊天室、签到、笔记管理模块等。 技术架构 SpringBoot MyBatis Redis WebSocket VueCLI Axios Element UI 项目特点: 1、后台使用MyBatis连接数据库&…...

供排水管网管理信息化的必要性
供排水管网是城市供水系统的大动脉,它负担者将优质水源输送到最终用户的重要职责,对供水系统有着极其重要的作用。城市供排水管网埋设在地下,规模庞大,仅靠人工难以管理。同时,由于城市的发展,管网连接结构…...

统一格式,无限创意:高效管理不同格式图片批量转换
在数字时代,图片格式的多样性带来了管理上的不便。为了满足不同的需求,我们经常需要将大量图片转换为统一的格式。那么,有没有一种简单、高效的方法来解决这个问题呢?答案是肯定的!今天,我们将为您介绍一款…...

工作电压范围宽的国产音频限幅器D2761用于蓝牙音箱,输出噪声最大仅-90dBV
近年来随着相关技术的不断提升,音箱也逐渐从传统的音箱向智能音箱、无线音箱升级。同时在消费升级的背景下,智能音箱成为人们提升生活品质的方式之一。智能音箱是智能化和语音交互技术的产物,具有点歌、购物、控制智能家居设备等功能…...

中国智造闪耀CES | 木牛科技在美国CES展亮相多领域毫米波雷达尖端方案
素有全球科技潮流“风向标”之称的2024国际消费类电子产品展(CES),于1月9-12日在美国拉斯维加斯会议中心举办。CES是全球最大的消费电子和消费技术展览会之一,汇集了世界各地优秀的消费电子和科技公司,带着最好的产品来…...

亚马逊衣物收纳 梳妆台 收纳柜CPC认证ASTM F2057-23 报告分析
衣物收纳商品是指带有抽屉或铰链门的家具商品,通常是卧室家具,用于存放衣物。该政策适用于独立式服装收纳商品 包括但不限于箱子、五斗橱、抽屉柜、大橱柜、衣橱柜、衣橱、门柜和梳妆台,并且满足以下要求: 衣物收纳商品是指带有抽…...
【设计模式】02-SOLID 设计原则
面向对象编程(OOP)是一种广泛应用的编程范式,它鼓励开发者通过对象来模拟现实世界。为了提高面向对象设计(OOD)的质量和可维护性,Robert C. Martin提出了 SOLID 原则,这五个原则构成了编写良好、…...
突然间我懂了软件
什么是 “遗留代码” – 它是一个不再由具有这些代码相关理论的人维护的代码库。 单枪匹马的工程师能做出比同样有能力的专业团队更好的产品。单干的工程师会花时间为自己的程序建立一套完整的理论,而专业人员则会定期在不同的项目之间流动,他们只对自己…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...

力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...

STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...

Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程
STM32F1 本教程使用零知标准板(STM32F103RBT6)通过I2C驱动ICM20948九轴传感器,实现姿态解算,并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化,适合嵌入式及物联网开发者。在基础驱动上新增…...
FOPLP vs CoWoS
以下是 FOPLP(Fan-out panel-level packaging 扇出型面板级封装)与 CoWoS(Chip on Wafer on Substrate)两种先进封装技术的详细对比分析,涵盖技术原理、性能、成本、应用场景及市场趋势等维度: 一、技术原…...
python打卡第47天
昨天代码中注意力热图的部分顺移至今天 知识点回顾: 热力图 作业:对比不同卷积层热图可视化的结果 def visualize_attention_map(model, test_loader, device, class_names, num_samples3):"""可视化模型的注意力热力图,展示模…...