菜单

高级 Prompt 技术

相关源文件

本文档介绍了可应用于大型语言模型(LLM)以改进和控制其输出的高级提示技巧。它涵盖了超出基本提示的方法,以帮助获得更准确、更有用、更一致的结果。有关提示工程基础知识的信息,请参阅提示工程基础知识

高级提示技巧概述

高级提示技巧是指导LLM进行更复杂的推理、更好地理解复杂任务以及获得更准确输出的方法。这些技巧利用了LLM的涌现能力,但需要精心设计的交互。

来源:05-advanced-prompts/README.md56-67

零样本提示

零样本提示是最基础的高级提示形式,即您只向LLM提供一个指令,不带任何示例。模型完全依靠其训练数据来生成响应。

示例

  • Prompt: "什么是代数?"
  • Response: "代数是数学的一个分支,研究数学符号以及操纵这些符号的规则。"

来源:05-advanced-prompts/README.md69-75

少样本提示

少样本提示包括提供一个或多个示例以及您的请求,以指导LLM。这有助于模型理解您希望它遵循的具体格式、风格或方法。

示例

  • Prompt: "写一首莎士比亚风格的诗。以下是几首莎士比亚十四行诗的例子:[示例]……现在,写一首关于月亮之美的十四行诗。"
  • Response: "在天空中,月亮柔和地闪耀,银色的光芒投下温柔的光辉,..."

来源:05-advanced-prompts/README.md76-86

思维链提示

思维链提示是一种指导LLM通过一系列逻辑步骤来解决问题的方法。它特别适用于复杂的推理任务,在这些任务中,模型可能提供不正确的答案。

示例

  • 无思维链

    • Prompt: "Alice有5个苹果,扔了3个,给了Bob 2个,Bob又还了一个,Alice还有多少个苹果?"
    • Incorrect response: "5"
  • 有思维链

    • Prompt: "Lisa有7个苹果,扔了1个,给了Bart 4个,Bart又还了一个:7 -1 = 6 6 -4 = 2 2 +1 = 3
      Alice有5个苹果,扔了3个,给了Bob 2个,Bob又还了一个,Alice还有多少个苹果?"
    • Correct response: "1"

来源:05-advanced-prompts/README.md89-117

生成知识

生成知识是一种技术,您可以在提示中包含其他上下文或数据,通常来自外部源或数据库。这会用与任务相关的信息丰富提示。

示例

  • 模板提示带变量

    {{company}}: {{company_name}}
    {{products}}:
    {{products_list}}
    Please suggest an insurance given the following budget and requirements:
    Budget: {{budget}}
    Requirements: {{requirements}}
    
  • 变量替换后

    Insurance company: ACME Insurance
    Insurance products (cost per month):
    - type: Car, cheap, cost: 500 USD
    - type: Car, expensive, cost: 1100 USD
    - type: Home, cheap, cost: 600 USD
    - type: Home, expensive, cost: 1200 USD
    - type: Life, cheap, cost: 100 USD
    
    Please suggest an insurance given the following budget and requirements:
    Budget: $1000 restrict choice to types: Car, Home
    

来源:05-advanced-prompts/README.md119-186

最少到最多提示

最少到最多提示将复杂问题分解成更小、更易于管理子问题。通过逐步处理问题,LLM可以在困难的任务上取得更好的结果。

示例

  • Prompt: "如何用5个步骤完成数据科学?"
  • 响应
    1. 收集数据
    2. 清洗数据
    3. 分析数据
    4. 可视化数据
    5. 呈现数据

来源:05-advanced-prompts/README.md187-200

自我完善技术

自我完善技术涉及一个多步骤过程,LLM首先生成一个初始响应,然后批评自己的输出,最后生成改进版本。这种迭代方法有助于提高响应质量。

示例

  1. Initial prompt: "创建一个带产品和客户路由的Python Web API"
  2. Initial response: Basic Flask code with errors
  3. Critique request: "suggest 3 improvements of the above code"
  4. Self-critique and improved response: Corrected code with better imports, error handling, and proper structure

来源:05-advanced-prompts/README.md201-264

助产术提示

助产术提示是一种技术,您要求LLM详细解释其响应的各个部分。这有助于识别不一致之处并提高最终答案的可靠性。

助产术提示的步骤

  1. 要求LLM回答一个问题
  2. 对于答案的每个部分,要求LLM更深入地解释
  3. 如果存在不一致之处,则丢弃不一致的部分
  4. 重复直到您对答案满意为止

示例

  • Initial prompt: "如何用5个步骤创建一个流行病危机应对计划?"
  • LLM responds with 5 steps
  • Follow-up prompt: "详细解释第一步,流行病有哪些具体风险?"
  • Continue with detailed questions about each step

来源:05-advanced-prompts/README.md265-317

利用温度控制输出变化

LLM默认情况下是非确定性的,这意味着多次运行相同的提示通常会产生不同的输出。温度是控制这种随机性的参数。

  • 温度 = 0:更具确定性、一致的输出
  • 温度 = 0.7:默认值,中等变化
  • 温度 = 1:最大的随机性和创造力

当您需要可预测、一致的结果时,请使用较低的温度值。对于需要多样性的创意任务,请使用较高的值。

示例

来源:05-advanced-prompts/README.md319-573

高级提示的最佳实践

这些最佳实践将帮助您在使用高级提示技术时获得更有效的结果

实践描述
指定上下文提供领域、主题和其他相关详细信息
限制输出如有必要,指定项目数量或长度
同时指定“是什么”和“怎么做”详细说明期望的内容和格式/结构
使用模板使用带变量的模板结构以获得一致性
正确拼写正确的拼写可以提高响应质量

指定“是什么”和“怎么做”的示例:“创建一个带产品和客户路由的Python Web API,将其分为3个文件”

来源:05-advanced-prompts/README.md575-588

实际应用:自我完善示例

课程提供了一项实际作业,应用自我完善技术来改进一个简单的Flask API

通过应用自我完善技术,您可以提示AI助手提出改进建议,包括

  • 错误处理
  • 安全功能
  • 性能优化
  • 代码结构和组织
  • 文档

来源:05-advanced-prompts/README.md589-616

高级提示技术总结

高级提示技术可以提高您从LLM获取高质量、受控输出的能力。每种技术都有特定的用例

  • 零样本:适用于简单、直接的任务
  • 少样本:当需要特定格式或风格时
  • 思维链:用于复杂的推理和数学问题
  • 生成知识:当需要整合外部数据时
  • 最少到最多:用于分解复杂任务
  • 自我完善:用于迭代改进输出
  • 助产术:用于验证一致性和准确性

通过将这些技术与适当的温度设置相结合,您可以从LLM获得比仅使用基本提示更复杂、更可靠的结果。

来源:05-advanced-prompts/README.md1-67