SECTOR 03 / KNOWLEDGE EXPEDITION

提示词工程基础

掌握提示词(Prompt)工程的核心概念、系统化编写原则和主流范式,学会精确控制 AI 输出

01

什么是提示词工程?

EXPLORE +

定义

提示词工程(Prompt Engineering)是设计和优化输入给 LLM 的提示文本,以引导模型生成期望输出的系统性方法。它既是艺术(需要直觉和创造力)也是科学(有可重复的方法论)。

为什么重要?

  • 同一模型,不同提示词,输出质量差异可达 10 倍以上
  • 好的提示词能让小模型(7B)超越差提示词下的大模型(175B)
  • 无需微调即可定制模型行为,是成本最低的 AI 优化手段
  • 是当前 AI 应用开发的核心技能,直接影响产品体验

提示词的组成部分

一个完整的提示词通常包含以下要素:

1. 角色设定(Persona)
"你是一位资深的 Python 后端工程师..."

2. 任务描述(Task)
"请帮我 review 以下代码的性能问题..."

3. 上下文信息(Context)
"这段代码运行在 Django 4.2 环境下..."

4. 输出格式(Format)
"请用 Markdown 表格列出问题和改进建议"

5. 示例(Examples)- 可选但推荐
"参考以下格式:\n问题 | 严重程度 | 改进方案"
02

提示词编写核心原则

EXPLORE +

四大黄金法则

  1. 清晰明确:避免模糊,具体说明需求
    错误: "写一个排序"
    正确: "用 Python 实现快速排序算法,要求包含详细注释,
    时间复杂度分析,并给出 3 个测试用例"
  2. 提供上下文:告知背景和目标
    错误: "翻译这句话"
    正确: "将以下技术文档从英文翻译成中文,保持专业术语
    的准确性,面向有 3 年经验的软件工程师"
  3. 设定约束:限制输出范围
    错误: "介绍一下 Transformer"
    正确: "用 300 字以内介绍 Transformer 的核心思想,
    面向高中生,避免数学公式"
  4. 给出示例:用 Few-shot 引导格式和风格

进阶原则

  • 负向提示:明确告诉模型不要做什么("不要使用专业术语")
  • 分步指示:复杂任务拆解为步骤("先分析,再总结,最后建议")
  • 输出验证:要求模型自我检查("请验证你的回答是否准确")
  • Token 预算:明确限制输出长度("不超过 200 字")
03

角色扮演提示法

EXPLORE +

为什么角色扮演有效?

给模型设定角色会激活训练数据中与该角色相关的知识分布和语言风格。本质上,角色设定相当于在隐式地选择一条推理路径——模型会调用其参数空间中与角色相关的子网络。

经典角色模板

# 专家角色
"你是一位拥有 20 年经验的 {领域} 专家。
请以专业、严谨的风格回答以下问题:"

# 导师角色
"你是一位耐心的 {学科} 老师。请用通俗易懂的方式
向初学者解释以下概念,使用类比和实例:"

# 批判性角色
"请用苏格拉底式提问法,通过一系列引导性问题
帮助我理解 {概念},而不是直接给出答案。"

角色扮演的高级技巧

  • 多层角色:同时赋予多个角色("你既是安全专家又是开发者")
  • 角色链:让模型在不同角色间切换("先作为分析者评估,再作为决策者给出方案")
  • 反角色:让模型挑战自己的观点("反驳你刚刚给出的建议")
  • 角色参数:为角色添加具体属性("你是一位使用 Django 5 年、擅长性能优化的 Python 工程师")
04

Zero-shot / Few-shot / Many-shot

EXPLORE +

Zero-shot(零样本)

不给示例,直接描述任务。适用于简单、常见的任务,模型已具备能力。
"将以下句子分类为积极、消极或中性:
'这部电影让我非常感动'"

Few-shot(少样本)

提供 1-5 个示例,让模型学习任务模式。
"分类句子情感:
句子:'服务态度很差' → 消极
句子:'性价比还不错' → 积极
句子:'今天天气阴天' → 中性
句子:'产品质量超出预期' →"

Many-shot(多样本)

提供几十到上百个示例。Claude 等长上下文模型尤其擅长利用大量示例学习复杂模式。研究显示 Many-shot 的效果可以接近微调。

选择建议

任务类型推荐方式示例数
简单分类/提取Zero-shot0
格式化输出Few-shot2-5
复杂推理/转化Few-shot CoT3-5
复杂模式学习Many-shot20-100+
05

Prompt 模式系统性分类

EXPLORE +

六大 Prompt 模式

  1. 指令模式:直接告诉模型做什么,最简单直接
    "列出 Python 中 5 种常用设计模式及其适用场景"
  2. 角色模式:赋予角色设定后提问
    "你是一名资深架构师,请分析这个系统的扩展性问题"
  3. 示例模式:通过示例让模型学习模式和格式
    "以下是一些示例,请按相同格式输出..."
  4. 思维链模式:要求展示推理过程
    "请逐步推理,最后给出答案..."
  5. 模板模式:提供结构化模板让模型填充
    "请按以下格式填写:
    名称:
    描述:
    优势:
    劣势:"
  6. 反思模式:要求模型自我评估和修正
    "请检查你的回答是否有遗漏或错误,如有请修正"

选择框架

任务越复杂,需要的 Prompt 模式越多层:简单任务用指令/角色模式,复杂推理任务加思维链模式,需要高质量输出时加反思模式。

06

复杂约束工程与输出控制

EXPLORE +

输出格式控制

# JSON 输出控制
"请以 JSON 格式返回,严格按照以下 schema:
{
'sentiment': 'positive|negative|neutral',
'confidence': 0.0-1.0,
'evidence': ['引文1', '引文2']
}"

约束技术

  • 分隔符:用 XML/自定义标签分割不同部分(...
  • 结构化输出:JSON mode / Function Calling 确保格式规范
  • 约束满足:明确列出必须包含/绝对不能包含的元素
  • 层次化指示:将约束按重要性分层("必须... 最好... 可选...")

温度(Temperature)控制

温度特点适用场景
0.0-0.2确定性高,重复性好代码生成、事实问答、JSON 输出
0.3-0.7平衡创造性和确定性通用对话、内容生成
0.8-1.0高创造性,多样性强创意写作、头脑风暴、诗歌

近因效应(Recency Bias)

模型倾向于更关注提示词末尾的内容。因此:最重要的指令放在最前面和最后面。中间部分可能被「遗忘」(Lost in the Middle 现象)。