从n-gram到ChatGPT:大模型发展脉络全解析 大模型的发展史本质上是一段关于“如何让机器理解并生成人类语言”的漫长探索。最近我在整理学习笔记把大模型LLM这条线从头到尾又过了一遍从n-gram到Transformer再到GPT、ChatGPT、多模态和Agent越梳理越觉得这条路径不是偶然每一步都是此前的限制逼出来的。这篇笔记不是为了考古而是想帮你理解今天大模型能做这些事到底是怎么一步步走到这里的。无论是开始学习大模型、做应用开发还是想在团队里讲清楚技术背景这份脉络应该都能用得上。1. 从统计语言模型到神经网络大模型的序幕1.1 n-gram语言模型旧时代的“概率直觉”语言模型的本质是给定前面一串词预测下一个最可能出现的词是什么。自动补全、分词、语音识别都要靠这个能力。早期最典型的方法是n-gram它的核心假设非常朴素当前词只跟它前面n-1个词有关。比如bigram只看前一个词trigram看前两个词本质上是在做马尔可夫假设。这套方法在语料规模不大、语言足够规范的时候是能用的机器翻译的候选排序、拼写纠错都靠它撑过了一段时期。但n-gram的瓶颈特别明显。第一是稀疏性问题语料里一定会出现大量“上下文相同但下一个词没见过”的组合概率直接变成0只能靠Katz回退、Good-Turing这类平滑技巧硬凑本质是把低阶统计量拿来补高阶缺失。第二是上下文太短人的语言是递归且存在长距离依赖的比如“小张昨天在会议上说要辞职大家都不相信”里的“不相信”指代的是“辞职”这件事光靠前两三个词根本推不出来。n-gram没有真正的语义概念只会把句子切成一连串局部片段的频率统计。我在笔记里给n-gram画过一个很直白的类比它像一个只用路边最近三块路标判断方向的人一旦走过长隧道就会完全失去定位。这个困境困扰了自然语言处理很久。直到有人开始换一个问题能不能让机器自己学到“含义”而不只是词序概率这就把方向指向了分布式表示和神经网络。1.2 词向量与神经概率语言模型语义终于有了形状2003年Bengio等人提出了第一个有里程碑意义的神经概率语言模型NNLM。它的做法很清晰给每个词学一个低维向量这个向量连同前面几个词的向量一起输入神经网络网络再输出下一个词的概率分布。这里最关键的不是神经网络本身而是“词向量”可以同步学习语义相近的词在向量空间里会靠在一起模型也因此能泛化到没见过的新组合。2013年Mikolov等人的word2vec把这件事推向了工程化。通过CBOW和Skip-gram两个结构加上负采样、层次Softmax这些训练技巧word2vec可以在上亿词的语料上训练词向量。经典的例子是“king - man woman ≈ queen”说明向量里已经包含某种关系结构。虽然word2vec只是静态词向量工具没有上下文建模能力但学术界第一次直观感受到“语义可以被编码成向量”是能落地的。从NNLM到word2vec这条线的价值不只是性能提升。它确立了分布式表示的基本思路每个词不再是一个独立的ID而是一组可学习的连续特征不同词之间可以共享统计信息。也正是这个思路为后面动辄千亿参数的大模型LLM提供了理论底座。所以在我的学习笔记里这一节被标成“大模型的序幕”没有词向量这一步后面根本无从谈起。2. Transformer、预训练与“大模型”的真正起点2.1 Attention Is All You Need为什么说它改变了比赛规则2017年Google发表《Attention Is All You Need》提出Transformer。这篇论文的标题就是立场原有的循环和卷积结构都可以不要光靠注意力机制就能写好序列建模。Transformer的核心组件是自注意力Self-Attention。每个token通过三个可学习矩阵映射出Query、Key、Value然后用Query和Key计算相似度作为权重对Value加权求和。直觉上它让序列中任意两个token都能直接交互如果模型发现“它”和“会议”相关这两个位置之间就会形成一条高权重的注意路径。Transformer能成为大模型的起点有三个关键优势。第一是并行化。RNN必须按时间步一步步计算GPU并行度拉不满想训练超大规模模型几乎不受时间约束Transformer把整段序列当成矩阵运算训练速度有数量级提升。第二是长距离依赖。RNN的信息要沿着时间步一步一步传递梯度容易消失自注意力让任意两个token之间只有一次运算远距离信息可以直接被捕捉。第三是位置编码。因为Transformer本身没有顺序概念需要显式给每个token注入位置信息于是有了绝对位置编码、相对位置编码后来发展成RoPE、ALiBi这类改进方案。这里我在笔记里特意记了一句话Transformer解决的不是某个具体任务而是“大规模并行计算长序列”的能力瓶颈。它让“预训练模型动辄千亿参数”这件事变成现实而不是靠简单堆网络层数就能做到的。2.2 预训练微调BERT、GPT与T5的三种选择Transformer提出之后2018到2019年进入预训练语言模型爆发期。核心范式是先用海量无标注文本预训练让模型自动学会语言规律再根据具体任务微调。BERT来自Google用的是Transformer的Encoder层预训练任务包括掩码语言模型MLM随机遮住一些词模型通过上下文预测被遮住的词和下一句话预测NSP。这种双向建模对“理解类”任务非常友好像文本分类、实体识别、阅读理解等。OpenAI的GPT走的是另一个方向用Transformer的Decoder层做自回归语言建模训练目标就是纯粹预测下一个词。这样做的好处是模型天生适合生成坏处是早期版本在句子级理解任务上略吃亏。T5则把所有NLP任务统一成“文本到文本”的输入输出格式用Span Corruption做预训练显得更通用。这三种结构在今天看来已经分出高下复杂理解任务BERT派生模型仍然有位置通用生成任务基本被decoder-only路线垄断。给没接触过的人一个简单对比表这是我笔记里的模型结构预训练任务强项主要短板BERTEncoderMLM NSP双向理解能力强生成能力弱GPTDecoderAutoregressive LM自回归生成早期理解类任务略弱T5Encoder-DecoderSpan Corruption任务统一灵活参数规模偏大这张表能帮你快速定位你手上的NLP问题是理解型还是生成型会直接影响你更倾向哪条路线。2.3 为什么最终是decoder-only成为主流我当年学到这一步时很困惑为什么后来几乎所有大模型都选了GPT那种decoder-only结构而不是BERT或者T5整理笔记时我把原因归纳成三点。第一是生成任务统一。现在大模型最核心的使用方式是对话和生成自回归结构天然适合从左到右逐个生成token训练目标和推理目标一致不容易出现“训练时很厉害、推理时不对劲”的割裂问题。第二是扩展性好。decoder-only只有一组Transformer层去掉encoder以后整体结构简单训练并行和推理缓存都更统一大规模分布式训练时便利性很强。第三是涌现能力。后来的Scaling Law证明只要数据和参数堆到一定规模decoder-only模型会在指令遵循、思维链等任务上出现小模型没有的能力这种非线性跃迁让单一的生成式路线回报更清晰。当然这也不意味着encoder路线没有用。检索模型、句子嵌入、一些代码模型仍然会用到编码器或encoder-decoder结构只是就“大模型”这个意义上的通用底座而言decoder-only成了默认答案。这一段我标了重点选择结构本质上是选择能力形态你能接受哪种优化复杂度决定了你最后能走到哪一步。3. 生成式大模型崛起从GPT到ChatGPT再到多模态3.1 Scaling Law规模带来的“涌现”GPT-1在2018年首次验证了大规模预训练在自然语言任务上的可行性GPT-2在2019年把参数推到15亿展示出“即使不微调也能在不少任务上表现不错”。到2020年GPT-3直接把规模拉到1750亿参数效果出现一次明显的跃迁只要在Prompt里给几个例子模型就能照猫画虎完成新任务业内叫Few-Shot Learning。这个冲击在于原来模型能力可以靠“堆量”直接换出来。2020年前后OpenAI与Google的研究者陆续总结出神经语言模型的Scaling Law模型损失大致随参数量、数据量、计算量呈幂律下降。换句话说在一定范围内参数翻倍、数据翻倍、算力翻倍效果是稳定变好的而不是很快饱和。这条经验对产业的影响非常深远——它意味着训练大模型不再是“富贵险中求”而是一条可以被预算规划、被预期管理的工程道路。但这里必须强调一句Scaling Law不是万能的它把“能力增长”和“数据、参数、算力”绑定起来数据质量、模型结构、训练策略同样重要。我学习里看过的失败案例往往不是模型太小而是数据太脏或者训练过程不稳定。规模只是放大器不是净化器。3.2 RLHF与指令微调把模型“调教”成助手GPT-3虽然强大但直接用的时候问题很多它会顺着用户的话瞎编、生成冗长无意义的回答、容易被带偏。2022年OpenAI发表InstructGPT论文提出一条对齐路线先收集人工写好的问答对做有监督微调SFT再让标注员对多个模型回答排序打分训练一个奖励模型Reward Model最后用强化学习算法让语言模型学会“讨好”奖励模型。这一步在技术上并不复杂效果却极其惊人人工评估无论是帮助性还是真实性InstructGPT都远胜原版GPT-3而且参数还更少。ChatGPT在2022年11月上线本质上就是把InstructGPT这套流程产品化再套上一层聊天界面。它让大模型从“一个能写代码和文章的API”变成了“每个人都能对话的智能助手”。我在笔记里给RLHF写的注释是它满足的不再是语言模型的概率需求而是人类使用者的意图需求。模型不再只回答“最可能的词”而是回答“最合适且最符合人类期待的词”。这条路线后来引发的争议也值得记一笔奖励模型是把人类偏好压缩成一个标量容易出现过度讨好、说套话的倾向所以后续研究开始引入Constitutional AI、DPO这类替代或补充方案。对齐问题到今天仍然是活跃且难啃的研究方向。3.3 开源模型与多模态产业的分水岭2023年开始开源社区发生变化。Meta放出LLaMA紧接着Falcon、Mistral、Alpaca、Qwen、DeepSeek等一批高质量开源模型密集出现把“能做对话、参数够大”的底价拉到普通人和中型团队也能触及的位置。开源模型配合LoRA微调、本地推理工具让“用自己数据训练专属模型”从口号变成日常操作。这对企业做私有化部署特别重要数据不出域模型在本地跑权限和安全边界相对可控。与此同时大模型从纯文本走向多模态。CLIP证明了图文对齐可以用对比学习完成LLaVA展示了视觉编码器加语言模型这种简单组合也能产生很强的多模态理解能力GPT-4V、Gemini等则把图片、视频、音频统一进一个模型。多模态带来的不只是“能看图”而是模型对世界的感知更完整给一张流程图直接生成代码给一张截图直接分析页面问题这些都变成实际可用的场景。我自己的判断是2023年之后大模型的重点不再是结构创新而是三件事同时推进扩大上下文、增强工具调用能力、提升对齐可靠性。模型之间的差距越来越体现在数据质量和工程落地上特别是企业场景怎么把模型接进现有流程才是真正的难点。4. 大模型能力扩展上下文、外挂知识与高效微调4.1 长上下文窗口越大不代表什么都能记住早期Transformer上下文长度只有512个tokenGPT-3是2048后来很多模型做到8K、32K再后来的部分模型已经支持128K甚至百万级token。支撑这个变化的不仅是显存变大更关键的是注意力机制改进和长文本数据构造绝对位置编码逐步被RoPE这类相对位置编码取代注意力计算也出现了滑动窗口、稀疏注意力、线性复杂度等变体。但长上下文有一个非常反直觉的现象模型“看到过”不等于“记得住”。业界用“大海捞针”测试发现即使模型支持128K上下文把一句事实埋在文档中段模型照样可能答错。我自己的实践也类似把几十万字合同直接扔给模型它更容易在开头和结尾找线索中间部分经常被忽略。背后是注意力分布不均衡和训练数据里长文本比例不足共同造成的。所以工程上更靠谱的思路不是无限拉长窗口而是把有效信息提前筛选。这也是RAG能火起来的原因不要给模型全部资料只喂它最相关的几段效果往往比“全塞进去”更稳定成本也低得多。长上下文适合做全局理解检索增强更适合做精准问答。4.2 RAG用外挂知识弥补参数记忆检索增强生成RAG的核心流程是把文档切块、用向量化模型转成向量用户提问时先在向量库里做相似度检索把Top-K块拼进Prompt再交给大模型生成回答。它解决的问题非常实在大模型训练数据有截止日期不知道企业内部知识纯靠模型参数记忆知识又容易过时、混淆。RAG相当于给模型外接一个可随时更新的“知识U盘”。实现一个最小可用RAG并不复杂Embedding模型选一个向量数据库用Chroma、Milvus或者Elasticsearch都行最后把检索结果拼进提示词就行。但真正落地时坑很多。一个是切块策略固定512字符切块看似简洁却常常把语义切碎最好按段落、标题和固定窗口混合判断。另一个是召回质量检索不到正确答案时再强的大模型也只能根据噪声瞎编。所以要给检索结果设相关性阈值低质量命中就不触发增强。RAG和大模型微调的边界我也总结过如果知识相对静态、需要随时更新、还要来源可追溯优先选RAG如果希望模型在特定风格或固定任务格式上有稳定表现微调更合适。很多团队一上来就微调结果知识库一更新又得重训这是最典型的跑偏。4.3 LoRA、量化与推理优化跑得起、用得起训练一个几十B参数的大模型需要几十张显卡普通团队很难承受。参数高效微调PEFT方案就是为了解决这个问题其中最有代表性的是LoRA。它的思路是冻结原模型权重只在注意力层旁边加一个低秩矩阵训练时只更新这个增量。比如原始权重可能是4096维的大矩阵你只训练64或128维的增量训练参数量通常能降到原来的1%以下。QLoRA再进一步把基座模型用4bit量化个人显卡也能微调7B、13B甚至更大的模型。推理侧优化同样重要。KV Cache能缓存已经算过的Key和Value向量避免每个新token都重算整段历史这是推理引擎都在做的事。量化INT8、INT4可以把模型显存需求砍半甚至更多虽然精度略降但配合AWQ、GPTQ这类方法损失很小。而像投机采样、动态批量调度这些策略主要是提升吞吐、降低单次生成成本。如果只是做Demo随便用个推理框架拉起来就能跑要做生产服务建议直接用vLLM或SGLang这类专门优化过的框架并开启连续批处理。我踩过的一个典型坑直接拿原始FP16模型部署到只有8G显存的卡上显存反复爆掉换成4bit量化后跑起来了但生成速度依旧拉垮。琢磨了很久才发现问题不在模型本身而是没有开启KV Cache复用和动态批处理。把这两个开关打开后吞吐提升非常明显。所以“跑起来”和“跑得好”是两件事后者更考验工程经验。5. 大模型落地从开发到部署避坑实录5.1 智能体与函数调用让模型真正“干活”对话只是大模型的显性形态真正让它产生价值的是一个转变从“回答问题”到“执行任务”。这个转变靠的是Function Calling机制和Agent框架。所谓Function Calling就是模型在生成过程中输出结构化JSON而不是普通文字外部系统解析JSON后调用工具API再把工具结果返回给模型形成“观察-行动-再观察”的循环。常见场景包括查询数据库、操作工单系统、调用代码解释器、读取网页内容。智能体Agent则把这个循环放大模型作为规划器拆解任务、分配工具、检查结果。比如用户让它“整理本周所有项目进度并给负责人发邮件”Agent会先调用项目管理系统拿数据再调用邮件工具最后逐字确认。开发Agent时要注意两个问题第一是上下文污染每一轮的中间输出都会塞进上下文次数一多模型思路容易被带偏第二是工具返回值不可信模型会把API返回的错误当成目标结果所以工具层要做好解析和容错。说实话现阶段Agent还没到完全“自治”的水平。我的经验是把它设计成“半自动”模型给出计划关键步骤由人来确认成功率比完全放任高很多。在生产环境里大模型更多是“增强现有系统”而不是“替代业务系统”这个边界想清楚项目才不容易翻车。5.2 数据安全与模型对齐别只为了效果忽略风险大模型上线的风险大致分两类。一类是模型自身不可控比如幻觉、偏见、错误推理另一类是外部攻击比如提示词注入恶意用户把指令藏在文本中诱导模型执行超出授权的操作。训练数据投毒也是一个长期存在的隐患如果训练集里混入精心构造的后门样例模型可能在特定触发词下产生异常输出。这些风险在通用公网API上尤其要认真对待。企业部署大模型时我建议做三层防线。第一层是输入侧过滤对用户输入做敏感内容识别和提示词注入检测长文本要分段审查。第二层是模型侧对齐给模型设计系统提示词和拒绝策略对高风险指令明确拒绝而不是委婉绕开。第三层是输出侧校验凡是模型要写入业务系统的内容都要走规则校验或二次确认。多模态模型还要额外注意图片里的文字攻击、音视频里的隐藏指令目前防护手段还没有特别成熟。这些不是劝退而是给大模型应用加一副“安全带”。我见过不少团队把全部精力放在“模型答得准不准”上上线后才发现提示词注入能让机器人执行不该执行的指令。效果指标当然重要但没有安全边界的模型效果越好风险越大。5.3 本地部署与选型建议我踩过的坑如果你想把开源模型私有化部署第一件事不是下载模型而是明确你要它干什么。纯对话助手选7B左右的中文优化模型就够企业知识库问答至少14B起步复杂代码生成和Agent任务建议直接考虑70B或更大。模型再强显存不够都一样白搭。我个人的参考7B模型经过4bit量化大约需要4到6GB显存14B需要10GB上下70B量化后也需要40GB以上这还没算KV Cache的空间。提前评估好GPU预算能省掉后面一大半麻烦。部署工具我比较常用的组合是Ollama配合LangChain或FastGPT。Ollama把权重管理、量化、启动一条命令解决适合本地试验真要上生产建议用vLLM这类推理服务吞吐更稳。还要记住一件事模型“下载即责任”。开源模型的许可协议各有不同商用前一定要检查License有的要求保留版权声明有的不允许商用忽略这个容易埋雷。最后再说一个部署中容易被忽略的点私有模型的文件命名和版本管理。我见过有人把三个不同底座的模型全叫“final_final”两周后再加载时完全分不清哪个是哪个微调数据也绑错了模型。建议从一开始就用清晰规则底座名版本量化格式微调时间比如“qwen2.5-14b-q4-202505”。这看起来是小事但在团队协作里能避开大量踩踏。把这份大模型发展史的学习笔记整理完我最强烈的感受是这条路的每一步都是上一代技术瓶颈逼出来的。n-gram处理不了长依赖于是有了词向量和神经网络RNN训练太慢于是有了Transformer预训练模型不会对话于是有了RLHF闭源模型成本太高于是有了开源生态和高效微调。我建议你也按这个顺序动手试一遍不用每篇论文都精读挑几个代表作跑一跑、再本地部署一个开源模型很多概念自然就通了。技术史的意义不在于背时间线而在于理解每一次选择背后的约束和动机。把这条脉络理顺之后你今天看到的所谓热点大概率都能从历史里找到影子。希望这篇笔记能帮你少走一些弯路。