大数跨境
0
0

LLM基本概念之Scaling Law

LLM基本概念之Scaling Law 谁说菜鸟不会数据分析
2024-04-01
0
导读:大家都在提scaling law

1. 什么是Scaling Law

Having a sense of the capabilities of a model before training can improve decisions around alignment, safety, and deployment.
— GPT4 Technical Report


figure from OpenAI GPT4 technical report. 从此图可以看出他们在train GPT4之前,就已经完美的预测到了GPT4的能力水平。


Scaling Law 定义:我们可以用模型大小、Dataset大小、总计算量,来预测模型最终能力。(通常以相对简单的函数型态, ex: Linear relationship)


figure from OpenAI <Scaling Laws for Neural Language Models>


其实在过去,DL的研究者、从业者应该多多少少就会从两个方面听过Scaling Law。

第一、很多论文在各种DL领域早就提出了Scaling Law:

  1. Hestness et al.于2017发现在Machine Translation, Language Modeling, Speech Recognition和Image Classification都有出现Scaling law.

  2. OpenAI Kaplan et al.于2020年从计算量、Dataset大小、跟参数量分别讨论了Scaling Law。

  3. Rosenfeld et al.于2021年发表了关于Scaling Law的survey paper。在各种architecture更进一步验证Scaling Law的普适性。

除了以上论文,即便在过去没有关注到Scaling Law的研究发展,DL研究者、从业者也一定知道第二点(或是说具备代表性的图)。

第二、Scaling Behavior早就隐藏在研究员的潜意识中。

Andrew Ng早在2016、2017就在各种场合画出过以下这张图,在Deep Learning.ai的课程中也时常出现,这张图原本是用来说明NN跟传统ML的适用时机,但却也显现出,对于研究员而言,早就具备一些关于Scaling的直觉。像是:Model越大、Data越多,performance都会随之提升


figure from Andrew Ng


如果你还是第一次接触这个概念,就拿摩尔定律来当类比,摩尔定律我们知道:晶片性能跟时间会呈现某种可预测关系(更精准的讲是电晶体密度会随时间成倍数增长) 。

DL的Scaling Law说的就是,模型的性能会跟:1. 模型参数、2. Dataset大小、3. 训练计算量,呈现某种可预测的关系。


2. 具体内容

对于Decoder-only的模型,计算量C(Flops)、模型参数量N(non-embedding parameter count)、数据大小D(token数)三者满足: C≈6ND (小模型不准)。在给定计算量下,最优参数

模型的最终性能主要与C, N, D相关,而与模型结构基本无关,2%的误差,计算公式为

这里

第一项是指无法通过增加模型规模来减少的损失,可以认为是数据自身的熵(例如数据中的噪音)。

第二项是指能通过增加计算量来减少的损失,可以认为是模型拟合的分布与实际分布之间的差。

在多模态的任务中,均表现出log-log linear的scaling law

Chinchilla Scaling Law针对Return问题,提出了一个完整的Scaline公式如下。

Method 3 result from Chinchilla Scaling Law,N是模型参数量、D是数据量、其他都是系数


LLM最终的Loss(Perplexity),会随着模型放大、数据量变多而下降,并且是跟他们呈现指数映射后线性关系。

这就像是开头OpenAI的图,找到了一个预估训练LLM回报的公式,依此,我们不用拿超大的模型跟数据,用几个月甚至几年的时间慢慢做实验,只要在小模型、小数据下验证、确认我们的公式,就可以设计一个更大型的训练,大幅度减少了实验成本。

Chinchilla最大的贡献更是在解决Allocation的问题,他们发现

  1. 数据量(Tokens数)应该要约等于模型参数量的20倍

  2. 并且数据量跟模型参数量要同比放大(Ex: 模型放大一倍,数据也要跟着增加一倍)

依据这个结论他们发现,当时很多公开的大模型,都只考虑参数量放大,而没有放足够量的Data。在同样计算量下,Chinchilla把模型缩小、但是加入更多Data,马上就训练出比当时其他模型都更好的模型。




3. 因应Scaling Law,我们要如何改变我们的工作模式与思考方式?

前面两个段落,我希望大家都已经理解并接受了Scaling Law,并且也发现了Scaling Law带来的各种优势。

接下来我想用一个小段落快速分享一下这一年,因应Scaling Law,我的工作模式与思考方式的改变。

Scaling Law的本质是:模型最终效能可以藉由模型参数量、Dataset大小、训练计算量来预测。因此我们可以藉由小模型、少量Data的训练,来快速验证我们的想法。

但是即便只是这一个简单的idea,背后最少也隐藏着3个重点。

A. 要能Scaling,意味着组织必须能够支援持续扩大(Scale)模型的infra跟GPU资源分配模式。

首先,我们来说infrastructure,以7B模型而言,粗估要占用15GB~20GB的GPU memory,也就是说如果你全参数训练,一张A100(80GB GPU memory)只能开Batch = 4,如果你想要Batch = 64, 128,那么必须先进行跨卡和跨机的训练环境设置。

同时为了加速训练,让memory使用率变的更高,每一两个月几乎就有新的技术、python package出来,Ex: Flash Attention 2, Zero 3, Vllm, Gradient Checkpoint, CPU offloading …等,随时追踪最新的训练优化技术,并且保持组织的Server要能够高频率做改变,如果一个组织对Server里面pip版本更新、各种packages更新的周期都是以月为单位,注定会在infra层面落后全世界半年到一年。

接着讲GPU的资源分配模式,传统实验室、公司的GPU资源模式不外乎两种:

  1. 平均分摊GPU给每个人

  2. 因应Project去申请更大型的GPU cluster

这两种模式在Scaling时代都有明显的弊端,平均分摊GPU会让公司不具备跑真正大型实验的能力,因应Project去申请则容易导致GPU资源过度浪费。例如:具备16张A100的团队大可以每个实验都直接跑7B的level,不必去验证3B、1B的可行性。

更好的方法应该是尽量让每个Project都具备在3B以下模型进行概念验证的能力,并设计正式的Scaling检查机制,只有通过Scaling检查的团队可以"By experiments" 去使用更大的GPU Cluster。

这边提到Scaling检查机制,核心就是,当我们想要跑7B甚至13B模型时,我们最好在3B以下的模型都有一致的Scaling Behavior。最好在BERT跟T5这两种大小先进行过概念验证。

如果在2023年,没有解决infra问题,也没有调整出适合LLM scaling的资源分配模式,很有可能在2024年会连其他公司车尾灯都看不到。

B. 思考、实验、讨论都要把Scaling当作核心

承接第一点以及原本对Scaling的理解,一个好的团队,在做跟Large XXX model相关专案时,一定要把Scaling当作一切的核心

但Scaling其实也是一个复杂的过程,其中最少都会包含三个阶段:

  1. Cold start:一开始模型太小、Data不够、问题太难时,会呈现怎么训练都没有帮助,好几个不同大小的模型、Dataset训练出来的结果都差不多烂,看不出Scaling的时期。

  2. Scaling:正常的Scaling时期。

  3. Plateau:撞到了某个隐形的天花板,可能是Dataset品质带来的天花板、本身任务的Irreducible Error、Architecture的能力天花板。



我们心中希望的其实是处理中间这段,但是实际上遇到的问题可能复杂很多。



而这就必须要辨识出几种Scaling常见的Patterns(如下图)


4种常见的Scaling Patterns


  1. Ordinal Scaling:这是我们最理想的情况,从BERT base或是T5 small开始,随着模型变大,效果显著上升,因此我们可以画出一条很漂亮的Scaling Law,可以每天准时下班,晚上做梦都会笑。

  2. Emergent Ability:专指那些只有参数量到一定大小(Ex: GPT4)后才做的好的任务,像是在2023年中普遍认为Reasoning跟Coding都是少说要30B才能做好。Emergent Ability我会在之后再更详细提。

  3. Ran out of Data/Compute:确实出现了Scaling的情况,但是目前连GPT4都做不好。

  4. Slow Scaling (Not fast enough):确实出现了Scaling的情况,但是成长速率明显过慢。

四种Pattern分别都有不同的实验方法、改进方法可以做,不过因应篇幅过长,我留到之后再详细说明我现在的Scaling流程,不过重点只是先放在,实验、思考都要时常思考Scaling 。

C. 一个好的idea,一定要具备Scale的潜能

这就又提到第三个重点,我们要依照「一个idea是否具备Scale的潜能」来找出能够长期执行的idea、判断实验的重要性。

举个例子,以大部分公司而言,常见的Data来源会有下面几种:

  1. 人工Label:依照任务难易度而变,很多NLP任务在公司能够Label的scale都在1,000上下,这显然就不是好的scale idea

  2. Crowd Source:依照我的经验,NLP的题目,Crowd Source普遍可以在一定的预算内做到10k~100k这个level,如果你的project scaling law在这个范围内是可行、可接受的那可以考虑

  3. Unsupervised Learning:如果公司有整理好的文本数据的话,可以快速估计一下文本的Scale,并且依照公司文本快速去画出Scaling law,判断公司内这个领域的文本数量是否足够。

  4. Distill from GPT3.5 or GPT4:用GPT3.5跟GPT4生成synthetic data,并且快速画出这个project的Scaling law,预估最多需要多少token GPT4的request才能变成一个好的project,进而做成本跟时程控制。(Distillation会在我后面其他part占非常大的篇幅,之后会详谈。)

对于研究机构也可以基于Scaling快速评断一个idea有没有可能持续做大做强,以下就举一组例子(RLHF vs DPO):

  1. RLHF (Reinforcement Learning from Human Feedback)理论上可以无限Scale,因为当我们reward model训练完后,我们可以让LLM跟Reward model self-play,所以关键是解决RL的instability跟Human preference的noise。其中instability又牵扯到需要多少Human Preference data,其实还是会回到Data scaling的问题。

  2. DPO (Direct Preference Optimization):把RL从RLHF里面移除掉,变更稳定的优化,但是把self-play的优点也移除掉了,必须要回头考量Human Preference data的scalibility问题。

从这个角度就可以看出来,如果是可以快速收取Human Preference data的公司(有庞大的user base,ex: Google, Apple, FB),大可考虑DPO,但如果公司没办法快速Scale Human Preference,还是要回头思考RLHF的各种问题,藉由LLM跟Reward Model的Self-play来scale。


4. 2024年以前最重要的几个Scaling Law

  1. Pretraining的Scaling Law:本篇重点的内容,必须要详读OpenAI的Scaling Law [2]跟DeepMind的Chinchilla Scaling Law [3]。

  2. Over-train Pretraining的Scaling Law:主要由LLaMa [4]提出,Chinchilla找到的是Computational optimal,意思是在固定运算量下最好的配比。但是我们只有在训练超大模型才会考虑computation的限制,而像是7B, 13B这种level,我们就要思考如何把他们做的越强越好,所以大可以Over train他们,用更多的资料训练小模型,让他们比预期的更好,典型例子是LLaMa 1跟LLaMa 2 [5]。

  3. 藉由Data Quality提升Scaling Law斜率:典型是Microsoft的phi系列[6, 7],藉由更好的资料,来让模型在同样大小参数、Dataset的情况下得到更好的效果,而最终他们推出phi-2,用2.7B model赢过大量7B, 13B模型。

  4. Instruction tuning的Scaling law:由Google提出,instruction tuning阶段也有scaling law,因此instruction tuning的data数量还是一个简单且重要的考量依据。[8]

  5. Downstream performance跟LLM loss的scaling law:阿里巴巴发现model的SFT score跟ICL score,跟原始的loss也有scaling relationship,也就是说我们甚至在finetune前也可以一定程度预判最终downstream能力。[9]

  6. Mixture of Expert LM的Scaling Law:由DeepMind提出,Language model如果做了MoE后,Expert count也会跟loss呈现Scaling关系,其中发现当我们有8个Experts的时候,一个模型大概可以跟两倍大小的模型有差不多的performance。[10]

  7. Context Length的Scaling Law:今年,还有部份团队开法把重点放在加长LLM的context length,意思是可以看、生成更多token,LongLLaMa [11], LongLora [12]和LightSeq [13] 都试图提出针对context length的不同scaling law。

  8. Data Repeat带来的不同Scaling Law:2023另一个大议题就是在可见的未来,网路上可见的Data数量可能会不够了,因此研究Data Repeatition就变的很重要,AI2发现repeat 4次都还可以给LM带来有效的improve [14],新加坡国立大学跟爱丁堡大学的研究者则提出11个针对data repeatition的insight [15],非常建议把这篇论文重复详读多次。

  9. RLHF中Reward Model的Scaling Law:OpenAI讨论了在RLHF中Reward model的scaling以及使用proxy的reward model对scaling的帮助。[16]


结语

Scaling是LLM之所以能够成功的最重要因素之一,因此从目前重要LLM玩家(Ex: OpenAI, Google, Meta, …)对Scaling Law的理解学习,并把Scaling的概念带到日常工作、实验跟思考,是要跟上这波LLM发展的重大关键之一。

希望我这篇文章能够帮助大家更清晰理解Scaling Law,如果有相关问题也欢迎随时回复跟我讨论。同时我也持续有在接家教、演讲跟顾问,今年会加入很多LLM的新知识,也欢迎到我主页用email跟我联系。


Scaling Law必看学习清单:

  1. Stanford cs224n课程影片:Scaling Language Model

  2. Stanford cs324课程中scaling law的slides

  3. Chinchilla Scaling Law的论文

  4. OpenAI针对Scaling Law的论文

  5. [进阶] Sasha Rush在Simon Institute的演讲:Scaling Data-Constrained Language Models

  6. [进阶] Go smol or go home,这篇Blog讨论了Chinchilla的局限。

  7. [进阶] Yasaman Bahri在Simon Institue的演讲:Understanding the Origins and Taxonomy of Neural Scaling Laws




Reference

  1. GPT-4 Technical Report. OpenAI. 2023 https://arxiv.org/pdf/2303.08774.pdf

  2. Kaplan, Jared, et al. “Scaling laws for neural language models.” arXiv preprint arXiv:2001.08361 (2020).

  3. Hoffmann, Jordan, et al. “Training compute-optimal large language models.” arXiv preprint arXiv:2203.15556 (2022).

  4. Touvron, Hugo, et al. “Llama: Open and efficient foundation language models.” arXiv preprint arXiv:2302.13971 (2023).

  5. Touvron, Hugo, et al. “Llama 2: Open foundation and fine-tuned chat models.” arXiv preprint arXiv:2307.09288 (2023).

  6. Gunasekar, Suriya, et al. “Textbooks Are All You Need.” arXiv preprint arXiv:2306.11644 (2023).

  7. Li, Yuanzhi, et al. “Textbooks are all you need ii: phi-1.5 technical report.” arXiv preprint arXiv:2309.05463 (2023).

  8. Chung, Hyung Won, et al. “Scaling instruction-finetuned language models.” arXiv preprint arXiv:2210.11416 (2022).

  9. Yuan, Zheng, et al. “Scaling relationship on learning mathematical reasoning with large language models.” arXiv preprint arXiv:2308.01825 (2023).

  10. Clark, Aidan, et al. “Unified scaling laws for routed language models.” International Conference on Machine Learning. PMLR, 2022.

  11. Tworkowski, Szymon, et al. “Focused transformer: Contrastive training for context scaling.” arXiv preprint arXiv:2307.03170 (2023).

  12. Chen, Yukang, et al. “Longlora: Efficient fine-tuning of long-context large language models.” arXiv preprint arXiv:2309.12307 (2023).

  13. Li, Dacheng, et al. “LightSeq: Sequence Level Parallelism for Distributed Training of Long Context Transformers.” arXiv preprint arXiv:2310.03294 (2023).

  14. Muennighoff, Niklas, et al. “Scaling Data-Constrained Language Models.” arXiv preprint arXiv:2305.16264 (2023).

  15. Xue, Fuzhao, et al. “To Repeat or Not To Repeat: Insights from Scaling LLM under Token-Crisis.” arXiv preprint arXiv:2305.13230 (2023).

  16. Gao, Leo, John Schulman, and Jacob Hilton. “Scaling laws for reward model overoptimization.” International Conference on Machine Learning . PMLR, 2023.


【声明】内容源于网络
0
0
谁说菜鸟不会数据分析
以大数据分析为驱动,spss/R/python/数据分析交流技术分享,实用教程干货,敬请期待,B站UP主:谁说菜鸟不会数据分析 有更多在线实操视频。
内容 498
粉丝 0
谁说菜鸟不会数据分析 以大数据分析为驱动,spss/R/python/数据分析交流技术分享,实用教程干货,敬请期待,B站UP主:谁说菜鸟不会数据分析 有更多在线实操视频。
总阅读104
粉丝0
内容498