首页 > 教程攻略 > ai资讯 >大模型训练方法论及Yi-Large的实践

大模型训练方法论及Yi-Large的实践

来源:互联网 时间:2026-08-20 14:02:14

这篇内容是前段时间在公司内部做的一个技术分享的整理,拖了很久才发出来。虽然时间过去了一段,但其中涉及的核心判断和技术讨论,在今天看来依然很有价值。下面直接进入正题。

先说Yi-Large的表现

先聊聊我们自己的模型。在如今各种benchmark被刷爆的环境下,LMSYS的评测体系反而成了一个相对客观的参考标准。它更接近大多数用户的真实体感——当然,这里说的是“大多数”,因为想和每个人的体感完全一致,基本不可能。

LMSYS这套机制有几个好处:

  • 问题由用户自己提出,不是静态题库,想靠刷题拿高分基本没戏;
  • 用户在两个匿名模型的回答中做选择,最大程度上保证了公平;
  • 采用类似天梯的Elo评分机制,会考虑不同水平模型之间的区分度。

下面贴几张Yi-Large的成绩截图,都是5月21日的数据。最近排名掉到第9了,不过在国内应该还是第一,国际上也仅次于OpenAI、Anthropic和Google这几家。

最近也有不少人质疑LMSYS的可靠性。这里面有一个值得反复思考的问题:大多数用户的偏好,到底应不应该成为模型优化的方向?LMSYS和我们在实际产品中做的A/B测试非常相似——当两个答案质量差不多的时候,用户往往倾向于选择更长的那个。但回归到个人喜好,其实有人更偏爱简洁的回答。如果大多数用户都倾向于长篇大论,那模型是不是就该往这个方向去优化?

除了LMSYS,我们对自己的模型更有信心的一点是:在产品端对Yi-Large和GPT-4做了A/B测试,用户留存和付费指标都没有下降;而对Yi-Large和GPT-3.5做测试时,用户指标直接上升了20%以上。后续针对应用场景做了优化后,和GPT-4做对比,用户指标甚至还有提升。这大概就是一家应用公司自己拥有模型训练能力的好处。

顺便回答几个关于Yi-Large的高频问题:

  1. LMSYS里的Yi-Large-Preview和Yi-Large有什么区别?怎么差了20多分?

    Yi-Large-Preview是模型的原始版,更能反映真实能力;Yi-Large是API platform的版本,为服务做了一些优化,牺牲了一部分性能。至于下一个版本,应该会比Preview版更强。
  2. 为什么Yi-Large的体感比较一般?

    这和我们早期的市场策略有关——零一万物之前主攻全球市场,预训练中中文数据的配比不够。很多问题用中文问答不对,换成英文就能答对。下一版本在这方面会有明显改善。

Scaling Law

先让Yi-Large自己写了一个Scaling Law的定义:

“Scaling laws in the context of machine learning, particularly in the field of deep learning and AI, refer to empirical relationships that describe how certain performance metrics scale with various resources, such as the amount of data, the size of the model (number of parameters), or the amount of computational power. These laws are often derived from experimental results and are used to predict and guide the design of large-scale AI systems.”

翻译成大白话就是:资源投入越大,模型的能力天花板就越高。看起来是理所当然的事情——模型结构固定时,算力用的多,能力自然强。所以很多人质疑Scaling law本身,其实没有道理;但如果有人质疑“仅靠Scaling law就能通向AGI”,那倒是可以讨论的。

过去几年,我们已经见证了太多模型能力随算力攀升的案例。随便贴两张图:

回到这篇论文的具体内容,最被广泛引用的应该是OpenAI的《Scaling Laws for Neural Language Models》。其实百度研究院更早就有相关研究,但这篇认可度最高。

“We study empirical scaling laws for language model performance on the cross-entropy loss. The loss scales as a power-law with model size, dataset size, and the amount of compute used for training, with some trends spanning more than seven orders of magnitude. Other architectural details such as network width or depth ha ve minimal effects within a wide range. Simple equations govern the dependence of overfitting on model/dataset size and the dependence of training speed on model size. These relationships allow us to determine the optimal allocation of a fixed compute budget. Larger models are significantly more sample efficient, such that optimally compute-efficient training involves training very large models on a relatively modest amount of data and stopping significantly before convergence.”

想要真正理解Scaling Law,建议把这篇文章翻来覆去读几遍,并且把里面引用的论文也一并读了,尤其是OpenAI之前那篇关于critical batch size的工作。

如果只求快速理解,记住论文里的公式1-5就够用了。

这个公式的用途主要体现在三个方面:

首先,它把广义的Scaling law给形式化了。公式里只有N和D两个变量,其他都是需要拟合的参数。所以结论很明显:N越大,Loss越小;D越大,模型能力越强。

其次,给定计算资源(compute)的情况下,可以用这个公式找到最优的数据量和模型参数量分配。这里还需要另一个简单的估算公式:C=6ND。给定训练flops时,两个公式联立,就能找到loss最小的组合。

这里经常有人会举Llama 3的例子来质疑:它用了远超8B模型“应该”承载的数据量,是不是说明Scaling law失效了?其实不是。第一,最优参数估计只是在给定计算条件下的loss最优;当参数固定而数据增加时,根据Scaling law,loss一定会更小,只是总计算量变大了。第二,训练compute和推理compute是两码事。举个例子:如果手上有4倍算力,把两倍投给数据、两倍投给模型参数,效果比全部砸给数据要好。但推理时,模型越小越好。训练是一次性投入,推理是长期成本。所以现在的趋势是用更多训练计算量来弥补模型小的不足,换来推理阶段更低的成本和更好的性能。

第三,也是预训练中最重要的作用——预测loss。除了N和D,其他参数都是需要拟合的。只要在N和D比较小的时候大量打点,用很少的算力就能拟合出一个能预测大规模模型loss的函数。需要注意的是,这里的loss指的是收敛loss,不是把所有数据都训练完的loss。分享两个实操上的小技巧:第一,拟合时最好固定数据,这样loss的可比性更强;第二,拟合时模型尺寸至少要达到目标模型的十分之一,否则用特别小的模型拟合出的系数,放大几千倍后容易失真。

基于Scaling law的可预测性,可以做很多模型结构探索和训练方法比较。比如大家都在关注的Mamba、RWKV、Transformer,只需比较拟合时谁的系数更小,谁的loss就更低。再比如做结构优化时,不同的normalization、optimization,都可以用Scaling law拟合来比较。这样一来,就不用担心小模型上的结论不能推广到大模型——因为Scaling law比较的是趋势,很多小模型上表现不错的方法,斜率低,一放大就容易失效。

The Bitter Lesson

这篇文章建议反复阅读、全文背诵。用一句话总结就是:能有效利用计算能力的方法,最终会在竞争中胜出。

OpenAI研究员Jason Wei的一天工作表中,有两次出现了和Bitter Lesson相关的内容。和OpenAI的人交流时,他们也多次强调要全文背诵这篇文章。

第二条挺有意思的:每天只花5分钟思考算法改进,然后觉得算法改进太危险,最终选择更稳妥的方案——加大计算和数据规模。

这里可以展开聊聊一个和ex-MSRA研究员讨论时形成的“斜率理论”。过去的研究大多在小算力条件下进行,大家更关心算法的起点,核心目标是通过改进算法和模型结构来提升性能。在等量算力下,改进后的模型确实效果更好,放大一点算力规模效果也还不错。但问题在于,为了提高起点,这些改进往往加入了各种先验假设,而这些先验往往会在scale up时降低斜率。当算力扩大10倍、100倍的时候,起点带来的收益远远弥补不了斜率下降导致的损失。这就是为什么在Scaling law时代,最简单的结构往往效果最好。

说到这儿,正好可以回应一下去年沸沸扬扬的“Yi-34B抄袭Llama”事件。先把概念理清楚:套壳(直接用Llama模型改个名字)、CPT(基于Llama做continue pretraining)和借鉴架构(用和Llama相同的架构,但用自己的数据和训练方法),这是三件完全不同的事。当时有两个变量名没改回来,导致大家都觉得Yi模型是抄的,还故意改了名字。其实只是实验需要——谁会改名字改得那么粗暴?但不管怎么说,开源不规范这件事,确实需要道歉。

Yi-34B是用自己的数据和训练方法从头训练的,用过的人都知道,它的参数风格和回答方式跟Llama没有任何关系。再说回“Llama architecture”这个说法。我其实不太认同这种叫法。翻开Llama的论文,所谓的架构改进主要就三处:pre-normalization(来自GPT-3)、SwiGLU(来自PaLM)、RoPE(来自GPT-Neo),都是之前别人工作的组合。

所以更认同Yi Tay的观点,与其叫“Llama architecture”,不如叫“Noam architecture”——这些改进大多和Noam有关。

自从Yi-34B之后,大家开源模型时也都在配置文件中统一用“llama architecture”来定义模型了,比如Qwen、DeepSeek、Mistral。这样开发者迁移成本低,适配简单,也算是那次争论带来的一点正面影响。

有趣的是,这三个改进是否也给模型增加了先验假设?pre-normalization在模型变深的时候并不如post-normalization,我们在训练Yi-34B前就验证过这一点,但在34B这个规模下pre-normalization确实更好。SwiGLU是用计算效率换训练效率的提升,在更大的模型上是否依然成立,不好说。RoPE在训练中会多消耗5%-10%的算力,也不是免费的午餐,到更大规模时它会成为瓶颈。

最后,用OpenAI研究员jbetker的blog来总结这部分:不同的模型结构,在同样的数据上训练足够长时间,最终都会收敛到同一个位置——diffusion、convnet、autoregressive都一样。唯一的区别是计算效率。模型能力本质上和结构、超参数、优化方法没啥关系,只和数据有关。所以ChatGPT、Bard、Claude这些名字,说到底是和它们的训练数据绑定的。一句话:数据决定了智能的上限,算法决定了达到收敛的效率。因为算力有限,优化的目标就是“单位算力下能产生的最大智能水平”。

高质量数据才是关键

上面的分析引出了另一个重要话题:优化数据质量。这里用Yi技术报告里两张图来说明我们处理训练数据的流程。实际操作比图上看起来复杂得多,可以说这套标准流程已经成了大模型公司的标配。随着大家越来越重视数据,模型性能在持续提升。真正的差距藏在每一步的细节里,每一个环节都是魔鬼。像Llama 3那样用15T token才训练出这个水平,肯定是在很多细节上做得不够深入。

顺便说一句:如果给我训练Llama 3.1 403B四分之一的算力,我能训练出一个更强的模型。另外有一个小建议:一定要让训练模型的同学亲自看数据。很多大模型公司的数据团队和模型团队是分开的,这非常不合理。零一在初期没有启动模型训练时,所有算法同学都亲自看过数据,每个人至少看了上万条训练语料。算法同学和数据同学一起迭代了很多个版本的数据,这是Yi-34B模型效果比其他模型好的最重要原因。

很多人关心数据会用尽的问题。其实这个似乎不是问题——首先,LLM出现后,互联网上的数据比之前多了很多;其次,合成数据的方法也很多;最后,多模态数据也提供了更多数据源。

关于合成数据,有一个很有意思的现象:用不同年份的数据训练LLM时,发现最近几年的数据效果明显更好,原因就是这些数据中大量包含了LLM生成的内容(比如知乎回答)。这是不是说明模型学到的知识已经超过平均水平的人类了?

多模态数据也是有效的数据补充。《The Platonic Representation Hypothesis》提供了一个很有趣的视角:不同模态的数据会共享表示空间。我们在多模态模型的实验中也验证了这一点:多模态数据确实能提升智能水平,但效率可能不如纯语言数据高。举个例子,用2T语言token训练模型A,用2T语言token加500B图像token训练模型B,用2.5T语言token训练模型C,最终结果是C的表现最好,B次之,A排在最后。

关于人才

最后聊聊人才。很多人一直有个误区:大模型的核心差距在于人才,国内不如硅谷。这句话在智力水平和研究能力上并不成立——国内和硅谷的差距其实非常小。过去大家只是缺少在大规模集群上进行分布式机器学习的经验,但随着大模型公司的持续投入,这方面的能力已经在迅速补齐。

这里可以引用DeepSeek的一句话:“前50名顶尖人才可能不在中国,但也许我们能自己打造这样的人。”过去国内缺的是算法、infra、工程三位一体的人才,而现在大量刚毕业的年轻人,在LLM时代经过各家公司实习的锻炼,已经具备了这种综合能力。可以说,这一代人是AI native或LLM native的。

还有一个关键点:人均GPU数量。零一一直控制算法团队的规模,就是为了保证每个算法同学至少有超过1000张卡的使用量。没有这个基础,研究就很难顺利开展。

写在最后

上面这些内容,更像是对上一阶段LLM工作的一个阶段性总结。随着技术演进,很多“低垂的果实”已经被摘得差不多了,比如数据数量、数据质量、合成数据这些方向。最近有一个很强烈的感受:现在已经到了需要去冒更大风险、做更根本性算法研究的时候了。上一个阶段更多是工程能力的红利,下一阶段的竞争,可能更多取决于研究和工程的结合能力。

某种意义上说,现在已经是AGI的雏形了。Scaling law必然能实现AGI,但效率不一定最高。而更高效地实现AGI甚至Super Intelligence的路径,或许需要在fundamental research上做一些真正有突破性的探索。