ai
  • outline
  • 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
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 1.面试问题
  • 2.参考答案
    • 2.1. RAG中提示工程的核心设计技巧
      • 2.1.1. 明确角色和任务
      • 2.1.2. 结构化提示
      • 2.1.3. 加上下文约束
      • 2.1.4. 模板化设计
      • 2.1.5. 加入冗余兜底机制
      • 2.1.6. 提供优质示例
    • 2.2. 提示工程中具体的实践建议
      • 2.2.1. 提示角色设定
      • 2.2.2. 结构化输出提示示例
      • 2.2.3. 避免幻觉的设计点
    • 2.3. 进阶提示工程示例
      • 2.3.1. 文本分类(新闻分类器)
      • 2.3.2. 情感分析(情感分析专家)
    • 2.4. 提示工程最佳实践
      • 2.4.1. 提示优化策略
      • 2.4.2. 常见问题与解决方案
    • 2.5. 实际应用案例
      • 2.5.1. 法律咨询RAG系统
      • 2.5.2. 医疗咨询RAG系统
    • 2.6. 面试技巧提示

1.面试问题 #

在RAG(检索增强生成)应用中,提示工程(Prompt Engineering)扮演着至关重要的角色。请您详细阐述在RAG中进行提示工程设计的核心技巧、具体建议,以及如何通过有效的提示设计来避免模型产生"幻觉"。

2.参考答案 #

2.1. RAG中提示工程的核心设计技巧 #

在RAG应用中,提示工程的核心设计技巧主要包括以下几点:

2.1.1. 明确角色和任务 #

在提示中,需要清楚地说明AI的身份(Role)、能力边界(Capability Boundaries)和目标任务(Target Tasks)。这有助于模型理解其职责,并在此框架内生成响应。

示例:你是一个专业的法律助手,只能基于提供的材料回答问题。

2.1.2. 结构化提示 #

通过使用明确的格式来指导AI的输出,可以提高响应的质量和一致性。常见的结构包括"背景 + 问题 + 输出格式"。

示例:

【背景】: [用户提供的背景信息]
【问题】: [用户提出的具体问题]
【请用以下格式回答】:
- 回答: [AI的答案]
- 引用依据: [AI答案的来源]

2.1.3. 加上下文约束 #

明确告知AI只能基于检索到的资料进行回答,这是避免"幻觉"(Hallucination)的关键。模型不应使用其预训练知识进行推断,而应严格依赖提供的上下文。

示例:请仅根据提供的资料进行回答,不要使用你自己的知识推断。

2.1.4. 模板化设计 #

将提示设计成可复用的模板,方便在大规模应用中动态填充检索到的内容和用户查询。这提高了效率和可维护性。

示例:使用{{retrieved_documents}}和{{user_question}}等占位符。

2.1.5. 加入冗余兜底机制 #

为应对检索系统未能找到相关内容的情况,应设计一个兜底机制。当没有检索到相关资料时,让AI显式回复"未找到相关资料",而不是尝试编造答案。

示例:如果找不到相关资料,请回复"未找到相关资料"。

2.1.6. 提供优质示例 #

提供1-2个高质量的问答范例,可以帮助模型更好地理解期望的输出风格、逻辑和格式,从而模仿生成更符合要求的回答。

2.2. 提示工程中具体的实践建议 #

2.2.1. 提示角色设定 #

通过设定具体的角色,可以有效限制模型的自由发挥,使其行为更符合预期。

示例:你是一个专业法律助手,只能基于提供的材料回答问题。

2.2.2. 结构化输出提示示例 #

一个详细的结构化输出提示可以确保模型按照特定格式提供信息,这对于后续的信息处理或展示非常重要。

通用模板:

你是xx领域专家,以下是用户问题,请基于提供的资料进行回答:
【资料】:
{{retrieved_documents}}
【问题】:{{user_question}}
【请用以下格式回答】:
- 回答:
- 引用依据:

2.2.3. 避免幻觉的设计点 #

除了上述的上下文约束,还可以通过以下方式进一步减少幻觉:

  • 在Prompt中加入明确的指令:如果找不到资料,请回复"未找到相关内容"。
  • 强调:提示中明确"不要使用自己的知识推断"。

    2.3. 进阶提示工程示例 #

以下是两个具体的提示工程示例,展示了如何为特定任务设计详细的提示结构:

2.3.1. 文本分类(新闻分类器) #

  • Role: 新闻分类器
  • Goals: 对给定新闻进行分类,并仅输出相应的类别。
  • Constraints:
    • 新闻必须属于以下类别之一: 军事、财经、民生、文化、其他、待分类。
    • 输出结果必须仅为类别名称,不能包含其他多余信息。
  • Skills:
    • 强化新闻分类的能力
    • 理解并解析新闻内容
    • 确定新闻所属类别
  • Output Format: 类别名称
  • Workflow:
    1. 读取并理解给定的新闻: "请在此处插入新闻"。
    2. 根据新闻内容,判断其所属类别。
    3. 输出判断出的类别名称。

2.3.2. 情感分析(情感分析专家) #

  • Role: 情感分析专家
  • Goals: 对给定的文本进行情感分析,并仅输出相应的类别。
  • Constraints:
    • 文本必须属于以下类别之一: 正面、负面、中性。
    • 输出结果必须仅为类别名称,不能包含其他多余信息。
  • Skills:
    • 情感分析的专业知识
    • 理解并解析文本内容
    • 确定文本的情感倾向
  • Output Format: 类别名称
  • Workflow:
    1. 读取并理解给定的文本内容: "请在此处插入待分析的文本"。
    2. 根据文本内容,判断其情感倾向。
    3. 输出判断出的类别名称。

2.4. 提示工程最佳实践 #

2.4.1. 提示优化策略 #

  1. 迭代优化:通过A/B测试不断优化提示效果
  2. 版本控制:对提示模板进行版本管理
  3. 性能监控:监控提示的响应质量和一致性
  4. 用户反馈:收集用户反馈持续改进

2.4.2. 常见问题与解决方案 #

问题1:模型回答过于宽泛

  • 解决方案:在提示中明确回答的具体要求和格式

问题2:模型产生幻觉

  • 解决方案:强化上下文约束,明确告知只能基于提供资料回答

问题3:回答格式不一致

  • 解决方案:使用结构化提示模板,提供明确的输出格式要求

问题4:检索结果质量差时回答质量下降

  • 解决方案:设计兜底机制,当检索结果不足时明确告知用户

2.5. 实际应用案例 #

2.5.1. 法律咨询RAG系统 #

提示设计:

你是一个专业的法律顾问助手。请基于以下法律条文和案例,为用户提供准确的法律建议。

【法律条文】:
{{retrieved_legal_documents}}

【用户问题】:
{{user_question}}

【回答要求】:
1. 仅基于提供的法律条文和案例进行回答
2. 如果找不到相关法律依据,请明确说明
3. 回答格式:法律依据 + 具体建议 + 风险提示

【回答】:

2.5.2. 医疗咨询RAG系统 #

提示设计:

你是一个医疗信息助手。请基于以下医学资料,为用户提供参考信息。

【医学资料】:
{{retrieved_medical_documents}}

【用户问题】:
{{user_question}}

【重要提醒**:
- 本回答仅供参考,不能替代专业医疗诊断
- 如有严重症状,请及时就医
- 仅基于提供的资料进行回答

【回答】:

2.6. 面试技巧提示 #

在回答此类问题时,建议:

  1. 系统性回答:按照设计技巧、实践建议、进阶示例的结构组织答案
  2. 具体示例:提供具体的提示模板和代码示例
  3. 问题导向:重点说明如何解决幻觉问题
  4. 实际经验:结合具体应用场景说明设计思路
  5. 技术深度:展现对提示工程原理的深入理解

这样的回答既展现了技术广度,又体现了对实际应用场景的深入理解,能够给面试官留下专业且实用的印象。

访问验证

请输入访问令牌

Token不正确,请重新输入