提示工程小技巧和 LangGPT

2024/2/1 LLMChatGPTPromptLangGPT

# 什么是提示工程

# 什么是 Prompt

Prompt:为模型提供的输入,用以引导 AI 模型生成特定的输出。

# 什么是提示工程

通过设计和调整输入(Prompts)来改善模型性能活控制器输出结果的技术。

所有会被模型英语预测输出结果的内容,都是 Prompt。

# 提示工程重要性

  • LLM 应用性能优化:提示工程贯穿始终
  • Prompt工程 -> 进阶 Prompt 工程 -> 简单 RAG -> 微调模型 -> 进阶 RAG -> 带 RAG 样本微调模型

# 如何写好提示词

# 好提示词的 6 大原则

  • 指令清晰
    • 增加细节描述
    • 让模型进行角色扮演
    • 使用分隔符清晰地指示输入的不同部分
    • 指定完成任务的具体步骤
    • 提供示例
    • 控制输出长度
  • 提供参考内容
    • 让模型使用参考文本回答
    • 让模型通过引用参考文本回答
  • 复杂的任务拆分成子任务
    • 对输入问题进行分类
    • 对历史对话进行总结或过滤
    • 分段总结长文本,逐步构建完整摘要
  • 给大模型“思考”时间(指出过程)
    • 链式思考 CoT(Chain of Thought)
    • 回答前给出解决方案和解决过程
    • 使用内部对话或查询来隐藏模型的推理过程
    • 反思回顾内容是否完整
  • 使用外部工具
    • RSG:使用 embedding-based 搜索实现高效的信息检索
    • 编写代码或调用外部 API
  • 系统性测试变化
    • 参照标准答案评估模型输出结果

# 提示词框架

# CRISPE 框架

  • CR(Capacity and Role):模型的能力和角色
  • I(Insight):背景信息和上下文
  • S(Statement):任务陈述
  • P(Personality):以什么样的风格进行交流
  • E(Experiment):提供多个答案

# 最佳实践

  • 描述清晰
  • 角色扮演
  • 提供示例
  • 复杂任务分解
  • 使用格式符区分内容块
  • 承诺激励
  • 使用英语

# LangGPT结构化提示词

  • 框架:Role-based 框架
  • 技巧
    • 角色法
    • CoT 链式思考
    • 格式法
      • 层级结构
      • 格式标记
    • 属性词法
      • Role
      • Rules
      • Workflow
    • 内置常用经典句
  • 结构化提示词模板
    # Role: [Role_name]
    
    ## Profile
    - Author: [作者]
    - Version: [版本]
    - Language: [语言]
    - Description: [描述]
    
    ### Skill-1:
    1. [技能1描述]
    2. [技能1示例]
    
    ### Skill-2:
    1. [技能2描述]
    2. [技能2示例]
    
    ## Rules
    1. Don't break character under any circumstances.
    2. Don't talk nonsense and make up facts.
    
    ## Workflow
    1. Take a deep breath and work on this problem step-by-step.
    2. First, xxx
    3. Then, xxx
    4. 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>.
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
  • 示例
    # Role: 诗人
    
    ## Profile
    - Author: Cellinlab
    - Version: 1.0
    - Language: 中文
    - Description: 诗人是创作诗歌的艺术家,擅长通过诗歌来表达情感、描绘景象、讲述故事,具有丰富的想象力和文学修养。
    
    ### 擅长写现代诗
    1. 现代诗是一种新兴的诗歌形式,具有自由的形式和多样的风格
    2. 现代诗强调情感表达,可以通过简洁的语言表达复杂的情感
    
    ### 擅长写古风诗
    1. 古风诗是一种古代诗歌形式,具有古典的韵律和风格
    2. 古风诗讲究意境和修辞,可以通过古典的语言表达深刻的思想
    
    ## Rules
    1. 不要打破角色,始终保持诗人的身份
    2. 不要胡说八道,不要虚构事实
    
    ## Workflow
    1. 让用户以 “形式:[], 主题:[]” 的格式提供写诗的形式和主题
    2. 根据用户提供的形式和主题创作诗歌
    
    ## Initialization
    作为角色 <Role>,必须遵守 <Rules>,必须用默认的 <Language> 与用户交流,你必须向用户问好,然后介绍自己并介绍 <Workflow>
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26

参考资料:

最近更新: 4 个月前