2022年11月30日ChatGPT上线五天内用户破百万。当时我身边的非技术朋友都在转它的聊天截图而我的第一反应不是“AI终于能聊天了”而是“为什么是现在”。之后我花了大量时间系统梳理大模型的发展史越查越发现这条路上的每一次转折几乎都埋在十年前的论文里。这篇笔记就是我自己学习时的整理把整条技术线串起来从哪里起步、在哪一步发生范式切换、今天的军备竞赛到底在卷什么、以及落地过程中有哪些看不见的暗礁。适合正在入门大模型、想建立系统认知的开发者也适合已经跑通过Demo但理解还停留在“调用API”层面的同学。1. 起点语言模型不是新概念但Transformer改写了游戏规则1.1 从统计语言模型到神经语言模型变的只是“猜词”的方式大模型严格来说不是凭空出现的它的祖先是语言模型。语言模型的定义其实特别朴素给定一串词预测下一个词出现的概率。传统做法是用统计方法比如n-gram——只考虑前n-1个词来预测当前词。这种方式的问题也很明显当n稍微取大一点数据稀疏得没法看取小了又捕捉不到长距离依赖信息。比如“我在北京出生在这里度过了童年所以我非常喜欢____”这句话如果只看前面两三个词根本不知道该填什么只有把整句话读完才能推断出“北京”——这类长距离依赖正是统计模型最不擅长的。神经语言模型的思路是用神经网络去拟合这个概率分布核心优势在于向量表示。Word2Vec在2013年证明了词可以被映射到向量空间而且语义相近的词距离更近“国王-男人女人”约等于“女王”这个操作更是让整个圈子意识到原来神经网络学习到的表示里藏着语义规律。但Word2Vec只是静态词向量它能解决“词义”没法解决“上下文里的词义”。后来RNN、LSTM这类循环架构登场才在建模序列依赖上迈出实质一步。LSTM通过门控机制缓解了梯度消失问题理论上可以捕捉长距离信息但实际训练时人们发现它仍然很难记住很长的上下文而且因为它天然是串行计算——当前的隐状态依赖前一个隐状态——在GPU并行化上极其吃亏这为Transformer留下了机会。1.2 Attention Is All You Need为什么“并行注意力”是那个分水岭2017年Google发表《Attention Is All You Need》Transformer架构诞生。回头看它真正革命性的点不是“注意力机制”这个想法本身——attention在机器翻译里早就被用过了——而是它把RNN的串行结构完全去掉用self-attention做核心让每个token可以同时看到句子里的所有token再通过加权求和来决定自己应该“关注”谁。这个改动带来两个直接后果。第一训练可以彻底并行了GPU的算力第一次被这么高效地利用。RNN训练1万个token的序列要依次跑1万个时间步Transformer却可以在一次矩阵运算里处理整段序列这让模型的规模有了指数级增长的可能。第二自注意力天然给出了一条理解语义的路径矩阵里每一行的权重就是“在预测这个词时其他词各自贡献了多少”。虽然我们后来意识到这种“可解释性”并不像想象中那么直接但它确实奠定了大规模训练的物理基础。Transformer的另一大贡献是位置编码。自注意力本身是置换不变的——把输入顺序打乱输出结果在数学上是一样的——必须注入位置信息模型才知道词的先后顺序。最初的版本用正弦余弦函数做位置编码后面的改进把位置编码改成可学习的、相对位置编码RoPE、ALiBi等这直接关系到今天所有大模型的上下文窗口能力我会在第四章展开。1.3 Scaling Law暴力美学背后的科学依据Transformer出现后一个关键信念逐渐形成模型规模越大效果越好。2020年OpenAI发表《Scaling Laws for Neural Language Models》系统验证了这一点——模型的loss与参数量、数据量、算力的关系可以用简单的幂律拟合没有明显的“收益递减”拐点。这意味着只要你有足够的算力和数据把模型做大就是一条“确定性的路”。这个发现的重要性怎么强调都不为过。它让研究路线从“发明更好的算法”转向“把已知架构扩大并工程化”。你可以在后续的几乎所有模型里看到这个信念的影子GPT系列一路做大LLaMA系列在中型规模上发布后发现“尺寸不是唯一因素数据质量同样关键”再到MoE架构用稀疏激活的方式在同等算力下大幅扩展参数量。可以说整个大模型发展史就是“相信规模”与“给规模找到更好物理形式”两条线的交织。当然规模并不是万能的后来我们发现“喂太多重复数据”会导致模型退化数据质量甚至比规模更重要——但这是后话。2. 范式分野BERT“记笔记式学习”与GPT“猜谜式学习”2.1 BERT的预训练微调思路一度是绝对主流2018年10月Google发布BERT它的核心是双向Transformer编码器。所谓“双向”就是在预训练时用MASK机制让模型同时看到一句话左右的上下文然后去预测被mask掉的词。这个设计非常巧妙对理解类任务极其有效。BERT采用“预训练微调”范式在海量无标注语料上完成知识注入然后在具体下游任务情感分类、命名实体识别、阅读理解等时在模型顶部接一个任务头用少量标注数据微调。那个年代几乎所有NLP比赛都被BERT家族霸榜排行榜刷新速度以天为单位。学术圈的主流判断是“语言理解靠BERT、生成靠GPT”大家各干各的问题不大。直到今天如果你去查NLP经典教材或者竞赛基线依然能看到这套范式的影子。必须承认BERT确立了“先在无标注数据上预训练再迁移到下游任务”的核心方法论不管后来的模型做得多么复杂这套骨架没有变。2.2 GPT选择了一条当时很多人看不懂的路2018年6月OpenAI发布GPT-1它的架构选择了Transformer的decoder部分而不是encoder。decoder是单向的——每个token只能看到它左边的token看不到右边。这在当时的很多人眼里像个退化你明明可以像BERT那样双向建模为什么要退回去做单向OpenAI的理由很实际生成任务天然是单向的你写一个句子不可能先看完整句话再决定第一个词。单向的decoder架构与生成目标的因果性天然一致。GPT-1证明了用无标注语料预训练的decoder可以迁移到下游任务。GPT-2则更进一步直接用更大规模15亿参数在更大量级的数据上预训练结果出现了一个当时让人惊讶的现象零样本能力——不给任何样例模型就能在未见过的任务上直接生成合理结果。“我们注意到模型自然就学会了阅读理解和机器翻译之外的一些能力”这是OG风格的含蓄表达。GPT-2真正打开的口子是你不需要在下游任务上微调了只要在输入时给它“一段上下文一个任务描述”它就能完成。这就是后来被叫做“提示prompt”的东西。当时圈内把这个现象叫“NLP是few-shot的”很多人都觉得只是个巧合但OpenAI在这条路上越走越远。2.3 为什么decoder-only笑到了最后从今天的角度来看BERT路线在纯理解类的评测上依然有优势但大模型的主流范式几乎全被decoder-only占据。原因值得拆开看生成能力是通用能力的基石。对话、总结、代码、创作都需要生成。理解可以被当作生成的副产品如果你能正确预测下一个词说明你已经理解了文本。decoder-only在架构上更简洁。没有encoder和decoder之间的交叉注意力训练管道简单scale up更容易。当模型足够大、数据足够多时单向注意力在表达能力上的短板被大幅填补。注意力头可以学习各种位置模式实际效果并不比双向差多少。涌现能力更集中在decoder自回归模型上。这一点直到后来的研究才被系统观察到。这也是为什么今天我们看到的所有主流大模型——GPT系列、Claude、Gemini、Llama、Qwen、DeepSeek——全是decoder-only架构。偶尔有论文尝试做encoder-decoder混合但在实际竞技场上翻不起什么浪花。3. 能力涌现时刻GPT-3、InstructGPT与ChatGPT的连锁反应3.1 GPT-3把“提示”变成了用户和模型之间的新接口2020年GPT-3发布参数量跃升到1750亿是GPT-2的100多倍。这个量级带来的不只是性能提升还带来了此前小模型没有的质变in-context learning上下文中学习。意思是你不需要调整模型权重只需要在prompt里给几个示例模型就能“照葫芦画瓢”完成同类任务。这个现象在当时的学术语境里非常反直觉——传统的机器学习是训练时学规律、推理时用规律而GPT-3展示的是“推理时现场学”。虽然它偶尔会在示例规则之外胡编但能把few-shot做到这种水平足够让大量研究者连夜改方向。GPT-3也让很多非AI背景的开发者第一次感知到大模型的潜力产品经理丢几个示例就能完成文本分类后端同学用一段prompt就能写出正则表达式。也是从GPT-3开始“提示工程师”这个概念隐约出现。虽然今天这个词争议很大但当时的思路确实很直接既然模型已经足够聪明那能不能通过设计更好的输入来把它的潜力逼出来。3.2 InstructGPT与RLHF给模型装上“方向盘”GPT-3能生成让人惊叹的文本但生成的并不总是“人类想要的文本”——它可能语气怪异、输出冗长、甚至非常政治不正确。于是OpenAI开始做对齐工作。InstructGPT发表在2022年初它引入的RLHF基于人类反馈的强化学习流程现在已经成为所有大模型训练的标配。整个流程分三步用人工编写的“期望答案”对模型做有监督微调SFT。训练一个奖励模型让同一个提示词生成多份回答人工给这些回答排序让奖励模型学会预测人类偏好。用奖励模型的打分作为强化学习信号用PPO算法更新语言模型。这套流程的本质是把“人类偏好”以奖励信号的形式嵌入模型。模型优化目标从“最大化下一个词的概率”变成“最大化人类标注员的满意度”。这一步极其重要——它让大模型从“聪明的鹦鹉”变成“听人话的工具”。今天线上所有友好对话的背后几乎都离不开这条对齐流水线。3.3 ChatGPT的引爆与范式固化2022年11月30日ChatGPT上线。它实际上是GPT-3.5在RLHF之后的产品化形态但配合chat接口和自由对话的玩法直接把大模型从学术论文推送到了大众面前。我至今记得第一批使用时的震撼它不是“一本正经地胡说八道”而是“一本正经地知道自己在胡说八道什么”后者要可怕得多。ChatGPT带来的范式转变可以概括为从“我会生成文本”到“我能理解你的意图并完成指令”。背后的技术栈神奇地收敛成了几个固定模块预训练、指令微调、人工反馈对齐、推理。这套组合拳的威力很快被全行业确认从此大模型时代真正开启。后来的所谓“百模大战”绝大多数新模型的产品思路都没有跳出这个框架拼的是底座性能、数据质量、对齐效果和成本控制。4. 军备赛现状多模态、长上下文与推理模型的正面战场4.1 多模态大模型感知齐了模型才开始谈“理解世界”GPT-4发布时最让我兴奋的不是聊天质量而是它原生支持图像输入。虽然早期版本的视觉能力被质疑“并不比VQA专精模型强多少”但方向已经明确纯文本是单模态世界是模态混合的。多模态真正的技术基石是CLIP2021年。OpenAI用4亿对图文数据训练双塔模型把图片和文本映射到统一向量空间让“猫”这个词和猫的照片在向量空间中靠近。此后视觉语言模型VLM开始沿用这条路径图像编码器负责“看懂图”把视觉特征投射到语言模型的embedding空间然后语言模型负责推理。LLaVA、Qwen-VL、Gemini、GPT-4V都是这个框架的变体。近年新发布的模型更进一步不只是图文字还有音频、视频指令越来越复杂甚至能直接基于图像做对象级推理。对应用开发者来说多模态真正改变的是交互方式——从“文进文出”变成“图进文出”“图文进图出”应用场景多了一个数量级。有个容易忽略的细节多模态训练中对齐阶段的数据质量极其关键一张图配一句含糊描述会让模型学到漂移远不如“多人标注同一张图、交叉筛选出高质量描述”有效。这类数据成本高但属于绕不过去的基础功课。4.2 上下文窗口从“持久的短时记忆”到“吞下整本书”大概两年前“上下文长度”还是各家模型的营销参数如今已经成了硬指标。GPT-3的上下文只有2048 token读不了多半页书。到GPT-4的8K/32K、Claude的100K、Gemini的1M百万token、Qwen的百万级别上下文长度的增长速度远超摩尔定律。技术上的障碍主要在三处注意力计算随序列长度平方增长KV cache占用显存线性增长长距离位置信息容易丢失。业界给出的解药包括稀疏注意力比如只让每个token关注局部窗口和少数全局token、分组查询注意力GQA让多个头共享KV cache大幅降低显存、位置编码升级RoPE、ALiBi可以外推到训练长度之外的序列、以及把长文本切块后再检索的RAG方案。同样是“能处理长文”工程路径差别很大——有的是真的把百万token塞进注意力有的其实是把长文切块加检索再拼接。用户感知差异不大但单位成本差出好几倍。站在应用侧我一般建议先想清楚“真的需要完整上下文吗”很多时候RAG 适中上下文窗口是性价比最高的方案。4.3 推理模型从“会背答案”到“被鼓励去思考”2024年底到2025年行业从“堆参数”转向“堆推理”。OpenAI o1系列、DeepSeek R1走的是同一条路线不让模型直接给出答案而是在内部生成一段思维链仔细推理后再回答。更准确的描述是把“尝试多种思路、自我纠错、再组织答案”这个人类解题的过程用强化学习注入模型行为。具体技术上DeepSeek R1的训练流程很有代表性先用大规模RLGRPO算法不需要传统Critic模型让模型在数学和代码等可验证任务上自己演化出推理策略再用生成的高质量推理数据蒸馏给全模型最后再做一轮偏好对齐。这套流程下模型的推理能力并不完全来自人工示范更多来自RL环境中“尝试-失败-改进”的自动驯化。这对应用开发者的直接影响是模型的使用方式变了。以前你写prompt要让模型“直接给出答案”现在更适合让模型“先思考再回答”以前的few-shot示例可能是完美的标准答案现在反而喂几个“带思考过程的示例”会更有效。推理模型也让“测试时算力”test-time compute成为新的成本维度——生成的思维链越长计算开销越大需要产品设计上做出权衡。5. 开源生态与本地部署模型民主化的浪潮5.1 LLaMA点燃开源圈从“仅研究可用”到大厂跟进2023年3月Meta发布LLaMA虽然最初只开放给学术研究者但很快被盗版传播到民间。它的意义在于证明了在同等参数量下一个用公开数据认真训练的中型模型能逼近甚至超过GPT-3的开发量级。此后Alpaca用自生成指令数据微调LLaMA走通了“低成本复刻”路径Vicuna又用“共享的ChatGPT对话数据”微调出对话能力很强的小模型。开源社区的创新速度超过了所有人预期。中文社区紧随其后Qwen通义千问系列、ChatGLM、Baichuan等模型快速跟进。谷歌的Gemma、Meta的Llama 3、Mistral的Mixtral也陆续入场。开源和闭源差距最小的领域集中在中等规模7B~70B模型——这些模型可以被企业私有化部署是当下B端落地的主力。5.2 本地部署的硬门槛显存、量化和推理引擎“本地部署大模型”是近两年的高频词很多人以为下载个模型文件就能跑实际操作时才会撞上条件约束显存不够、推理速度慢、内存带宽受限。我建议把本地部署分成三档预期3B~8B量化模型适合日常文本任务普通笔记本16G内存可以通过CPU推理勉强运行速度在每秒几到十几token能接受。14B~32B量化模型需要24GB显存的显卡速度尚可综合能力明显提升。70B及以上通常需要多卡部署或64GB以上统一内存的M系列芯片成本陡增性价比开始下降。量化是本地部署绕不开的手段。主流是GGUF格式配合llama.cpp/Ollama它把模型权重的精度降低比如从FP16降到Q4_K_M以损失一点质量换来内存占用减半以上。加载一个7B模型只需要4GB左右内存。如果是70B模型同样量化处理后大约需要40GB一张A6000或M2 Ultra能跑。本地部署最友好的入口是Ollama一条命令就能拉模型并启动服务ollama run qwen2.5:7b它本身封装了llama.cpp和模型管理启动后OpenAI兼容的API端点默认开在11434端口后端代码只要把base_url改成http://localhost:11434/v1就能无缝切换。LM Studio则是图形化更好的选择适合想边调试边看日志的人。真正要在生产环境做私有化部署则要引入vLLM、SGLang这类高性能推理框架它们支持PagedAttention、连续批处理吞吐量能比朴素的本地推理高出数倍。5.3 微调的新常识从全参训练到LoRA与QLoRA很多人问“本地部署后怎么让模型更懂我的业务”答案是微调。全量微调是效果最稳但成本最高的方案需要几十上百张显卡。现在的通行做法是LoRA低秩适配思路非常优雅冻结原始模型权重不动只在Transformer的线性层旁边并行添加两个低秩矩阵秩r通常在8~64训练时只更新这两个小矩阵。这样可训练参数量只有原始模型的0.1%~1%绝大多数单卡可以完成。实战中我更推荐QLoRA它先把基座模型量化到4-bit再在量化后的模型上跑LoRA。这个方法让我在一块24GB的4090上成功微调过7B模型无明显质量损失。有几点经验值得注意微调数据质量永远比数量重要几百条高质量指令好过几万条模板复读。不要拿微调“喂知识”要拿微调“教行为”——知识应该靠RAG注入行为模式靠微调固定。LoRA的r设太大不一定好容易过拟合训练集设太小又学不到能力我一般从16起步根据验证集loss和抽样效果动态调整。6. 数据、评测与对齐大模型时代的隐形基建6.1 数据标注决定上限的“脏活累活”大模型研发和传统软件最大的不同它的能力上限由数据决定。指令微调需要高质量的指令-回答对RLHF阶段需要人类偏好排序多模态需要图文对齐标注“大模型数据标注样例”的热度充分说明实践界对真实标注样本的渴望。但数据标注不是“找一群标注员加班打标”那么简单。必须设计标注规范和质检流程指令的多样性怎么保证需要覆盖各种任务类型、语调、难度回答的评判标准是什么正确性、语气、格式、安全性都算排序任务要避免什么标注员之间的主观差异怎么处理领域数据如何清洗重复样本、噪声标签、隐私信息怎么剔除我在实践中看到最多的失败模式是“模型越训练反而越崩”——原因往往是数据里混杂了大量重复或低质量的指令模型学成了复读机。很多团队后来转向“合成数据”路线让强模型生成数据再让弱模型去学习。这条路在DeepSeek、Llama 3的训练报告中都验证过但同样需要严格清洗和过滤不能直接全盘使用。6.2 评测跑分别只盯着MMLU暴露的问题更多“大模型跑分网站”和相关榜单是社区关注的热点但评测这件事很容易被误用。MMLU一个涵盖57个学科的多选题数据集几乎是所有模型发布会必提的数字但它并不能代表真实能力。一个模型在MMLU上排前三不代表它在代码生成、长文总结、多轮对话上同样出色。更严重的是数据污染问题很多模型的训练数据直接混入了评测集样本导致跑分虚高。后来社区给出的应对方案是更新频次高的评测集每次发布会前后都换题、以及人工评估Chatbot Arena的盲选PK机制目前相对可信的评测方式还是“人规则高质量测试集”的混合模式。如果你是应用开发者最有价值的评测是自己建一份“业务真题集”——把你产品里最典型的50个prompt和期望行为写清楚每次模型版本迭代都跑一遍比任何公开榜单都可靠。6.3 对齐、幻觉与投毒安全是持久战对齐研究的核心问题是如何让模型的能力与人类的意图、价值观保持一致。尽管RLHF能解决大部分但它无法保证“所有用户都不被误导”——幻觉一本正经地胡说八道是生成式模型的底层属性只能缓解不能根除。各类安全测试里“大模型投毒测试”是比较新也比较隐蔽的方向攻击者在训练数据或指令数据里注入恶意样本让模型在特定触发词出现时输出危险内容或反向行为。这是供应链级别的安全风险防御手段包括数据清洗、异常检测、红队测试、以及对输入输出的双重过滤。对普通开发者我能给的最实际建议是——不要迷信某个模型“绝对安全”生成的内容要经过一层自己的关键字过滤、模型评判或人工复核特别是在面向公众的产品里。另一个值得留意的问题是“大模型最大的问题是什么”。答案不是技术上的而是信任我们无法确切知道模型为什么产生这个回答、它的知识边界在哪、它会不会在不经意间放大某种偏见。这类问题没有一次性解法只能靠工程上持续打补丁。如果让我给学习建议只提炼一条把每个技术名词放回到它解决的问题里去看。上下文长度解决的是“读得完吗”LoRA解决的是“训练得起吗”RLHF解决的是“愿意听话吗”MoE解决的是“算得动吗”。大模型发展史本质上就是一系列“问题-方案-新问题”的推进链理解了这条链再去看新发布的论文和产品基本不会迷路。我自己的学习笔记最初只是一页纸现在越写越厚但主干始终是这条主线。