一、Encoder vs Decoder 架构选择
BERT 和 GPT 都源自 Transformer,但取了不同的"半边":
| 维度 | Encoder-only(BERT) | Decoder-only(GPT) |
|---|---|---|
| 结构 | 双向自注意力 | 因果(掩码)自注意力 |
| 擅长 | 理解、分类、抽取 | 生成、续写、对话 |
| 看上下文 | 同时看左右 | 只看左侧(不能偷看未来) |
| 典型任务 | NER、情感分类 | 问答、写作、代码 |
为什么生成式偏好 Decoder? 因为生成是自回归的:第 t 个词只能依赖已生成的 1...t-1 个词,因果掩码恰好强制了这一约束。而 Encoder 的双向注意力会"泄露未来",不适合逐词生成。
一句话:要"读懂"用 BERT,要"写出"用 GPT。
二、GPT 家族技术演进时间线
-
GPT-1(2018):1.17 亿参数,验证"生成式预训练 + 微调"可行。
-
GPT-2(2019) :15 亿参数,展现**零样本(zero-shot)**能力------不微调,仅靠提示就能做任务,惊艳业界。
-
GPT-3(2020) :1750 亿参数,提出少样本(few-shot) 提示:在上下文里给几个例子,模型就能照着做,引出规模定律(Scaling Law)。
-
InstructGPT / GPT-3.5(2022) :引入 RLHF(基于人类反馈的强化学习),让模型输出更符合人类意图,ChatGPT 由此引爆大众认知。
-
GPT-4(2023):多模态、更强推理与长上下文,确立"大模型即平台"的生态位。
核心启示 :能力提升 ≈ 数据 × 参数 × 算力,但对齐(alignment) 决定了模型"好用不好用"。
三、规模定律与 RLHF 对齐
3.1 Scaling Law(规模定律)
Kaplan 等人发现:模型的测试损失随参数量、数据量、算力呈幂律下降。这意味着"大力出奇迹"不是玄学,而是可预测的缩放规律------当然也带来巨大的训练成本。
3.2 RLHF(人类反馈强化学习)
预训练让模型"懂语言",但未必"懂人话"。RLHF 三步:
-
SFT:用人工标注的高质量问答微调(监督);
-
奖励模型(RM):让人对多个回答排序,训练一个打分模型;
-
PPO 强化学习:用 RM 当奖励,优化策略模型,使输出更符合人类偏好。
正是 RLHF 让 GPT 从"续写机器"变成"能对话的助手"。
四、提示工程四类范式
不微调、不改权重,只靠"怎么问",就能显著改变模型表现。四类高频范式:
1. 零样本(Zero-shot)
直接下达指令,不给例子:
请把下面这句话翻译成英文:
"今天天气真好,我们去公园散步吧。"
2. 少样本(Few-shot)
给几个示范,模型照猫画虎:
情感分类,输出 POS/NEG。
"这部电影太棒了" -> POS
"剧情拖沓无聊" -> NEG
"演员演技在线" -> POS
"__待分类文本__" ->
3. 角色设定(Role-playing)
给模型一个身份,稳定输出风格:
你是一名资深 Python 后端工程师,回答要简洁、给出可运行代码。
用户:如何用 Redis 实现分布式锁?
4. 思维链(Chain-of-Thought, CoT)
让模型"一步步思考",把推理过程写出来再给答案,复杂任务提升显著(见下一节)。
五、思维链实战示例
问题:一个农夫有 17 只羊,除了 9 只以外都死了,还剩几只?
-
直接问(易错):模型可能答"8 只"(误以为 17−9)。
-
CoT 提示:
请一步步思考再回答:
一个农夫有 17 只羊,除了 9 只以外都死了,还剩几只?
思考: "除了 9 只以外都死了" 意思是那 9 只没死,存活的就是这 9 只。
答案:9 只。
模板:
问题:{question}
请先分步推理,最后用"答案:"给出结论。
CoT 在算术、常识推理、多步逻辑上效果最明显;配合少样本示例(Few-shot CoT)更稳。但 CoT 会增加 token 消耗与延迟,简单任务不必强行套用。
六、开源模型调用与边界
不想调 OpenAI API?本地/国产开源模型一样能用。以 Transformers 加载为例:
python
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "THUDM/chatglm3-6b" # 或 Qwen/Qwen2-7B 等
tok = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_id, torch_dtype="auto", device_map="auto", trust_remote_code=True)
prompt = "你是一名翻译,把这句译成中文:The quick brown fox jumps over the lazy dog."
inputs = tok.apply_chat_template([{"role":"user","content":prompt}],
add_generation_prompt=True, return_tensors="pt").to("cuda")
out = model.generate(inputs, max_new_tokens=128, do_sample=False)
print(tok.decode(out[0][inputs.shape[1]:], skip_special_tokens=True))
提示工程的边界
-
不能替代领域微调:医疗、法律等高风险领域,提示再花哨也不如无监督微调/检索增强(RAG)可靠;
-
受上下文长度限制:超长文档需切片或外接向量库;
-
结果不稳定:同一提示多次采样可能不同,关键场景要加约束与校验。
参考资料
-
Radford, A., et al. (2018). Improving Language Understanding by Generative Pre-Training (GPT-1). OpenAI.
-
Brown, T., et al. (2020). Language Models are Few-Shot Learners (GPT-3). NeurIPS.
-
Ouyang, L., et al. (2022). Training Language Models to Follow Instructions (InstructGPT/RLHF). NeurIPS.
-
Wei, J., et al. (2022). Chain-of-Thought Prompting Elicits Reasoning in LLMs. ICLR.
往期回顾
提示工程是低成本撬动大模型的杠杆。下一篇《中文分词与序列标注技术对比》我们回到中文 NLP 的基础工程。
深学之路:从感知机到智能体》 ------ 从感知机到大模型智能体的完整深度学习连载(基础、工程化、扩散模型 / RAG / Agent 等)。每篇附可运行代码与原创实验,收藏专栏不迷路。