NLP 与语言模型
🎯 学习目标
- 了解 NLP(Natural Language Processing,自然语言处理)的主要发展阶段
- 理解从 N-Gram 到 Word2Vec 再到神经网络语言模型的核心思想变化
- 知道 NLU 与 NLG 的含义,以及它们与 Chat 产品的关系
- 建立「预测下一个 Token」与经典 NLP 任务之间的统一视角
引言
今天的大语言模型看似一夜之间改变了一切,但 NLP 领域已经积累了数十年经验。拼写检查、机器翻译、搜索引擎的关键词理解、语音助手的意图识别——这些都是 NLP(Natural Language Processing,自然语言处理) 的经典成果。LLM 不是凭空出现,而是站在 统计语言模型 → 分布式词向量 → 神经网络 → Transformer 这条演进链的顶端。
理解这段历史对你有三点直接帮助。第一,你会明白 Embedding(嵌入) 为何是 RAG 检索的基础——它来自 Word2Vec 时代「用向量表示语义」的思想。第二,你会理解为什么现代 API 都以「补全 / 对话」形式出现——因为 语言模型(Language Model) 的本质就是估计文本序列的概率,预测下一个 Token。第三,当同事提到 NLU、NLG、seq2seq 等老术语时,你能与 LLM 框架对应起来,而不是觉得两套世界观。
本节以故事线方式串起关键节点,数学公式从简,重点放在「每一代解决了什么问题、又留下了什么坑」。
章节正文
第 1 步:规则与统计时代:N-Gram 语言模型
早期 NLP 大量依赖人工规则:语法树、正则表达式、词典匹配。规则可读、可解释,但语言太灵活——新词、错别字、口语、多语言混杂都会让规则系统崩溃。
统计语言模型转向数据驱动。其中 N-Gram 是最直观的入门模型:假设一个词的出现只依赖前面 N−1 个词,通过语料统计「w₁…wₙ₋₁ 后面跟 wₙ」的频率。例如 trigram(3-gram)会根据「今天 天气」预测下一个词可能是「很好」。
N-Gram 的优点是简单、训练快;缺点是 数据稀疏(很多合法组合在语料里从未出现)和 上下文极短(通常 N≤5,无法捕获长距离依赖)。你在输入法里看到的联想词,底层思路与 N-Gram 仍有关联。
这一阶段的启示:语言建模 = 对文本序列赋概率。LLM 做的仍是这件事,只是用神经网络表示概率,并用整个上下文窗口而非固定 3–5 个词。
第 2 步:Word2Vec 与 Embedding:语义进入向量空间
2013 年前后,Word2Vec 带来范式转变:每个词被映射到一个稠密向量(Embedding,嵌入),语义相近的词在向量空间中距离更近。「国王 − 男人 + 女人 ≈ 女王」这类类比说明,向量捕获了部分语义关系。
在此之前,one-hot 表示把每个词变成极高维稀疏向量,任意两词正交,无法表达相似性。Embedding 解决了「如何表示词义」的问题,为后续 神经 NLP 和 向量检索 奠基。今天 RAG pipeline 里的 document embedding、query embedding,思想直接继承自这一时代。
Word2Vec 是 词级别 的静态向量:一词一向量,无法处理「银行(金融机构)」与「银行(河岸)」的多义。上下文相关的 Embedding 要等待 ELMo、BERT 等 上下文语言模型,再到 GPT 类 自回归 LLM 的 Token 级表示。
对工程师而言:当你调用 text-embedding-3-small 或 BGE、M3E 等模型时,你在使用 Word2Vec 以来「语义向量化」路线的现代版本。
第 3 步:RNN/LSTM 与 seq2seq:序列建模的第一次神经网络革命
RNN(Recurrent Neural Network,循环神经网络) 与 LSTM 按时间步处理序列,理论上能利用任意长历史。它们支撑了早期的机器翻译、文本摘要、对话系统。
seq2seq(Sequence-to-Sequence) 架构常用 Encoder-Decoder:Encoder 把输入句子编码为向量,Decoder 再逐词生成译文。2014–2017 年,这是 NLP 工业界的主流范式。
但 RNN 有两条致命短板:难以并行训练(必须按顺序算)和 长距离梯度消失(远距离依赖学不好)。翻译尚可,长篇推理、代码、多轮对话则吃力。这些问题直接催生了 Attention(注意力机制)——让 Decoder 在生成每个词时「回头看」输入序列的不同位置,而不是只依赖一个固定长度的压缩向量。
Attention 的成功证明:模型需要动态访问上下文。Transformer 把这一思想推到极致:全靠 Attention,去掉循环结构。
第 4 步:NLU、NLG 与「统一为语言模型」
传统产品架构常把 NLP 拆成:
- NLU(Natural Language Understanding,自然语言理解):意图识别、实体抽取、情感分析、分类——「听懂用户要什么」
- NLG(Natural Language Generation,自然语言生成):模板填充、摘要、对话回复——「组织语言输出」
在 LLM 时代,许多任务被 统一为 Prompt + 生成:同一个 GPT 模型既能做分类(「下面评论的情感是正面还是负面?只输出一个词」),也能做抽取(「从段落中 JSON 列出人名」),还能做开放对话。这不是 NLU/NLG 消失了,而是 基座模型 + 指令 替代了大量专用小模型。
实践映射:
| 经典任务 | LLM 时代常见做法 |
|---|---|
| 意图识别 | 少样本 Prompt 或微调小分类头 |
| 实体抽取 | 结构化 JSON 输出(见 2.6 节) |
| 摘要 | 直接指令「用三点摘要下文」 |
| 翻译 | 零样本「将以下中文译为英文」 |
理解 NLU/NLG 有助于阅读老文档、对接仍有规则引擎的遗留系统;理解「统一为语言模型」则有助于设计更简单的现代架构。
第 5 步:通向 Transformer:为什么 LLM 选择了这条路
2017 年论文 Attention Is All You Need 提出 Transformer:完全基于 Self-Attention(自注意力),训练可大规模并行,上下文长度可扩展(受算力与架构限制,但远超 LSTM 实用范围)。
GPT 系列采用 Decoder-only Transformer,训练目标就是 causal language modeling(因果语言建模):只看左侧上下文,预测下一个 Token。ChatGPT 的对话能力来自在此之上的 SFT + RLHF(1.4 节详述),但核心引擎仍是语言模型。
BERT 采用 Encoder-only,擅长理解类任务(分类、检索),常作 Embedding 模型。许多 RAG 系统的检索器仍是 BERT 类或其后继。
对你而言,记住:LLM = Transformer Decoder + 大规模预训练 + 对齐微调。NLP 八十年积累的问题定义(翻译、问答、摘要)仍在,只是默认解法从「专用 pipeline」变成了「通用模型 + Prompt / RAG / Tools」。
动手练习
- 用你自己的话解释:Word2Vec 的 Embedding 与 LLM 内部的 Token Embedding 有什么联系与区别?
- 找一个 2018 年前的 NLP 教程或论文标题(如 seq2seq 翻译),写一段说明:同一任务今天会如何用 Chat Completions API 实现。
- 列举三个经典 NLU 任务,为每个任务写一条可能的零样本 Prompt 示例。
- 画时间轴:N-Gram → Word2Vec → RNN/seq2seq → Transformer → ChatGPT,每节点写一句「解决了什么」。
常见问题
Q:还需要单独学传统 NLP 吗?
应用开发不必须,但了解 NLU/NLG、序列标注等概念有助于读老系统文档、设计混合架构(例如 LLM + 规则校验)。Embedding 与检索则是 RAG 必备,本课第 4 章会深入。
Q:BERT 和 GPT 我应该用哪个?
生成、对话、Agent 用 GPT 类 LLM;纯语义检索、重排序有时用 BERT 类 Encoder 或专用 Embedding 模型。生产系统常两者并存:Embedding 检索 + LLM 生成。
Q:「预测下一个 Token」和「聊天」是什么关系?
训练时模型只学预测下一 Token;对话格式(System/User/Assistant)是对齐阶段教会的。推理时你把历史 messages 拼成上下文,模型继续生成 Assistant 应有的下一段 Token,看起来就像在聊天。
本节小结
NLP 从规则与 N-Gram 走向 Word2Vec 的向量语义,再经 RNN/seq2seq 到 Transformer,LLM 是这一脉络在大规模数据与算力下的延续。NLU/NLG 的任务边界在基座模型时代被 Prompt 大幅融合,但 Embedding 思想仍是 RAG 检索的核心。理解「语言模型 = 序列概率 = 预测下一 Token」,是读懂后续 API 与训练章节的关键。