Transformer与大语言模型:第12章 BERT:Transformer Encoder 如何成为语言理解模型

发布时间:2026/9/1 4:53:10
Transformer与大语言模型:第12章 BERT:Transformer Encoder 如何成为语言理解模型 第12章 BERT:Transformer Encoder 如何成为语言理解模型本章目标学完本章,你不需要记住 BERT 的所有实现细节,但应该能够回答:BERT 为什么出现?BERT 到底解决了什么问题?BERT 和 Transformer Encoder 是什么关系?BERT 到底能做什么?为什么 BERT 能够理解上下文?BERT 和 GPT 有什么不同?BERT 与 Embedding、RAG 又有什么关系?本章只建立完整的 BERT 认知框架。MLM、CLS、Sentence-BERT、Embedding、预训练和源码实现等深入内容,将在后续专门的 BERT 专题中展开。12.1 为什么需要 BERT?在学习 BERT 之前,先思考一个问题:为什么我们不能直接把一个词转换成一个固定向量?例如:bank在:I deposited money in the bank.中表示"银行"。而:I sat on the river bank.中表示"河岸"。如果我们使用传统的静态词向量:bank → 一个固定向量那么无论bank出现在哪个句子中,它的基础表示都相同。但人类理解语言时,会根据上下文判断一个词的具体含义。因此我们真正希望得到的是:Token + 上下文 ↓ 上下文相关的向量即:同一个Token在不同上下文中,可以得到不同的表示\text{同一个 Token 在不同上下文中,可以得到不同的表示}同一个Token在不同上下文中,可以得到不同的表示这就是 BERT 要解决的核心问题之一。12.2 BERT 是什么?BERT 的全称是:Bidirectional Encoder Representations from Transformers即:基于 Transformer 的双向编码器表示模型。BERT 由 Google 于 2018 年提出。理解 BERT 最重要的一句话是:BERT 的核心不是直接生成文本,而是把输入文本编码成包含上下文语义的向量表示。可以把 BERT 看成一个文本理解器 / 文本编码器。其基本过程是:输入文本BERTContextual Representations上下文相关的向量BERT 的输出通常不是一个答案,而是一组 Hidden States:H=[h1,h2,…,hn]H = [h_1, h_2, \ldots, h_n]H=[h1​,h2​,…,hn​]其中每一个hih_ihi​都表示一个 Token 在当前上下文中的语义表示。12.3 BERT 到底能做什么?这是理解 BERT 最重要的问题。BERT 本身更像一个 NLP Backbone,而不是一个最终业务应用。它负责:理解上下文,产生高质量的语言表示。然后根据具体任务,在 BERT 后面连接不同的任务头。输入文本BERTContextual Hidden States[CLS] → 文本分类Token 表示 → NERToken 表示 → 问答句子表示 → Embedding12.3.1 文本分类例如:这家餐厅非常好吃,服务也很好。可以: