☰
从Transformer到本地部署:大模型技术演进与微调实战全解析
2026/10/27 11:41:55 网站建设 项目流程

我在整理自己这段时间啃大模型的学习笔记时,发现这个领域最折磨人的不是技术难,而是发展太快。从2017年Transformer论文亮相,到2023年全社会都在聊大模型,满打满算六年。这六年里,模型参数量从1亿涨到万亿,上下文长度从512个token撑到百万级,API价格一路往下掉,本地部署的门槛也从需要一整台A100降到一张消费级显卡就能跑量化模型。回过头来捋这条发展脉络,你会发现所有看起来像是“横空出世”的突破,背后都是算力、数据、算法三条线互相卡脖子之后又互相成就的过程。这篇笔记不打算写成严肃的论文综述,就按我个人的学习顺序,把关键技术节点、架构演进逻辑,以及一些能落到实处的部署微调经验,一次性串起来。

1. 大模型之前的暗流:语言模型为什么非要往“大”了走

1.1 从统计模型到词向量:被遗忘的“前传”

语言模型不是2020年才冒出来的概念。我在笔记第一页写了一句老生常谈的话:语言模型的任务,是估计一句话出现的概率。传统N-Gram模型只能看前后两三个词,因为参数空间是离散的,看多了就爆表。后来Mikolov团队在2013年搞出word2vec,把词变成稠密向量,模型开始能捕捉语义相似性,“国王-王后≈男人-女人”这种让很多人惊呼的结果,就是词向量时代最出圈的广告。再往后,RNN和LSTM能处理序列,靠的是把状态一步步往下传,但传着传着,靠前的信息就被“忘”得差不多了,梯度也容易消失,所以长句理解一直是老大难。

1.2 Attention机制:一开始它只是个配角

Attention机制刚出现时,根本不是用来取代RNN的,它只是机器翻译里用来对齐源语言和目标语言词的一个辅助组件。2014年Bahdanau等人把Attention加入翻译模型后,效果立竿见影:模型不再需要硬生生把整个句子压进一个固定向量,而是在解码每一步时,动态回看源语句子的不同位置。这个思想非常朴素,却打开了“动态聚焦”这扇大门。真正让它站到聚光灯下,要等到2017年Transformer出现。但理解了这段前史,你才会明白Transformer并不是凭空造出一个新概念,而是把原本很边缘的Attention机制重新扶正,让它成为整个模型的主心骨。

1.3 数据、算力、算法:三个轮子少一个都不转

我个人觉得,大模型能成,从来不是某一个算法突然开窍,而是三条线同时到位。第一条是数据:互联网积累的海量开放语料提供了燃料,Common Crawl这类网页爬取数据集动辄几个TB,没这些语料,再大的模型也无米下锅。第二条是算力:GPU并行计算把曾经不可想象的训练时长压缩到了可接受的范围,没有CUDA和分布式训练框架,1750亿参数就是纸上谈兵。第三条是算法:自监督学习让模型不需要依赖昂贵的人工标注,直接从无标注文本里学;以及后面我们会聊到的Scaling Law,给整个行业提供了方向选择的理论依据。这三点缺一个,前面所有架构创新都落不了地。

2. Transformer:把注意力机制推到聚光灯下

2.1 架构设计的核心逻辑:为什么RNN会被取代

2017年那篇《Attention Is All You Need》的核心贡献,是彻底抛弃了循环结构,用Self-Attention(自注意力)处理序列。所谓自注意力,通俗讲就是让序列里每个token都去计算它和序列里所有其他token的相关性权重,然后按权重加权求和。直观理解是:模型在处理“它”这个词时,能够动态判断“它”到底指向前文的“小明”还是“小猫”。这个机制有两个巨大的优势:一是天然建模了长距离依赖,不管两个词隔多远,相关性都在一次计算里直接算出来,不像RNN要一步步接力;二是每一步计算都互相独立,可以并行训练,训练速度完爆RNN。

当然,全量注意力是有代价的。标准Self-Attention的时间复杂度是O(n²),序列长度一上来,计算量就是二次方增长。我在笔记里特意标注了一笔:后来的稀疏注意力、滑动窗口注意力、线性注意力、FlashAttention,全都是在和这个O(n²)搏斗。尤其是FlashAttention,它通过分块计算和IO优化,把注意力计算的速度提了几个数量级,没有这类底层算子优化,今天的长上下文模型根本训练不动。所以每次看到有人把Transformer说得神乎其神,我都会提醒一句:架构是骨架,工程优化才是让骨架跑起来的肌肉。

2.2 GPT和BERT的两条路线:生成式为什么笑到最后

2018年可以说是Transformer概念落地的元年。OpenAI拿出GPT-1,谷歌拿出BERT。前者用Transformer的解码器部分,从左到右单向预测下一个词;后者用编码器部分,做成双向,通过“完形填空”做预训练。两条路线各有各的道理。GPT的单向结构天然适合生成任务,给定上文续写下文,训练目标就是预测下一个token;BERT的双向结构则能在每个位置都看到完整上下文,做情感分类、命名实体识别这类理解任务非常强。

那时候大部分人都觉得BERT更实用,因为GLUE榜单上BERT长期屠榜,各种下游任务微调一下就是新SOTA。谁也没想到,几年后GPT这种看似“只会填空续写”的模型,靠着规模效应和生成式统一框架,最终把理解、生成、对话、推理全部收编。这段历史给我的启发是:一个简单而且可扩展的方法,往往比一堆复杂精巧的技巧更有生命力。BERT当然也伟大,但它对任务形态的依赖更强,而GPT的next-token prediction足够简单,简单到可以无脑堆数据、堆参数,最后变成了通用接口。

2.3 Scaling Law:把经验判断变成幂律曲线

2020年OpenAI那篇《Scaling Laws for Neural Language Models》,被我标记为这个领域最重要的论文之一。它用大量实验得出一个很简洁的结论:模型性能(Loss)与参数量、数据量、计算量之间呈幂律关系。也就是说,在没碰到瓶颈之前,把模型规模扩大10倍,性能就会稳定提升一块;但数据量和算力也要同步跟上,否则参数变大而数据不足,照样上不去。这个规律直接改变了行业的资源分配方式。以前大家研究的是“怎么把模型做得更聪明”,后来变成了“如何在有限预算下把模型做得更大”。

这也是为什么后来GPT-3一口气做到了1750亿参数,为什么各家大厂疯狂囤GPU,为什么数据工程变得越来越吃香。说句实话,Scaling Law本身不是一条物理定律,它更像是特定条件下观察到的经验规律,用外推方式预测模型继续扩大后的收益,风险是存在的。但在那几年,它确实给整个行业的“军备竞赛”提供了最有力的理论背书。理解这一点,你就能看懂为什么2023年到2024年会出现一波百模大战——所有人都在按同一个公式求解。

3. 从GPT-3到ChatGPT:三个阶段的重质变

3.1 GPT-1和GPT-2:一步步验证“大就是好”的猜想

GPT-1只有1.17亿参数,放在今天连小模型都算不上,但它的意义在于证明了一件事:用无标注文本做生成式预训练,然后在具体任务上微调,效果比从零开始训练还要好。这是“预训练+微调”范式第一次在生成式模型上得到清晰验证。到了GPT-2,参数量涨到15亿,训练数据换成规模更大的网页文本,结果意外发现:模型不经过任何微调,直接就能做翻译、问答、摘要这些任务,这就是后来被叫做zero-shot的能力。这个“意外”很重要,它暗示了预训练语言模型其实已经从语料里学到了大量超出预期的知识和推理模式。

3.2 GPT-3与上下文学习:提示词工程从此诞生

2020年GPT-3发布,1750亿参数,规模比GPT-2大了两个数量级,很多人才第一次感受到“大”带来的改变。它有一个显著特点:不需要为每个任务重新训练模型,只要在提示词里给几个示例,模型就能照猫画虎完成同类任务。这个现象叫in-context learning(上下文学习)。开发者只要把例子写进输入里,模型的行为就跟着变,提示词工程这个职业方向也由此诞生。但GPT-3有明显的短板:它骨子里还是“续写机器”,不是“任务助手”。你让它回答问题,它可能连你给定的约束条件都不看,顺着文字风格就往下编。开发者要费很大劲设计提示词,才能把它勉强当成工具用。

这说明什么?预训练模型学到的是“文本分布”,而不是“用户意图”。它能生成像样的文本,却不知道什么时候该回答问题、什么时候该承认不会、什么时候该拒绝请求。这个缺口,为下一阶段的技术革命埋下了伏笔。

3.3 RLHF:ChatGPT引爆全球的最后一块拼图

2022年3月,OpenAI公开了InstructGPT的技术路线,核心是三步走:先收集人工标注的示范数据,做监督微调(SFT),让模型初步学会“按指令回答”的格式;再让模型针对同一问题生成多个回答,由标注员排序,训练一个奖励模型(RM);最后用强化学习算法PPO,让语言模型在训练中去优化奖励分数。整套流程就是RLHF(基于人类反馈的强化学习)。

这一步的威力在于,它把模型从“会接话”变成了“会按指令做事的助手”。2022年11月30日ChatGPT上线,五天用户破百万,两个月月活破亿,这套组合拳一战封神。我记得自己第一次用上ChatGPT的直观感受是:这次真的不一样,它知道自己该回答什么,不知道的事情会承认,遇到不合适的问题会礼貌拒绝。我在笔记里把当时的震撼写成了这样一句话:ChatGPT的成功不是单点技术的成功,而是预训练加指令微调加人类对齐这套组合拳的成功,任何一个环节单独拿出来,都不足以产生这种产品体验。

4. 大模型技术栈的成熟:微调、上下文与部署实践

4.1 微调范式转变:从全量微调到LoRA和QLoRA

ChatGPT发布后,大量团队开始做一件事:把开源大模型在特定领域和私有数据上微调。最早的主流做法是全量微调(Full Fine-tuning),所有参数都更新,效果最好,但成本高得吓人。一个7B模型全量微调,光显存需求就容易超过100GB,还要处理分布式通信,普通人根本玩不起。LoRA(低秩适配)出来后,局面完全变了。它的原理说来也不复杂:预训练模型的权重冻结不动,只在旁边加一个低秩矩阵来学习任务增量。假设原始权重是d×d矩阵,LoRA把它拆成d×r和r×d两个小矩阵相乘,训练时只更新这两个小矩阵。

我实际微调开源7B模型时,LoRA能把可训练参数量降到原来的0.1%左右,单张24GB显卡就能跑起来。QLoRA更进一步,把基座模型量化到4bit再挂LoRA,我自己的经验是8B模型在16GB显存上也能微调,效果损失完全可接受。这里要提醒一下:微调效果好坏,数据质量大于数据量。我试过用500条高质量指令做微调,效果比5000条杂乱数据还好。学习率也要比全量微调高一些,常用1e-4到2e-4;训练轮数别贪多,2到3轮基本就到头了,多了容易过拟合,模型回答会变得机械复读。

4.2 上下文窗口军备竞赛与RAG的理性取舍

上下文长度是这两年被卷得最狠的指标之一。早期GPT-3只有2048个token,大概能放下两千多个汉字;2023年各家开源模型普遍做到8K、32K;到了2024年,Qwen系列直接把窗口拉到128K,之后甚至有模型的宣传口径到了1M token。上下文长度为什么重要?因为它直接决定模型一次能“看到”多少信息,长文档解析、代码仓库分析、多轮对话记忆,全靠它撑着。但长上下文不是简单把训练数据里的文本截长就行的,这里面的门道很多。

位置编码要从绝对位置换成能外推的RoPE或ALiBi;注意力计算要考虑稀疏化和显存开销;推理时KV Cache会随窗口长度线性增长,窗口翻倍,缓存也翻倍,显存压力骤增。我自己做项目时的取舍是:如果任务需要从几十万字的资料里检索具体信息,我倾向用RAG把相关内容切片后再喂给模型;只有当任务本身需要完整阅读长文档并全局理解时,才值得把长上下文拉满。长上下文和RAG不是互相替代,而是各管一段,组合使用才划算。

4.3 本地部署与推理优化:从Ollama到vLLM

部署本地大模型已经是很多人的日常了。Ollama是我用得最顺手的一个工具,安装之后一条命令就能拉起模型,底层自动做量化、显存缓存和API暴露,对新手极其友好,我非常建议第一次接触本地模型的人从这里入手。但如果你对吞吐量有更高要求,比如要做服务端推理,vLLM是更专业的选择。它引入的PagedAttention把显存按页管理,能显著提升并发推理效率,我拿7B模型实测过,vLLM的吞吐大概是原生HuggingFace推理的数倍到十几倍,请求一多差距更明显。

部署时踩过的坑我记在了笔记上:量化等级要按显存来选,4bit能跑,但复杂推理任务上的输出质量会明显下降,至少建议用6bit或8bit;不要一上来就贪大模型,7B模型用CPU也能跑,但速度非常感人,有预算还是上显卡;显存不足时,可以给推理框架设置max-model-len,或者调整KV Cache策略,能省出不少空间。日志出现CUDA out of memory,八成是并发请求太高或上下文开太长,把这两个参数压下来基本就稳定了。另外提醒一句:本地部署不等于离线后就可以随便删减安全措施,数据合规和内容安全的风控逻辑,在本地环境一样要保留。

4.4 多模态大模型的成型:从CLIP到GPT-4V

语言模型发展史的下一个篇章,是让模型听懂图文、音频和视频。2021年OpenAI的CLIP模型用图片和文字做对比学习,把两种模态投射到同一个向量空间,算是多模态预训练的标志性节点。技术和思路大体是:用CLIP这类视觉塔把图片切成patch并编码成向量,再通过投影层接到语言模型里。训练过程分两步,先做图文对齐的预训练,再走指令微调。Flamingo、LLaVA都是这个路线的代表,GPT-4V发布后,行业基本确定:下一代通用大模型一定会是多模态的。现在开源社区里已经有很多mini多模态模型能做“图片理解加问答”,放在五年前这是难以想象的。

4.5 智能体与AI应用的下一站

大模型的下一个热点,是把能力从对话扩展成行动。核心思路是让模型不仅能聊天,还能调用工具、读写文件、执行代码、自主规划步骤。背后的关键能力是function calling和tool use。我在笔记里把Agent架构概括成一个循环:模型根据用户任务和环境状态,思考下一步要调用什么工具,执行工具得到结果,再喂回模型继续思考,直到完成目标。这个循环目前还不够稳定,但已经催生了一批框架,实际项目里我重点关注的是MCP(Model Context Protocol),它把工具接入标准化,一次接入多个模型可用,极大地降低了工具链的耦合成本。

5. 大模型学习路线:从零开始怎么走

5.1 三步入门法

最后写点给正在学习的人的建议。这条路线我自己走下来比较顺畅:第一步,补Transformer架构基础,不要求推导所有公式,能在纸上画出Self-Attention的计算过程就算过关;第二步,精读几篇关键论文,我建议按时间顺序读:Transformer原文、GPT-1、BERT、GPT-3、InstructGPT、LoRA,这六篇就能把主线串起来;第三步,动手跑一个开源模型的本地部署,推荐Qwen或Llama的7B或8B版本,然后做一次LoRA微调,用自己的数据让模型学会某个领域的话术,最后再做一个简单的RAG或Agent应用,把学到的知识串成一个完整场景。

5.2 学习心态与方法

不建议一上来就刷综述或把论文列表全刷一遍,那样很容易迷失在细节里。这个领域的更新速度太快,正确的策略是“主线清晰、分支按需深入”。我自己的体会是,带着要解决的具体问题去查论文、跑代码,效率是漫无目的学习的数倍。大模型发展史这条线索,叠加上手实践,才能真正转化为能力。另外要留意,现在开源社区里也有越来越多的教程和免费API可以体验,不用非得自己训练,先把模型用起来,再逐步深入原理,路径更自然。

5.3 关于未来演进的一点判断

回看这段发展史,每一轮突破都是瞄准具体痛点:RNN解决不了长距离依赖,于是有了Attention;预训练模型不听话,于是有了RLHF;大模型跑不起,于是有了LoRA和量化;纯文本信息密度不够,于是有了多模态和Agent。顺着这条逻辑链,以后再看到任何新模型、新框架,都能快速判断它到底在补哪块短板,而不是被各种炫酷名字带着走。对我个人而言,这才是整理这份学习笔记最大的价值。

如果在整理笔记过程中只让我留一个可执行的建议,我会说:今天就装一个Ollama,拉一个7B模型下来,跑几句真实的业务文本,对比一下不同模型、不同上下文长度的输出差异。这个简单的体验,比你在收藏夹里存上一百篇“入门必看”都管用。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询