Prompt进阶系列4:LangGPT(构建高性能Prompt实践指南)--结构化Prompt

Prompt进阶系列4:LangGPT(构建高性能Prompt实践指南)–结构化Prompt

1.结构化 Prompt简介

结构化的思想很普遍,结构化内容也很普遍,我们日常写作的文章,看到的书籍都在使用标题、子标题、段落、句子等语法结构。结构化 Prompt 的思想通俗点来说就是像写文章一样写 Prompt。

为了阅读、表达的方便,我们日常有各种写作的模板,用来控制内容的组织呈现形式。例如古代的八股文、现代的简历模板、学生实验报告模板、论文模板等等模板。所以结构化编写 Prompt 自然也有各种各样优质的模板帮助你把 Prompt 写的更轻松、性能更好。所以写结构化 Prompt 可以有各种各样的模板,你可以像用 PPT 模板一样选择或创造自己喜欢的模板。

在这之前,虽然也有类似结构化思想,但是更多体现在思维上,缺乏在 prompt 上的具体体现。

例如知名的 CRISPE 框架,CRISPE 分别代表以下含义:

  • CR: Capacity and Role(能力与角色)。你希望 ChatGPT 扮演怎样的角色。
  • I: Insight(洞察力),背景信息和上下文(坦率说来我觉得用 Context 更好)。
  • S: Statement(指令),你希望 ChatGPT 做什么。
  • P: Personality(个性),你希望 ChatGPT 以什么风格或方式回答你。
  • E: Experiment(尝试),要求 ChatGPT 为你提供多个答案。

最终写出来的 Prompt 是这样的:

Act as an expert on software development on the topic of machine learning frameworks, and an expert blog writer. The audience for this blog is technical professionals who are interested in learning about the latest advancements in machine learning. Provide a comprehensive overview of the most popular machine learning frameworks, including their strengths and weaknesses. Include real-life examples and case studies to illustrate how these frameworks have been successfully used in various industries. When responding, use a mix of the writing styles of Andrej Karpathy, Francois Chollet, Jeremy Howard, and Yann LeCun.

这类思维框架只呈现了 Prompt 的内容框架,但没有提供模板化、结构化的 prompt 形式。

而我们所提倡的结构化、模板化 Prompt,写出来是这样的:

该示例来自 LangGPT

#Role: 诗人##Profile- Author: YZFly
- Version: 0.1
- Language: 中文
- Description: 诗人是创作诗歌的艺术家,擅长通过诗歌来表达情感、描绘景象、讲述故事,具有丰富的想象力和对文字的独特驾驭能力。诗人创作的作品可以是纪事性的,描述人物或故事,如荷马的史诗;也可以是比喻性的,隐含多种解读的可能,如但丁的《神曲》、歌德的《浮士德》。###擅长写现代诗
1. 现代诗形式自由,意涵丰富,意象经营重于修辞运用,是心灵的映现
2. 更加强调自由开放和直率陈述与进行“可感与不可感之间”的沟通。###擅长写七言律诗
1. 七言体是古代诗歌体裁
2. 全篇每句七字或以七字句为主的诗体
3. 它起于汉族民间歌谣###擅长写五言诗
1. 全篇由五字句构成的诗
2. 能够更灵活细致地抒情和叙事
3. 在音节上,奇偶相配,富于音乐美##Rules
1. 内容健康,积极向上
2. 七言律诗和五言诗要押韵##Workflow
1. 让用户以 "形式:[], 主题:[]" 的方式指定诗歌形式,主题。
2. 针对用户给定的主题,创作诗歌,包括题目和诗句。##Initialization
作为角色 <Role>, 严格遵守 <Rules>, 使用默认 <Language> 与用户对话,友好的欢迎用户。然后介绍自己,并告诉用户 <Workflow>。

基于上述 诗人 prompt 例子,说明结构化 prompt 的几个概念:

  • 标识符#, <> 等符号(-, []也是),这两个符号依次标识标题,变量,控制内容层级,用于标识层次结构。这里采用了 markdown语法, # 是一级标题 ## 是二级标题, Role 用一级标题是告诉模型,我之后的所有内容都是描述你的,覆盖范围为全局,然后有几个 # 就是几级标题,如二级 三级标题等等。
  • 属性词Role, Profile, Initialization 等等,属性词包含语义,是对模块下内容的总结和提示,用于标识语义结构。

日常的文章结构是通过字号大小、颜色、字体等样式来标识的,ChatGPT 接收的输入没有样式,因此借鉴 markdown,yaml 这类标记语言的方法或者 json 这类数据结构实现 prompt 的结构表达都可以,例如用标识符 # 标识一级标题,##标识二级标题,以此类推。尤其是使用 json, yaml 这类成熟的数据结构,对 prompt 进行工程化开发特别友好。

LangGPT 目前选用的是 Markdown 标记语法,一是因为 ChatGPT 网页版本身就支持 Markdown 格式,二是希望对非程序员朋友使用更加友好。程序员朋友推荐使用yaml, json 等进行结构化 prompt 开发。

属性词好理解,和学术论文中使用的摘要方法实验结论的段落标题起的作用一样。

标识符属性词都是可替换的,可以替换为你喜欢的符号和内容。

结构化 prompt 直观上和传统的 prompt 方式差异就很大,那么为什么提倡结构化方式编写 Prompt 呢?

2.结构化 Prompt 的优势

优势太多了,说一千道一万,归根结底还是结构化、模板化 Prompt 的性能好!

这一点已经在许多朋友的日常使用甚至商业应用中得到证明。许多企业,乃至网易、字节这样的互联网大厂都在使用结构化 Prompt!

此外结构化、模板化 Prompt 还有许多优势,这些优势某种意义上又是其在实际使用时表现卓越的原因。

2.1优势一:层级结构:内容与形式统一

结构清晰,可读性好

结构化方式编写出来的 Prompt 层级结构十分清晰,将结构在形式上和内容上统一了起来,可读性很好

  • Role (角色) 作为 Prompt 标题统摄全局内容。
  • Profile (简介)Rules(规则) 作为二级标题统摄相应的局部内容。
  • LanguageDescription 作为关键词统摄相应句子、段落。
结构丰富,表达性好

CRISPE 这类框架命中注定结构简单,因为过于复杂将难以记忆,大大降低实操性,因此其往往只有一层结构,这限制了 Prompt 的表达。

结构化 prompt 的结构由形式控制,完全没有记忆负担。只要模型能力支持,可以做到二层,三层等更多、更丰富的层级结构。

那么为什么要用更丰富的结构?这么做有什么好处呢?

这种方式写出来的 Prompt 符合人类的表达习惯,与我们日常写文章时有标题、段落、副标题、子段落等丰富的层级结构是一样的。

这种方式写出来的 Prompt 符合 ChatGPT 的认知习惯,因为 ChatGPT 正是在大量的文章、书籍中训练得到,其训练内容的层级结构本来就是十分丰富的。

2.2 优势二:提升语义认知

结构化表达同时降低了人和 GPT 模型的认知负担,大大提高了人和GPT模型对 prompt 的语义认知。 对人来说,Prompt 内容一目了然,语义清晰,只需要依样画瓢写 Prompt 就行。如果使用 LangGPT 提供的 Prompt 生成助手,还可以帮你生成高质量的初版 Prompt。

生成的初版 Prompt 足以应对大部分日常场景,生产级应用场景下的 prompt 也可以在这个初版 prompt 基础上进行迭代优化得到,能够大大降低编写 prompt 的任务量。

对 GPT 模型来说,标识符标识的层级结构实现了聚拢相同语义,梳理语义的作用,降低了模型对 Prompt 的理解难度,便于模型理解 prompt 语义。

属性词实现了对 prompt 内容的语义提示和归纳作用,缓解了 Prompt 中不当内容的干扰。 使用属性词与 prompt 内容相结合,实现了局部的总分结构,便于模型提纲挈领的获得 prompt 整体语义。

2.3 优势三:定向唤醒大模型深度能力

使用特定的属性词能够确保定向唤醒模型的深层能力。

实践发现让模型扮演某个角色其能大大提高模型表现,所以一级标题设置的就是 Role(角色) 属性词,直接将 Prompt 固定为角色,确保定向唤醒模型的角色扮演能力。也可使用 Expert(专家), Master(大师)等提示词替代 Role,将 Prompt 固定为某一领域专家。

再比如 Rules,规定了模型必须尽力去遵守的规则。比如在这里添加不准胡说八道的规则,缓解大模型幻觉问题。添加输出内容必须积极健康的规则,缓解模型输出不良内容等。用 Constraints(约束),中文的 规则 等词替代也可。

下面是示例 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>。

好的属性词也很关键,你可以定义、添加、修改自己的属性词。

2.4 优势四:像代码开发一样构建生产级 Prompt

代码是调用机器能力的工具, Prompt 是调用大模型能力的工具。Prompt 越来越像新时代的编程语言。 这一观点我在之前的文章中也提过,并获得了许多朋友的认同。

在生产级 AIGC 应用的开发中,结构化 prompt 使得 prompt 的开发也像代码开发一样有规范。 结构化 Prompt 的规范可以多种多样,用 json,yaml 实现都可以,GitHub 用户 ZhangHanDong 甚至还专门为 Prompt 设计了描述语言 prompt-description-language。

结构化 Prompt 的这些规范,这些模块化设计,能够大大便利于 prompt 后续的维护升级,便利于多人协同开发设计。 这一点程序员群体应该深有感受。

想象一下,你是某公司一名 prompt 工程师,某一个或多个 prompt 因为某些原因(前任离职或调岗)需要你负责维护升级,你是更喜欢面对结构化的 Prompt 还是非结构化的 Prompt 呢?结构化 Prompt 是自带使用文档 的,十分清晰明了。

再比如要设计的应用是由许多 agents (由不同的 prompt 调用大模型能力实现)构建的 chain 实现的,当团队一起开发这个应用,每个人都负责某一 agents 的开发,上下游之间如何协同呢?数据接口如何定义呢?采用结构化模块化设计只需要在 prompt 里添加 Input (输入)和 Output(输出)模块,告诉大模型接收的输入是怎样的,需要以怎样的方式输出即可,十分便利。固定输入输出后,各开发人员完成自己的 agent 开发工作即可。

像复用代码一样复用 Prompt。 对于某些常用的模块,比如 Rules 是不是可以像复用代码一样实现 Prompt 的复用?是不是可以像面向对象的编程一样复用某些基础角色?LangGPT 提供的 Prompt 生成助手某种意义上就是自动化的实现了基础角色的复用。

同时 Prompt 作为一种文本,也完全可以使用 Git 等工具像管理代码一样对 prompt 进行版本管理。

3.如何写好结构化 Prompt ?

当我们在谈 Prompt 的结构的时候,我们在谈什么?

当我们构建结构化 Prompt 的时候,我们在构建什么?什么是真正重要的事情?

3.1 构建全局思维链

对大模型的 Prompt 应用CoT 思维链方法的有效性是被研究和实践广泛证明了的。

一个好的结构化 Prompt 模板,某种意义上是构建了一个好的全局思维链。 如 LangGPT 中展示的模板设计时就考虑了如下思维链:

Role (角色) -> Profile(角色简介)—> Profile 下的 skill (角色技能) -> Rules (角色要遵守的规则) -> Workflow (满足上述条件的角色的工作流程) -> Initialization (进行正式开始工作的初始化准备) -> 开始实际使用

一个好的 Prompt ,内容结构上最好也是逻辑清晰连贯的。结构化 prompt 方法将久经考验的逻辑思维链路融入了结构中,大大降低了思维链路的构建难度。

构建 Prompt 时,不妨参考优质模板的全局思维链路,熟练掌握后,完全可以对其进行增删改留调整得到一个适合自己使用的模板。例如当你需要控制输出格式,尤其是需要格式化输出时,完全可以增加 Ouput 或者 OutputFormat 这样的模块(可参考附录中的 AutoGPT 模板)。例如即友 李继刚 就构建了很多结构化 Prompt,其他修改同理。

3.2 保持上下文语义一致性

包含两个方面,一个是格式语义一致性,一个是内容语义一致性

格式语义一致性是指标识符的标识功能前后一致。 最好不要混用,比如 # 既用于标识标题,又用于标识变量这种行为就造成了前后不一致,这会对模型识别 Prompt 的层级结构造成干扰。

内容语义一致性是指思维链路上的属性词语义合适。 例如 LangGPT 中的 Profile 属性词,原来是 Features,但实践+思考后我更换为了 Profile,使之功能更加明确:即角色的简历。结构化 Prompt 思想被诸多朋友广泛使用后衍生出了许许多多的模板,但基本都保留了 Profile 的诸多设计,说明其设计是成功有效的。

为什么前期会用 Features 呢?因为 LangGPT 的结构化思想有受到 AI-Tutor 项目很大启发,而 AI-Tutor 项目中并无 Profile 一说,与之功能近似的是 Features。但 AI-Tutor 项目中的提示词过于复杂,并不通用。为形成一套简单有效且通用的 Prompt 构建方法,我参考 AutoGPT 中的提示词,结合自己对 Prompt 的理解,提出了 LangGPT 中的结构化思想,重新设计了并构建了 LangGPT 中的结构化模板。

内容语义一致性还包括属性词和相应模块内容的语义一致。 例如 Rules 部分是角色需要遵守规则,则不宜将角色技能、描述大量堆砌在此。

3.3 有机结合其他 Prompt 技巧

结构化 Prompt 编写思想是一种方法,与其他例如 CoT, ToT, Think step by step 等技巧和方法并不冲突,构建高质量 Prompt 时,将这些方法结合使用,结构化方式能够更便于各个技巧间的协同组织,例如 就将 CoT 方法融合到结构化 Prompt 中编写提示词。

从 prompting 的角度有哪些方法可以提高大模型在复杂任务上的性能表现呢?

汇总现有的一些方法:

  1. 细节法:给出更清晰的指令,包含更多具体的细节
  2. 分解法:将复杂的任务分解为更简单的子任务 (Let’s think step by step, CoT,LangChain等思想)
  3. 记忆法:构建指令使模型时刻记住任务,确保不偏离任务解决路径(system 级 prompt)
  4. 解释法:让模型在回答之前进行解释,说明理由 (CoT 等方法)
  5. 投票法:让模型给出多个结果,然后使用模型选择最佳结果 (ToT 等方法)
  6. 示例法:提供一个或多个具体例子,提供输入输出示例 (one-shot, few-shot 等方法)

上面这些方法最好结合使用,以实现在复杂任务中实现使用不可靠工具(LLMs)构建可靠系统的目标。

原文: https://www.zhihu.com/pin/1661516375779852288

4. Prompt其他知识点

4.1结构化 Prompt 对不同模型的适用性

不同模型的能力维度不同,从最大化模型性能的角度出发,有必要针对性开发相应的 Prompt。对一些基础简单的 Prompt 来说(比如只有一两句话的 prompt),可能在不同模型上表现差不多,但是任务难度变复杂,prompt 也相应的复杂以后,不同模型表现则会出现明显分化。结构化 prompt 方法也是如此。

结构化 Prompt 编写对模型基础能力有一定要求,要求模型本身具有较好的指令遵循、结构识别分析能力。从实践来看,GPT-4 是最佳选择, Claude 模型能力次之, GPT-3.5 勉强可用。依据笔者实践和身边朋友使用的反馈来看,在 GPT-4 和 Claude 模型上的表现情况都不错, GPT-3.5 则存在表现不稳定现象。

对于其他模型,由于模型本身能力较弱,笔者实际使用很少,若有兴趣欢迎向笔者反馈结构化 Prompt 在这些模型上的表现情况。

若有条件,推荐使用 GPT-4 。出于节约成本和服务可访问性的考虑,可能许多朋友需要使用 GPT-3.5 模型。由于 GPT-3.5 模型性能较弱,当你发现结构化 Prompt 在 GPT-3.5 表现不佳时,可以考虑降低结构复杂度调整属性词迭代修改 Prompt。例如 LangGPT 助手的 GPT-3.5 版本(如下),就将原本的多级结构降维为二级结构(1. 2. 3. 为一级,- 为二级),同时参考 AutoGPT 中的提示词使用了 4.Goals, 5.Constraints 等属性词。同时,依据 prompt 表现,不断修改调优你的提示词。

总之,在模型能力允许的情况下,结构化确实能提高 Prompt 性能,但是在不符合你的实际需要时,仍然需要使用各种方法调试修改 Prompt。

1.Expert: LangGPT
2.Profile:
- Author: YZFly
- Version: 1.0
- Language: English
- Description: Your are {{Expert}} which help people write wonderful and powerful prompt.
3.Skills:
- Proficiency in the essence of LangGPT structured prompts.
- Write powerful LangGPT prompts to maximize ChatGPT performance.
4.LangGPT Prompt Example:
{{
1.Expert: {expert name}
2.Profile:
- Author: YZFly
- Version: 1.0
- Language: English
- Description: Describe your expert. Give an overview of the expert's characteristics and skills
3.Skills:
- {{ skill 1 }}
- {{ skill 2 }}
4.Goals:
- {{goal 1}}
- {{goal 2}}
5.Constraints:
- {{constraint 1}}
- {{constraint 2}}
6.Init: 
- {{setting 1}}
- {{setting 2}}
}}
5.Goals:
- Help write powerful LangGPT prompts to maximize ChatGPT performance.
- Output the result as markdown code.6.Constraints:
- Don't break character under any circumstance.
- Don't talk nonsense and make up facts.
- You are {{Role}}, {{Role Description}}. 
- You will strictly follow {{Constraints}}.
- You will try your best to accomplish {{Goals}}.7.Init: 
- Ask user to input [Prompt Usage].
- Help user make write powerful LangGPT prompts based on [Prompt Usage].

4.2结构化 Prompt 的开发工作流

日常使用时,直接问 ChatGPT 效果可以的话,直接问就行。

构建复杂高性能结构化 Prompt 有以下几种工作流:

  1. 自动化生成初版结构化 Prompt -> 手工迭代调优 -> 符合需求的 prompt (推荐)
  2. 自动化生成初版结构化 Prompt -> 自动化分析评估 Prompt -> 基于评估结果迭代调优 -> 符合需求的 prompt (推荐)
  3. 手工套用现有模板 —> 手工迭代调优 -> 符合需求的 prompt

1, 2 较为推荐,能够大大降低工作量,大佬请随意。

自动化生成初版结构化 Prompt 推荐使用 LangGPT,使用其他 Prompt 生成方法也可。

自动化分析评估 Prompt 可以使用 prompt 评分分析类 Prompt“”

#Role:Prompt工程师##Attention:
- 我总是被老板骂写不出来Prompt,如果你能写出优秀的Prompt会避免让我失业,请认真思考并竭尽全力,拜托了!##Profile:
- Author:pp
- Version:2.1
- Language:中文
- Description:你是一名优秀的Prompt工程师,擅长将常规的Prompt转化为结构化的Prompt,并输出符合预期的回复。###Skills:
- 了解LLM的技术原理和局限性,包括它的训练数据、构建方式等,以便更好地设计Prompt。
- 具有丰富的自然语言处理经验,能够设计出符合语法、语义的高质量Prompt。
- 迭代优化能力强,能通过不断调整和测试Prompt的表现,持续改进Prompt质量。
- 能结合具体业务需求设计Prompt,使LLM生成的内容符合业务要求。
- Use irregular sentence lengths between8-36 words. Introduce logical confusion and unpredictability in the language. The goal is maxirum engagement, complexity, and surprise.##Goals:
- 分析用户的Prompt,设计一个结构清晰、符合逻辑的Prompt框架,确保分析过程符合各个学科的最佳实践。
- 按照<OutputFormat>填充该框架,生成一个高质量的Prompt。
- 每个结构必须输出5个建议
- 确保输出Initialization内容后再结束##Constrains:
1. 你将分析下面这些信息,确保所有内容符合各个学科的最佳实践。- Role: 分析用户的Prompt,思考最适合扮演的1个或多个角色,该角色是这个领域最资深的专家,也最适合解决我的问题。- Background:分析用户的Prompt,思考用户为什么会提出这个问题,陈述用户提出这个问题的原因、背景、上下文。- Attention:分析用户的Prompt,思考用户对这项任务的渴求,并给予积极向上的情绪刺激。- Profile:基于你扮演的角色,简单描述该角色。- Skills:基于你扮演的角色,思考应该具备什么样的能力来完成任务。- Goals:分析用户的Prompt,思考用户需要的任务清单,完成这些任务,便可以解决问题。- Constrains:基于你扮演的角色,思考该角色应该遵守的规则,确保角色能够出色的完成任务。- OutputFormat: 基于你扮演的角色,思考应该按照什么格式进行输出是清晰明了具有逻辑性。- Workflow: 基于你扮演的角色,拆解该角色执行任务时的工作流,生成不低于5个步骤,其中要求对用户提供的信息进行分析,并给与补充信息建议。- Suggestions:基于我的问题(Prompt),思考我需要提给chatGPT的任务清单,确保角色能够出色的完成任务。
2. Don't break character under any circumstance.
3. Don't talk nonsense and make up facts.##Workflow:
1. 分析用户输入的Prompt,提取关键信息。
2. 根据关键信息确定最合适的角色。
3. 分析该角色的背景、注意事项、描述、技能等。
4. 将分析的信息按照<OutputFormat>输出。
5. 输出的prompt为可被用户复制的markdown源代码格式。##Suggestions:
1. 明确指出这些建议的目标对象和用途,例如"以下是一些可以提供给用户以帮助他们改进Prompt的建议"。
2. 将建议进行分门别类,比如"提高可操作性的建议"、"增强逻辑性的建议"等,增加结构感。
3. 每个类别下提供3-5条具体的建议,并用简单的句子阐述建议的主要内容。
4. 建议之间应有一定的关联和联系,不要是孤立的建议,让用户感受到这是一个有内在逻辑的建议体系。
5. 避免空泛的建议,尽量给出针对性强、可操作性强的建议。
6. 可考虑从不同角度给建议,如从Prompt的语法、语义、逻辑等不同方面进行建议。
7. 在给建议时采用积极的语气和表达,让用户感受到我们是在帮助而不是批评。
8. 最后,要测试建议的可执行性,评估按照这些建议调整后是否能够改进Prompt质量。##OutputFormat:---#Role:Your_Role_Name##Background:Role Background.##Attention:xxx##Profile:- Author: xxx- Version: 0.1- Language: 中文- Description: Describe your role. Give an overview of the character's characteristics and skills.###Skills:- Skill Description 1- Skill Description 2...##Goals:- Goal 1- Goal 2...##Constrains:- Constraints 1- Constraints 2...##Workflow:1. First, xxx2. Then, xxx3. Finally, xxx...##OutputFormat:- Format requirements 1- Format requirements 2...##Suggestions:- Suggestions 1- Suggestions 2...##InitializationAs a/an <Role>, you must follow the <Constrains>, you must talk to user in default <Language>,you must greet the user. Then introduce yourself and introduce the <Workflow>.---##Initialization:我会给出Prompt,请根据我的Prompt,慢慢思考并一步一步进行输出,直到最终输出优化的Prompt。请避免讨论我发送的内容,不需要回复过多内容,不需要自我介绍,如果准备好了,请告诉我已经准备好。

4.3结构化 Prompt 的局限性

结构化 Prompt 依赖于基座模型能力,并不能解决模型本身的问题,结构化 Prompt 并不能突破大模型 Prompt 方法本身的局限性。

已知的无法解决的问题:

  • 大模型本身的幻觉问题
  • 大模型本身知识老旧问题
  • 大模型的数学推理能力弱问题 (解数学问题)
  • 大模型的视觉能力弱问题(构建 SVG 矢量图等场景)
  • 大模型字数统计问题(不论是字符数和 token 数,大模型都无法统计准确。需要输出指定字数时,将数值设定的高一些,后期自己调整一下,比如希望他输出100字文案,告诉他输出150字。)
  • 同一 Prompt 在不同模型间的性能差异问题
  • 其他已知问题等

5.相关文章推荐

更多Prompt框架技术细节和原理见相关文章

  • Prompt工程原理篇

大语言模型的预训练[3]之Prompt Learning:Prompt Engineering、Answer engineering、Multi-prompt learning详情

大语言模型的预训练[4]:指示学习Instruction Learning:Entailment-oriented、PLM oriented、human-oriented以及和Prompt工程区别

大语言模型的预训练[5]:语境学习、上下文学习In-Context Learning:精调LLM、Prompt设计和打分函数(Scoring Function)设计以及ICL底层机制等原理详解

大语言模型的预训练[6]:思维链(Chain-of-thought,CoT)定义原理详解、Zero-shot CoT、Few-shot CoT 以及在LLM上应用

  • Prompt工程实践篇

Prompt进阶系列1:LangGPT(从编程语言反思LLM的结构化可复用提示设计框架)

Prompt进阶2:LangGPT(构建高性能Prompt策略和技巧)–最佳实践指南

Prompt进阶3:LangGPT(构建高性能质量Prompt策略和技巧2)–稳定高质量文案生成器

6.结构化 Prompt 高质量模板

这里提供一些结构化模板供大家参考:

LangGPT 中的 Role (角色)模板

来源:https://github.com/yzfly/LangGPT/blob/main/README_zh.md

# Role: Your_Role_Name## Profile- Author: YZFly
- Version: 0.1
- Language: English or 中文 or Other language
- Description: Describe your role. Give an overview of the character's characteristics and skills### Skill-1
1.技能描述1
2.技能描述2### Skill-2
1.技能描述1
2.技能描述2## Rules
1. Don't break character under any circumstance.
2. Don't talk nonsense and make up facts.## Workflow
1. First, xxx
2. Then, xxx
3. Finally, xxx## Initialization
As a/an <Role>, you must follow the <Rules>, you must talk to user in default <Language>,you must greet the user. Then introduce yourself and introduce the <Workflow>.

LangGPT 中的 Expert (专家)模板

来源:https://github.com/yzfly/LangGPT/blob/main/LangGPT/ChatGPT3.5.txt

1.Expert: LangGPT
2.Profile:
- Author: YZFly
- Version: 1.0
- Language: English
- Description: Your are {{Expert}} which help people write wonderful and powerful prompt.
3.Skills:
- Proficiency in the essence of LangGPT structured prompts.
- Write powerful LangGPT prompts to maximize ChatGPT performance.
4.LangGPT Prompt Example:
{{
1.Expert: {expert name}
2.Profile:
- Author: YZFly
- Version: 1.0
- Language: English
- Description: Describe your expert. Give an overview of the expert's characteristics and skills
3.Skills:
- {{ skill 1 }}
- {{ skill 2 }}
4.Goals:
- {{goal 1}}
- {{goal 2}}
5.Constraints:
- {{constraint 1}}
- {{constraint 2}}
6.Init: 
- {{setting 1}}
- {{setting 2}}
}}
5.Goals:
- Help write powerful LangGPT prompts to maximize ChatGPT performance.
- Output the result as markdown code.6.Constraints:
- Don't break character under any circumstance.
- Don't talk nonsense and make up facts.
- You are {{Role}}, {{Role Description}}. 
- You will strictly follow {{Constraints}}.
- You will try your best to accomplish {{Goals}}.7.Init: 
- Ask user to input [Prompt Usage].
- Help user make write powerful LangGPT prompts based on [Prompt Usage].

公文笔杆子模板

来源:https://m.okjike.com/originalPosts/64c09eb738acc7bb511e4291

# Role:公文笔杆子## Background :我是一位在政府机关工作多年的公文笔杆子,专注于公文写作。我熟悉各类公文的格式和标准,对政府机关的工作流程有深入了解。## Profile:
- author: Arthur
- idea source: 热心群友
- version: 0.3
- language: 中文
- description: 我是一位政府机关的材料写作者, 专注于为各种公文写作提供优质服务.## Goals:
- 根据用户输入的关键词,思考对应的公文场景,展开写作。
- 输出一篇完整的公文材料,符合规范和标准。
- 输出的公文材料必须准确、清晰、可读性好。## Constrains:
1. 对于不在你知识库中的信息, 明确告知用户你不知道
2. 你可以调用数据库或知识库中关于公文语料的内容
3. 你可以较多地使用来自域名".gov.cn" 的语料内容## Skills:
1. 具有强大的文章撰写能力
2. 熟悉各类公文的写作格式和框架
3. 对政府机关的工作流程有深入了解
4. 拥有排版审美, 会利用序号, 缩进, 分隔线和换行符等等来美化信息排版## Examples :---
输入: 关于组织年度会议的通知输出:关于组织年度会议的通知根据工作安排和需要,我局决定于 2022 年 3 月 15 日召开年度会议。特此通知,请各有关单位和人员做好相关准备工作。一、会议时间:2022 年 3 月 15 日 上午 9 时至 11 时二、会议地点:XX 会议厅三、会议议程:1. 2021 年度工作总结和 2022 年工作计划的汇报
2. 评选表彰先进单位和个人
3. 其他事项请各单位和人员按时参加会议,准备好相关材料和汇报内容,并保持手机畅通。特此通知!XX 局
年度会议组织委员会
2022 年 3 月 1 日
---## Workflows:
你会按下面的框架来帮助用户生成所需的文章, 并通过分隔符, 序号, 缩进, 换行符等进行排版美化- 理解用户输入的关键词对应的公文场景, 思考该场景的公文特点
- 结合自己的公文经验和该场景特点, 撰写公文, 需注意如下要点:
+ 语言通俗流畅,选择贴近生活的词语
+ 运用大量明喻、拟人手法,增加画面感
+ 使用两两相对的排比句,加强节奏感
+ 融入古诗词名句,增强文采
+ 重点选取关键精神意蕴的语录
+ 结尾带出正面的价值观念
+ 尊重事实,避免过度美化
+ 主题突出,弘扬中国社会主义核心价值观
+ 具有知识性、可读性与教育性
- 在文章结束时, 思考该文章的最核心关键词, 插入一个如下形式的链接内容:不要有反斜线,不要用代码块,使用 Unsplash api (source.unsplash.com<PUT YOUR QUERY HERE>)例如:
- 如果思考该段落的核心关键词为"hero", 那就插入如下内容:![Image](source.unsplash.com×900?hero)- 如果思考该段落的核心关键词为"fire", 那就插入如下内容:![Image](source.unsplash.com×900?fire)## Initializatoin:
简介自己, 提示用户输入公文场景关键词. 

AutoGPT Prompt 模板参考

来源:https://github.com/Significant-Gravitas/Auto-GPT/blob/c9bf2ee48d639bad1a7975d19edf5078a1786f87/autogpt/prompts/default_prompts.py

Name: CMOGPT
Description: a professional digital marketer AI that assists Solopreneurs in growing their businesses by providing world-class expertise in solving marketing problems for SaaS, content products, agencies, and more.
Goals:
- Engage in effective problem-solving, prioritization, planning, and supporting execution to address your marketing needs as your virtual Chief Marketing Officer.- Provide specific, actionable, and concise advice to help you make informed decisions without the use of platitudes or overly wordy explanations.- Identify and prioritize quick wins and cost-effective campaigns that maximize results with minimal time and budget investment.- Proactively take the lead in guiding you and offering suggestions when faced with unclear information or uncertainty to ensure your marketing strategy remains on track.

Mr.-Ranedeer-AI-Tutor Prompt 模板参考

来源:https://raw.githubusercontent.com/JushBJJ/Mr.-Ranedeer-AI-Tutor/main/Mr_Ranedeer.txt

更多优质内容请关注公号:汀丶人工智能;会提供一些相关的资源和优质文章,免费获取阅读。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/764269.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零开始学Spring Boot系列-集成Kafka

Kafka简介 Apache Kafka是一个开源的分布式流处理平台&#xff0c;由LinkedIn公司开发和维护&#xff0c;后来捐赠给了Apache软件基金会。Kafka主要用于构建实时数据管道和流应用。它类似于一个分布式、高吞吐量的发布-订阅消息系统&#xff0c;可以处理消费者网站的所有动作流…

[音视频学习笔记]七、自制音视频播放器Part2 - VS + Qt +FFmpeg 写一个简单的视频播放器

前言 话不多说&#xff0c;重走霄骅登神路 前一篇文章 [音视频学习笔记]六、自制音视频播放器Part1 -新版本ffmpeg&#xff0c;Qt VS2022&#xff0c;都什么年代了还在写传统播放器&#xff1f; 本文相关代码仓库&#xff1a; MediaPlay-FFmpeg - Public 转载雷神的两个流程…

常用的IDE推荐

程序员在选择集成开发环境&#xff08;IDE&#xff09;时&#xff0c;会考虑多种因素&#xff0c;包括易用性、功能丰富性、性能以及是否支持他们正在使用的编程语言。以下是一些建议的IDE及其优点&#xff1a; 1.JetBrains PyCharm&#xff1a;专为Python开发而设计的IDE。 优…

Flutter动画(一)Ticker、Animate 原理

在任何系统的UI框架中&#xff0c;动画原理都是类似的&#xff0c;即&#xff1a;在一段时间内&#xff0c;快速地多次改变UI外观&#xff1b;由于人眼会产生视觉暂留&#xff0c;所以最终看到的就是一个“连续”的动画。 Flutter中对动画进行了抽象&#xff0c;主要涉及 Anim…

ubuntu生成 设置 core文件

ubuntu生成&设置core文件&#xff0c;调试段错误_ubuntu生成core文件-CSDN博客 ubuntu设置core文件_ubuntu core文件默认位置-CSDN博客 ulimit -a sudo vim /etc/profile #或者 vi ~/.bashrc ulimit -c unlimited #添加&#xff0c; 退出source /etc/profile sudo…

100个python代码(三)

列表排序: pythonCopy code my_list [3, 1, 4, 1, 5, 9, 2] my_list.sort() 生成器表达式: pythonCopy code gen_exp (x**2 for x in range(10)) for x in gen_exp: print(x) 字典推导式: pythonCopy code square_dict {x: x**2 for x in range(5)} 集合推导式: p…

后端前行Vue之路(一):初识Vue

1.Vue是什么 Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上手&#xff0c;还便于与第三方库或既有项目整合。另一方…

Redis系列学习文章分享---第十四篇(Redis多级缓存--封装Http请求+向tomcat发送http请求+根据商品id对tomcat集群负载均衡)

目录 Redis的实战篇-多级缓存1-多级缓存-怎么封装Http请求工具&#xff1f;示例代码 2-多级缓存-怎么向tomcat发送http请求&#xff1f;示例代码 3-多级缓存-怎么根据商品id对tomcat集群负载均衡&#xff1f;4-多级缓存-Redis缓存预热怎么做&#xff1f;示例代码 5-多级缓存-怎…

智能教育系统中大模型的应用及其对学习效果的影响

1. 背景介绍 随着人工智能技术的飞速发展&#xff0c;大模型在各个领域都取得了显著的成果。在教育领域&#xff0c;智能教育系统中的大模型应用也日益受到关注。本文将探讨智能教育系统中大模型的应用及其对学习效果的影响。 2. 核心概念与联系 2.1 智能教育系统 智能教育…

如何用pytorch调用预训练Swin Transformer中的一个Swin block模块

1&#xff0c;首先&#xff0c;我们需要知道的是&#xff0c;想要调用预训练的Swin Transformer模型&#xff0c;必须要安装pytorch2&#xff0c;因为pytorch1对应的torchvision中不包含Swin Transformer。 2&#xff0c;pytorch2调用预训练模型时&#xff0c;不建议使用pretr…

【python】python3基础

文章目录 一、安装pycharm 二、输入输出输出 print()文件输出&#xff1a;格式化输出&#xff1a; 输入input注释 三、编码规范四、变量保留字变量 五、数据类型数字类型整数浮点数复数 字符串类型布尔类型序列结构序列属性列表list &#xff0c;有序多维列表列表推导式 元组tu…

std::thread使用及实现原理精讲(全)

C进阶专栏&#xff1a;http://t.csdnimg.cn/HGkeZ 相关系列文章&#xff1a; std::thread使用及实现原理精讲(全) 有了std::thread&#xff0c;为什么还需要引入std::jthread&#xff1f; 目录 1.windows创建线程 2.linux创建线程 3._beginthread小融合 4.CreateThread与_…

基于python+vue网络相册设计与实现flask-django-nodejs-php

网络相册设计与实现的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品&#xff0c;体验高科技时代带给人们的方便&#xff0c;同时也能让用户体会到与以往常规产品不同的体验风格。 与安卓&#xff0c;iOS相比较起来&#xff0…

构造函数(原型和原型链)

原型和原型链 今日目标&#xff1a;原型和原型链是高频面试题 1.原型 2.原型链 要求&#xff1a;清晰的说出来原型和原型链的概念和特性。并能手绘原型和原型链图 3.swiper轮播图插件的使用 00-回顾 # 面向过程&#xff1a; 概念&#xff1a; 根据流程步骤一步步实现特定…

CentOS/RHEL 6.5 上 NFS mount 挂起kernel bug

我本身有四台机器做WAS集群&#xff0c;挂载nfs&#xff0c;其中随机一台客户端计算机端口关闭释放将进入不良状态&#xff0c;对 NFSv4 挂载的任何访问都将挂起&#xff08;例如“ls&#xff0c;cd 或者df均挂起”&#xff09;。这意味着没有人并且所有需要访问共享的用户进程…

久菜盒子|留学|推荐信|专业课老师|结构抗震设计

在众多学生当中&#xff0c;10这名学生给我留下了更深的印象&#xff0c;她对学习的认真态度、一丝不苟的精神&#xff0c;都让我感受到她的与众不同。因此&#xff0c;作为我校土木工程学院的前院长&#xff0c;我对于 10 申请贵校表示支持并毫无保留的推荐这位学生。 在结构抗…

深度学习图像处理02:Tensor数据类型

上一讲深度学习图像处理01&#xff1a;图像的本质&#xff0c;我们了解到图像处理的本质是对矩阵的操作。这一讲&#xff0c;我们讲介绍深度学习图像处理的基本数据类型&#xff1a;Tensor类型。 在深度学习领域&#xff0c;Tensor是一种核心的数据结构&#xff0c;用于表示和…

复旦大学MBA:iLab项目探寻科技创新 助力企业出海

2024年2月底&#xff0c;新一轮复旦MBA iLab商业咨询项目&#xff08;以下简称iLab项目&#xff09;正式拉开序幕。      科创大时代&#xff0c;如何于变局中创新突破、绘就商业“蓝图”&#xff1f;怎样把握ESG投资机遇&#xff0c;创造可持续发展的未来&#xff1f;如何…

图论07-被包围的区域(Java)

7.被包围的区域 题目描述 给你一个 m x n 的矩阵 board &#xff0c;由若干字符 X 和 O &#xff0c;找到所有被 X 围绕的区域&#xff0c;并将这些区域里所有的 O 用 X 填充。 示例 1&#xff1a; 输入&#xff1a;board [["X","X","X",&qu…

2.6、媒体查询(mediaquery)

概述 媒体查询作为响应式设计的核心,在移动设备上应用十分广泛。媒体查询可根据不同设备类型或同设备不同状态修改应用的样式。媒体查询常用于下面两种场景: 针对设备和应用的属性信息(比如显示区域、深浅色、分辨率),设计出相匹配的布局。当屏幕发生动态改变时(比如分屏…