大语言模型(LLM)全景解读:从 N-gram 到 Transformer 的演进之路

📖 本文是学习 Hello-Agents 项目时整理的笔记与思考。

文章已同步发布到微信公众号【浪浪山客栈】
https://mp.weixin.qq.com/s/r170l35dSyKLPlpA3NZwlQ


一、发展脉络:语言模型是如何一步步进化的?

语言模型的核心任务,是对自然语言的概率分布进行建模——简单来说,就是让机器"理解"一句话出现的可能性有多大,并据此预测下一个词。从最朴素的统计方法,到如今参数量达千亿级别的 Transformer 模型,这背后经历了数十年的技术积累与范式变迁。


1.1 统计语言模型:N-gram

最早的语言模型脱胎于统计学。其核心思想是:一个句子出现的概率,等于该句子中每个词出现的条件概率的连乘

例如,句子"今天天气真好"的概率,可以分解为:

P("今天天气真好") = P("今天") × P("天气"|"今天") × P("真"|"今天天气") × P("好"|"今天天气真")

然而,这种全历史依赖的做法在实际中几乎无法计算——随着句子增长,条件概率的搜索空间会呈指数级膨胀。

马尔科夫假设的引入

为了使计算变得可行,研究者引入了马尔科夫假设:我们不必回溯一个词的全部历史,可以近似地认为,一个词的出现概率只与它前面有限的 N-1 个词有关。基于这个假设建立的语言模型,我们称之为 N-gram 模型。这里的"N"代表我们考虑的上下文窗口大小。

  • 当 N=1 时,称为 Unigram,每个词完全独立;
  • 当 N=2 时,称为 Bigram,每个词只依赖前一个词;
  • 当 N=3 时,称为 Trigram,每个词依赖前两个词。

N-gram 模型简洁有效,曾长期是自然语言处理领域的主流方法,被广泛应用于语音识别、机器翻译和输入法联想等场景。

N-gram 的挑战

尽管如此,N-gram 模型存在两个根本性缺陷:

  1. 数据稀疏性:语言的组合方式近乎无穷,即使语料库再大,也难以覆盖所有可能的 N-gram 组合,导致大量概率估计为零。
  2. 泛化能力差:N-gram 本质上是对训练语料的”记忆”,而非对语言规律的”理解”。它无法识别”猫追老鼠”与”猫咪捕鼠”在语义上的相似性,因为这两个 N-gram 序列在统计上完全不同。

1.2 前馈神经网络语言模型

进入 21 世纪初,Bengio 等人提出了基于神经网络的语言模型(NNLM),通过引入词向量(Word Embedding)的概念,为语言建模带来了全新的视角。

其核心思想包含两个层面:

  1. 构建语义空间:创建一个高维的连续向量空间,将词汇表中的每个词都映射为该空间中的一个点。这个点(即向量)也被称为词嵌入(或词向量)。语义相近的词,在这个空间中的距离也更近——例如”国王”与”王后”的向量,比”国王”与”苹果”的向量距离更近。
  2. 学习上下文到下一个词的映射:通过词向量来计算词汇表中每个词在当前上下文后出现的概率,从而实现语言建模。

这一做法的最大进步在于:模型不再只是"记忆"哪些词经常一起出现,而是学会了词与词之间的语义关系,具备了初步的泛化能力。

前馈神经网络的挑战

然而,前馈神经网络语言模型的上下文是固定长度的。为了预测下一个词,模型只能看到前 N-1 个词,无法获取更长距离的上下文信息。对于需要理解长篇语义依赖的任务,这一局限显得尤为突出。


1.3 循环神经网络(RNN)

为了突破固定上下文窗口的限制,研究者提出了循环神经网络(Recurrent Neural Network, RNN)

RNN 的核心创新是为网络增加了"记忆"功能:通过引入一个隐藏状态向量(Hidden State),它可以在处理每个词的同时,将前面所有词的信息"压缩"传递下去。这个隐藏状态相当于一个不断更新的"记忆条",理论上使模型能够捕获任意长度的上下文依赖。

RNN 在序列建模任务(如文本分类、情感分析)上取得了显著进展,成为深度学习时代早期 NLP 领域的主流架构。

RNN 的挑战:梯度消失与梯度爆炸

然而,RNN 存在一个严重的训练问题:当序列中的词太多时,误差信号在反向传播过程中需要经过很多时间步,容易发生梯度消失(Vanishing Gradient)梯度爆炸(Exploding Gradient)问题。

  • 梯度消失:靠近输出端的误差信号传递到序列前端时几乎衰减为零,导致模型无法有效学习长距离依赖;
  • 梯度爆炸:相反,梯度在传播中不断放大,导致参数更新极不稳定。

这两个问题使 RNN 在处理长序列时表现欠佳。


1.4 长短时记忆网络(LSTM)

为了从结构层面解决 RNN 的梯度问题,Hochreiter 和 Schmidhuber 于 1997 年提出了长短时记忆网络(Long Short-Term Memory, LSTM)

LSTM 的核心创新是引入了两个新机制:

  • 细胞状态(Cell State):一条单独的信息通路,允许信息在时间步之间更顺畅地传递,不容易被逐步”稀释”。
  • 门控制系统(Gating Mechanism):由几个小型神经网络构成,它们可以学习如何有选择地让信息通过,从而精细控制细胞状态中信息的增加与遗忘。

门控制包含三个核心组件:

作用
遗忘门(Forget Gate) 决定从上一时刻的细胞状态中丢弃哪些信息
输入门(Input Gate) 决定将当前输入中的哪些新信息存入细胞状态
输出门(Output Gate) 决定根据当前的细胞状态,输出哪些信息到隐藏状态

通过这一精妙的设计,LSTM 能够在长序列中有选择地"记住"重要信息、"忘记"无关信息,有效缓解了梯度爆炸问题,在机器翻译、语音识别等任务上取得了当时的最优成绩。


1.5 共同的瓶颈:无法并行计算

N-gram、RNN、LSTM 等模型,都面临着同一个根本性瓶颈:必须按顺序处理数据,无法大规模并行计算

这意味着,无论硬件算力多强,这些模型处理一个长序列时,都只能从头到尾"一个词一个词"地处理,无法充分利用 GPU 的大规模并行能力。在大数据时代,这一局限极大地限制了模型的规模与训练速度。

正是为了突破这一瓶颈,Transformer 架构应运而生。


1.6 Transformer 架构:并行计算的革命

2017 年,Google 的研究团队在论文《Attention is All You Need》中提出了 Transformer 架构,彻底改变了 NLP 领域的格局。Transformer 抛弃了循环结构,完全依赖注意力机制(Attention Mechanism)来建模序列内部的依赖关系,从而实现了高度的并行计算。

Encoder-Decoder 架构

原始 Transformer 采用编码器-解码器(Encoder-Decoder)的对称结构:

  • 编码器(Encoder):负责理解输入序列,将其压缩为一系列富含语义的向量表示;
  • 解码器(Decoder):基于编码器的输出,逐步生成目标序列(如翻译结果)。

这一结构天然适合"序列到序列"任务,如机器翻译、文本摘要等。

多头注意力机制(Multi-Head Attention)

Transformer 的核心是多头注意力机制,其运算基于三个核心向量:

  • Query(Q):当前词”想要查询”什么信息;
  • Key(K):序列中每个词”提供”的索引信息;
  • Value(V):序列中每个词实际携带的内容信息。

注意力得分通过 Q 与所有 K 的点积计算得出,再经过 softmax 归一化,最终加权求和 V 得到输出。"多头"意味着这一过程在多个不同的子空间中并行进行,使模型能从多个角度同时捕捉序列中的依赖关系。

残差连接和归一化

为了使深层网络的训练更加稳定,Transformer 在每个子层(注意力层、前馈层)之后都加入了残差连接(Residual Connection)层归一化(Layer Normalization)。残差连接允许梯度直接跳过子层传播,有效缓解了深度网络的训练困难。

位置编码(Positional Encoding)

由于注意力机制本身不感知词的顺序,Transformer 需要额外引入位置编码,将每个词在序列中的位置信息注入词向量,使模型能够区分"猫追老鼠"与"老鼠追猫"。


1.7 Decoder-Only 架构:大语言模型的主流范式

完整的 Encoder-Decoder Transformer 在机器翻译等端到端任务上表现出色。但当任务转换为构建一个能与人对话、进行创作、作为智能体大脑的通用模型时,或许并不需要那么复杂的结构。

GPT 系列模型给出了一个更简洁的答案:完全抛弃编码器,只保留解码器部分。这就是 Decoder-Only 架构

Decoder-Only 架构的训练目标非常直接——给定前面所有的词,预测下一个词(即自回归语言建模)。这一简单的目标,在超大规模数据和算力的加持下,催生了 GPT、LLaMA、DeepSeek 等一系列强大的大语言模型,成为当今 LLM 的主流范式。


二、大语言模型的交互:如何让模型更好地工作?

理解了模型的架构,我们再来看如何更高效地与大语言模型交互。


2.1 采样参数调节

大语言模型在生成文本时,并非直接输出概率最高的词,而是通过一系列采样参数来控制输出的随机性与多样性。

Temperature(温度)

Temperature 是最常用的采样参数,它控制概率分布的"平坦程度":

温度范围 输出特点 适用场景
低温度(0 ~ 0.3) 输出更”精准、确定”,倾向选择高概率词 事实性问答、数据计算、代码生成、法律条文解读、技术文档撰写、学术概念解释
中温度(0.3 ~ 0.7) 输出”平衡、自然”,兼顾准确性与流畅性 日常对话、客服交互、邮件撰写、产品文案、简单故事创作
高温度(0.7 ~ 2) 输出”创新、发散”,增加随机性 诗歌创作、科幻故事构思、广告 slogan brainstorm、艺术灵感启发、发散性思考

直观理解:温度越低,模型越"保守";温度越高,模型越"天马行空",但也更容易产生不连贯的输出。

Top-k 采样

Top-k 采样限制模型每次只从概率最高的 k 个词中进行采样。例如,k=50 意味着每次生成时,模型只考虑概率排名前 50 的候选词,舍弃尾部的低概率词,在保留一定多样性的同时避免生成过于离奇的内容。

Top-p 采样(核采样)

Top-p 采样(也称核采样,Nucleus Sampling)是一种动态版本的 Top-k。它不固定候选数量,而是每次选取概率之和达到阈值 p(如 0.9)的最小词集合进行采样。这样,在模型较为确定时,候选集会自动收窄;在模型不确定时,候选集会自动扩大,更加灵活。


2.2 零样本、单样本与少样本提示

提示工程(Prompt Engineering)的核心之一,是通过在提示中提供不同数量的示例,引导模型输出期望格式和风格的内容。

零样本提示(Zero-shot Prompting)

直接向模型提出任务,不提供任何示例,完全依赖模型在预训练阶段积累的知识。

请将以下文本翻译成英文:
"今天天气非常好,适合出门走走。"

单样本提示(One-shot Prompting)

提供一个示例,帮助模型理解任务格式,适用于模型不熟悉的特定输出格式场景。

示例:
输入:苹果
输出:一种常见的水果,富含维生素C,口感甜脆。

请用同样的格式介绍:香蕉

少样本提示(Few-shot Prompting)

提供多个示例,进一步明确模式。例如,训练模型进行特定风格的文本分类或格式化输出时,少样本提示往往比零样本提示效果更稳定。

少样本提示的价值在于:通过示例明确了任务的格式规范、风格要求和边界条件,有效减少了模型的歧义理解。


2.3 指令调优(Instruction Tuning)

指令调优是一种微调技术,它使用大量"指令-回答"格式的数据,对预训练模型进行进一步训练。经过指令调优后,模型能更好地理解并遵循用户的自然语言指令。

我们今天日常工作学习中使用的所有对话模型(如 ChatGPT、DeepSeek、Qwen)都是其模型家族中经过指令调优的版本。指令调优是连接"预训练基础模型"与"可用的对话助手"之间的关键桥梁。

一个典型的指令调优数据样本如下:

这是一段将英文翻译成中文的程序。
英文:Hello
中文:你好
英文:How are you?
中文:

2.4 基础提示技巧:角色扮演

角色扮演(Role-playing)是一种简单而有效的提示技巧。通过赋予模型一个特定的角色,我们可以引导它的回答风格、语气和知识范围,使其输出更符合特定场景的需求。

# 示例
你现在是一位资深的 Python 编程专家。请解释一下 Python 中的 GIL(全局解释器锁)是什么,要让一个初学者也能听懂。

角色扮演之所以有效,是因为模型在预训练阶段接触了大量带有特定角色特征的文本(如专业论文、教程、访谈等),赋予角色相当于激活了模型中相关领域的知识表达。


2.5 思维链(Chain-of-Thought, CoT)

思维链是近年来提示工程领域最重要的发现之一。它通过引导模型"一步一步地思考",显著提升了模型在复杂推理任务上的表现。

研究者发现,只需在提示中加入"让我们一步一步思考(Let’s think step by step)"这样的引导语,模型在数学应用题、逻辑推理等任务上的准确率会大幅提升。其原因在于:分步骤输出中间推理过程,相当于给模型提供了"草稿纸",使其能够对复杂问题进行分解,而非直接跳到答案。

思维链与少样本提示结合使用(即 Few-shot CoT),效果往往更佳。


2.6 文本分词(Tokenization)

在将文本输入给大语言模型之前,有一个不可跳过的预处理步骤:分词(Tokenization)

这个将文本序列转换为数字序列的过程,就叫做分词。分词器(Tokenizer)的作用,是定义一套规则,将原始文本切分成一个个最小的单元,我们称之为词元(Token)

Token 并不等于"词"。在英文中,Token 通常是词或子词(subword);在中文中,Token 可能是一个汉字,也可能是几个汉字的组合。例如,"Anthropic" 可能被切分为 "Anthrop" 和 "ic" 两个 Token。

理解 Token 的概念很重要,因为大语言模型的上下文长度(Context Length)、API 计费等,都以 Token 数为基本单位。


2.7 调用大语言模型的方式

目前,调用大语言模型主要有两种方式:

  • 本地调用:将模型权重下载到本地设备,直接在本机运行推理。优点是数据隐私性好、无网络延迟、无 API 费用;缺点是对硬件(尤其是 GPU 显存)要求较高。常见工具如 Ollama、LM Studio 等。
  • API 调用:通过云端服务提供商的 API 接口访问模型,按 Token 用量付费。优点是门槛低、可调用超大规模模型;缺点是有数据传输的隐私顾虑和一定的延迟。OpenAI、Anthropic、DeepSeek 等均提供此类服务。

三、大语言模型的缩放法则与局限性

掌握了模型架构和交互方式之后,我们还需要理解两个更宏观的话题:大语言模型为什么越来越大?以及它最核心的局限性是什么?


3.1 缩放法则(Scaling Laws)

缩放法则是近年来大语言模型领域最重要的发现之一。它揭示了模型性能与以下三个因素之间存在着可预测的幂律关系

  1. 模型参数量(Model Size)
  2. 训练数据量(Dataset Size)
  3. 计算资源(Compute Budget)

简单来说,缩放法则告诉我们:在一定范围内,系统性地增加这三个维度的投入,模型性能会以可预测的方式持续提升

这一发现为大语言模型的研究路线提供了理论依据。它解释了为什么 GPT-3(1750 亿参数)显著强于 GPT-2(15 亿参数),也指导了研究者在固定算力预算下,如何在参数量与数据量之间做出最优的资源分配——即著名的 Chinchilla 最优计算比例。

缩放法则的意义不仅在于"越大越好",更在于让大规模投入变得可预测、可规划,从而驱动了近年来模型规模的指数级增长。


3.2 模型幻觉(Hallucination)

尽管大语言模型能力强大,但它存在一个广为人知的核心缺陷:幻觉(Hallucination)

模型幻觉通常指的是大语言模型生成的内容与客观事实、用户输入或上下文信息相矛盾,或者生成了不存在的事实、实体或事件。幻觉的本质是:模型在生成过程中过度自信地"编造"了信息,而非准确地检索或推理。

幻觉的主要类型

根据其表现形式,幻觉可以分为以下几类:

  • 事实性幻觉(Factual Hallucinations):模型生成与现实世界事实不符的信息,例如错误引用一篇不存在的论文,或虚构一个名人的言论。
  • 忠实性幻觉(Faithfulness Hallucinations):在文本摘要、翻译等任务中,生成的内容未能忠实地反映源文本的含义,例如摘要时无中生有。
  • 内在幻觉(Intrinsic Hallucinations):模型生成的内容与输入信息直接矛盾,例如在用户明确提供了某个数据后,模型仍然输出相反的结论。

检测与缓解幻觉的方法

应对幻觉是当前 LLM 落地应用的核心挑战,目前主流策略分为三个层面:

1. 数据层面

通过高质量数据清洗、引入事实性知识以及强化学习与人类反馈(RLHF)等方式,从源头减少幻觉的产生。RLHF 通过训练奖励模型来区分"好答案"和"坏答案",引导模型生成更准确、更诚实的输出。

2. 模型层面

探索新的模型架构,或让模型能够表达对生成内容的不确定性——例如,当模型不确定某个事实时,应该说"我不确定",而非自信地给出错误答案。

3. 推理与生成层面

这一层面目前已有多种实用方法:

  • 检索增强生成(Retrieval-Augmented Generation, RAG):这是目前缓解幻觉最主流的有效方法之一。RAG 系统在生成回答之前,先从外部知识库(如文档数据库、网页)中检索相关信息,然后将检索到的内容作为上下文,引导模型生成基于事实的回答。这相当于给模型配备了一个”实时查阅的参考书”,有效减少了”无中生有”的情况。
  • 多步推理与验证:引导模型进行多步推理,并在每一步进行自我检查或外部验证,减少单步跳跃导致的错误累积。
  • 引入外部工具:允许模型调用外部工具(如搜索引擎、计算器、代码解释器)来获取实时信息或进行精确计算,将”需要精确性”的任务从模型自身的参数记忆中”卸载”出去。

结语

从 N-gram 到 Transformer,从固定窗口到全局注意力,语言模型的发展史,本质上是一部不断突破"上下文理解瓶颈"的历史。而提示工程、缩放法则和幻觉治理,则是我们在这个新范式下,与模型打交道时需要深刻理解的三条主线。

大语言模型远未到达终点。缩放法则是否会触及上限?幻觉问题能否从根本上解决?Decoder-Only 架构是否还有更好的替代方案?这些都是当下学界和工业界正在激烈探索的开放问题。

理解这些基础,是参与这场技术变革的起点。

暂无评论

发送评论 编辑评论


				
上一篇