news 2026/11/2 14:17:33

大模型发展史:从统计语言模型到DeepSeek的架构演进与微调部署实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
大模型发展史:从统计语言模型到DeepSeek的架构演进与微调部署实战

1. 大模型发展史的前世今生:从统计语言模型到千亿参数时代

1.1 为什么需要了解这段历史

很多人做大模型微调、部署、提示词工程,上手就是跑脚本、调API、配环境,结果遇到显存爆炸、推理速度慢、效果不达预期的时候,完全不知道问题出在哪。我见过太多人拿着DeepSeek的API文档翻来覆去地看,却说不清楚为什么DeepSeek要用MoE架构,为什么GPT-3能火而GPT-2不行,为什么BERT适合做分类而GPT适合做生成。这些问题的答案,全都藏在大模型的发展史里。

了解这段历史不是为了考试,而是为了让你在做技术选型的时候有判断依据。比如你要做一个医疗文本分类任务,是选BERT还是选GPT微调?你要在本地部署一个模型,是选7B的Dense模型还是选MoE架构的模型?这些决策背后,都是过去十年里无数研究者踩坑、试错、迭代出来的经验。你花两个小时把这段历史捋清楚,后面能省下几十个小时的试错时间。

这篇文章我会按照时间线,把大模型从统计语言模型到Transformer、BERT、GPT系列、再到DeepSeek这条主线上的关键技术节点讲清楚。每个节点我都会解释:它解决了什么问题、核心技术是什么、为什么能work、对后来的影响是什么。同时我会穿插实操层面的经验,比如Transformer手写时容易踩的坑、BERT部署时的注意事项、大模型微调实战中的参数选择逻辑。适合刚入门大模型、正在做大模型微调或部署、以及想系统理解大模型技术脉络的从业者。

1.2 大模型之前的时代:统计语言模型与神经网络语言模型

在大模型这个词出现之前,语言模型已经存在了几十年。最早的是统计语言模型,核心思想很简单:一个句子出现的概率,等于每个词出现概率的乘积。比如“我爱吃苹果”这句话的概率,就是P(我)×P(爱|我)×P(吃|我爱)×P(苹果|我爱吃)。这种模型的问题很明显:参数空间随着词表大小指数级增长,而且无法捕捉长距离依赖。你想想,如果句子有20个词,每个词有5万个候选,那参数数量就是5万的20次方,根本没法存。

后来出现了N-gram模型,做了一个简化假设:每个词只依赖于前面N-1个词。比如3-gram就是每个词只依赖前两个词。这个假设让模型变得可计算了,但代价是丢失了长距离信息。而且N-gram有一个致命问题:数据稀疏。很多N元组合在训练语料里根本没出现过,概率就是0。虽然可以用平滑技术缓解,但本质上还是治标不治本。

2003年,Bengio等人提出了神经网络语言模型,这是第一次用神经网络来建模语言。核心思路是:把每个词映射成一个低维稠密向量(也就是词嵌入),然后用前馈神经网络根据前面的词预测下一个词。这个工作的重要性在于,它第一次让词有了分布式表示,也就是后来word2vec、GloVe这些词向量的思想源头。但当时的计算能力有限,训练一个稍微大一点的模型就要很久,所以并没有真正火起来。

2013年,word2vec横空出世,让词向量彻底出圈。word2vec有两个版本:CBOW和Skip-gram。CBOW是用上下文预测中心词,Skip-gram是用中心词预测上下文。它的核心贡献是证明了:语义相近的词,在向量空间里的距离也相近。比如“国王”减去“男人”加上“女人”,结果接近“女王”。这个特性让很多人第一次感受到词向量的威力。但word2vec有一个根本局限:它是静态词向量,也就是说每个词只有一个固定的向量表示,无法处理一词多义。比如“苹果”在“吃苹果”和“苹果手机”里的含义完全不同,但word2vec给出的向量是一样的。

1.3 从RNN到LSTM:序列建模的第一次突破

有了词向量之后,下一步就是怎么建模序列。RNN是最自然的想法:每个时刻的隐藏状态,由当前输入和上一时刻的隐藏状态共同决定。这样理论上可以捕捉任意长度的依赖。但RNN有两个致命问题:梯度消失和梯度爆炸。梯度消失导致长距离依赖学不到,梯度爆炸导致训练不稳定。

LSTM通过引入门控机制解决了梯度消失问题。它有三个门:遗忘门决定丢弃哪些旧信息,输入门决定写入哪些新信息,输出门决定输出哪些信息。还有一个细胞状态,像一条传送带一样贯穿整个序列,让梯度可以稳定传播。LSTM在2014年到2017年之间几乎是序列建模的标配,机器翻译、语音识别、文本分类都在用。

但LSTM也有问题。首先,它是串行计算的,每个时刻必须等上一时刻算完,无法并行。这意味着训练速度受限于序列长度,很难扩展到超大规模。其次,虽然LSTM理论上能捕捉长距离依赖,但实际上超过100个token之后效果还是会下降。我当年用LSTM做文本分类的时候,序列长度超过200就明显感觉效果不行了,调参也很难调上去。

1.4 Transformer的诞生:Attention Is All You Need

2017年,Google发表了那篇著名的论文《Attention Is All You Need》,提出了Transformer架构。这篇论文的核心创新是:完全抛弃RNN和CNN,只用注意力机制来建模序列。Transformer的自注意力机制让每个位置都能直接看到序列中所有其他位置,计算复杂度是O(n²),但好处是可以完全并行计算。

Transformer的核心组件包括:多头自注意力、位置编码、前馈网络、残差连接和层归一化。多头自注意力让模型可以从不同的表示子空间同时关注不同的位置。位置编码解决了自注意力本身没有位置信息的问题。残差连接和层归一化让深层网络可以稳定训练。

我手写Transformer代码的时候,最容易踩的坑是位置编码的实现。原始论文用的是正弦余弦位置编码,公式是PE(pos, 2i) = sin(pos / 10000^(2i/d_model)),PE(pos, 2i+1) = cos(pos / 10000^(2i/d_model))。这个公式看起来简单,但实现的时候要注意维度对齐。我见过很多人把位置编码的维度和词嵌入的维度搞混,导致训练完全不收敛。还有一个坑是注意力掩码的实现,在解码器里需要用到因果掩码,确保每个位置只能看到前面的位置。这个掩码如果写错了,模型就会偷看答案,训练loss很低但推理效果极差。

Transformer的影响是深远的。它不仅是BERT和GPT的基础架构,还衍生出了Vision Transformer、Swin Transformer等一系列变体。可以说,没有Transformer,就没有今天的大模型时代。

2. BERT与GPT:两条技术路线的分道扬镳

2.1 BERT:双向编码器的崛起

2018年,Google发布了BERT,全称是Bidirectional Encoder Representations from Transformers。BERT的核心创新是:用Transformer的编码器部分,通过掩码语言模型和下一句预测两个任务进行预训练。掩码语言模型是随机遮住15%的词,让模型根据上下文预测被遮住的词。下一句预测是判断两个句子是否是连续的。

BERT的最大特点是双向。也就是说,它在预测一个词的时候,可以同时看到左边和右边的上下文。这和GPT的单向语言模型完全不同。双向的好处是能更好地理解语义,所以在自然语言理解任务上,比如文本分类、命名实体识别、问答,BERT的效果非常好。

BERT的预训练过程是这样的:首先用大量无标注文本训练一个通用的语言理解模型,然后针对具体任务进行微调。微调的时候只需要在BERT上面加一个简单的输出层,用少量标注数据训练几个epoch就能达到很好的效果。这个范式叫做预训练+微调,是BERT之后所有大模型的标准流程。

我实际部署BERT的时候,有几个经验可以分享。第一,BERT-base有110M参数,BERT-large有340M参数。如果只是做文本分类,BERT-base通常就够了,没必要上large。第二,BERT的输入长度限制是512个token,超过这个长度需要截断或者用滑动窗口。第三,BERT的推理速度在CPU上比较慢,如果要做在线服务,建议用ONNX Runtime或者TensorRT加速。第四,BERT的微调学习率通常设置在2e-5到5e-5之间,太大容易过拟合,太小收敛慢。

2.2 GPT系列:从GPT-1到GPT-3的进化

GPT和BERT几乎是同时期的产物,但走的是完全不同的路线。GPT用的是Transformer的解码器部分,通过自回归语言模型进行预训练。也就是说,它只能看到左边的上下文,预测下一个词。这个方向看起来比BERT弱,因为信息量更少,但GPT系列后来却成了大模型的主流,原因在于它的生成能力和可扩展性。

GPT-1在2018年发布,参数1.17亿,用了BooksCorpus数据集预训练。它的思路是:先无监督预训练,再针对具体任务微调。但GPT-1的效果并没有超过BERT,所以当时没有引起太大关注。

GPT-2在2019年发布,参数15亿,训练数据是WebText。GPT-2的最大特点是:它展示了零样本学习的能力。也就是说,不需要微调,只需要给一个提示,GPT-2就能完成很多任务。比如给它一段文本,它能续写出风格一致的内容。GPT-2当时因为担心滥用,OpenAI还分阶段发布。但GPT-2的生成质量还是有限,经常出现逻辑不连贯的问题。

GPT-3在2020年发布,参数1750亿,训练数据量达到45TB。GPT-3的核心创新是:它证明了规模的力量。当模型大到一定程度,很多任务不需要微调,只需要给几个例子(few-shot learning),就能达到很好的效果。GPT-3的API发布后,很多人第一次感受到大模型的威力。但GPT-3的推理成本非常高,普通开发者很难本地部署。

GPT-3之后,OpenAI又推出了InstructGPT和ChatGPT,通过人类反馈强化学习让模型更符合人类偏好。ChatGPT在2022年底发布后,两个月用户破亿,彻底引爆了大模型热潮。

2.3 BERT和GPT的核心差异与选型逻辑

BERT和GPT的核心差异在于:BERT是双向编码器,适合理解任务;GPT是单向解码器,适合生成任务。这个差异决定了它们的应用场景完全不同。

如果你要做文本分类、情感分析、命名实体识别、抽取式问答,BERT系列是更好的选择。因为双向注意力能更好地捕捉上下文语义。如果你要做文本生成、对话、摘要、翻译,GPT系列是更好的选择。因为自回归生成是天然适合生成任务的。

但事情没有那么绝对。后来也出现了很多融合两者优点的模型,比如T5把所有任务都统一成文本到文本的格式,BART结合了双向编码器和自回归解码器。还有ELECTRA、DeBERTa等BERT变体,在效率和效果上都有改进。

从部署角度看,BERT-base的推理速度比同参数量的GPT快,因为编码器可以并行处理所有位置,而解码器必须串行生成。但GPT的生成能力是BERT不具备的。所以选型的时候,先明确你的任务类型,再考虑模型大小和部署成本。

3. 大模型时代的架构演进与关键技术

3.1 从Dense到MoE:参数效率的追求

早期的GPT系列都是Dense模型,也就是说,每次推理都会激活所有参数。GPT-3有1750亿参数,每次推理都要算1750亿次,成本极高。为了解决这个问题,研究者提出了MoE架构,也就是混合专家模型。

MoE的核心思想是:把前馈网络拆成多个专家,每次推理只激活其中几个专家。比如DeepSeek-V2有236B总参数,但每次推理只激活21B参数。这样既保留了大规模参数带来的知识容量,又大幅降低了推理成本。

MoE的关键组件是门控网络和专家网络。门控网络决定每个token分配给哪些专家,专家网络负责实际计算。训练MoE的难点在于负载均衡:如果门控网络总是把token分配给少数几个专家,其他专家就得不到训练。所以需要加一个负载均衡损失,鼓励token均匀分配到各个专家。

我实际用DeepSeek做推理的时候,感觉MoE架构的模型在生成质量上和Dense模型差别不大,但推理速度快很多。不过MoE模型对显存的要求比较高,因为虽然每次只激活部分专家,但所有专家的参数都需要加载到显存里。所以本地部署MoE模型的时候,显存容量比计算能力更重要。

3.2 注意力机制的优化:从Full Attention到稀疏注意力

标准Transformer的自注意力复杂度是O(n²),序列长度翻倍,计算量翻四倍。当序列长度达到几千甚至几万的时候,计算量就爆炸了。所以过去几年有很多工作在研究怎么优化注意力机制。

稀疏注意力是最早的尝试之一。它的思路是:每个位置不需要关注所有其他位置,只需要关注一部分。比如Longformer用了滑动窗口注意力加全局注意力,BigBird用了随机注意力加滑动窗口加全局注意力。这些方法能把复杂度降到O(n)。

线性注意力是另一个方向。它通过核函数近似softmax注意力,把复杂度降到O(n)。但线性注意力的效果通常不如标准注意力,所以在大模型里用得不多。

Flash Attention是最近几年最实用的优化。它通过分块计算和重计算,大幅减少了显存访问次数,在不改变数学结果的前提下把速度提升了2到4倍。我实测下来,Flash Attention在长序列场景下效果非常明显,序列长度超过2048之后,速度提升能达到3倍以上。

3.3 位置编码的演进:从绝对位置到旋转位置编码

位置编码是Transformer里容易被忽视但非常重要的组件。原始Transformer用的是正弦余弦绝对位置编码,每个位置有一个固定的编码向量。这种编码的问题是:无法外推到训练时没见过的长度。

后来出现了相对位置编码,比如T5用的相对位置偏置,只关注两个位置之间的相对距离,而不是绝对位置。相对位置编码的外推能力更好,但实现起来更复杂。

旋转位置编码是最近几年最流行的方案,LLaMA、DeepSeek等模型都在用。RoPE的核心思想是:通过旋转矩阵把位置信息编码到词向量的旋转角度里。这样注意力分数只依赖于两个位置的相对距离,而且可以通过调整旋转角度来外推到更长的序列。我手写RoPE的时候,关键是要理解旋转矩阵的构造,以及怎么在注意力计算中应用旋转。

4. DeepSeek的崛起与国产大模型的突围

4.1 DeepSeek的技术路线与核心创新

DeepSeek是最近两年国产大模型里最受关注的一个。它的技术路线有几个关键点:MoE架构、多头潜在注意力、FP8混合精度训练。

DeepSeek-V2用了MLA,也就是多头潜在注意力。标准的多头注意力需要缓存Key和Value,显存占用很大。MLA通过低秩压缩,把Key和Value压缩到一个更小的维度,大幅减少了KV Cache的显存占用。这个优化对长序列推理非常重要,因为KV Cache是推理时显存的主要消耗者。

DeepSeek-V3用了FP8混合精度训练,也就是说,部分计算用FP8,部分用BF16。FP8的好处是计算速度快、显存占用小,但精度损失需要仔细处理。DeepSeek的论文里详细介绍了怎么在FP8训练中保持稳定性,包括细粒度的量化策略和误差补偿。

DeepSeek-R1是推理模型,通过强化学习训练模型进行长链推理。它在数学、代码等需要复杂推理的任务上表现很好。我实际用DeepSeek-R1做代码生成的时候,感觉它的推理过程很清晰,会一步步分析问题,而不是直接给答案。这个特性在调试复杂bug的时候特别有用。

4.2 大模型微调实战:从数据准备到参数选择

大模型微调是很多人最关心的实操环节。我结合自己的经验,把微调的完整流程拆解一下。

第一步是数据准备。微调数据的质量比数量重要。我见过很多人用几万条低质量数据微调,效果还不如几百条高质量数据。数据格式通常是instruction-input-output的三元组,或者conversation的多轮对话格式。数据要多样化,覆盖不同的任务类型和表达方式。还要注意数据清洗,去掉重复、噪声、格式错误的样本。

第二步是基座模型选择。如果是做通用对话,选Chat模型;如果是做特定领域任务,选Base模型。模型大小要根据显存和任务复杂度来定。7B模型在单张24G显存上可以微调,13B需要多卡或者量化,70B基本需要多卡A100。DeepSeek系列有不同大小的模型,可以根据需求选择。

第三步是微调方法选择。全量微调效果最好,但显存要求高。LoRA只训练低秩矩阵,显存占用小,效果也不错。QLoRA在LoRA基础上加了4bit量化,进一步降低显存。我一般先用LoRA快速实验,效果满意后再考虑全量微调。

第四步是超参数设置。学习率通常设置在1e-5到5e-5之间,LoRA可以稍大一些。Batch size根据显存来定,可以用梯度累积来模拟大batch。训练轮数通常2到5个epoch,太多容易过拟合。还要注意warmup和cosine衰减。

第五步是评估和迭代。微调后要在验证集上评估,看loss曲线和生成质量。如果过拟合,减少epoch或增加dropout。如果欠拟合,增加数据或调大学习率。我通常会保留几个checkpoint,对比不同训练阶段的生成效果。

4.3 大模型部署:本地部署与API调用的取舍

大模型部署有两种方式:本地部署和API调用。本地部署的好处是数据不出本地、可以自由定制、没有调用次数限制。坏处是硬件成本高、维护复杂、推理速度受限于本地硬件。API调用的好处是省事、弹性伸缩、按量付费。坏处是数据要传到第三方、有调用限制、长期成本可能更高。

本地部署大模型,硬件是关键。7B模型用FP16需要14G显存,用4bit量化需要4G左右。13B模型FP16需要26G,4bit需要7G。70B模型FP16需要140G,4bit需要35G。所以如果只有一张24G的卡,最多部署13B的4bit量化模型。如果想部署70B模型,至少需要两张A100 40G或者一张A100 80G。

推理框架的选择也很重要。vLLM是目前最流行的推理框架,支持PagedAttention和连续批处理,吞吐量很高。TensorRT-LLM是NVIDIA的官方框架,性能最好但配置复杂。llama.cpp适合CPU推理和低显存场景,支持GGUF格式的量化模型。Ollama是最简单的本地部署工具,一条命令就能跑起来,适合快速实验。

我实际部署的时候,发现显存带宽比计算能力更重要。大模型推理是显存密集型任务,每次生成一个token都要把整个模型权重读一遍。所以显存带宽越高,推理速度越快。这也是为什么A100比V100快很多的原因之一。

5. 大模型学习路线与常见问题排查

5.1 从零开始的大模型学习路线

如果你刚入门大模型,我建议按照这个路线走。第一阶段,先理解Transformer架构,能手写一个简单的Transformer。不用写得多完美,但要理解每个组件的作用。第二阶段,学习BERT和GPT的原理,跑通微调和推理的代码。第三阶段,学习大模型微调技术,包括LoRA、QLoRA、指令微调。第四阶段,学习大模型部署,包括vLLM、TensorRT-LLM、量化技术。第五阶段,学习提示词工程和上下文工程,理解怎么让模型输出更好的结果。

每个阶段都要动手实践。光看论文和教程是不够的,必须自己跑代码、调参数、看结果。我见过很多人看了很多论文,但一上手就懵,就是因为缺乏实操经验。

5.2 常见问题速查表

问题可能原因解决方法
微调后模型输出重复训练数据重复、学习率过大清洗数据、降低学习率、增加dropout
推理速度慢显存带宽不足、batch size太小用量化、增大batch size、换推理框架
显存溢出模型太大、序列太长、batch size太大量化、梯度累积、减少序列长度
生成质量差基座模型不合适、微调数据质量低换基座模型、清洗数据、增加数据量
模型不遵循指令指令微调不充分、提示词不清晰增加指令微调数据、优化提示词
长文本效果差位置编码外推能力不足用RoPE、NTK插值、滑动窗口

5.3 实操心得与避坑经验

第一个坑是数据质量。我刚开始微调的时候,觉得数据越多越好,结果用了几万条低质量数据,模型学了一堆坏习惯。后来精简到几千条高质量数据,效果反而更好。所以数据清洗和筛选比堆量重要得多。

第二个坑是学习率。大模型微调的学习率比传统模型小很多。我一开始用1e-3,loss直接爆炸。后来改成2e-5,才稳定下来。LoRA的学习率可以稍大,但也不要超过1e-4。

第三个坑是显存估算。很多人低估了显存需求,结果跑到一半OOM。显存需求大概是:模型参数×精度字节数×1.2(优化器状态)+ 激活值。7B模型FP16全量微调大概需要80G显存,LoRA大概需要16G,QLoRA大概需要8G。

第四个坑是推理框架选择。不同框架的配置方式差别很大,vLLM和TensorRT-LLM的配置完全不兼容。建议先在一个框架上跑通,再考虑迁移。

第五个坑是提示词工程。很多人觉得提示词不重要,随便写写就行。但实际上,好的提示词能让模型效果提升很多。提示词要清晰、具体、有示例。对于复杂任务,可以用思维链提示,让模型一步步推理。

大模型这个领域变化很快,每隔几个月就有新模型、新技术出来。但底层原理是相对稳定的,Transformer、注意力机制、预训练微调范式,这些核心东西不会轻易改变。把基础打牢,再跟进最新的进展,才能在这个领域走得远。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/2 14:16:45

Nginx配置CORS跨域访问实战指南

1. 跨域访问与CORS核心原理当你在浏览器控制台看到"has been blocked by CORS policy"这个错误时,说明前端项目遇到了经典的跨域问题。作为现代Web开发中最常见的"拦路虎"之一,跨域限制本质是浏览器出于安全考虑实施的同源策略&…

作者头像 李华
网站建设 2026/11/2 14:15:02

Paperclip:面向AI Agent的React声明式运行时框架

1. 项目概述:Paperclip 不是回形针,而是一个面向 AI Agent 开发的轻量级 React 运行时框架你搜“paperclip”,第一反应可能是办公桌抽屉里那枚银色小金属件——但在这个技术语境下,Paperclip 指的是一套专为构建可组合、可调试、可…

作者头像 李华
网站建设 2026/11/2 14:14:56

OpenClaw AI技术如何革新企业培训模式

1. 企业培训的"低效泥潭"现状剖析 企业培训领域长期存在一个令人尴尬的现象:投入大量资源却收效甚微。根据行业调研数据,超过70%的企业培训负责人对现有培训效果表示不满。传统培训模式通常表现为: 单向知识灌输的"填鸭式&qu…

作者头像 李华
网站建设 2026/11/2 14:12:52

解决nvm安装Node.js版本不可用问题

1. 问题现象与背景分析 当你使用nvm(Node Version Manager)安装特定版本的Node.js时,可能会遇到这样的错误提示:"Node.js vX.X.X is not yet released or is not available for download yet." 这个报错通常发生在尝试安…

作者头像 李华
网站建设 2026/11/2 14:12:16

微信小程序常见问题全解析:开发到上线的排查与性能优化指南

做小程序这几年,被问得最多的从来不是“某个炫酷效果怎么写”,而是“为什么我在电脑上跑得好好的,一到手机上就变样了”。微信小程序常见问题翻来覆去就那么几类,但每一类背后都藏着平台机制的设计取舍,搞不清楚机制&a…

作者头像 李华
网站建设 2026/11/2 14:12:16

Rails文件上传实战:Paperclip核心机制与配置详解

看到 paperclip 这个词,如果你不是 Ruby on Rails 开发者,第一反应八成是办公桌上那种弯弯的金属小别针。但在我这种接触过 Rails 多年的老程序员眼里,它却是经典得不能再经典的文件上传组件——Paperclip。当年做头像上传、证件上传、附件管…

作者头像 李华