第一章 大模型的本质1.1 GPT 是怎么回答问题的OpenAI的创始人之一Andrej Karpathy说过一句很简单也很经典的一句话“大模型就是两个文件。”也就是说不管你的模型有多大训练了多久能力有多强其核心就连个文件一个参数文件一个推理文件。我们拿DeepSeek R1来举例其总参数量671B参数文件达到了715 GB而其核心的推理代码只有800行仅几百KB。知道了这一点也就触碰到了LLM的本质GPT 到底是怎么一个字一个字生成回答的1.1.1GPT 是铺铁轨的史努比你可能看过那个动画史努比在火车前面一边跑一边铺铁轨火车才能往前走。GPT 生成文字的方式跟这个几乎一模一样已经写好的文字 已经铺好的铁轨下一个字 下一段铁轨GPT 史努比火车 正在生成的句子GPT 不是一次性把整个答案想好再输出而是一个字一个字地往外蹦。每生成一个字它都要重新思考基于目前已经生成的所有内容下一个字应该是什么这就是为什么你在用 ChatGPT 的时候能看到它的回答是一个字一个字出现的而不是一整段话突然蹦出来。核心真相GPT没有整体思想它不是在做理解而是在做概率预测1.1.2 为什么是预测下一个字你可能会问为什么要这么麻烦为什么不能直接输出完整的句子原因很简单语言太复杂了。一个问题可能有无数种合理的回答。如果让模型一次性输出完整答案它需要同时考虑所有可能的组合——这个计算量是天文数字。但如果我们把问题简化成给定前面的内容下一个字是什么问题就变得可控了。每一步只需要从几万个候选字里选一个最合适的。这种一步一步来的生成方式有个专业术语叫Autoregressive自回归——模型不断地把自己刚生成的内容作为输入来预测下一个输出。1.2 原因在于文字频率中现在我们知道 GPT 是一个字一个字预测的。但它怎么知道下一个字应该是什么呢1.2.1 一个有趣的实验让我们做一个思想实验。假设你看到这样一段开头“北京天安门广…”你觉得下一个字是什么大多数人会说场。因为北京天安门广场是一个非常常见的词组。再往下“北京天安门广场…”下一个字是什么“位”。这不是魔法这是统计规律。如果你统计整个中文互联网上所有的文字你会发现在北京天安门广后面场出现的概率最高在北京天安门广场后面位出现的概率最高在北京天安门广场位后面于或在出现的概率很高GPT 本质上就是在做这件事基于大量文本数据学习在什么上下文之后什么字出现的概率最高。1.2.2 从统计到神经网络当然GPT 不是简单地做词频统计。如果只是统计词频你需要存储所有可能的上下文组合——这是不可能的。GPT 的聪明之处在于它用一个神经网络来压缩这些统计规律。比如输入一段文字比如我爱神经网络一个有 700 亿参数的超大网络输出下一个字的概率分布模型会告诉你你的概率是 92%他的概率是 4%我的概率是 0.2%…然后我们选概率最高的那个字作为输出。这里的参数是什么你可以把它理解成神经网络的记忆。700 亿个参数就是 700 亿个数字这些数字编码了模型从训练数据中学到的所有语言规律。1.3 自回归生成一步一步来现在让我们看一个完整的例子理解 GPT 是怎么一步一步生成答案的。1.3.1 简单版流程假设用户输入“北京天安”GPT 的工作流程是这样的输入北京天安 → 输出门输入北京天安门 → 输出广输入北京天安门广 → 输出场输入北京天安门广场 → 输出位输入北京天安门广场位 → 输出于…一直到输出完整的句子每一步模型都把之前所有的内容用户输入 已生成的内容作为输入来预测下一个字。这个过程会一直持续直到模型输出一个特殊的结束符号或者达到最大长度限制最终“北京天安变成了北京天安门广场位于北京市中心”。1.3.2 为什么这么慢看到这里你可能理解了为什么 GPT 的回答有时候会比较慢——因为它真的是一个字一个字生成的。生成 100 个字的回答模型需要运行 100 次前向传播。每次传播都要处理之前所有的内容所以越到后面计算量越大。后面我们会讲KV Cache这个优化技术——它的作用就是避免重复计算之前已经处理过的内容。1.4 训练大模型需要什么了解了 GPT 的工作原理你可能会好奇训练这样一个模型需要什么答案是海量数据 海量算力 海量资金。1.4.1 数据规模以 DeepSeek-67B 为例训练数据约2 万亿 tokens多语言文本数据数据来源互联网网页、书籍、论文、代码、百科、论坛等2 万亿 tokens 是什么概念大约相当于数千亿个中文字或上万亿个英文单词。这些数据经过清洗、去重、过滤才能用于训练。数据质量直接决定了模型的质量——garbage in, garbage out。1.4.2 算力需求以训练DeepSeek-67B这种 60B 参数规模的基座模型为例GPU 集群规模数千张 NVIDIA A100/H100 级别显卡训练时长数周量级总计算量达到10²¹ FLOPS千万亿亿次浮点运算级别数千张 A100/H100 是什么概念单张 A100 价格约 1–2 万美元仅 GPU 硬件成本就可达数千万美元。1.4.3 资金成本综合计算训练一个67B 参数级别的大模型如 DeepSeek-67B电费与机房成本几十万美元GPU 租用 / 折旧成本约数百万美元算法、工程、数据团队人力成本另行计算所以行业内常说 “训练一个百亿 / 千亿参数大模型要几百万美元”是真实情况。如果是参数量更大、训练数据更多的DeepSeek 超大版本或对标 GPT-4 级别的模型训练总成本会进一步攀升至数千万甚至上亿美元。1.4.4 MoE更大的模型那么问题来了如果想要比 67B 更大的模型怎么办DeepSeek 官方就给出了方案MoEMixture of Experts混合专家架构典型代表就是DeepSeekMoE系列。基本思路不训练一个极端巨大的密集模型而是训练多个 “专家” 子网络每个专家专注处理不同类型内容如代码、数学、自然语言、翻译等。推理时只激活与当前输入相关的少数专家而非整个模型。这样可以做到总参数量轻松突破万亿推理速度和计算开销却接近小得多的密集模型DeepSeekMoE、GPT-4、Gemini 等超大规模模型普遍采用了这种 MoE 架构思路。1.5 ChatGPT 长什么样聊了这么多技术细节让我们回到用户视角。1.5.1 用户界面ChatGPT 的界面对于普通用户来说它就是一个聊天框你输入问题它输出回答支持多轮对话可以理解上下文看起来很简单对吧1.5.2 表面 vs 本质但现在你知道了在这个简洁的界面背后有一个几千亿参数的神经网络它在一个字一个字地生成回答每个字都是基于概率分布选出来的整个模型是用几百万美元、几千张 GPU 训练出来的理解这个差距是理解 AI 的第一步。1.6 核心观点大模型就是两个文件终于来到这一章最重要的部分了。“大模型实际上就是两个文件。”什么意思1.6.1 两个文件以DeepSeek-67B / DeepSeek-671B为例文件一parameters参数文件大小DeepSeek-67B 约 130GB140GB如果是 MoE 架构的 DeepSeek-671B整体参数文件会达到 TB 级别内容几百亿甚至几千亿个浮点数作用存储模型学到的所有 “知识”、语言规律、逻辑、代码能力文件二model.py推理代码大小一千行左右 Python 代码内容如何加载参数、如何做前向计算、如何生成文本作用让这堆参数 “动起来”实现对话、续写、推理就这两个东西。没有神秘的人工智能引擎没有复杂的思维系统。大模型本质上就是一堆数字参数一段程序告诉计算机怎么用这些数字1.6.2 项目复现DeepSeek在github上开源了项目代码其代码量只有1200行python如果除去其辅助代码核心推理代码只有500行左右。https://github.com/deepseek-ai/DeepSeek-LLM如果你有参数文件你可以用 500 行代码让它说话。当然这 500 行代码浓缩了 Transformer 架构的精髓Attention 机制、位置编码、LayerNorm、前馈网络… 后面的章节我们会逐一拆解。但从宏观上看大模型真的就是这么简单参数 代码。1.6.3 这个认知为什么重要理解大模型就是两个文件可以帮助你祛魅AI 不是魔法是数学和工程理解部署部署大模型就是把参数文件加载到 GPU 上然后运行推理代码理解量化所谓量化就是把 上百GB 的参数文件压缩成 几十GB 甚至更小理解微调所谓微调就是在原有参数基础上修改一小部分参数后面这些概念我们都会详细讲。但核心思想不变都是在操作那两个文件。1.7 本章总结这一章我们回答了一个核心问题大模型的本质是什么1.7.1 关键概念回顾概念解释自回归生成GPT 一个字一个字地生成答案每次基于之前的内容预测下一个字下一个字预测模型的核心任务给定上下文预测下一个字的概率分布参数神经网络的记忆编码了从训练数据中学到的语言规律两个文件大模型 参数文件 推理代码1.7.2 核心认知大模型不是魔法它就是两个文件一个存参数一个跑推理。理解这一点是理解后续所有内容的基础。好了这一章就到这里下一章我们将详细拆解transformer架构的各个组件拜拜