家人们!当AI开始帮我写周报、改代码,甚至还能吐槽老板的“画饼文学”时,我终于悟了——人类和AI的关系,就像在玩一场大型“你画我猜”!而决定AI是青铜还是王者的关键,不是它背后多硬核的算法,而是我们这些玩家投喂的“通关密语”——没错,这就是最近火出圈的Prompt Engineering(提示工程)!掌握这门“人类驯服AI的神秘语言”,你就能让AI秒变懂你小心思的“数字田螺姑娘”,把天马行空的脑洞变成现实。今天咱们就来扒一扒,如何用正确的“咒语”,解锁AI的隐藏技能!
一、什么是提示工程(Prompt Engineering)
Prompt 就是你发给大模型的指令,比如(讲个笑话)、(用Python编个贪吃蛇游戏)、(给男/女朋友写封情书)等。对于在AGI时代来说,学会提示工程就像学用鼠标、键盘一样,是AGI时代的基本技能。提示工程也是{门槛低,天花板高},所以有人戏称prompt为(咒语)。
1.1 提示工程上的优势
1.我们懂原理,所以知道为什么有的指令有效,有的指令无效,怎么提升指令有效的概率。
2.我们懂编程:能知道哪些问题用提示工程解决更高效,哪些用传统编程更高效,能完成和业务系统对接,把效能发挥到极致。
1.2 使用Prompt的两种目的
1.获得具体问题的具体结果,比如(我该学Vue还是React?)
2.固化一套Prompt到程序中,成为系统功能的一部分,比如(每天生成本公司的简报)
1.后者更难,掌握后能轻松搞定前者
2.后者是我们独特的优势
1.3 Prompt调优
找到好的prompt是个持续迭代的过程,需要不断调优。参考训练数据来构造prompt是最好的。不知道训练数据怎么办?
1.看Ta是否主动告诉你。例如已知:OpenAI GPT对Markdown格式友好,Claude 对XML友好。
2.只能不断试了。多一个字少一个字,对生成概率的影响都可能是很大的。尝试是常用方法,确实有运气因素,所以门槛低、天花板高。
高质量prompt核心要点:具体、丰富、少歧义,修炼prompt能力,工夫在平时。
二、Prompt的典型构成
- 角色:给AI定义一个最匹配任务的角色,比如:[你是一位软件工程师]、[你是一位小学老师]
- 指示:对任务进行描述
- 上下文:给出与任务相关的其它背景信息(尤其在多轮交互中)
- 例子:必要时给出举例,实践证明其对输出正确性有很大帮助
- 输入:任务的输入信息;在提示词中明确的标识出输入
- 输出:输出的格式描述,以便后续模块自动解析模型的输出结果,比如(JSON、XML)
2.1 [定义角色]为什么有效?
模型训练者没有想到过会这样,完全是大家把[AI当人看],因为传得太广,导致现在的大模型训练数据里充满了角色定义,所以更有效了。大模型对prompt开头和结尾的内容更敏感。 先定义角色,其实就是在开头把问题域收窄,减少二叉性。
2.2 推荐流量包的智能客服
2.3 对话系统的基本模块和思路
核心思路: 1.把输入的自然语言对话,转成结构化的表示
2.从结构化的表示,生成策略
3.把策略转成自然语言输出
2.4 完善,调优提示词
给例子很常用,效果特别好,改变习惯,优先用Prompt解决问题
用好prompt可以减轻预处理和后处理的工作量和复杂度。一切问题先尝试用prompt解决,往往有四两拨千斤的效果。
2.4.1支持多轮对话DST
在Prompt中加入上下文
加入指定情况下的回答模板,这样话术更专业
2.4.2纯用OpenAI API实现完整功能
把模型生成的回复加入消息历史。很重要,否则下次调用模型时,模型不知道上下文。
3 总结思考
纯OpenAI方案是否会更好?我觉得对于一个预设的产品来说,我们可以预先通过OpenAI给出来的方案,或者OpenAI给出的提示词来对我们所需的产品进行修饰。通过不断地通过页面的产品提示词来对产生的代码和需求进行修改。要做到以下两点,让代码生成更准确
- 让更多的环节可控
- 减少prompt长度