Prompt Engineering 经典算法大全、源码行级解析与速记口诀
全局把握:Prompt算法体系化,场景选择有章可循。源码掌握:行级解析助你自研或调优。口诀速记:查找回忆一目了然。如需某一算法的完整工程代码、论文精读、自动化调优实现,欢迎继续提问!
Prompt Engineering 经典算法大全、源码行级解析与速记口诀
一、Prompt Engineering常见算法全览
按发展脉络和核心功能,主要算法如下:
| 算法名称 | 核心作用 | 代表论文/出处 |
|---|---|---|
| Manual Prompting | 人工设计Prompt | GPT-3 Few-shot (Brown et al., 2020) |
| Few-shot Prompting | 少样本示例注入 | GPT-3 Few-shot (Brown et al., 2020) |
| Zero-shot Prompting | 零样本任务描述 | GPT-3 Zero-shot (Brown et al., 2020) |
| Chain-of-thought (CoT) | 分步推理提示 | Wei et al., 2022 |
| Self-consistency | 多次推理取众数 | Wang et al., 2022 |
| AutoPrompt | 自动搜索最优Prompt | Shin et al., 2020 |
| Prefix/Prompt Tuning | 可训练虚拟Prompt | Li & Liang, 2021; Lester et al., 2021 |
| Instruction Tuning | 指令微调 | Ouyang et al., 2022; Alpaca |
| RAG | 检索增强生成 | Lewis et al., 2020 |
| Least-to-most | 问题分解式提示 | Zhou et al., 2022 |
| Adversarial Prompting | 对抗性鲁棒测试 | Wallace et al., 2019 |
| Dynamic Prompting | 动态优化Prompt | Qin & Eisner, 2022 |
二、代表性算法源码级行级解析
1. AutoPrompt(自动搜索最优Prompt)
核心思想:用梯度/遗传算法自动搜索能最大化目标输出概率的Prompt token组合。
代表论文:AutoPrompt: Eliciting Knowledge from Language Models with Automatically Generated Prompts
核心伪代码行级解析:
# 假定 prompt_tokens 为当前prompt的token序列
# vocab 为候选token集合
# model_scoring(prompt) 评估prompt输出目标概率
for idx, token in enumerate(prompt_tokens):
best_token = token
best_score = model_scoring(prompt_tokens)
for candidate in vocab:
# 替换当前token为候选token
new_prompt = prompt_tokens.copy()
new_prompt[idx] = candidate
score = model_scoring(new_prompt)
if score > best_score:
best_token = candidate
best_score = score
# 更新prompt
prompt_tokens[idx] = best_token
# 最终prompt_tokens为最优组合
行级解析:
- 枚举每个位置的token
- 对每个候选token替换,评估新prompt得分
- 取得分最高的token替换原token
- 迭代全体token,得到最优prompt
2. Prefix/Prompt Tuning
核心思想:训练一段可学习的虚拟token(前缀/Prompt向量),拼接到输入前,实现参数高效微调。
代表论文:Prefix-Tuning: Optimizing Continuous Prompts for Generation
伪代码行级解析:
# prefix 是可训练的向量序列
# model 为冻结主模型
# X 为原始输入token
for batch in dataloader:
X, Y = batch
# 拼接prefix到输入前
input_with_prefix = concat(prefix, X)
# 前向传播
logits = model(input_with_prefix)
# 计算损失
loss = loss_fn(logits, Y)
# 只更新prefix参数
loss.backward()
optimizer.step()
行级解析:
- prefix初始化为可训练向量
- 每次训练用prefix拼接原输入
- 主模型参数冻结,仅优化prefix
- 训练后prefix可作为任意下游任务的Prompt
3. Chain-of-thought Prompting
核心思想:在Prompt中要求“分步推理”,模型输出推理链。
代表论文:Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
Prompt示例:
Q: 小明有3个苹果,每个苹果2元钱,他买了几个苹果?请分步计算。
A: 第一步:小明有3个苹果。第二步:每个2元钱。第三步:3*2=6元。答案:6元。
行级解析:
- Prompt中明确要求“分步计算”
- 模型按示例输出推理链,不是直接给答案
4. RAG(Retrieval-Augmented Generation)
核心思想:检索外部知识片段拼入Prompt,提升事实性。
代表论文:Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
伪代码行级解析:
def RAG_pipeline(question):
docs = retriever.retrieve(question) # 检索相关文档
prompt = build_prompt(question, docs) # 拼接为Prompt
answer = llm.generate(prompt) # 大模型生成
return answer
行级解析:
- 用问题检索相关文档
- 将文档与问题拼接成Prompt
- 输入大模型生成答案
5. Instruction Tuning
核心思想:用大量“任务指令-响应”对微调模型,使其更擅长理解自然语言指令。
代表论文:Training language models to follow instructions with human feedback
伪代码行级解析:
for batch in dataloader:
instruction, response = batch
# 拼成prompt
prompt = f"Instruction: {instruction}\nResponse:"
logits = model(prompt)
loss = loss_fn(logits, response)
loss.backward()
optimizer.step()
行级解析:
- 拼接“指令+响应”作为输入
- 用真实响应做监督训练,提升指令理解能力
三、速记口诀与算法对照表
Prompt算法速记口诀
“手写(Manual),零样本(Zero-shot),少样本(Few-shot)举例忙;
链式推理(CoT)分步想,自主搜索(AutoPrompt)挑词强;
前缀训练(Prefix)虚拟向,指令微调(Instruction)全能王;
检索增强(RAG)知识广,最少到最多(Least-to-most)细分量;
多次一致(Self-consistency)稳输出,对抗测试(Adv. Prompt)保安全。”
算法对照速查表
| 速记法 | 英文名/论文 | 场景/核心点 |
|---|---|---|
| 手写 | Manual Prompting | 传统人工设计 |
| 零样本 | Zero-shot | 只给任务描述 |
| 少样本 | Few-shot | 给输入-输出示例 |
| 链式推理 | Chain-of-thought (CoT) | 分步推理 |
| 自主搜索 | AutoPrompt | 自动挑选Prompt Token |
| 前缀训练 | Prefix/Prompt Tuning | 虚拟Token可训练 |
| 指令微调 | Instruction Tuning | 多指令任务训练 |
| 检索增强 | RAG | 文档拼接提升事实性 |
| 最少到最多 | Least-to-most | 问题拆解逐步解答 |
| 多次一致 | Self-consistency | 多次推理取众数 |
| 对抗测试 | Adversarial Prompting | 鲁棒性安全测试 |
四、补充说明
- 这些算法有的适合“Prompt工程师”手动设计(如Few-shot、CoT),有的适合“算法工程师”自动化部署(如AutoPrompt、Prefix Tuning)。
- 多数算法有对应的开源实现,可在HuggingFace、LangChain、LlamaIndex等生态找到。
- 复杂业务往往需要多种算法混合(如RAG+CoT+Self-consistency)。
五、结语
- 全局把握:Prompt算法体系化,场景选择有章可循。
- 源码掌握:行级解析助你自研或调优。
- 口诀速记:查找回忆一目了然。
如需某一算法的完整工程代码、论文精读、自动化调优实现,欢迎继续提问!
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)