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算法体系化,场景选择有章可循。
  • 源码掌握:行级解析助你自研或调优。
  • 口诀速记:查找回忆一目了然。

如需某一算法的完整工程代码、论文精读、自动化调优实现,欢迎继续提问!

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐