从零训练大模型之模型升级版搭建及训练总结(下)

前言

经过文章《从零训练大模型之模型升级版搭建及训练(上)》《从零训练大模型之模型升级版搭建及训练(中)》的努力,我们已经完成了模型代码的编写。这一篇我们将分享最终的训练结果,并和《从零训练大模型之模型搭建》搭建的模型进行结果对比。按照《Attention Is All You Need》编写的模型,我们称之为V1版模型,对应的这一版的升级版模型我们称之为V2版模型。

回顾我们的V1模型

先回顾以下我们的第一个模型 MiniLlmsModel,可以看作是基于经典Transformer论文《Attention Is All You Need》构建的一个"标配版"解码器模型。它包含了所有我们耳熟能详的核心组件:

  • Token Embedding: 将文字(Token)转换成机器能懂的数字向量。
  • Positional Encoding : 使用sin/cos函数给每个词添加一个"座位号",让模型知道词语的先后顺序。
  • Causal Self-Attention : 模型的核心,让每个词关注它前面的词,学习上下文关系。这里我直接使用了PyTorch内置的nn.MultiheadAttention
  • FeedForward Network: 注意力层后的"思考加工"层,增加模型的非线性能力。
  • Layer Normalization: "稳定器",防止训练过程中数值爆炸或消失。

这是一个非常扎实的起点,就像我们学编程时的"Hello, World!"一样经典。我用它进行了一轮训练,结果怎么样呢?我们用数据说话。

V1训练成绩单

这两张是V1模型训练了大约24k步后的TensorBoard监控图:

  • 损失(Loss) :可以看到,训练损失(train_batch)在不断下降,但抖动非常剧烈,说明训练过程不太稳定。验证损失(validation_step)虽然也在下降,但后期趋于平缓,最终稳定在3.7左右。
  • 困惑度(Perplexity) :这是衡量语言模型好坏的关键指标,越低越好,代表模型对下一个词的预测越准。V1的PPL最终降到了40左右。对于一个小模型来说还不错,但总感觉"还可以再抢救一下"。

V1的"AI作文"秀

光看数字不够直观,我们让它根据"machine learning"这个提示词写一段话看看:

V1生成内容(节选):"...the paper also suggests that the method cannot be used to predict the impact of an event, and that the probability of the event is low... a few months ago, shu told the researchers that it was important to understand the effect of the event on the semester. they said the semester used to predict the effect of a event, and a few months later, the researchers used a method associated with the semester, which they say is associated with the event... "

评价:它确实生成了通顺的英文句子,非得说点不好的,可能是内容上有点"车轱辘话来回说"。反复提及"predict the impact of an event"、"semester"等词,逻辑有点绕,整体感觉比较空洞和重复。

小结:V1成功地跑起来了,但离"优秀"还有距离。它的学习效率、稳定性和生成质量都有很大的提升空间。于是,我们借助这几年大模型所使用的先进技术,来给我的模型来一次"脱胎换骨"的大升级!

模型升级,V2模型的"黑科技"加持

我们的MiniLlmsModelV2不是简单的参数调整,而是一次架构上的"鸟枪换炮"。我们引入了近年来被验证为高效且强大的几项关键技术:

1. 稳定器升级:LayerNorm -> RMSNorm

Llama等模型普遍使用RMSNorm替代了传统的LayerNorm

  • V1 (LayerNorm):像一个复杂的全套身体检查,计算均值和方差,进行归一化。
  • V2 (RMSNorm):像只测量核心指标,它去掉了均值计算,只用均方根来缩放,计算更简单、更快。实践证明,效果同样出色甚至更好。

2. 位置编码升级:Positional Encoding -> RoPE

这是最关键的升级之一!

  • V1 (sin/cos) :给每个词一个绝对的坐标(比如第1、2、3个位置)。这在处理超长文本时可能会遇到问题。
  • V2 (RoPE - 旋转位置编码) :给词向量注入相对的位置信息。它不直接告诉模型"你在第5个位置",而是通过一种巧妙的"旋转"操作,让模型在计算注意力时自然而然地感知到"我与前面那个词相距1位"、"与前前个词相距2位"这样的相对关系。这被证明在长序列上表现更好,是现代LLM的标配。

3. 注意力机制升级:MHA -> FlashGQA

这里是"连升两级"!

  • 分组查询注意力 (GQA) :V1的Multi-Head Attention (MHA) 中,每个"查询头"(Q)都有自己专属的"键头"(K)和"值头"(V)。这在推理时会占用大量显存来存储K和V(即KV Cache)。GQA则让多组Q头共享同一组K/V头,就像几个项目组共享一个秘书团队,大大减少了显存占用和计算量,显著加速推理。
  • FlashAttention: 传统注意力计算需要生成一个巨大的(序列长度 x 序列长度)的注意力矩阵,非常耗费显存和IO。FlashAttention是一种IO感知的优化算法,它避免了完整写入这个大矩阵,通过分块计算等技巧,实现了"计算速度起飞,显存占用骤降"的神奇效果。

4. "思考"层升级:ReLU -> SwiGLU

  • V1 (ReLU):一个简单直接的激活函数,像一个开关。
  • V2 (SwiGLU):一种更先进的门控线性单元。它引入了一个"门控"机制,可以更动态、更精细地控制信息的流动。可以把它想象成一个"调光器",比简单的开关更具表现力。

经过这一系列现代化改造,我们的V2模型诞生了!它是否辜负了我的期望呢?

V2 vs V1:一场激动人心的对决!

我用和V1几乎相同的训练配置(数据集、学习率策略等)来训练V2,让我们直接看对比图。

V1

因为篇幅的原因,V1的图就这里就不再贴了,像再回顾下的请参考前面 V1训练成绩单 一节的图

V2

损失(Loss)

困惑度(Perplexity)

(注:为了公平对比,这里我们只比较两个模型都训练到约12k步时的结果)

这张对比图胜过千言万语!

  • (V1 @ 12k steps) :验证损失在3.8 以上,困惑度在44以上。
  • (V2 @ 12k steps) :验证损失已经降到了3.6 以下,困惑度更是达到了惊人的36

结论

  1. 学习效率更高 :在相同的训练步数下,V2模型达到的损失和困惑度低于V1。这意味着V2学得更快、更好,在使用同等计算资源下,我们可以训练出参数量更高的大模型。
  2. 性能天花板更高:V2只用了12k步,其PPL(36)就已经超越了V1训练24k步的最终成绩(40)。这说明V2的架构本身就更强大,拥有更高的性能上限。
  3. 训练更稳定:如果你仔细看V2的训练损失曲线,会发现它的抖动比V1小得多,整体下降趋势更平滑,证明了新架构带来的训练稳定性。

V2的"AI作文"秀

最后,我们来看看V2的生成能力是否也和指标一样出色。同样是"machine learning":

V2生成内容(节选): "...in the future, the ai research institute will become the first university to have an integrated computer science degree. it is expected the technology school will be the new graduate training center for ai biology at the university of california, irvine. california. the tech academy will be the third university to have an integrated computer science degree at the university of illinois, irvine, connecticut... the ai institute is expanding to include ai research, robotics, advanced science, engineering and engineering..."

评价:V2的生成内容围绕"AI研究"和"大学"这两个核心概念展开,条理清晰地列举了多个大学和研究方向,没有出现V1那种原地打转、重复啰嗦的问题。模型幻觉的问题和V1一样,依旧存在。

总结

这次从V1到V2的升级之旅,让我深刻领悟到:

  1. 架构决定上限:好的模型架构是成功的关键。单纯增加数据和算力是"蛮力",而优化架构则是"巧劲"。
  2. 拥抱前沿技术RMSNorm, RoPE, GQA, FlashAttention, SwiGLU......这些不是凭空出现的时髦词汇,而是无数研究者智慧的结晶,它们实实在在地解决了问题,提升了效率和性能。
  3. 实践出真知:亲手实现并对比这些技术,远比只看论文来得深刻。当你在TensorBoard上看到那条陡峭下降的PPL曲线时,所有的努力都值了!

对于和我一样刚刚入门大模型的朋友,也可以遵循:从一个简单的"V1"开始,动手实现它,然后勇敢地去探索和应用那些最新的"V2"技术。 这个过程不仅能让你深入理解Transformer的每一个细节,更能让你紧跟时代的步伐,真正感受到AI技术日新月异的魅力。


关注我的公众号不走丢

附录

GitHub链接:github.com/JimmysAIPG/...

相关推荐
聚客AI3 小时前
⚡手撕Transformer心脏:从RoPE到2025 Meta三线性体积编码的跃迁
人工智能·pytorch·llm
智泊AI3 小时前
多模态对比学习模型CLIP原理是什么?(讲人话版)
llm
G皮T4 小时前
【人工智能】通过 Dify 构建智能助手
人工智能·ai·llm·大语言模型·dify·ai agent·智能体
用户315183718178 小时前
LLM大模型智能引擎实战–SpringAI+RAG+MCP+实时搜索 | 高清同步
llm
大模型开发1 天前
5分钟带你搞懂从0打造一个ChatGPT
chatgpt·程序员·llm
大模型教程1 天前
一文速通提示词工程Prompt Engineering
程序员·llm·agent
AI大模型1 天前
大模型炼丹术(八):手把手教你玩转 LLM 的指令微调
程序员·llm·agent
聚客AI1 天前
🛠️从架构到部署:企业级多Agent系统开发百科全书
人工智能·llm·agent
落樱弥城1 天前
Function CAll和MCP
ai·llm