Skip to content

提示词工程优化

Published: at 12:00 AM

基础

1. 提示词优化

提示词优化是一种对人工智能模型 prompt(提示词)的调整和优化手段,目的在于提高输出质量,增强相关性,提升用户体验。

优化方法:

2. Few-shot 学习

Few-shot 学习指的是模型在只有少量学习样本的情况下仍然能更快速准确地学习并适应新内容或新任务。其目标是让模型能够像人类一样,在数据有限的情况下,快速学习和适应新知识,提高学习效率和灵活性。

3. LLM(大语言模型)

Large Language Model(大语言模型)通过在海量的文本数据上进行训练,学会了生成和理解人类语言。它具有强大的语言规模参数以及表达能力,能够处理各种自然语言相关的任务。

4. 提示词优化效果评估

评估一个优化后的提示词是否有效,可以从以下几个方面进行:

5. RAG(检索增强生成)

RAG 是一种结合了检索技术和生成式模型的方法,主要用于提高人工智能的准确性和相关性。

工作原理:

  1. 问题接收
  2. 检索信息文档
  3. 生成回答

6. 提示词优化的六个策略

7. 常用技巧

8. Prompt 调优原则

9. Prompt 的典型构成

进阶

1. 零样本提示

零样本提示是指直接向模型提问,如”中国的首都在哪里”。虽然 LLM 展示了惊人的零样本能力,但在处理复杂任务时仍存在不足。

2. 少样本提示

少样本提示是一种通过提供少量示例来引导模型实现更好性能的技术。

3. 少样本提示的限制

即使提供了少样本提示,模型也可能无法得到正确的响应,特别是在处理推理类问题时。

4. 链式思考(思维链 CoT)

通过中间推理步骤实现复杂的推理能力,可以与少样本提示结合使用,以获得更好的结果。

5. 少样本思维链(Few-shot CoT)

6. 零样本 CoT 提示

例如:“让我们逐步思考”

7. 自洽性

自洽性是一种对抗幻觉的手段,类似于做数学题时的多次验算。可以通过以下方式实现:

8. 思维树(Tree-of-Thought, TOT)

基于思维链进行总结,引导 LLM 探索把思维作为中间步骤来解决通用问题。

TOT 通过维护一棵思维树,思维由连贯的语言序列表示,这个序列就是解决问题的中间步骤。

步骤:

  1. 在思维链的每一步,采样多个分支
  2. 拓扑展开成一个思维树
  3. 判断每个分支的任务完成度,以便进行启发式搜索
  4. 设计搜索算法
  5. 判断叶子结点的任务完成的正确性

9. 提示词应用场景

10. 防止 Prompt 攻击

Prompt 攻击是指攻击者通过精心设计恶意构造的提示词试图误导或操控大模型,使其生成不符合预期、有害或不适当的内容。

工作原理:

常见类型:

防范措施:

11. 如何识别提示词攻击?

12. 如何处理攻击?

RAG 技术详解

1. LLM 的缺陷

2. 使用 RAG 的原因

3. RAG 的定义

RAG(检索增强生成)是一种结合了检索技术和生成式模型的方法,主要用于提高人工智能的准确性和相关性。

工作原理:

  1. 问题接收
  2. 检索信息文档
  3. 生成回答
  4. 输出回答

关键点:利用外部知识库来增强生成模型的准确性和相关性

适用场景:需要处理和回答大量信息的场景,如智能客服、搜索引擎、问答系统等

4. RAG vs Fine-tuning

5. RAG 工作流程

  1. 问题接收
  2. 检索信息文档
  3. 生成回答
  4. 输出回答

RAG 工作流程

6. RAG 的搭建流程

索引阶段

  1. 搜索和提取各种格式的数据源
  2. 转换为统一的纯文本格式
  3. 分割成更小的块以适应上下文限制
  4. 使用嵌入模型将块编码成向量表示
  5. 存储在向量数据库中

检索阶段

  1. 将用户查询转换为向量表示
  2. 在知识库中查询向量与块向量的相似性得分
  3. 选择相似度最高的 Top-k 块

7. 向量计算方式

8. 文档处理

9. 向量检索

10. 常用向量数据库

11. RAG 的缺陷及应对策略

索引过程缺陷

  1. 内容缺失

    • 增加相应知识库
    • 数据清洗与增强
    • 优化 prompt 设计
  2. 文档加载问题

    • 优化文档读取器
  3. 文档切分问题

    • 固定长度的分块
    • 内容重叠分块
    • 基于结构的分块
    • 基于递归的分块
    • 优化分块大小选择

查询过程缺陷

  1. 错过排名靠前的文档

    • 增加召回 top-k 数量
    • 重排
  2. 其他问题

    • 提取上下文与文档无关
    • 格式错误(通过 prompt 调优解决)
    • 答案不完整(引导用户精简回答/拆分处理)
    • 未提取到答案
    • 答案不够具体或过于具体