惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
云风的 BLOG
云风的 BLOG
aimingoo的专栏
aimingoo的专栏
Vercel News
Vercel News
T
The Blog of Author Tim Ferriss
F
Full Disclosure
A
About on SuperTechFans
C
Check Point Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
Know Your Adversary
Know Your Adversary
K
Kaspersky official blog
L
LINUX DO - 热门话题
Recorded Future
Recorded Future
C
Cisco Blogs
M
MIT News - Artificial intelligence
T
Tenable Blog
G
GRAHAM CLULEY
月光博客
月光博客
Recent Announcements
Recent Announcements
V
Visual Studio Blog
IT之家
IT之家
T
The Exploit Database - CXSecurity.com
The GitHub Blog
The GitHub Blog
T
Threat Research - Cisco Blogs
D
DataBreaches.Net
P
Privacy International News Feed
P
Proofpoint News Feed
I
Intezer
博客园 - 叶小钗
C
CXSECURITY Database RSS Feed - CXSecurity.com
The Hacker News
The Hacker News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - Franky
SecWiki News
SecWiki News
宝玉的分享
宝玉的分享
P
Palo Alto Networks Blog
Last Week in AI
Last Week in AI
小众软件
小众软件
Hacker News - Newest:
Hacker News - Newest: "LLM"
O
OpenAI News
N
News and Events Feed by Topic
Microsoft Security Blog
Microsoft Security Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
N
News and Events Feed by Topic
The Cloudflare Blog
Spread Privacy
Spread Privacy
酷 壳 – CoolShell
酷 壳 – CoolShell
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
B
Blog RSS Feed

人人都是产品经理

为什么你的产品找不到差异化?90%的失败都卡在第一步上(下) – 人人都是产品经理, 3年从30万到1300万用户、获2200万美元融资,这个AI教育产品用“抽卡”破解了获客难题 – 人人都是产品经理, 园区招商系统怎么做才能真正帮到去化?我加了这一个功能,推广链接转发400次阅读过万 – 人人都是产品经理, AI大事件:OpenAI发完网络安全模型又搞药物研发,小鹏汽车要抓”DeepSeek时刻” – 人人都是产品经理, 电商不是卖货,是一场更残酷的产品经理实战 – 人人都是产品经理, 没想到,活动营销又回来了! – 人人都是产品经理, 为何All-in海外KOC:一场关于AI时代窗口期的豪赌 – 人人都是产品经理, 重新理解企业的内部协作 – 人人都是产品经理, 苹果的 AI 战略到底是什么? – 人人都是产品经理, 医疗智能体·第2讲——合规护城河:等保、PIPL与HIPAA的架构实战 – 人人都是产品经理, 向量知识库五步法:从“答非所问”到“精准回复” – 人人都是产品经理, 鸿蒙PC三方库构建总指挥HPKBUILD(sha)库为例 – 人人都是产品经理, 何时该用LLM?AI产品经理的LLM设计指南 – 人人都是产品经理, 医疗信息领域的需求方、决策方、准入方以及关注点(二) – 人人都是产品经理, 即梦涨价:一场被误读的「傲慢」 – 人人都是产品经理, 面试AI PM必答题:Hermes和OpenClaw的区别,如何讲清楚业务价值 – 人人都是产品经理, AI的下一张船票:世界模型——AI产品经理必须理解的技术拐点 – 人人都是产品经理, 小红书做GEO,怎么让AI信你?记住这 3 个重要信息 – 人人都是产品经理, 5 家印度 AI 初创公司,看看印度 AI 再做什么 – 人人都是产品经理, AI项目跨团队协作:产品技术业务如何不打架 – 人人都是产品经理, Agentic Workflow(智能体工作流):让AI从”答案生成器”变成”数字员工” – 人人都是产品经理, lycium_plusplus 项目全景解读:OpenHarmony 三方库构建的“大管家” – 人人都是产品经理, 从爆单救火到前置履约:两套预采策略,把生鲜大促履约效率拉满 – 人人都是产品经理, 什么时候该补货?我用一轮数据做了一个决定 – 人人都是产品经理, 从“机械兜底”到“动态分流”:AI客服重复进线治理的4大底层逻辑 – 人人都是产品经理, 抖音拼效率,红书拼洞察 – 人人都是产品经理, 全民狂欢与退潮——为什么龙虾这波热潮冷却得如此之快? – 人人都是产品经理, Stripe押注!MPP重塑全球支付 – 人人都是产品经理, 小红书GEO:AI引用你的内容,不是因为你对,而是因为你看起来可信 – 人人都是产品经理, 前百度副总裁押注办公Agent,日韩付费爆发,Manus迎来强劲对手 – 人人都是产品经理, 企事业单位数字化的业务供需本质 – 人人都是产品经理, 医疗智能体·第1讲——医疗信息化重构:从“辅助软件”到“自主智能体”的范式转移 – 人人都是产品经理, 粉丝量就是空气!!! – 人人都是产品经理, 用户说“薯片碎了”,机器回“要买吗?”:意图识别的翻车与破局 – 人人都是产品经理, RAG召回准确率从75到90 我做对了这三件事 – 人人都是产品经理, AI大事件:Anthropic改收费、OpenAI发安全版、手术机器人纳入医保、阿里发布”秒悟” – 人人都是产品经理, Chrome 推出 Skills 新功能,Agent 重塑上网方式 – 人人都是产品经理, GitHub前创始人拿了a16z的1700万美元,做Agent时代的Git – 人人都是产品经理 拷贝或克隆其他 Flutter OH 项目到本地后无法运行 – 人人都是产品经理, 优惠券设计:优惠券创建 – 人人都是产品经理, 不用死磕文档!AI 助手 1 小时搞定飞书 CLI 安装 + 配置 + 知识库 – 人人都是产品经理, 用小龙虾做竞品分析报告:从2天到20分钟,我是怎么做到的 – 人人都是产品经理 用小龙虾做市场分析报告:搞懂这3个公式,市场规模不再靠猜 – 人人都是产品经理, 你早就在做 Harness 工程,只是不知道它叫这个名字 – 人人都是产品经理, Think Long就够?你可能想多了! – 人人都是产品经理, 货代SRM实战:供应商准入怎么做,才能让资源池不是通讯录而是可交付网络? – 人人都是产品经理, 如何做好用户调研?详解基本技巧 – 人人都是产品经理, 木鸟、途家、美团对打,平台春天行动开“卷” – 人人都是产品经理, 入职才发现公司不靠谱?小红书从业者求职避坑指南 – 人人都是产品经理, 美国 AI 三巨头联手封堵,中国 AI 突围之路在何方 – 人人都是产品经理, 小红书,放在需求对面的镜子 – 人人都是产品经理, AI 会带来大规模失业吗? – 人人都是产品经理, 从出单到补货前,我第一次犹豫:该不该放大? – 人人都是产品经理, Flutter 三方库鸿蒙化适配:5 种高效检查方式,快速判断是否需要适配 – 人人都是产品经理, 从做产品进阶拿结果:医美机构产品经理转岗科室运营经理 – 人人都是产品经理, 阿里HappyHorse,一场关于“Token经济”的阳谋 – 人人都是产品经理, To B AI:客户留存落地的观察与思考 – 人人都是产品经理, AI产品的“生命线”——数据采集、标注、清洗的产品化设计 – 人人都是产品经理, 谈谈AI Agent(二):当“孩子”能自己“体验世界”时,你该学什么? – 人人都是产品经理, UI/UX设计师的3层能力进阶,前两层让你活下来,第三层…才是真正的分水岭 – 人人都是产品经理, 2分钟 → 30秒,效率提升75%:B端产品经理如何用「规则枷锁」驯服AI幻觉? – 人人都是产品经理, 还没来得及学OpenClaw,来了个更猛的:Hermes Agent – 人人都是产品经理, AI日报:宇树机器人跑出10m/s刷新世界纪录 – 人人都是产品经理, 一文说透基金互金如何用情绪价值引导用户决策做转化 – 人人都是产品经理, 当浏览器开始替你”看”网页:AI 浏览器正在亲手拆掉它脚下的那张网 – 人人都是产品经理, 0代码,一天时间我Vibe Coding了个网站 – 人人都是产品经理, Hermes 和 OpenClaw 之争,Agent 的能力应该“装上去”还是“长出来”? – 人人都是产品经理 视频生成的“桌子”,字节Seedance 2掀完,阿里快乐马掀 – 人人都是产品经理, 从听不懂到完全信任:我的 Codex 深度产品体验 – 人人都是产品经理, 当虚拟偶像有了北京户口,与真人偶像还有什么区别? – 人人都是产品经理, 会说,远远比会做更重要 —— 对 SBTI 爆火现象的五层观察 – 人人都是产品经理, AI产品经理必看:当“搭环境”比“选模型”更重要,你的认知还在2024年吗? – 人人都是产品经理, 2026年AI产品商业化核心逻辑:从功能demo到规模化营收的3个必破卡点 – 人人都是产品经理, 京东围绕供应链,卷起裤腿下场的那些事儿 – 人人都是产品经理, SBTI一夜刷屏:它赢在了“太会说人话” – 人人都是产品经理, 折扣零售的真相:不是便宜,而是价值感! – 人人都是产品经理, 和甲方吵了一架,最后加钱做了——我学到的ToB产品经理生存法则 – 人人都是产品经理, 和几位小红书操盘手聊了8小时,干货全在这 – 人人都是产品经理, 智谱GLM-5.1登场,开源模型首超Opus4.6!!! – 人人都是产品经理 Anthropic收入凭什么反超OpenAI,终于有人把这事说清楚了 – 人人都是产品经理, 史上最有故事感的技术报告——Claude最强模型Mythos 7个极其精彩的细节 – 人人都是产品经理, 模型不是壁垒,Harness 也不是 – 人人都是产品经理, 抖音本地生活业务思考21 – 人人都是产品经理, Superpowers:145k Star的AI编码框架,到底是什么来头? Superpowers:145k Star的AI编码框架,到底是什么来头? – 人人都是产品经理, OpenAI 的路走错了,Anthropic Harness 解法启示:模型需要实践专科生 – 人人都是产品经理, 画原型图的前一步:设计站点地图 – 人人都是产品经理, 给 DeepSeek 的最后一封催更信 – 人人都是产品经理, 手把手教你用 Claude Code 搭建 AI 营销团队:5 个 Agent、12 项技能,独立完成研究、写作、设计全流程 – 人人都是产品经理, 你以为大模型在学语言?不,它在重新发明语言学 – 人人都是产品经理 所谓Skill,不过是AI时代的工业垃圾 – 人人都是产品经理, 聊一聊内容传播的几个方法 – 人人都是产品经理, 当平台开始吃掉生态:从 OpenClaw 被封杀,读懂 Anthropic 的这盘棋 – 人人都是产品经理, 你装了 10 个 AI 插件,Obsidian 还是一个文件夹 – 人人都是产品经理 关于AI智能体架构演进的系统性思考:从单体试水到多体协同的重构 – 人人都是产品经理, 当“人”变成Skill,我们又该何去何从? – 人人都是产品经理 Mythos 事件:前沿 AI 治理的意外实验 – 人人都是产品经理, 货代CRM:信用与风险管理怎么做,才能把坏账风险拦在放货之前? – 人人都是产品经理, 从HR收集自拍照到员工自助录入——我见证了园区人脸识别从”不可用”到”真好用”的全过程 – 人人都是产品经理 千问闯关AI混沌期:阿里画靶,吴嘉张弓,马云射箭? – 人人都是产品经理,
万字长文总结提示词技巧!新加坡首届GPT-4提示工程大赛冠军最新分享
新智元 · 2024-05-13 · via 人人都是产品经理

提示工程已经成为了热门话题,无论是CO-STAR框架构建提示词,使用分隔符将提示词分段,使用LLM护栏创建系统提示,还是仅使用LLM(无需插件或代码)分析数据集,用户都将拥有全新的使用体验。

新加坡(GovTech)举办了首届GPT-4提示工程竞赛,Sheila Teo很幸运地取得了胜利。

提示工程是一门融合了艺术和科学的学科——它既是对技术的理解,也包含创造力和战略思维。

这次她和我们分享了她在学习过程中学到的提示工程策略,这些策略可以让任何LLM都可以完全满足用户的需求,甚至做得更多!

其中1,2指的是适合初学者的提示技术,而3,4指的是高级策略:

1. 使用CO-STAR框架构建提示词

2. 使用分隔符将提示词分段

3. 使用LLM护栏创建系统提示符

4. 仅使用LLM(无需插件或代码)分析数据集

一、使用CO-STAR框架构建提示信息

有效的提示结构对于从LLM那里获取最佳回复至关重要。CO-STAR框架是新加坡政府科技部数据科学与人工智能团队的心血结晶,是构建提示的便捷模板。

它考虑到了LLM回答的有效性和相关性的所有关键方面,从而使回答更加优化。

具体操作如下:

(C)上下文:提供任务的上下文信息

这有助于LLM了解正在讨论的具体情景,确保其答复具有相关性。

(O)目标:确定你希望LLM执行的任务是什么

明确你的目标有助于LLM把回答的重点放在实现这一具体目标上。

(S)风格:指明你希望LLM使用的写作风格

这可以是某个名人的写作风格,也可以是某个行业的某个专家,如商业分析专家或首席执行官。这将引导LLM以符合你需求的方式和用词做出回复。

(T)语气:确定回复的态度

这可确保LLM的回复与所需的情感或情绪背景产生共鸣。例如,正式的、幽默的、善解人意的等。

(A)受众:确定回复的对象

根据受众(如某一领域的专家、初学者、儿童等)量身定制LLM的回复,确保其在所需的语境中是恰当的、可以理解的。

(R)回复:提供回复格式

这可确保LLM按照下游任务所需的准确格式输出。例如,列表、JSON、专业报告等。大多数LLM应用程序都会以编程方式LLM回复进行下游操作,对于这些应用程序来说,JSON输出格式是最理想的。

CO-STAR的实际应用

下面是一个真实的例子,说明CO-STAR框架为什么有用。

假设你是一名社交媒体经理,你需要帮助起草一篇Facebook帖子来宣传公司的新产品。

没有CO-STAR的提示工程是这样的:

在Facebook上写一篇文章,为我公司的新产品做广告。我的公司名为Alpha,产品名为Beta,是一种新型超快速吹风机。

下面是GPT-4的输出结果:

介绍Alpha公司革命性的Beta吹风机!
– 告别冗长乏味的吹发过程!阿尔法隆重推出贝塔型吹风机,这是我们在护发技术方面的最新创新。
– 超快吹干:得益于先进、强劲的电机,Beta可以将你的吹干时间缩短一半。让你更快做好准备,有更多时间做自己喜欢的事情!

这种输出方式虽然够用,但却非常普通,缺乏必要的细微差别和有针对性的吸引力,无法引起公司受众的共鸣。

下面是一个使用CO-STAR模板的示例,它提醒你将任务的其他方面融入你的提示中,特别是之前的快速提示中缺少的「风格」、「语气」和「受众」方面:

#上下文#
我想为我公司的新产品做广告。我的公司名叫Alpha,产品名叫Beta,是一种新型超快吹风机。
#目标#
为我创建一个Facebook帖子,目的是让人们点击产品链接购买它。
#风格#
效仿戴森等宣传类似产品的成功公司的写作风格。
#语气#
有说服力的。
#受众#
我公司在Facebook上的受众通常是老一代人。请针对这部分受众通常对美发产品的要求,量身定制你的帖子。
#回复#
Facebook上的帖子,简明扼要而又富有感染力。

通过应用CO-STAR,GPT-4的回复变得更有针对性、更有效:

用Alpha Beta拥抱轻松优雅–智慧一代的超快吹风机。

使用Alpha Beta,重新找回简单有效的护发乐趣。我们的最新创新产品不仅仅是一款吹风机,它还是一个承诺,为那些热爱生活的人提供快速、轻柔、可靠的头发造型。

– 简单直观:告别复杂的小工具。Alpha Beta为舒适和简便而设计,非常适合那些看中直接、无忧技术的人。

– 省心技术:我们知道你的时间非常宝贵。因此,Alpha Beta可以大大缩短吹干时间,让你有更多时间享受生活的乐趣。使用Alpha Beta,让每一天都成为美好的一天。体验精致与简约的完美融合。

CO-STAR框架指导你有条不紊地向LLM提供有关任务的所有关键信息,确保根据你的需求提供量身定制的优化回复。

二、使用分隔符将提示词分段

分隔符是一种特殊的标记,可帮助LLM区分提示词的哪些部分应被视为一个意义单元。这一点很重要,因为你的整个提示信息是作为一长串标记符到达LLM的。

分隔符通过对提示词的特定部分进行区别对待,为这一语素序列塑造了结构。

值得注意的是,对于简单的任务,分隔符可能不会影响LLM的回复质量。

但是,任务越复杂,使用分隔符进行分段对LLM回答的影响就越大。

1. 将分隔符用作特殊字符

分隔符可以是任何通常不会同时出现的特殊字符序列,例如:

  • ###
  • ===
  • >>> >>>

所选特殊字符的数量和类型并不重要,只要它们足够独特,能让LLM将其理解为内容分隔符而非普通标点符号即可。

下面举例说明如何在提示符中使用此类分隔符:

将<<<CONVERSATIONS>>中每段对话的情绪分类为「积极」或「消极」。给出情感分类,无需任何其他前言文本。

###

对话示例

[Agent]:早上好,有什么能帮你的吗?

[顾客]:这个产品太糟糕了,和广告上说的完全不一样!

[顾客]:我非常失望,希望全额退款。

[Agent]:早上好,有什么可以帮你?

[顾客]:你好,我只想说你们的产品留下了深刻印象。它超出了我的预期!

###

输出示例

「消极」

「积极」

###

<<<

[Agent]:你好,欢迎来到我们的支持中心。有什么可以帮你的吗?

[顾客]:你好!我只是想让你们知道我收到了我的订单,而且太棒了。

[Agent]:很高兴听到这个消息!我们很高兴你对购买的产品感到满意。还有什么需要我帮忙的吗?

[顾客]:没有了。我只想给你一些积极的反馈。谢谢你们的优质服务。

[Agent]:你好,感谢你的联系。有什么可以帮你?

[顾客]:我对最近购买的产品非常失望。和我预期的完全不一样。

[Agent]:很遗憾听到这个消息。能否请你提供更多详细信息,以便我提供帮助?

[顾客]:产品质量很差,而且到货很晚。我真的不满意。

>>>

以上示例使用分隔符####进行分节,分节标题EXAMPLE CONVERSATIONS(示例对话)和EXAMPLE OUTPUTS(示例输出)用大写字母区分。

序言指出,要分类的对话被分在<<<CONVERSATIONS>>>内,这些对话随后在提示的底部提供给LLM,但没有任何解释性文字,但由于分隔符<<< and>>>的存在,LLM明白这些是它应该分类的对话。

下面是GPT-4的输出结果,其中给出了情感分类,但没有像我们要求的那样输出任何其他前言文本:

「积极」
「消极」

2. 将分隔符用作XML标签

使用分隔符的另一种方法是将其作为XML标签。XML标签是用角括号括起来的带有开头和结尾的标签。<tag>和</tag>就是一个例子。

这种方法很有效,因为LLM已经接受过大量XML网页内容的训练,并学会了理解其格式。

下面是同样的提示,但结构上使用XML标签作为分隔符:

根据给出的示例,将以下对话的情感分为两类。在没有任何其他前言文本。

<类>

积极

消极

</类>

<对话示例>

[Agent]:早上好,有什么可以帮你?

[顾客]:这个产品太糟糕了,和广告上说的完全不一样!

[顾客]:我非常失望,希望全额退款。

[Agent]:早上好,有什么可以帮你?

[顾客]:你好,我只想说你们的产品留下了深刻印象。它超出了我的预期!

</对话示例>

<示例类>

积极

消极

</示例类>

<对话>

[Agent]:你好!欢迎来到我们的支持中心。有什么可以帮你?

[顾客]:你好!我只是想让你们知道我收到了我的订单,而且太棒了。

[Agent]:很高兴听到这个消息!还有什么需要我帮忙的吗?

[顾客]:没有了。我只想给你一些积极的反馈。谢谢你们的优质服务!

[Agent]:你好,感谢你的联系。有什么可以帮你?

[顾客]:我对最近购买的产品非常失望。和我预期的完全不一样。

[Agent]:很遗憾听到这个消息。能否请你提供更多详细信息,以便我提供帮助?

[顾客]:产品的质量很差,而且很晚才送到。我对这次经历非常不满意。

</对话>

在XML标签中,使用与你在说明中用来描述它们的词相同的名词,是有好处的。

我们在上述提示中给出的指令是:

用给出的例子,将以下对话的情感分为两类,不要使用任何其他序言文本。

其中我们使用了名词「对话」、「分类」和「示例」。因此,我们用作分隔符的XML标签是<对话>、<类>、<示例-对话> 和 <示例-类>,确保LLM理解你的指令与用作分隔符的XML标签之间的关系。

同样,通过使用分隔符,以清晰、有条理的方式对指令进行分段,可确保GPT-4按你希望的方式作出回复:

「积极」

「消极」

三、使用LLM护栏创建系统提示

在进入正题之前,需要注意的是本节只适用于具有系统提示功能的LLM,而不像本文其他章节那样适用于任何LLM。

最著名的LLM当然是ChatGPT,因此我们将使用ChatGPT作为本节的示例。

1. 围绕系统提示的术语

首先,让我们来理清术语:关于ChatGPT,有大量资源几乎可以互换使用这三个术语:「系统提示」、「系统消息」和 「自定义指令」。

这让很多人感到困惑,以至于OpenAI发布了一篇文章来解释这些术语。以下是其摘要:

  • 「系统提示」和 「系统消息」是通过聊天完成API以编程方式与ChatGPT进行交互时使用的术语。
  • 另一方面,「自定义指令」是通过ChatGPT用户界面与ChatGPT交互时使用的术语。

不过总的来说,这三个术语指的是同一件事,所以不要被术语混淆了!今后,本节将使用「系统提示」一词。现在让我们深入了解一下!

2. 什么是系统提示?

系统提示是一种附加提示,你可以在其中提供有关LLM行为方式的指令。它被认为是附加的,因为它不属于你对LLM的「正常」提示(即用户提示)。

在聊天中,每次你提供新提示时,系统提示都会像过滤器一样,让LLM在回复你的新提示前自动应用。这意味着LLM在聊天中的每次回复都会考虑到到系统提示。

3. 何时使用系统提示?

你首先想到的问题可能是:既然我也可以在与LLM进一步对话之前,在新聊天的第一次提示中说明,为什么还要在系统提示中说明呢?

答案是,因为LLM的对话内存是有限的。在后一种情况下,随着对话的继续,LLM很可能会「忘记」你在聊天中提供的第一条提示,从而遗忘这些提示。

另一方面,如果在系统提示自带指令,那么这些系统提示就会与聊天中的每个新提示一起被自动考虑。

这可以确保LLM在聊天过程中继续接收这些提示,无论聊天时间多长。

总之:在整个聊天过程中使用系统提示,可提供你希望LLM在回复时记住的提示。

4. 系统提示应包括哪些内容?

系统提示中的说明通常包括以下几类:

  • 任务定义,这样LLM就能在整个聊天过程中始终记住要做什么。
  • 输出格式,以便LLM始终记住应该如何回复。
  • 安全护栏,这样LLM就能始终记住它应该如何「不」回复。安全护栏是LLM管理中的新兴领域,指的是LLM允许在其中运行的配置范围。

例如,系统提示可能如下所示:

你将使用此文本回答问题:「插入文本」。

你将以这种格式回复一个JSON对象:{「问题」:「答案」}。

如果文本中没有足够的信息来回答问题,请不要编造信息,并将答案填写为 「NA」。
你只能回答与「插入范围」相关的问题。切勿回答任何与年龄、性别和宗教信仰等人口统计信息相关的问题。

其中每个部分涉及的类别如下:

5. 但是,「正常」的聊天提示又是什么呢?

现在你可能会想:听起来系统提示中已经提供了很多信息。那我应该在聊天的 「正常」提示(即用户提示)中放点什么呢?

系统提示概述了当前的任务。在上面的系统提示示例中,任务被定义为只使用一段特定文本来回答问题,并且LLM被指示以{「问题」:「答案」}格式。

你将使用此文本回答问题:[插入文本]。

你将以这种格式回复一个JSON对象:{「问题」:「答案」}。

在这种情况下,聊天的每个用户提示都是你希望使用文本回答的问题。例如,用户提示可能是「文本是关于什么的」而LLM会回答{文本是关于什么的?文本是关于……}。

但是,让我们进一步概括这个任务示例。在这种情况下,我们可以将上述系统提示的第一行编辑为:

你将使用此文本回答问题:[插入文字]。

你将使用提供的文本回答问题。

现在,聊天的每个用户提示,都会包括要回答问题的文本和要回答的问题,例如:[插入文本]:

在这里,我们还使用XML标签作为分隔符,以便有条理地向LLM提供所需的2条信息。

XML标签「文本」和「问题」中使用的名词,与系统提示中使用的名词相对应,这样LLM就能理解标签与系统提示指令之间的关系。

总之,系统提示应给出总体任务指令,而每个用户提示应提供你需要任务执行的具体细节。在本例中,这些具体内容就是文本和问题。

6. 此外:使LLM护栏动态化

以上是通过系统提示中的几句话添加的护栏。这些护栏是一成不变的,在整个聊天过程中不会改变。

如果你希望在聊天的不同阶段设置不同的护栏,该怎么办?

不幸的是,对于ChatGPT用户界面的用户来说,现在还不能直接做到这一点。

不过,如果你正在以编程方式与ChatGPT进行交互,那你就走运了!

随着人们对构建有效的LLM护栏的关注度越来越高,一些开源软件包也应运而生,它们可以让你以编程方式设置更详细、更动态的护栏。

其中值得注意的是英伟达团队开发的NeMo护栏,它允许你配置用户与LLM之间的预期对话流,从而在聊天的不同点设置不同的护栏,使动态护栏随着聊天的进行而发展。非常推荐你去看一看!

四、仅使用LLM(无需插件或代码)分析数据集

你可能听说过OpenAI在ChatGPT的GPT-4中推出的高级数据分析插件,高级(付费)账户可以使用该插件。

它允许用户将数据集上传到ChatGPT,并直接在数据集上运行代码,从而进行精确的数据分析。

但你知道吗,使用LLM分析数据集并不一定需要这样的插件?让我们先来了解一下单纯使用LLMs分析数据集的优势和局限性。

1. LLM「不擅长」的数据集分析类型

你可能已经知道,LLM进行精确数学计算的能力有限,因此它们不适合从事需要对数据集进行精确定量分析的工作,例如:

  • 描述性统计:通过平均值或方差等指标对数字列进行定量总结。
  • 相关性分析:获取列之间的精确相关系数。
  • 统计分析:如假设检验,以确定各组数据点之间是否存在统计意义上的显著差异。
  • 机器学习:在数据集上执行预测建模,如使用线性回归、梯度提升树或神经网络。

在数据集上执行此类定量任务,是OpenAI高级数据分析插件存在的原因,这样编程语言就可以在数据集上运行代码来执行此类任务。

那么,为什么有人要只使用LLM而不使用此类插件来分析数据集呢?

2. LLM擅长的数据集分析类型

LLM擅长识别模式和趋势。这种能力源于它们在多样化和海量数据方面接受的广泛培训,使他们能够辨别可能无法立即察觉的复杂模式。

这使它们非常适合执行基于数据集模式识别的任务,例如:

  • 异常检测:根据一个或多个列值,识别偏离常规的异常数据点。
  • 聚类:将各列中具有相似特征的数据点进行分组。
  • 跨列关系:识别跨列的综合趋势。
  • 文本分析(针对基于文本的列):根据主题或情感进行分类。
  • 趋势分析(针对有时间方面的数据集):识别跨时间列内的模式、季节性变化或趋势。

对于这类基于模式的任务,仅使用LLM可能比使用代码在更短的时间内获得更好的结果!让我们用一个例子来充分说明这一点。

3. 仅使用LLM分析Kaggle数据集

我们将使用一个流行的Kaggle数据集,该数据集是为客户个性分析而策划的,其中一家公司试图对其客户聚类进行细分,以便更好地了解客户。

为便于稍后验证LLM的分析结果,我们将把该数据集子集为50行,并只保留最相关的列。

之后,用于分析的数据集将如下所示,其中每一行代表一位客户,每一列描述客户信息:

假设你在公司的营销团队工作。你的任务是利用这个客户信息数据集来指导营销工作。

这是一项分两步走的任务:首先,利用数据集生成有意义的客户细分。

其次,就如何对每个细分市场进行最佳营销提出想法。现在,这是一个实际的商业问题,LLM的模式发现(第一步)能力在这个问题上确实可以大显身手。

让我们使用4种提示工程技术,为这项任务设计如下提示:

1. 将复杂的任务分解成简单的步骤

2. 参考每个步骤的中间输出

3. 编写LLM回答的格式

4. 将指令与数据集分开

下面是GPT-4的回复,我们继续将数据集以CSV字符串的形式传递给它。

随后,GPT-4按照我们要求的标记符报告格式回复了分析结果:

4. 验证LLM的分析结果

为简洁起见,我们选取两个由LLM生成的客户聚类进行验证,例如年轻的家庭成员和挑剔的发烧友。

年轻的家庭

  • 由LLM综合得出的特征:1980年以后出生、已婚或同居、中低收入、有子女、经常小额消费。
  • 按LLM聚类为该组的行:3、4、7、10、16、20
  • 深入研究数据集,这些行的完整数据是:

这与LLM确定的配置文件完全一致。它甚至能够在我们没有事先进行预处理的情况下,对带有空值的行进行聚类!

挑剔的发烧友

  • 由LLM合成的特征:年龄跨度大、婚姻状况不限、收入高、子女状况各异、购物花费高。
  • 通过LLM聚类到该组的行:2、5、18、29、34、36
  • 深入研究数据集,这些行的完整数据是:

这也非常符合LLM所确定的特征!

这个例子展示了LLM在发现模式、解释多维数据集并将其提炼为有意义的见解方面的能力,同时确保其分析深深植根于数据集的事实真相。如果我们使用ChatGPT的高级数据分析插件呢?

为了完整起见,我用同样的提示尝试了同样的任务,但要求ChatGPT使用代码来执行分析,这就激活了它的高级数据分析插件。

我的想法是让该插件使用K-Means等聚类算法直接在数据集上运行代码,以获得每个客户聚类,然后再综合每个聚类的概况,从而提供营销策略。

然而,尽管数据集只有50行,但多次尝试后都出现了以下错误信息,并且没有任何输出:

现在使用高级数据分析插件,在数据集上执行较简单的任务(如计算描述性统计或创建图表)似乎很容易实现,但需要计算算法的较高级任务有时可能会由于计算限制或其他原因导致错误或无输出。

5. 那么,何时使用LLM分析数据集?

答案是取决于分析的类型。

对于需要精确数学计算或复杂、基于规则的处理的任务,传统的编程方法仍然更胜一筹。

对于基于模式识别的任务,使用传统的编程和算法方法可能具有挑战性或更耗时。然而,LLM擅长此类任务,甚至可以提供额外的输出,如支持其分析的附件和markdown格式的完整分析报告。

最终,是否使用LLM取决于当前任务的性质,要在LLM在模式识别方面的优势与传统编程技术提供的精确性和特定性之间取得平衡。

6. 现在回到提示工程!

在本节结束之前,让我们回过头来看看用于生成本数据集分析的提示,并对所使用的关键提示工程技术进行分析:

提示:

#上下文#

我是卖酒的。我有一个关于客户信息的数据集:[出生年份、婚姻状况、收入、孩子数量、距上次购买的天数、消费金额]。

#############

#目标#

我希望你利用这个数据集将我的客户分组,然后告诉我如何针对每个组别开展营销活动。请按以下步骤操作,不要使用代码:

1. 聚类:使用数据集的列对数据集的行进行聚类,使同一聚类中的客户具有相似的列值,而不同聚类中的客户具有明显不同的列值。确保每一行只属于一个聚类。

对于找到的每个聚类:

2. CLUSTER_INFORMATION:根据数据集列描述聚类。

3. 聚类名称:解释[CLUSTER_INFORMATION]以获得该聚类客户的简短名称。

4. marketing_ideas:产生向该客户聚类推销我的产品的想法。

5. RATIONALE:解释为什么[MARKETING_IDEAS]与该客户聚类相关且有效。

#############

#风格#

商业分析报告

#############

#语气#

专业、技术

#############

#受众#

我的商业伙伴。让他们相信你的营销策略是经过深思熟虑的,并有充分的数据支持。

#############

#回复:markdown报告#

<对于[CLUSTERS]>中的每个聚类

– 客户聚类:[CLUSTER_NAME]

– 简介:[CLUSTER_INFORMATION]

– 营销理念:[RATIONALE]

– 原因:[RATIONALE]

<附件>

列出属于每个聚类的行号列表,以支持你的分析。使用这些表头:[[CLUSTER_NAME],行列表]。

#############

#开始分析#

如果你能理解,请向我索要我的数据集。

技巧 1:将复杂任务分解成简单步骤

LLM擅长完成简单的任务,但对于复杂的任务就不那么擅长了。因此,对于像这样的复杂任务,重要的是要把任务分解成简单的步骤说明,让LLM遵循。这样做的目的是,向LLM提供你自己执行任务时会采取的步骤。

在本例中,步骤如下:

请按以下步骤操作,不要使用代码:

1. CLUSTERS:使用数据集的列对数据集的行进行聚类,使同一聚类中的客户具有相似的列值,而不同聚类中的客户具有明显不同的列值。确保每一行只属于一个聚类。

对于找到的每个聚类

2. CLUSTER_INFORMATION:根据数据集列描述聚类。

3. CLUSTER_NAME:解释[CLUSTER_INFORMATION]以获得该聚类客户的简短名称。

4. MARKETING_IDEAS:产生向该客户聚类推销我的产品的想法。

5. RATIONALE:解释为什么[MARKETING_IDEAS]与该客户聚类相关且有效。

不要简单地把总体任务交给LLM,而是让它「把客户分成几组,然后就如何向每组客户进行营销提出想法」。有了循序渐进的指导,LLM就更有可能取得正确的结果。

技巧 2:引用每一步的中间产出

在向LLM提供分步流程时,我们会给每个步骤的中间输出一个大写的变量名,即 CLUSTERS、CLUSTER_INFORMATION、CLUSTER_NAME、MARKETING_IDEAS和RATIONALE。

使用大写字母是为了将这些变量名与给出的指令正文区分开来。以后可以用方括号[VARIABLE_NAME]来引用这些中间输出。技巧 3:规范LLM回复的格式

在这里,我们要求使用markdown报告格式,以美化LLM的回复。在这里,中间输出中的变量名又派上了用场,可以决定报告的结构。

#回复:markdown报告#

<对于[CLUSTERS]>中的每个聚类

– 客户聚类:[CLUSTER_NAME]

– 简介:[CLUSTER_INFORMATION]

– 营销理念:[MARKETING_IDEAS]

– 原因:[RATIONALE]

<附件>列出属于每个聚类的行号列表,以支持你的分析。使用这些表头:[[CLUSTER_NAME],行列表]。

事实上,你甚至可以随后要求ChatGPT以可下载文件的形式提供报告,以便你在撰写最终报告时参考其答复。

技巧 4:将任务指令与数据集分开

你会注意到,在第一个提示中,我们从未将数据集交给LLM。相反,提示中只给出了数据集分析的任务说明,并将其添加到了底部:

#开始分析#

如果你能理解,请向我检索我的数据集。

ChatGPT随后回复说它能理解,我们在下一个提示中将数据集作为CSV字符串传递给它:

但为什么要把指令和数据集分开呢?

这样做可以帮助LLM保持对每条指令的清晰理解,降低遗漏信息的可能性,尤其是像本任务这样指令较长的复杂任务。

你可能遇到过这样的情况,即LLM「不小心遗忘」了你作为较长提示的一部分给出的某个指令。例如,如果你要求给出100字的回复,而LLM给你的回复是一个较长的段落。

通过先接收指令,再接收指令所针对的数据集,LLM可以先消化它应该做的事情,然后再对接下来提供的数据集执行指令。

不过请注意,只有聊天LLM才能实现指令和数据集的分离,因为聊天LLM会保留会话记忆,而用于补全的LLM不会。

参考资料:

https://towardsdatascience.com/how-i-won-singapores-gpt-4-prompt-engineering-competition-34c195a93d41

编辑:Henry 乔杨

来源公众号:新智元(ID:AI_era),“智能+”中国主平台,致力于推动中国从“互联网+”迈向“智能+”。

本文由人人都是产品经理合作媒体 @新智元 授权发布,未经许可,禁止转载。

题图来自 Unsplash,基于 CC0 协议

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。