3.3 预训练模型与 NLP 应用实践


3.3 预训练模型与 NLP 应用实践

本节摘要:预训练-微调范式重塑了整个 NLP。本节对比 BERT(双向编码)和 GPT(单向解码)两大范式的预训练目标、架构差异、适用任务,再讲大模型时代的新范式——指令微调如何让基础模型听懂人话、RLHF 如何对齐人类偏好、Prompt Engineering 如何激发模型能力。最后落到 NLP 工程实践:RAG 检索增强、模型评估、部署优化。读完你会理解为什么 BERT 适合理解类任务、GPT 适合生成类任务,以及面试官追问"大模型是怎么训出来的"时该怎么完整回答。

学习目标

阅读完本节,你应当能够:

  1. 说清 BERT 的 MLM 和 NSP 预训练任务,解释为什么双向编码适合理解类任务
  2. 讲清 GPT 的自回归预训练,解释为什么单向解码适合生成类任务
  3. 对比 BERT 和 GPT 的架构差异、预训练目标、下游任务适配方式
  4. 解释 RoBERTa、ALBERT、T5 对 BERT 的改进方向
  5. 说清指令微调和 RLHF 如何把基础模型变成对话助手
  6. 解释少样本学习、思维链、RAG 的原理和适用场景
  7. 设计一个 NLP 项目的完整方案,从数据到部署到评估

一、问题与直觉

2018 年之前,NLP 每个任务都要从头训模型,数据少效果差。BERT 和 GPT 的出现改变了这个局面:先在大规模无标注文本上预训练一个通用语言模型,再在小规模标注数据上微调到具体任务。这个"预训练-微调"范式让 NLP 性能大幅跃升,也让"训一个大模型然后用很久"成为可能。

但 BERT 和 GPT 从一开始就走向了不同路线,这个分歧至今主导着 NLP 的格局。BERT 用双向注意力(每个词同时看左右),目标是理解——填空、分类、抽取。GPT 用单向注意力(每个词只看左边),目标是生成——续写、对话、翻译。两者背后的哲学差异是:理解需要全局信息(所以双向),生成必须按顺序(所以单向,否则就是作弊)。

到 2026 年,GPT 路线(自回归生成 + 规模化)在大语言模型上全面胜出,但 BERT 路线在理解类任务(分类、检索、抽取)上仍是高效选择。理解这两条线的分野,你才能针对任务选对模型,而不是盲目追大模型。

本节的组织逻辑是:先讲 BERT 和 GPT 的预训练范式对比,再讲大模型时代如何在这两个基础上演化(指令微调、RLHF),最后落到工程实践(RAG、评估、部署)。这是当前 NLP 面试的最高频区。

二、核心原理

2.1 BERT:双向编码器

BERT(Bidirectional Encoder Representations from Transformers)只用 Transformer 的编码器部分,核心是双向注意力——每个词能同时看到左边和右边的上下文。

两个预训练任务

  1. MLM(掩码语言模型):随机掩盖 15% 的 token,让模型预测被掩盖的词。这让模型学到双向上下文理解。
  2. NSP(下一句预测):给两个句子,判断第二句是否是第一句的下一句。这让模型学到句子间关系(RoBERTa 后来发现这个任务没用,去掉了)。

下游任务适配

任务 BERT 用法 微调方式
文本分类 取 [CLS] 向量 + 线性层 端到端微调
NER 每个 token 向量 + CRF 端到端微调
句子对 [CLS] A [SEP] B + 分类 端到端微调
QA 预测答案起止位置 端到端微调

💡 关键直觉:BERT 强在"理解"。因为双向注意力,每个词的表示融合了完整上下文,适合需要全局信息的任务(分类、匹配、抽取)。但它不能直接做生成——生成需要从左到右,而 BERT 训练时看到了右边的信息,生成时无法保证因果性。

2.2 GPT:单向解码器

GPT(Generative Pre-trained Transformer)只用 Transformer 的解码器部分(带掩码自注意力,每个词只能看左边),核心是自回归预训练——预测下一个词。

自回归预训练的目标是最大化:P(w_t | w_1, w_2, ..., w_{t-1}),即给定前面所有词,预测当前词。这个目标天然适合生成任务——生成就是不断预测下一个词。

GPT 系列的演进

版本 参数量 关键突破
GPT-1 1.17 亿 验证预训练-微调可行
GPT-2 15 亿 零样本能力初现
GPT-3 1750 亿 上下文学习(few-shot)涌现
GPT-4 未公开 多模态、推理增强

涌现能力是 GPT-3 之后的关键现象:模型大到一定程度,会突然出现小模型没有的能力(few-shot 学习、思维链推理)。这不是渐进提升,而是量变到质变。

2.3 BERT vs GPT 的范式对比

维度 BERT GPT
架构 Transformer 编码器 Transformer 解码器
注意力 双向 单向(掩码)
预训练目标 MLM(填空) 自回归(续写)
擅长任务 理解类(分类、QA、抽取) 生成类(对话、翻译、写作)
微调方式 全量微调 全量微调 / Prompt
代表应用 搜索、推荐、NER ChatGPT、Copilot

💡 关键直觉:BERT 和 GPT 不是谁更好,而是擅长不同任务。理解类任务(判断、抽取、匹配)用 BERT 系更高效——模型小、推理快、精度够;生成类任务(写作、对话、创作)必须用 GPT 系——因为生成本质是自回归。很多工程团队两个都用:BERT 做检索理解,GPT 做生成回答。

2.4 改进版:RoBERTa、ALBERT、T5

模型 对 BERT 的改进
RoBERTa 去掉 NSP、更大 batch、更多数据、动态 MLM
ALBERT 参数共享、分解嵌入,减小参数量
T5 统一为 text-to-text 范式,所有任务都是"文本生成文本"
XLNet 结合双向和自回归,解决 BERT 的预训练-微调不一致

T5 的"text-to-text"统一范式影响深远——它把所有 NLP 任务都建模成"输入文本 → 输出文本",这成了后来大模型 Prompt 范式的雏形。

2.5 大模型时代:指令微调与 RLHF

基础大模型(预训练后的 GPT)只是"续写机器",不会听指令。要变成对话助手,需要两步后训练:

指令微调(Instruction Tuning / SFT):用大量"指令-回答"对监督微调,让模型学会"听懂人话并回答"。这一步把续写机器变成"能对话的模型"。

RLHF(人类反馈强化学习):进一步对齐人类偏好。流程是:训练一个奖励模型(给回答打分),用强化学习(PPO)优化策略模型让它生成高分回答。这一步让模型变得"有用、诚实、无害"。

⚠️ 常见坑:很多人把 RLHF 等同于"让模型变安全"。其实 RLHF 解决的核心是"有用性"——人类标注员更偏好详细、准确、有结构的回答,强化学习让模型学会这种风格。安全性(不输出有害内容)是偏好的一部分,但不是全部。

2.6 少样本、思维链与 RAG

大模型时代催生了新的使用范式:

少样本学习(Few-shot / In-context Learning):在 Prompt 里给几个示例,模型就能学会任务,不用微调。这是 GPT-3 涌现的能力。

思维链(Chain-of-Thought):在 Prompt 里要求模型"一步步思考",让模型展示推理过程,复杂推理任务准确率大幅提升。

RAG(检索增强生成):把外部知识库检索和模型生成结合。先用查询检索相关文档,再把文档作为上下文喂给模型生成回答。这解决了大模型知识更新慢、容易幻觉的问题。

三、工程实践要点

3.1 选型决策树

def select_nlp_model(task, data_size, latency_budget, knowledge_needs): if task in ["classification", "ner", "matching"] and data_size > 1000: return "BERT 系微调(高效)" elif task == "generation" or "open_ended": if knowledge_needs == "external": return "大模型 + RAG" return "大模型 + Prompt" elif task == "extraction" and latency_budget == "low": return "BERT 或 RoBERTa" elif data_size < 100: return "大模型 few-shot" return "BERT 微调作为基线"

3.2 RAG 的工程实现

RAG 的核心是检索器和生成器的协同。检索器常用双塔模型(句向量相似度)或 BM25(关键词匹配),生成器用大模型。

组件 方案 关键点
文档切分 按段落或固定 token 数 切分粒度影响检索精度
向量化 BERT 句向量或专用 embedding 模型 离线索引
检索 向量数据库(FAISS、Milvus) top-k 召回
重排 交叉编码器精排 提升相关性
生成 大模型 + 检索上下文 Prompt 工程

3.3 评估指标的选择

任务 指标 说明
分类 准确率、F1 平衡类别用宏平均
生成(翻译) BLEU n-gram 重叠,偏保守
生成(摘要) ROUGE 召回导向
开放生成 人工评估、LLM-as-judge 自动指标不可靠
RAG 答案相关性、事实性、检索命中率 多维度

⚠️ 常见坑:开放生成任务用 BLEU/ROUGE 评估不可靠——它们只看字面重叠,语义相同表达不同会得低分。现代实践用 LLM-as-judge(让大模型当裁判打分)或人工评估。

3.4 大模型部署的挑战

挑战 方案
显存不足 量化(INT8/INT4)、卸载到 CPU
推理慢 KV cache、批处理、推测解码
长上下文 滑动窗口、稀疏注意力
多用户 vLLM、TGI 等推理框架

💡 关键直觉:大模型推理的核心优化是 KV cache——把已计算的注意力键值缓存,避免重复计算。vLLM 的 PagedAttention 把 KV cache 像操作系统管理内存一样分页管理,大幅提升显存利用率和吞吐。面试时能讲清这个,说明你跟上了 2026 年的推理优化前沿。

3.5 Prompt Engineering 的实用原则

原则 做法
明确角色 "你是 XX 专家"
给示例 few-shot 让模型对齐格式
分步指令 复杂任务拆成多步
限定输出 "用 JSON 格式""不超过 100 字"
思维链 "一步步思考"激发推理

复盘与记忆锚点

  • BERT 双向编码擅长理解(MLM 填空预训练),适合分类、QA、抽取;用 [CLS] 或 token 向量接任务头微调。
  • GPT 单向解码擅长生成(自回归续写预训练),适合对话、翻译、写作;规模化后涌现 few-shot 和思维链能力。
  • BERT vs GPT 不是谁更好,理解类用 BERT 系高效、生成类必须用 GPT 系。
  • RoBERTa 去掉 NSP 加数据,ALBERT 减参数,T5 统一为 text-to-text 范式。
  • 指令微调让模型听懂人话、RLHF 对齐人类偏好,两步把基础模型变成对话助手。
  • 少样本、思维链、RAG 是大模型新范式,RAG 解决知识更新和幻觉问题。
  • RAG 工程:文档切分 → 向量化 → 检索 → 重排 → 生成,检索质量决定上限。
  • 大模型推理靠 KV cache 和量化,vLLM 的 PagedAttention 是吞吐优化的前沿。

回到第 1 章的开头——AI、CV、NLP 三大方向共享同一套深度学习骨架,只是在不同数据上特化。把这些骨架吃透,面对任何新模型你都能快速归位。

四、微调策略速查

补一段 2026 年面试的高频考点:微调方式的选择逻辑。全参数微调动辄几十亿参数,显存和存储成本高,于是参数高效微调(PEFT)成了默认起点。LoRA 的核心是把权重增量约束成两个低秩矩阵的乘积,训练参数量降到原来的百分之一以下,效果接近全参数微调;QLoRA 更进一步,先把基座模型量化到 4bit 再训 LoRA,一张消费级显卡就能微调中模型。选型口诀:数据多、任务重、算力足,全参数;数据少、多任务共用基座,LoRA;显存极度紧张,QLoRA。

面试追问常落在两个细节。其一,LoRA 的秩怎么选?经验值 8 到 64,任务越简单秩可以越小;秩过大容易过拟合小数据集。其二,LoRA 挂在哪些层?早期实践只挂注意力的 Q、V 矩阵,后续研究发现挂到所有线性层(含 FFN)效果更稳。能答出这两条,说明你真跑过微调而不是只读过博客。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U