Happy-LLM 学习笔记 01:NLP 基础不是前置废话,而是理解 LLM 的地基

很多人第一次接触大模型时,都会把注意力直接放在 Transformer、Prompt、RAG 和 Agent 上。这样当然能很快看到结果,但一旦模型效果不稳定,或者检索、分词、上下文拼接出问题,就会发现自己缺的不是新概念,而是对 NLP 基础链路的理解。

这篇笔记记录我读 Happy-LLM 第一章后的整理。它真正想讲的不是“背概念”,而是把语言处理这条链路重新走一遍:文本怎么被切开,怎么被表示,模型又为什么能从这些表示里学到东西。

先把 NLP 看成一条流水线

NLP 不是单个算法,而是一组围绕自然语言展开的任务集合。最底层的问题是:怎么把人类语言变成机器能处理的形式。上层才是分类、抽取、翻译、摘要、问答这些具体任务。

我以前容易把这些任务当成彼此独立的模块,但读下来更合理的理解是,它们其实共享同一套前提:先解决文本表示,再谈理解和生成。分词、子词切分、词性标注这些工作看起来“基础”,但它们决定了后面模型看到的输入长什么样。

这也是为什么在 LLM 时代,老 NLP 没有过时。语言模型再大,也还是要面对输入边界、词义歧义、长文本切分、实体一致性这些问题。底层表示没搞清楚,上层能力就会漂。

分词不是机械切块,而是在定义“单位”

中文分词最容易让人低估。它表面上只是把句子切成词,实际上是在给模型定义最小的语义单位。

英文天然有空格,中文没有,所以中文分词经常直接影响后续任务的质量。比如“雍和宫的荷花开的很好”这类句子,切分稍微一乱,地名、动词、修饰关系都会被破坏。分词错了,词性标注、实体识别、句法分析通常都会跟着出错。

这让我重新理解了一个事实:NLP 里的预处理不是脏活累活,而是在替模型约束问题空间。切分方案不同,后面的学习目标和可表达能力也会不同。

子词切分则进一步说明了这一点。BPE、WordPiece、SentencePiece 这些方法不是简单压缩词表,而是在词和字符之间找一层更稳的表示。它们的价值在于让模型既保留一定的语义单位,又能处理未登录词和稀有词。对大模型来说,这一层设计直接影响泛化能力和词表效率。

从稀疏到稠密,文本表示的变化才是关键

文本表示的发展线索,我更愿意概括成一句话:从“记名字”走向“记关系”。

早期的词袋模型、VSM、TF-IDF 之类方法,本质上是在高维空间里给词分配位置。它们的优点是直观、可解释,缺点也很明显:维度高、稀疏、词序信息弱。它们能回答“这段文本里有没有这个词”,但很难回答“这个词在这里是什么意思”。

N-gram 比单词袋更进一步,因为它把局部上下文纳入了概率建模,但它依然受限于窗口长度,长距离依赖很难处理。也就是说,它能看见前后几个词,却很难真正理解句子内部的结构。

Word2Vec 是一个明显的转折点。它不再把词当成孤立编号,而是让词在上下文中形成密集向量。这个变化非常重要,因为一旦词向量开始能表达相似性和相关性,很多下游任务就不再需要手工设计大量规则。

ELMo 又往前走了一步,把静态词向量变成上下文相关的动态表示。一个词在不同句子里可以有不同向量,这件事听起来简单,但它实际上是在向“理解词义要看上下文”这条常识靠拢。对我来说,这一段最有启发的是:文本表示不是为了把文本压缩成数字而已,而是为了保留“语义可计算”的结构。

这些老概念为什么到今天还重要

读完这一章,我最大的感受不是“原来这些东西都学过”,而是“这些东西其实一直在大模型系统里工作”。

LLM 不是跳过了 NLP 基础,而是在更大的规模上重新利用了这些基础。分词方式会影响 token 边界,词表和子词策略会影响模型的表达粒度,文本表示方法会影响模型对语义关系的捕捉方式。哪怕今天我们不再手写规则,不再依赖传统特征工程,这些思想仍然藏在 tokenizer、embedding、上下文窗口和检索系统里。

对工程实践来说,这一章给我的提醒很明确:

  1. 遇到效果问题时,先看输入是不是被切坏了。
  2. 遇到泛化问题时,先看表示层有没有把语义关系学进去。
  3. 遇到系统问题时,不要只盯着模型参数,也要看数据预处理和任务定义。

所以我会把 NLP 基础看成 LLM 的地基,而不是前置废话。地基不一定显眼,但它决定了上面那栋楼能不能稳。

posted @ 2026-07-21 10:33  Hazy_star  阅读(8)  评论(0)    收藏  举报