LLM:Training Compute-Optimal Large Language Models

news/2024/11/25 15:39:52/

论文:https://arxiv.org/pdf/2203.15556.pdf

发表:2022

前文回顾:

OpenAI在2020年提出《Scaling Laws for Neural Language Models》:Scaling Laws(缩放法则)也一直影响了后续大模型的训练。其给出的结论是最佳计算效率训练涉及在相对适中的数据量上训练非常大的模型并在收敛之前early stopping所以后续的工作都专注于提升参数规模,设计越来越大的模型,而不是在更多的数据上训练较小的模型。每个人都认为模型大小比数据大小重要的多得多!但DeepMind在2022年提出了不同的看法。

摘要

1:目前的LLM大模型训练都不够充分,原因是:大部分精力主要花费在扩大模型尺寸上,训练数据却没有同步增长。这个主要是受OpenAI论文观点的影响) 

2:DeepMind团队发现:最优的训练是模型尺寸和训练的Token数量应该是等比例增长。如果模型尺寸翻倍,token数量也应该翻倍。

简介

DeepMind得到了与OpenAI相同的结论:大模型在训练到loss最低前已经到算力最优了,即在收敛前进行early stopping。尽管得出了同样的结论,但DeepMind认为:大型模型应训练更多的token,远超过OPenAI作者推荐的数量。具体来说,给定计算预算增加10倍,OpenAI建议模型大小应增加5.5倍,而训练token数量只应增加1.8倍。相反,DeepMind认为模型大小和训练令牌数量应该以相同的比例增长。

相关工作

OpenAI首先观测到了scale law法则,DeepMind也采用了相同的技术手段:训练不同尺寸的模型,然后进行观测。但他们存在以下不同点。

1:OpenAI固定了训练的token数目以及学习率方案,这阻止了他们研究这些超参数对损失的影响。相反,DeepMind发现将学习率调度设置为大约匹配训练token数量可以导致最好的最终损失,无论模型大小如何作者举例:130B token,使用cosine学习率。因为会在收敛前进行早停,所以观测到的都是中间状态(即训练token数量还没有到130B token 时候的loss),使用这些中间损失观测,导致对训练模型在小于130B token的数据上的有效性的低估,并最终导致了一个结论,即模型大小应比训练数据大小增长得更快。DeepMind的观点是同比例缩放

2:OpenAI使用的模型参数量比较小,DeepMind观测的范围更广。

3 估计最优的参数 / 训练token数目

首先训练一系列模型:模型大小和训练数据数量两方面都有所不同,然后使用所得到的训练曲线来拟合他们应该满足的经验规律。

训练70M到10B的一系列模型大小,每个模型大小针对四个不同的余弦周期长度进行训练。从这些曲线中,提取了每FLOP最小损失的包络,并用这些点来估计给定计算量条件下最优模型大小以及最优训练token数。(此处的scale law 实践与OpenAI一致)。从上图不难看出:模型越大,需要的算力越大,需要的token也越多。

左图可以看到计算量与模型性能呈现幂律关系(可以认为数据和模型都不受限制),根据中图和右图,可以发现N_{opt}\propto C^{a }D_{opt}\propto C^{b },即计算效率最优时,模型的参数与计算量的幂次成线性关系,数据量的大小也与计算量的幂次成线性关系

根据C=6ND,可以推算出a+b=1,但是a,b分别是多少存在分歧。

OpenAI:认为模型规模更重要,即a=0.73, b=0.27,

DeepMind在Chinchilla工作和Google在PaLM工作中都验证了 a=b=0.5 ,即模型和数据同等重要。

所以假定计算量整体放大10倍,OpenAI认为模型参数更重要,模型应放大10^{0.73} (5.32)倍,数据放大 10^{0.27} (1.86)倍;后来DeepMind和Google认为模型参数量与数据同等重要,两者都应该分别放大 10^{0.5} (3.16)倍。

3.1 方案1:固定模型,训练不同的token数目

通过方案1,得到N、D与C的幂次关系:模型尺寸和数据量同等重要,缩放比例相同,均为0.5。 

3.2 方案2:固定FLOP

 

选取9种不同的计算量:e18−e21 ,观测不同参数量模型的训练情况:

在每条曲线的最小值的左侧,模型太小——在较少数据上训练的较大模型将是一种改进。

在每条曲线的最小值的右侧,模型太大——在更多数据上训练的较小模型将是一种改进。

最好的模型处于最小值。

 这个是DeepMind推荐的模型参数N、训练数据D、训练算力C的配比。可以发现和OpenAI的推荐是不一样的。也与BaiChuan2中7B/13B训练需要2.6T的数据量对不上。


http://www.ppmy.cn/news/1326214.html

相关文章

01 MyBatisPlus快速入门

1. MyBatis-Plus快速入门 版本 3.5.31并非另起炉灶 , 而是MyBatis的增强 , 使用之前依然要导入MyBatis的依赖 , 且之前MyBatis的所有功能依然可以使用.局限性是仅限于单表操作, 对于多表仍需要手写 项目结构: 先导入依赖,比之前多了一个mybatis-plus…

VUE组件--动态组件、组件保持存活、异步组件

动态组件 有些场景可能会需要在多个组件之间进行来回切换&#xff0c;在vue中则使用<component :is"..."> 来实现组件间的来回切换 // App.vue <template><component :is"tabComponent"></component><button click"change…

Verilog基础:强度建模(二)

相关阅读 Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482 三、拥有单个强度和确定值的net型信号的线与组合&#xff08;线网多驱动&#xff09; 首先来说明一下什么叫信号拥有单个强度和确定值&#xff0c;其实如果一个ne…

数据分析中常用的指标或方法

一、方差与标准差二、协方差三、皮尔逊系数四、斯皮尔曼系数五、卡方检验六、四分位法和箱线图七、 一、方差与标准差 总体方差 V a r ( x ) σ 2 ∑ i 1 n ( x i − x ˉ ) 2 n ∑ i 1 n x i 2 − n x ˉ 2 n E ( x 2 ) − [ E ( x ) ] 2 Var(x)\sigma^2\frac {\sum\l…

Redis: Redis介绍

文章目录 一、redis介绍二、通用的命令三、数据结构1、字符串类型&#xff08;String&#xff09;&#xff08;1&#xff09;介绍&#xff08;2&#xff09;常用命令&#xff08;3&#xff09;数据结构 2、列表&#xff08;List&#xff09;&#xff08;1&#xff09;介绍&…

02-编程猜谜游戏

本章通过演示如何在实际程序中使用 Rust&#xff0c;你将了解 let 、 match 、方法、关联函数、外部crate等基础知识。 本章将实现一个经典的初学者编程问题&#xff1a;猜谜游戏。 工作原理如下&#xff1a;程序将随机生成一个介于 1 和 100 之间的整数。然后&#xff0c;程序…

渣土车识别摄像机

渣土车识别摄像机是一种应用于城市管理和交通监控领域的先进技术设备。它通过摄像头实时捕捉道路上行驶的车辆画面&#xff0c;并利用先进的图像识别和算法分析技术对渣土车进行准确识别。渣土车识别摄像机的设计需要兼顾高清晰度、高速度、大容量等特点&#xff0c;以满足实际…

分类预测 | Matlab实现ISSA-SVM基于多策略混合改进的麻雀搜索算法优化支持向量机的数据分类预测

分类预测 | Matlab实现ISSA-SVM基于多策略混合改进的麻雀搜索算法优化支持向量机的数据分类预测 目录 分类预测 | Matlab实现ISSA-SVM基于多策略混合改进的麻雀搜索算法优化支持向量机的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 基于多策略混合改进的麻…