🧠 LLM 原理分享

53 阅读8分钟

👋 写在前面

大家好,我是正在独立开发 “AI 智能就业/人岗匹配系统” 的程序员。 之前在我的 《45天实战复盘:从零开发 AI 系统的血泪史》 中,提到了ai开发的经验。今天这篇专门把其中的核心技术点,拆碎了讲讲。

如果你对 AI 落地、RAG 优化或 Agent 开发感兴趣,欢迎去主页翻阅我的实战笔记。

☕️ 聊聊 LLM 的“内功心法”:AI 到底是怎么学会说话的?

最近 ChatGPT、DeepSeek 这些大模型火得一塌糊涂。很多人觉得这是黑科技,甚至是魔法。但其实剥开华丽的外衣,里面藏着的都是实打实的数学和统计学。

今天咱们不整那些看不懂的公式,我就用7个最核心的概念,配合生活里的例子,带大家彻底搞懂:一堆冷冰冰的代码,到底是怎么变成能陪你聊天的“大脑”的?

image.png


1. 神经网络 (Neural Networks)

咱们先得有个架子。人类大脑也是由亿万个神经元组成的,AI 也是模仿这个结构。一个典型的神经网络其实就分三块:

  • 输入层 (Input Layer) :就是大门。你喂给它的一句话、一张图,都从这里进。
  • 隐藏层 (Hidden Layers) :这是核心“黑盒”。之所以叫“深度”学习(Deep Learning),就是因为这里的层数特别多,像千层饼一样。每一层都在提取特征,层数越多,能理解的东西越复杂。
  • 输出层 (Output Layer) :最后吐出来的结果。比如预测下一个字是啥,或者这图里是不是猫。

🍔【通俗理解:三明治流水线】

想象这是一家超级复杂的三明治工厂

  • 输入层:原材料区。这里只有面包、火腿、生菜。

  • 隐藏层:中间长长的加工流水线。

    • 工位 A 负责切片;
    • 工位 B 负责抹酱;
    • 工位 C 负责烤制。
    • 注意!每个工位都有一个调节旋钮(权重 Weights) ,比如酱要抹多少克,烤箱温度设多少度。这决定了最后的味道。
  • 输出层:最后那个装盘的窗口,端出来一个成品三明治。


2. 正向传播 (Forward Propagation)

模型刚造好的时候,它脑子是一片空白的。这时候你给它一个输入,它会经过层层计算,最后给你一个结果。

但在训练初期,里面的参数(权重)都是随机生成的,所以它给出的答案基本就是胡说八道。

这个过程——从输入到输出走一遍,就叫正向传播

👨‍🍳【通俗理解:学徒闭眼做菜】

想象一个从来没进过厨房的学徒(未训练的模型)。

  • 你给他一把菜(输入)。
  • 他也不管盐放多少、火开多大(权重是随机的),一通乱炒。
  • 最后端出来一盘黑乎乎的东西(输出)。

虽然这盘菜没法吃,但这非常重要!因为只有先做出来“错”的,我们才有机会告诉他怎么改。这就是学习的起点。


3. 损失函数 (Loss Function)

菜端上来了,怎么评价它做得有多烂?这就需要损失函数。

它的作用只有一个:找茬。它会拿模型的“预测结果”和“真实标准答案”进行对比,算出一个分值。这个分值越大,说明模型越笨。

我们的终极目标,就是想尽办法把这个 Loss 值降到无限接近于 0

🎯【通俗理解:射击靶的测量尺】

  • 真实答案是靶心(10环)。
  • 模型预测射出了一箭,结果射到了 3 环。
  • 这时候,损失函数就像一个拿着尺子的裁判,跑过去量了一下:“喂!你离靶心偏了足足 50 厘米!”
  • 这个“50厘米”,就是 Loss 值
  • 如果没有这个裁判,模型根本不知道自己射偏了,也就永远学不会。

感谢你的指正!你说得很对,之前的比喻虽然形象,但确实把“数学本质”给掩盖了。梯度下降的核心动作,确实就是不断地去修改那个 WW(权重参数)。

“下山”只是一个为了方便理解的几何比喻,在计算机里,实际上并没有山,只有一堆需要不断微调的数字

我把【梯度下降】这一节重写了,这次把“调整权重”这个核心逻辑讲透,同时保留口语化的风格:


4. 梯度下降 (Gradient Descent)

刚才损失函数(Loss)告诉我们,模型现在的表现很差(误差大)。那怎么变好呢?这就轮到梯度下降出场了。

它的本质工作只有一个:通过数学计算,不断地微调每一个神经元的权重 (ww),直到误差降到最低。

我们不要只想象“下山”了,我们换个更贴切的视角。

核心逻辑:

模型的参数(Weights)就像是一台超级复杂的机器上的旋钮

  1. 算梯度:算出当前这个旋钮是该“往左拧”(减小权重)还是“往右拧”(增大权重),以及该拧多大劲儿。
  2. 更新权重:实际动手去拧它。

这个过程用公式写出来就是:

新权重=旧权重(学习率×梯度)新权重 = 旧权重 - (学习率 \times 梯度)

🎛️【通俗理解:百万调音师】

想象你面前有一个巨大的 DJ 调音台,上面有 100 亿个旋钮(对应 LLM 的百亿参数)。

  1. 现状:音乐响起来了(正向传播),但是声音极其刺耳,全是噪音(Loss 很大)。

  2. 找方向(算梯度) :你听了一下,发现是因为低音(Bass)太重了,高音(Treble)太轻了。

  3. 梯度下降(调权重)

    • 于是你把“低音旋钮”向左拧一点点(减小权重数值)。
    • 同时把“高音旋钮”向右拧一点点(增大权重数值)。
  4. 循环:音乐还在放,你再次听,再次微调。

梯度下降就是这个“听声音 -> 判断该怎么拧 -> 动手拧一下”的无限循环过程,直到音乐变得悦耳动听。


5. 反向传播 (Back Propagation)

这是深度学习最天才的地方!

我们知道了要“往右走”(梯度),但问题是,神经网络有成千上万个参数(工位),具体是哪一个工位出了问题?是切面包的切厚了?还是烤箱温度高了?

反向传播利用数学上的“链式法则”,把最终的误差(Loss),从输出层开始,一层一层往回推,计算出每一个神经元对这个错误“贡献”了多少。

😡【通俗理解:餐厅投诉链】

顾客(损失函数)拍桌子大怒:“这菜太咸了!”(这是误差)。

经理开始反向问责:

  1. 先找厨师:“是不是你盐放多了?” -> 厨师赶紧把盐的旋钮调小一点(更新权重)。
  2. 再找备菜员:“是不是你腌肉的时候手抖了?” -> 备菜员调整腌料比例(更新权重)。
  3. 最后找采购:“是不是这批火腿本来就太咸?” -> 采购换个供应商(更新权重)。

反向传播不是只怪最后一个人,而是精确地算出每一环节的责任,让成千上万个“员工”同时修正自己的操作习惯。


6. 学习率 (Learning Rate)

在“蒙眼下山”的时候,我们知道要往那个方向走了。但是,这一步迈多大?这就叫学习率。

这是一个人为设置的参数(超参数),非常考验调参师的水平。

🚿【通俗理解:调节洗澡水温】

想象你在洗澡,想把水温调到刚刚好。

  • 学习率过大(手劲太大):

    如果你猛地一拧水龙头,水瞬间变成 100℃ 开水;吓得你赶紧反向猛拧,水又变成 0℃ 冰水。你就在烫死和冻死之间反复横跳,永远调不到温水。

    (专业术语:模型震荡,无法收敛)

  • 学习率过小(手劲太小):

    你像蚂蚁一样,每次只拧 0.1 毫米。虽然水温在慢慢变好,但等你调好的时候,你也冻感冒了,或者洗澡水都流光了。

    (专业术语:训练收敛太慢,浪费算力)

  • 最好的策略: 刚开始离目标远时,步子大一点;等到快接近最佳状态时,步子小一点,精细微调。


7. 过拟合 (Overfitting)

大家可能听过这个词。训练模型不是Loss越低越好吗?不一定。

如果模型在训练数据上表现满分,但在新数据上一塌糊涂,这就是过拟合。它没有学会规律,而是学会了作弊。

📚【通俗理解:只会背答案的学生】

老师发了一本练习册(训练集),里面有 100 道数学题。

  • 好模型(学霸): 通过做题,学会了加减乘除的逻辑。考试出新题,他也会做。

  • 过拟合(书呆子): 他记忆力太好,把这 100 道题的答案全背下来了

    • 比如他记住了:只要题目里出现“小明”和“苹果”,答案就是 5。
    • 后果: 期末考试(测试集)把“小明”换成了“小红”,题目逻辑完全没变,但他因为没背过这个名字,直接交了白卷。

所以,我们需要用“正则化”、“Dropout”等手段,强迫模型去学逻辑,而不是死记硬背。


📝 总结一下

训练一个 LLM 的过程,其实就是一个不断试错的闭环

  1. 正向传播 👉 先瞎猜一个结果
  2. 损失函数 👉 拿尺子量量错得有多离谱
  3. 计算梯度 👉 看看往哪个方向改能减少误差
  4. 反向传播 👉 顺藤摸瓜,找到是谁导致的错误
  5. 参数更新 👉 结合学习率,修改所有神经元的权重
  6. 循环亿次 👉 直到它不再过拟合,真正学会了举一反三。