自然语言处理(NLP)研究如何让计算机处理、理解和生成人类语言。大语言模型(LLM)不是完全独立于 NLP 的新领域,而是建立在文本表示、语言建模、预训练和深度学习长期发展之上的一类通用模型。
NLP 解决什么问题
常见任务可以分为几类:
| 类型 | 示例 |
|---|---|
| 文本分类 | 情感判断、主题分类、垃圾信息识别 |
| 序列标注 | 分词、词性标注、命名实体识别 |
| 信息抽取 | 关系抽取、事件抽取、结构化字段提取 |
| 检索与排序 | 搜索、语义召回、问答候选排序 |
| 文本转换 | 翻译、改写、纠错、摘要 |
| 文本生成 | 对话、代码生成、内容草拟 |
| 问答与推理 | 阅读理解、知识问答、多步骤任务 |
一个真实系统通常组合多种任务。例如企业问答可能同时需要文档解析、分块、向量检索、重排、上下文拼接和生成。
文本如何变成模型输入
模型不能直接处理文字,需要把 token 转换为数值表示。
离散表示
早期方法常见:
- one-hot;
- Bag-of-Words;
- n-gram;
- TF-IDF。
它们易于解释,适合小数据和传统机器学习,但难以表达词序、上下文和语义相似性。
分布式词向量
Word2Vec、GloVe 等方法把词映射到稠密向量。相似词在向量空间中更接近,但一个词通常只有一个固定向量,难以区分多义词在不同句子中的含义。
上下文表示
基于 Transformer 的预训练模型会根据上下文动态计算 token 表示。同一个词在不同句子中可以获得不同向量,这为阅读理解、生成和跨任务迁移提供了更强基础。
Token 与分词
现代模型通常使用子词或字节级 token,而不是简单按“词”切分。Token 数量会影响:
- 上下文窗口占用;
- 推理费用;
- 生成速度;
- 截断位置;
- 多语言表现。
不同模型的 tokenizer 不同,同一段文本的 token 数不能直接通用。上线前应使用目标模型的 tokenizer 做容量测试。
从任务模型到预训练模型
传统流程经常是:
为一个任务收集标注数据→ 设计特征或网络→ 训练一个专用模型→ 部署并维护预训练模型先在大规模语料上学习通用语言规律,再通过微调、提示或外部检索适配任务:
大规模预训练→ 获得通用语言能力→ 微调 / 提示 / RAG / 工具调用→ 完成具体任务优势是减少每个任务从零训练的成本,但并不意味着无需数据治理、评估和领域知识。
语言模型是什么
语言模型估计 token 序列的概率。自回归模型常学习:
P(x₁, x₂, ..., xₙ) = ∏ P(xᵢ | x₁, ..., xᵢ₋₁)推理时,模型根据已有上下文预测下一个 token,再把新 token 加回上下文继续生成。
“预测下一个 token”是训练目标,不等于模型只能做续写。通过指令数据、对话格式、工具协议和外部系统,它可以表现出问答、分类、抽取和代码生成等能力。
LLM 与传统 NLP 的关系
LLM 改变了任务实现方式:
- 多个任务可以共享同一个基础模型;
- 少量示例和自然语言指令可以定义任务;
- 生成式接口统一了许多输出形式;
- 工具调用使模型能够连接数据库、搜索和业务 API。
但传统 NLP 技术仍然重要:
- 规则和词典在高精度场景中仍有效;
- 小模型在延迟、成本和隐私方面可能更合适;
- 分类器、重排器和实体抽取模型常作为 LLM 系统组件;
- 数据清洗、采样和评估方法仍然适用。
预训练、微调、提示和 RAG
预训练
在大规模数据上学习语言模式和知识。成本高,一般由模型提供方或大型研究团队完成。
指令微调
使用“指令—回答”数据让模型更好地遵循任务要求和对话格式。
领域微调
用于固定输出风格、分类体系或特定行为。它不一定适合注入经常变化的事实知识。
Prompt
通过系统提示、任务描述、示例和输出约束在推理时定义行为。Prompt 需要版本管理和回归测试。
RAG
检索增强生成先从外部知识库检索相关内容,再把内容提供给模型。它适合频繁更新、需要来源和权限控制的知识,但会引入分块、召回、重排和上下文污染问题。
Embedding、重排与生成
一个常见检索问答链路:
用户问题→ Embedding 召回候选片段→ Reranker 精排→ 拼接上下文→ LLM 生成答案→ 引用与安全检查Embedding 负责“找相似内容”,重排模型负责“在候选中判断相关性”,生成模型负责“组织回答”。它们可以使用不同模型,并应分别评估。
模型能力不等于系统可靠性
LLM 可能产生流畅但错误的内容。可靠系统需要:
- 输入与权限校验;
- 结构化输出约束;
- 工具参数校验;
- 超时和重试;
- 来源引用;
- 人工确认高风险操作;
- 日志、追踪和回放;
- 离线与在线评估。
模型输出必须被当作不可信输入继续校验,尤其是 SQL、shell 命令、URL 和资金/权限操作。
评估不要只看单一分数
需要同时考虑:
| 维度 | 问题 |
|---|---|
| 正确性 | 答案是否与标准或证据一致 |
| 完整性 | 是否覆盖关键步骤和限制 |
| 相关性 | 是否直接回答用户问题 |
| 安全性 | 是否泄露数据或执行危险行为 |
| 稳定性 | 多次运行结果是否可接受 |
| 延迟 | 首 token 与完整响应耗时 |
| 成本 | 输入、输出、检索和工具总成本 |
| 可观测性 | 是否能定位失败发生在哪个环节 |
自动指标适合规模化筛选,但重要场景仍需人工评审和业务结果验证。
基础学习路线
1. Python、线性代数、概率与基础机器学习2. 文本清洗、分词、TF-IDF 与分类任务3. Embedding 和相似度检索4. 注意力机制与 Transformer5. 预训练、微调和推理6. Prompt、结构化输出和工具调用7. RAG、重排与评估8. 部署、监控、成本和安全学习时应做小实验验证概念,而不是只记框架 API。框架变化很快,数据流、模型输入输出和评估方法更值得长期掌握。
术语速查
| 术语 | 简要说明 |
|---|---|
| Token | 模型处理的文本单位 |
| Embedding | 文本或对象的稠密向量表示 |
| Context Window | 单次推理可处理的 token 范围 |
| Pretraining | 大规模通用训练阶段 |
| Fine-tuning | 使用额外数据调整模型参数 |
| Inference | 使用已训练模型产生输出 |
| RAG | 检索外部内容后再生成 |
| Hallucination | 生成缺乏依据或错误的内容 |
本文根据早期个人笔记重新整理,并结合当前通用实践进行了校对。