
上篇https://www.cnblogs.com/webor2006/p/21365563学了Vibe-Spec-Coding说到底是AI能力的外在表现。那底层的大模型到底是个啥为啥它能听懂人话、还能写出代码这块我也刚学试着用咱们写代码的思维来理解一下。不就是个函数嘛先说我以前的认知模型嘛就是喂很多数据训练出来的东西具体是啥说不上来。后来发现用程序员的视角去看它就是个函数。int add(int a, int b) { return a b; }输入1和2输出3。ChatGPT也一样你输入一段文字它算一通输出一段文字。回答 ChatGPT(问题)说白了就是一个输入到输出的映射跟y f(x)没本质区别。但区别在规模。add函数参数就俩ChatGPT呢1750亿个(GPT-3的数据后面版本不公布了)。1750亿什么概念一个人每秒数一个数数5000多年。用A4纸打出来堆得比珠穆朗玛峰还高20倍。这还只是GPT-3(2020年的数据)现在的模型更大只是OpenAI从GPT-4开始不公布了。关于这个数字的说明1750亿是GPT-3在2020年公开的参数量。为什么不用最新模型的数据因为OpenAI从GPT-4开始就不再公布参数量这些技术细节了GPT-3是最后一个公开了完整技术参数(多少层网络、多大嵌入维度等)的版本。后续GPT-3.5、GPT-4、GPT-5参数量都未公开但据估计只会更大。不过所有GPT模型的核心工作原理是一样的——不管是1750亿还是万亿级别机制不变。所以用这个确切的数字来讲反而更直观。说实话第一次看到这个数字挺懵的。一个函数有1750亿个参数这跟咱们平时写的代码完全不在一个量级上。参数里存的不是答案这么多参数存的啥我以前理解是把海量问答背下来了。你问你好吗它查到我很好。不是的。存的是规律不是答案。比如说你学英语不会把每句话背下来吧你学的是语法——第三人称单数动词加s。掌握了这个He plays、She runs不管碰到啥你都能套。模型的参数也是干这个的。只不过它悟出来的规律比语法复杂得多打这个字打人、打车、打牌意思完全不一样——参数得捕捉这种差异老张跟老李说他的方案没过——他的指谁老张还是老李人能靠上下文推断参数也得学会这个外面下雨了衣服没收——谁都能猜到后半句的言外之意是赶紧收衣服参数得存储这种生活常识说白了每一个语言细节——近义词的微妙差异、成语背后的文化典故、不同语气的情绪色彩——背后都需要参数来承载。有人估算过人类语言里大概有几十万词汇、几百万常见搭配、几千万事实性知识。1750亿参数看着多从覆盖语言复杂度来说可能还真不算多。这也是为啥越大的模型通常越聪明——参数多了能捕捉的规律就多了。为啥不直接解方程既然是函数1750亿个参数列1750亿个方程解出来不就行了咱们中学不都学过消元法嘛。不行。两个原因。第一这方程不是线性的。先插一句什么是线性与非线性线性就是输入和输出成正比。比如买苹果1斤5块2斤10块3斤15块——画出来是一条直线很好算。非线性就是有转折。比如学习时间跟考试成绩从0小时学到1小时分数涨很多但从10小时学到11小时可能几乎不涨了。再比如吃药1粒有效2粒可能就中毒——不是简单的翻倍关系。画出来是弯的。那ChatGPT为什么必须是非线性的因为语言规律全是拐弯的——好了在考试考好了是正面意思在这下好了吧是埋怨在好了伤疤忘了疼又是一种用法。同一个词换个语境意思完全不同这种关系不能用直线表达得有拐弯。一个有拐弯的、几十层嵌套的系统没有现成公式能直接算出答案。第二就算硬算n个未知数的计算量是 O(n³) 级别。1750亿的三次方——也就是 (1.75×10¹¹)³全世界计算机一起跑算到宇宙结束也算不完。解不出来就试那怎么办试。跟学骑自行车一样。没人给你一个保持平衡公式你就是上车→歪了→往反方向调→又歪了→再调。摔够了身体自然就会了。训练也一样。下面我用一个具体例子带你跟一遍完整的训练循环。第一步随机初始化训练刚开始1750亿个参数全是随机小数(大概在 -0.1 到 0.1 之间)。这时候的模型什么都不懂跟婴儿一样。你问它你好吗它可能输出#$%^*哈哈哈哈的的的——完全胡言乱语。第二步喂数据让它预测给它看一句话今天天气。模型的任务是预测下一个词。因为参数全是随机的它算出来的结果也完全是乱的。它会给出每个词的可能性(也就是概率)电脑 概率8% 苹果 概率12% ← 它觉得这个最可能 真好 概率3% ← 其实这个才是合理的 紫色 概率7%注意模型输出的不是一个词而是每个词的概率。概率越高它越倾向于选那个词。但刚开始参数是乱的所以合理的词(真好)概率反而最低。模型选了概率最高的苹果——完全不搭边。第三步算 Loss —— 错得有多离谱告诉它正确答案是真好。模型一对比我猜苹果答案是真好差的有点远啊。这个差距用一个数字表示就是Loss(损失)。Loss 越大说明错得越离谱训练的目标就是把 Loss 压到尽可能小。这个打分的思想不只用在训练模型上现在训练 AI 智能体也是这个思路——让智能体 B 给智能体 A 打分设定一个分数门槛比如 90 分A 不断调整直到达标。第四步调参数模型开始分析是哪些参数导致我选了苹果而不是真好每个参数该负多少责任然后微调。比如某个参数从 -0.0567 调到 -0.0568变了 0.0001——非常小的一步。方向是对的让下次遇到类似句子时真好的概率高一点、苹果的概率低一点。第五步重复几千亿次换下一句话再来一遍。这个过程走起来是这样的第1句话 → 预测错了 → 调参数 第2句话 → 还是错了 → 再调 第3句话 → 错得少了一点 → 继续调 ... 第1000句话 → 准确率从 0% 提升到 5% ... 第100万句话 → 准确率 30% ... 第10亿句话 → 准确率 60% ... 第3000亿个词 → 准确率稳定在 75% 左右每次调整都极其微小——可能就是把某个参数从 0.5012 改成 0.5013——但几千亿次累积下来量变引发质变。1750亿个参数就慢慢地从随机的噪音变成了有意义的知识。训练背后的机制预测错了1750亿个参数到底调谁往哪个方向调调多少这块有三个核心机制我用三个生活场景来讲看完就懂。场景一菜咸了谁的锅——反向传播你炒了一盘菜尝了一口咸了。你开始往回倒推是盐放多了还是酱油本身就咸还是火太大把汤汁收干了、盐分浓缩了每个原因的责任不一样。比如你只放了半勺盐但倒了半瓶酱油——那酱油的责任就比盐大。反向传播干的就是这事。模型预测错了从错误往回推给1750亿个参数每人算一个责任值专业术语叫梯度。责任大的重点调没责任的就不动。场景二调洗澡水——梯度下降你洗澡水温不对。拧一点热水 → 试试 → 不够热 → 再拧一点 → 试试 → 烫了→ 往回拧一点 → 试试 → 正好。这个过程就是梯度下降每次微调一点点试试效果方向对了继续方向错了就往回改。放到模型里就一个公式新值 旧值 - 学习率 × 梯度。公式里的减号自动保证了方向——不管梯度是正还是负参数都往让错误变小的方向走。每次改完重新预测一次Loss 降了一丢丢说明方向对了。继续。场景三蒙眼下山——学习率你在一座山上目标是走到最低的谷底但是蒙着眼睛。步子太大一步跨出去直接从山谷上面飞过去了摔对面山上。训练里就是 Loss 忽大忽小怎么都收敛不了。步子太小走了几百步还在半山腰走到天黑。训练里就是太慢算力和电费都烧不起。合适的步子山腰比较陡步子大一点没关系快到谷底了地很平步子收小小心别走过。所以实际训练 GPT-3 会动态调学习率刚开始 0.001 大步快跑后期降到 0.00001 精细打磨。专业术语叫学习率衰减说白了离目标远迈大步快到了碎步挪。三个机制串起来反向传播告诉你谁该为错误负责、梯度下降执行往哪调、学习率控制调多少。每次训练三个一起上几千亿次循环下来参数就从噪音变成了知识。走一遍完整流程把上面三个机制串起来实际训练中一次参数更新长这样① 预测苹果(错误) 正确答案真好 → Loss 10.5 ② 反向传播一次性算出所有参数的梯度 参数 A 梯度 2.5 ← 责任大 参数 B 梯度 -1.8 参数 C 梯度 0 ← 无关不动 ③ 梯度下降更新(学习率 0.0001) 参数 A: 0.5100 - 0.0001×2.5 0.50975 参数 B: -0.3200 - 0.0001×(-1.8) -0.31982 参数 C: 0.7800(不变) ④ 验证用刚更新的参数换下一句话这部电影___再跑一次 新预测 → 新 Loss 9.2(比 10.5 小了方向对了)注意第三步和第四步之间发生了什么参数更新完之后模型换了一个全新的输入句子(不是原来的今天天气了)用更新后的参数重新预测、重新算 Loss。两次 Loss 对应的不是同一句话所以不能直接从参数推导出 9.2——这个 9.2 是模型重新跑一遍算出来的结果。只要新 Loss 比旧 Loss 小就说明参数调整的方向是对的。然后就换下一句话重新来一遍。Loss 从 10.5 → 9.2 → 8.7 → ... 一路降到 2.5 左右模型就训得差不多了。这些概念后面边学边展开这里先有个画面感就行。从解方程到训练——这不只是换个方法学完这块我有个挺深的感触。从解方程到训练看起来只是技术路线的不同但往深了想这其实是两种完全不同的世界观。传统编程的思路是你必须彻底搞懂一个问题才能写出代码来解决它。写个排序算法你得先知道排序的逻辑是什么写个计算器你得先知道四则运算的规则。所有东西都是人定义好的代码只是把人的思路翻译给机器。但大模型走了一条完全相反的路。没人告诉它语法规则是什么没人教它苹果是水果、玻璃会碎、下雨要带伞。它只是看了几千亿个句子自己从中悟出了这一切。我们甚至说不清它到底是怎么悟出来的——1750亿个参数摆在那每个参数具体负责什么没人知道。换句话说我们不再试图用公式去精确描述语言是什么而是选择相信——数据够多、参数够大智能会自己长出来。这个思路跟早年大数据有点像。大数据说不用纠结因果关系相关性够强就能用。大模型把这个逻辑推到了极致——不仅不用理解因果连规则都不用写让模型自己从数据里把一切都学了。量变真的能引发质变。这不是一句口号是这一代 AI 能跑通的底层逻辑。小结捋一下ChatGPT就是输入→输出的函数就是参数多到离谱参数存语言规律不是背答案语言太复杂、方程算不动解不了只能训练训练就是反复猜→错→改几千亿次之后自己悟出规律那训练的时候参数到底怎么从噪音变成知识的还有个更让人好奇的问题——1750亿参数摆在那有没有人能说清楚每个参数具体负责什么下一篇学这个加油