Help us learn about your current experience with the documentation. Take the survey.

提示工程指南

本指南概述了与大型语言模型(LLMs)协作时提示工程的关键方面,包括提示设计、优化、评估和监控。

了解提示工程

概览视频请见 this video

最重要的要点:

  • 提示的定义:

    • 发送给语言模型以解决任务的指令
    • 构成用户界面中 AI 功能的核心
  • 提示质量的重要性:

    • 大大影响语言模型响应的质量
    • 迭代优化提示对于获得最佳结果至关重要
  • 设计提示时的关键考虑因素:

    • 理解你要求模型执行的任务
    • 知道你期望的响应类型
    • 准备数据集来测试提示
    • 要具体 - 提供大量细节和上下文以帮助 AI 理解
    • 提供潜在问题和期望答案的示例
  • 提示的通用性:

    • 提示在不同语言模型之间不是通用的
    • 更换模型时,需要调整提示
    • 参考语言模型提供商的文档获取具体技巧
    • 在完全切换前测试新模型
  • 提示工作工具:

    • Anthropic Console:用于编写和测试提示的平台
    • Generator Prompt:基于任务描述创建精心设计提示的工具
  • 提示结构:

    • 通常包含一般任务描述
    • 包含输入文本的占位符
    • 可能包括具体指令和建议的输出格式
    • 考虑使用 XML 标签包装输入,以便更好地理解和数据提取
  • 系统提示:

    • 设置 AI 的总体语调和角色
    • 可以提高模型的性能
    • 通常放在提示的开头
    • 为语言模型设置角色
  • 最佳实践:

    • 花时间理解任务要求
    • 使用提示生成工具作为起点
    • 测试和迭代提示以改进结果
    • 使用正确的英语语法和句法帮助 AI 理解
    • 允许不确定性 - 如果 AI 不确定,告诉它说"我不知道"
    • 使用积极表述 - 说明 AI 应该做什么,而不是不应该做什么

编写有效提示的最佳实践

概览视频请见 this video about writing effective prompts

以下是该视频的关键要点:

  • 没有通用的"好"提示:

    • 提示的有效性取决于具体任务
    • 提示写作没有放之四海而皆准的方法
  • 有效提示的特征:

    • 清晰地解释任务和预期结果
    • 直接且详细
    • 对期望的输出有具体要求
  • 需要考虑的关键要素:

    • 理解任务、受众和最终目标
    • 在提示中清楚地解释这些要素
  • 改进提示性能的策略:

    • 按顺序添加指令
    • 包含相关示例
    • 要求模型逐步思考(思维链)
    • 在提供答案前要求推理
    • 引导输入 - 使用分隔符清楚标示用户输入的开始和结束
  • 适应模型偏好:

    • 调整提示以适应模型偏好的数据结构
    • 例如,Anthropic 模型与 XML 标签配合效果很好
  • 系统提示的重要性:

    • 为语言模型设置角色
    • 放在交互的开头
    • 可以包含对工具或长上下文的认知
  • 迭代至关重要:

    • 被强调为使用提示时最重要的部分
    • 持续改进会带来更好的结果
    • 建立质量控制 - 使用 RSpec 或 Rake 任务自动测试提示以发现差异
  • 使用传统代码:

    • 如果任务可以在不调用 LLM 的情况下高效完成,使用代码获得更可靠和确定性的输出

调整和优化提示工作流程

使用 LangSmith 和 Anthropic Workbench 结合 CEF 进行 LLM 提示调优

使用 Anthropic 控制台迭代提示

概览视频请见 this video

使用 LangSmith 迭代提示

概览视频请见 this video

使用 LangSmith 进行数据集提示调优

概览视频请见 this video

在 LangSmith 中使用自动评估

概览视频请见 this video

在 LangSmith 中使用成对实验

概览视频请见 this video

查看 CEF 文档

何时使用 LangSmith,何时使用 CEF

概览视频请见 this video

关于 CEF(集中评估框架)项目的关键点
  1. 初始开发

    • 从纯 LangSmith 开始提示迭代
    • 设置更容易、更快捷
    • 早期阶段更具成本效益
  2. 何时过渡到 CEF

    • 当对功能投入更多时
    • 当处理更大的数据集时
    • 对于重复的长期使用
  3. CEF 设置考虑因素

    • 需要前期时间投入
    • 需要针对特定功能调整评估
    • 设置输入数据(例如,聊天功能的本地 GDK)
  4. 挑战

    • 确保不同用户之间数据的一致性
    • 探索座位和导入等数据共享选项
  5. 当前 CEF 功能

    • 支持关于代码的聊天问题
    • 处理文档相关查询
    • 包括代码建议的评估
  6. CEF 的优势

    • 允许在本地 GDK 上运行评估
    • 结果可在 LangSmith UI 中查看
    • 能够使用更大的数据集
  7. 灵活性

    • 需要根据特定用例进行定制
    • 不是一刀切的解决方案
  8. 文档

    • CEF 有大量文档可供参考
  9. 采用情况

    • 已被一些团队使用,包括代码建议和创建团队

更多资源

有关更全面的提示工程指南,请参阅: