Prompt Engineering教程
如何理解并使用结构化 Prompt ?
结构化Prompt是一种模仿日常文章结构,利用标题、子标题和列表等元素来组织Prompt的高级编写方法。这种方法起源于2023年4月,当时在个人实践中首次提出并应用,后于2023年5月通过LangGPT项目公开发布。这种编写方式因其明显的性能优势和易用性,迅速在国内外获得广泛认可。
结构化Prompt的核心思想在于像撰写文章一样编写Prompt,通过标识符(如“#”、“<>”)和属性词(如“Role”、“Profile”)明确层级关系和模块功能,以此来指导大模型按照预期执行任务。这种方式不仅使Prompt的结构清晰可读,而且大大降低了编写难度,提升了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,写出来是这样的:
# 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的每个部分功能和作用范围一目了然。
- 提升语义认知,降低人机交互难度: 通过明确的属性词和标识符,人和模型都能更准确地理解Prompt的意图和结构,减少理解误差。
- 定向唤醒模型深度能力: 特定的结构和属性词可以更好地激发模型的相关能力,如角色扮演、遵循规则等。
- 支持高效开发和迭代: 类似于编程中的模块化设计,结构化Prompt的模板化和规范化特性使得Prompt的开发、维护和升级变得更加高效和系统。
高质量的结构化
编写高质量的结构化Prompt需要遵循以下原则:
- 构建全局思维链: 设计Prompt时,应考虑清晰的逻辑链路,从角色设定到执行规则、工作流程,每个环节都需要紧密相连、逻辑清晰。
- 保持上下文语义一致性: 标识符和属性词的使用应前后一致,以维持格式和内容的统一。
- 有机结合其他Prompt技巧: 结构化Prompt方法与CoT、ToT等技巧不冲突,结合使用可以进一步提升性能。
尽管结构化Prompt在很多方面都显示出了明显优势,但它并非万能。它依赖于底层模型的能力,无法解决模型本身存在的限制,如知识更新滞后、数学推理能力弱等问题。因此,有效利用结构化Prompt,同时针对具体任务和模型能力进行适当调整和优化,是提升Prompt效能的关键。
最后
总的来说,结构化Prompt为我们与大模型的交互提供了一种新的范式,通过模板化和结构化的编写方式,不仅提升了编写效率,还显著提高了Prompt的性能。随着人工智能技术的不断进步,结构化Prompt的方法和应用将持续演化,为我们解锁更多大模型的潜力。
阅读全文
×
初次访问:反爬虫,人机识别