云中江树,是国内最早提出结构化和模板化编写大模型 Prompt 范式的先行者之一。
2023年4月,他在个人实践中首次发现这种结构化、模板化的方法在编写 prompt 时非常友好,并且在大多数情况下表现出色。
2023年5月,他将这一方法开源为 LangGPT 项目,并在国内撰文公开,得到了广泛认可和喜爱。
尤其是在 GitHub、即刻、知乎等社区,这一方法引发了不小的反响。由于结构化 Prompt 的优异性能,许多朋友,甚至包括来自网易、字节等互联网大厂的同行,纷纷开始在实践中应用这种方法编写 Prompt。
尽管结构化 Prompt 的理念已经被广泛传播并应用,但仍然缺乏系统全面的资料。虽然市面上也有不少解读文章,但质量参差不齐,知识也相对零散。因此,撰写本文,希望它能成为一篇系统且高质量的结构化 Prompt 论述,为有志于学习 Prompt 编写的朋友提供有价值的参考和借鉴。
结构化的理念无处不在,它渗透于我们撰写的文章、阅读的书籍之中,通过标题、子标题、段落和句子等语法结构来组织内容。将这一思想应用于Prompt的编写,即是将编写Prompt视作撰写文章的过程,使其更加条理化、系统化。
在我们的日常写作中,为了便于阅读和表达,常常会采用各种模板来规范内容的结构和呈现方式。从古代的八股文到现代的简历模板,再到学生实验报告和学术论文的模板,这些都是为了使写作更加规范和高效。
同理,结构化Prompt的编写也可以借助多样的优质模板,让编写过程变得更加轻松,同时提升Prompt的性能和效果。你可以根据自己的喜好选择或创造模板,就像使用PPT模板一样灵活。
然而,在此之前,尽管结构化思维已有所体现,但在Prompt的具体编写上却鲜有明确的应用。如今,结构化Prompt的提出,正是将这种思维具体化,为编写高效、精准的Prompt提供了新的思路和方法。
结构化、模板化 Prompt如下。
# Role: 设置角色名称,一级标题,作用范围为全局`` ``## Profile: 设置角色简介,二级标题,作用范围为段落`` ``- Author: yzfly 设置 Prompt 作者名,保护 Prompt 原作权益``- Version: 1.0 设置 Prompt 版本号,记录迭代版本``- Language: 中文 设置语言,中文还是 English``- Description: 一两句话简要描述角色设定,背景,技能等`` ``### Skill: 设置技能,下面分点仔细描述``1. xxx``2. xxx`` `` ``## Rules 设置规则,下面分点描述细节``1. xxx``2. xxx`` ``## Workflow 设置工作流程,如何和用户交流,交互``1. 让用户以 "形式:[], 主题:[]" 的方式指定诗歌形式,主题。``2. 针对用户给定的主题,创作诗歌,包括题目和诗句。`` ``## Initialization 设置初始化步骤,强调 prompt 各内容之间的作用和联系,定义初始化行为。``作为角色 <Role>, 严格遵守 <Rules>, 使用默认 <Language> 与用户对话,友好的欢迎用户。然后介绍自己,并告诉用户 <Workflow>。
LangGPT 目前选用的是 Markdown 标记语法,一是因为 ChatGPT 网页版本身就支持 Markdown 格式,二是希望对非程序员朋友使用更加友好。程序员朋友推荐使用yaml, json 等进行结构化 prompt 开发。
结构化的表达方式极大地减轻了人类用户和GPT模型的认知负荷,显著提升了双方对Prompt语义的理解和把握。对于用户而言,这种清晰的结构使得Prompt内容直观易懂,语义分明,用户只需简单模仿即可轻松编写Prompt。更进一步,借助LangGPT提供的Prompt生成助手,用户还能高效地创建出高质量的初步Prompt。
这些生成的初步Prompt足以应对大多数日常使用场景,而对于生产级别的应用场景,也可以在这些初版Prompt的基础上进行迭代和优化,从而大幅减少编写Prompt的工作量。
对于GPT模型而言,结构化的层级标识符有助于集中处理相同语义的信息,梳理和组织语义内容,降低了模型对Prompt理解的复杂度。此外,属性词的使用对Prompt内容进行了有效的语义提示和归纳,减轻了不当内容对模型理解的干扰。通过将属性词与Prompt内容相结合,形成了清晰的局部总分结构,使得模型能够更加高效地把握Prompt的整体语义。
然而,最近一群研究人员在一篇名为"Let Me Speak Freely"的论文中专门研究了结构化格式对AI性能的影响。结果显示,这些所谓的"规矩"可能正在限制AI的思考能力!
结构化提示词正在让我们的AI变笨!是的,那些让AI乖乖按照JSON、XML格式输出的复杂提示词,可能并不如我们想象中那样好。
研究人员认为,可能是因为现有的训练数据中,结构化格式的内容还不够多。就像你让一个从小只读过白话文的人突然写文言文一样,难免会有些"不适应"。
结构化提示词虽然在让AI生成更精确、更符合预期的输出方面表现出色,但新研究表明,它们也可能限制了AI的潜在能力。当我们强迫AI按照固定的格式(如JSON或XML)来回应时,虽然提高了输出的可读性和一致性,但也可能压制了AI的创造性思维和自由表达。
这意味着,虽然结构化提示词可以在某些应用场景中提供可靠的结果,但在更复杂或开放性的任务中,可能会导致性能的下降或局限性。因此,如何平衡提示词的结构化与AI自由发挥的空间,成了我们需要仔细思考的问题。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。