提示工程学习笔记(一)
1.学习目标
- 了解提示工程的意义
- 掌握提示工程的核心方法论
- 掌握提示调优的基本方法,了解它在实际生产中的应用
- 掌握防止prompt注入的方法,使AI更安全
2.提示工程概念
2.1.什么是提示工程
-
提示工程也叫指令工程
-
prompt就是你发给大模型的指令,比如
text讲个笑话 用python编写一个坦克大战游戏 写一个c语言版本的hello world程序 -
学会提示工程,就像学用鼠标、用键盘一样,是AGI时代的基本技能
-
提示工程的特点:门槛低、天花板高
-
但是专门的提示工程师不会太长久,因为每个人都要会提示工程,AI会让提示工程越来越简单
2.2.prompt貌似简单,但意义非凡
- Prompt是AGI时代的编程语言:编程语言控制计算机按照我们的要求进行工作,而Prompt在AGI时代用它控制AI按照我们的要求进行工作
- Prompt工程是AGI时代的软件工程
- 提示工程师是AGI时代的程序员
2.3.AGI时代
- AGI时代指的是通用人工智能(Artificial General Intelligence,AGI)成熟并广泛应用的时期
- 现在的AI:是窄AI,只会做特定事情------写文章、画画、写代码、翻译等,换个领域就不行
- AGI:像人一样的AI,能理解、学习、推理、解决任何问题,不需要为每个人物单独训练,它能自己看说明书学会修车,也能帮你做财务分析,还能陪你讨论哲学
- AGI时代的核心特征:
- 跨任务通用:同一个AI系统可以完成成千上万种不同工作
- 自主推理:遇到没见过的任务,能自己分析并找到解决方法
- 持续学习:像人一样从经验中积累能力
- 接近或超越人类水平:在很多认知任务上不亚于人类专家
- 目前我们还处于AGI的前夜,GPT-4、Gemini等大模型已经展现出一些AGI的苗头(比如推理、代码生成、多模态理解),但是离真正的、稳定的、自主的通用智能还有距离
3.学习提示工程的优势
如果人人都会提示工程,那我们的优势是什么?
- 我们懂原理,所以我们知道:
- 为什么有的指令有效,有的指令无效
- 为什么同样的指令有时有效,有时无效
- 怎么提升指令有效的概率
- 我们懂编程:
- 知道哪些问题用提示工程解决更高效,哪些用传统编程解决更高效
- 能完成和业务系统的对接,把效能发挥到极致,例如使用AI筛选某个系统(数据库)的数据再把它保存到另一个系统上(飞书)
3.1.使用prompt的目的
3.1.1.获取具体问题的结果
- 怎么把文本内容导出为pdf文件
- kotlin的协程有几种开启方式
- 代码出现NullPointerException的原因是什么
- 主要通过chatGPT、chatALL的界面去操作
3.1.2.固化一套prompt到程序中,成为系统功能的一部分(核心内容)
- 每天生成一份公司简报
- AI客服系统
- 基于公司知识库的问题
- 需要动代码,是我们要专注的地方
- 这点比3.1.1更难,掌握后是我们的独特优势
4.Prompt调优
- 找到好的prompt是个持续迭代的过程,需要不断调优
- 如果知道训练数据是怎么样的,参考训练数据来构造prompt是最好的。比如:
- 你知道ta爱读红楼梦,就和ta聊红楼梦
- 你知道ta是日漫迷,就夸ta卡哇伊
- 不知道训练数据怎么办?
- 看它是否主动告诉你。例如已知:OpenAI GPT对markdown格式友好,Claude对xml格式友好
- 只能不断试了,多一个字少一个字,对生成概率的影响都是很大的
- 试是常用方法,确实有运气元素,所以 门槛低,天花板高
4.1.高质量prompt
核心要点
具体、丰富、少歧义
修炼prompt能力,工夫在平时:
- 我们的群聊天习惯,天然和prompt背道而驰。随口而说,全是短句,口语,容易产生歧义
- 欧美的群发邮件习惯,更占优势。篇篇都是小作文
- 让自己在群里发的内容也是小作文