Appearance
自然语言处理
自然语言处理研究如何让计算机处理、理解和生成语言。语言具有歧义、上下文依赖和开放表达,同一句话在不同场景可能有完全不同的含义。
典型任务
| 任务 | 输入与输出 | 示例 |
|---|---|---|
| 文本分类 | 文本 -> 类别 | 情感、意图、工单类型 |
| 序列标注 | 文本 -> 每个位置的标签 | 实体识别、词性标注 |
| 信息抽取 | 文本 -> 结构化字段 | 合同主体、金额、日期 |
| 检索 | 查询 -> 相关文档 | 搜索、知识库召回 |
| 翻译与摘要 | 文本 -> 新文本 | 多语言和内容压缩 |
| 问答与对话 | 问题和上下文 -> 回答 | 客服、知识助手 |
文本如何进入模型
现代模型通常先进行 Tokenization,把文本转换为 Token ID,再查询 Embedding 得到向量。位置信息和上下文关系随后通过 Transformer 等网络处理。
text
原始文本 -> 规范化 -> Token -> Embedding -> 编码或生成模型 -> 任务输出中文处理不能简单等同于按单个汉字切分。不同分词器可能把词、字、数字和英文组合成不同 Token,直接影响长度、成本和领域词识别。
从传统 NLP 到预训练模型
传统方法使用词袋、TF-IDF、n-gram 和人工特征,配合线性模型或树模型完成分类。它们速度快、成本低,在数据和任务稳定时仍然有效。
预训练模型先从大规模语料学习语言表示,再通过微调或提示完成具体任务。Embedding 模型适合检索和聚类,Encoder 模型适合理解任务,Decoder 模型适合生成。
大模型不是所有 NLP 任务的默认答案
以下情况可以先用简单模型:
- 标签固定、训练数据充足的高并发分类。
- 对延迟和成本要求非常严格。
- 输出必须完全确定。
- 任务只依赖少量明确关键词和规则。
需要开放理解、复杂抽取、跨任务泛化或生成时,大模型更有优势。
评估
- 分类:Precision、Recall、F1、混淆矩阵。
- 实体识别:实体级 Precision、Recall、F1。
- 检索:Recall@K、MRR、NDCG。
- 生成:事实正确性、完整性、引用、人工偏好和任务成功率。
BLEU、ROUGE 等自动指标只能反映部分表面重合,不能单独证明答案正确。
工程风险
- 文本编码、清洗和分词前后不一致。
- 训练数据包含隐私或版权风险。
- 长文档截断后丢失关键内容。
- 生成内容流畅但缺少事实依据。
- 多语言效果差异被总指标掩盖。
- 用户输入诱导模型泄露系统提示或内部资料。
一个文本分类项目
- 定义互斥且可执行的类别体系。
- 制定标注说明并检查标注一致性。
- 用 TF-IDF + 线性模型建立基线。
- 再比较预训练 Encoder 或大模型方案。
- 按文本长度、语言、渠道和类别分析错误。
- 部署后收集低置信度和人工改判样本。
从基线开始可以看清复杂模型到底解决了哪些问题,也便于判断增加的成本是否值得。
