经过几年时间的发展,大语言模型(LLM)已经从新兴技术发展为主流技术。而以大模型为核心技术的产品将迎来全新迭代。本文将介绍如何从头训练一个大语言模型。
更多介绍可以参考论文:《Current Best Practices for Training LLMs from Scratch》:https://uploads-ssl.webflow.com/5ac6b7f2924c656f2b13a88c/6435aabdc0a041194b243eef_Current%20Best%20Practices%20for%20Training%20LLMs%20from%20Scratch%20-%20Final.pdf
Build vs. Buy Pre-trained LLM Models
在训练大模型前,最好先考虑一下是否真的需要自己从头开始预训练一个大模型,通常来说有三个选择:
(1)不训练,直接调用现有大模型厂商(比如openai提供的chatgpt、GPT4)提供的API服务来商业落地。
(2)基于市面上已有的大模型基座(比如GPT-J、BLOOM等等)进行热启进行二次训练。
(3)完全从头开始训练一个大模型。
到底该选择哪个?总结来说就是从(1)到(3),需要的投入越来越大,但是自主控制权和自身壁垒也随着会越来越高。
The Scaling Laws
在决定好了确实要训练大模后,紧接着面临的一个问题就是:训练多大的模型呢?
openai在早前2020年的一篇文章说不断的加大模型的参数量很重要,比增加训练数据量要重要的多,但是这一结论在随后2022年Deepmind的一篇文章发现了变化,Deepmind发现现在很多大模型其实都没有被更加充分的训练,为了证明这一点Deepmind训练了一个相比于Gopher更小的Chinchilla模型,其大小只有Gopher四分之一,但是它用了4.6倍的数据来训练,最后的效果优于Gopher。
Deepmind指出为了获得更好的性能,模型参数量和数据量应该同时增加,即如果预算愿意增加10倍的话,那最好在模型参数量和数据量分别拆开增加3.1倍扩大,如果是愿意增加100倍预算的话,那最好在模型参数量和数据量分别拆开增加10倍扩大。
HARDWARE
在规划好了参数量以及数据后,接下来需要考虑的就是硬件了,训练大模型是非常吃GPU资源的。其中内存和计算利用效率是两个重要的考虑方面。
Techniques for Parallelization
并行化技术主要就是大规模利用GPU来进行并行化任务
(1)Data Parallelism
这是最常见的并行化手段,它主要是把数据分成多个块,然后每个节点就可以在本地独立的跑各自的数据任务,最后再和其他节点通信,进而汇总最后的结果;它的好处就是计算效率高,每个节点可以独自计算自己的任务且这种方法易于实现,但是缺点就是内存要求较高,因为它需要把模型在每个节点都完整的copy一份。
(2)Tensor Parallelism
张量并行就是将大型矩阵乘法分解为较小的子矩阵计算,然后使用多个GPU同时执行这些计算。这样可以通过异步性和减少节点之间的通信开销来加快训练时间。张量并行的好处是它具有提高了内存效率,但是缺点就是它在每次前向和反向传播中引入了额外的通信,因此需要较高通信带宽。
(3)Pipeline parallelism and model parallelism
Pipe并行和模型并行可以尽可能减少通信,显著的提高训练速度。如果对比上述张量并行来看的话,Pipe并行和模型并行属于“层间并行”,而张量并行属于“层内并行”,具体来说模型并行是将模型分割到多个GPU上,并对每个模型使用相同的数据;因此,每个GPU处理的是模型的一部分,而不是数据的一部分。同时这两种方法的缺点是:并行的程度受到模型深度的限制,因此无法无限扩展。当然了还可以把上面的并行技术进行打包组合,一并利用起来,比如NVIDIA提出来的PTD-P方法是在多机之间利用pipeline parallelism,在单机多卡上面利用tensor parallelism和Data Parallelism;为了将这些技术更加方便的用到深度深度学习领域,一些深度学习框架比如TensorFlow, Torch等等都进行了很好的支持。
(4) Gradient accumulation
梯度累计是将多个batch的梯度进行累计,然后统一更新,其减少了多GPU之间的通信。
(5) Asynchronous stochastic gradient descent optimization
其主要思路就是每次计算一个很小的batch,然后把梯度收集好,然后等到最后需要更新模型参数的时候再把这些梯度发回到servers。
(6) Micro-batching
Micro-batching就是把非常小的small mini-batches组合成大batch,这个idea也越来越收欢迎。
DATASET COLLECTION
硬件准备好后,接下来就是收集数据了,低质量的数据训练出来的模型也是很垃圾的。对高质量、海量、多样化的数据集进行仔细处理,直接有助于模型在下游任务中的性能以及模型的收敛。
数据多样性尤其重要,只有当模型见过足够多种类的数据后,他在后续多种下游任务中才有可能表现出惊艳的性能。所以可以尽可能使得数据*来源多样性*,比如公开开源语料,代码数据,教科书等等。同时作者还介绍了一下Pile这个数据集,它是一个开源的大规模数据集,十分珍贵。
DATASET PRE-PROCESSING
本节主要讲一些数据预处理的工作,这也是数据环节最重要的一环,其旨在得到一个高质量的数据。
(1)Data sampling
数据采样是一个最基本的手段,最容易想到的上采样一些高质量来源的数据,下采样一些低质量的数据。当然这也和最终想要一个什么样的模型有关,比如 Meta AI就是想训练一个science的大模型,所以其主要就是采样用一些paper的数据等等。甚至可以训练一个分类器来过滤数据。
(2)Data cleaning
对数据进行清洗和重新格式化,比如删除HTML代码或标记等等。此外,对于某些项目,还会纠正拼写错误、处理跨领域同形异义词,或者删除有偏见/有害言论等等,不过一些其他项目认为模型应该看到真实文本世界,并自动学会处理拼写错误和有害内容,所以不采用后面这些处理。
(3)Non-standard textual components handling
该部分就是需要把非文本的部分转化为文本,比如表情包等等。
(4)Data deduplication
数据去重,比如常用的LSH。LinkedHashSet是在一个ArrayList删除重复数据的最佳方法。
(5) Downstream task data removal
数据泄漏就是怕测试数据集不小心正好在训练集中,所以可以使用下游任务数据移除方法(如n-grams)来删除在测试数据集中也存在的部分训练数据。
Tokenization
文本id化就是tokenizer的活了,作者在这里也进行了一番总结:目前最流行的就是subword-based tokenizers比如byte-pair encoding (BPE)。同时作者也给出了在选择tokenizer的时候需要考虑的一些方面,由于subword-based比较流行,作者进一步给了其更多的细节。
PRE-TRAINING STEPS
训练一个拥有数十亿参数的语言模型是一个高度实验性的过程,需要进行大量的试错成本。所以可以从训练一个更小的模型开始,确保流程都没问题且有效果,然后逐渐扩大到模型的参数量。随着规模的扩大,会出现一些需要新的需要解决的问题。
(1)Model Architecture
为了降低试错成本,可以借鉴一些已经成功模型的框架比如GPT3的模型框架比如GPT-NeoX-20B、OPT-175B都是在GPT3的模型框架的基础上做了一些优化。
(2)Experiments and Hyperparameter Search
预训练过程涉及大量实验,这里面有大量的超参,比如:权重初始化、位置嵌入、优化器、激活函数、学习率、权重衰减、损失函数、序列长度、层数、注意力头数、参数数量、稠密层与稀疏层、batchsize和dropout等等。
这里一般会结合手动试错和自动超参数优化(HPO)的方式,来寻找最佳的配置组合以实现最佳性能。典型的需要进行自动搜索的超参数包括学习率、batchsize、dropout等。
但是毕竟训练一个百亿参数的模型是非常耗费资源的,所以不可能全部无脑搜索参数,这里可以借鉴一些已有的工作,此外,还有一些超参数需要在训练时进行调整,以平衡学习效率和训练收敛性。
学习率:前期线性增加,然后再衰减。batchsize开始时使用较小,然后逐渐增加到较大的size。
不过在训练这么大且复杂的大模型,就像其他任何足够大且复杂的项目一样,随时可能会出现各种问题。
(3)Hardware Failure
在训练过程中,硬件可能会随时出现一些故障问题,这个时候不得不手动进行自动重新启动,这个时候可以以保存的最后一次checkpoint热启继续训练,同时记得把故障的节点进行隔离。
(4)Training Instability
训练的稳定性也是一个最常见的基本挑战。在训练模型时学习率和权重初始化等超参数会直接影响模型的稳定性。比如当loss开始学崩时,同样可以从较早的checkpoint降低学习率然后重新开始训练。
模型越大loss越可能发生波动也就是学崩,目前还没有系统性的全面分析,下面是一些实践经验来提高模型收敛。
(a)Batch size: 在GPU资源允许的情况下,把size开到最大。
(b)Batch Normalization: 在mini-batch内对激活层归一化。
(c)Learning Rate Scheduling: 较高的学习率可能会导致loss振荡或发散,从而导致损失波动。可以随时间递减学习率以,即逐渐减小模型参数的更新幅度,提高稳定性。常见的schedules包括step decay等等。不过事先很难确定要使用哪种学习率,但可以使用不同的学习率schedules方式来观察模型的反应。
(d)Weight Initialization: 好的模型权重初始化可以直接帮助模型最后的收敛,最常见的就是高斯噪声初始化,或者在Transformer模型中使用T-Fixup初始化。
(e)Model training starting point: 如果已经有一个在相关任务中训练好的预训练模型,那么可以基于其热启,这样可以大大提高模型的收敛。
(f)Regularization: 一些正则化技术比如dropout、权重衰减和L1/L2正则化,这些都可以通过减少过拟合和提高泛化能力来帮助模型更好地收敛。
(g)Data Augmentation: 通过数据增强对训练数据进行扩充也可以帮助模型更好地泛化并减少过拟合。
(h)Hot-swapping during training: 在训练奔溃的时候,可以手动调整optimizers和activation激活函数,甚至这个过程需要一整个团队全天候监控,然后看到学崩后就要看情况想办法应对性的调整。
(i)Other simple strategies mitigating the instability issue when encountered: 如果学崩,可以跳过loss波动期间出现的一些batch数据(这是因为当前特定batch数据与当前特定模型参数的组合导致了loss波动),即从之前的checkpoint重新热启开始训。
另外需要千万注意的就是确保保存和保留最终模型训练环境和checkpoint。这样,如果将来需要重新执行某些操作或复制某些内容,就可以接着做了。
同时还可以尝试一些消融研究。这可以帮助了解将模型的某些部分移除可能会对性能产生何种影响。消融研究可以大幅减小模型的大小,同时仍保留大部分模型的预测性能。
MODEL EVALUATION
训练好了模型,接下来就是评估模型了,通常会有很多benchmark数据集以评估其在逻辑推理、翻译、自然语言推理、问答等方面的能力。
另外评估中还有一个术语n-shot学习,比如常见的就是Zero-shot、One-shot、Few-shot。
除了一些benchmark,NLP专业人员和领域专家都可以进行更专业的评估。
零基础如何高效学习大模型?
你是否懂 AI,是否具备利用大模型去开发应用能力,是否能够对大模型进行调优,将会是决定自己职业前景的重要参数。
为了帮助大家打破壁垒,快速了解大模型核心技术原理,学习相关大模型技术。从原理出发真正入局大模型。在这里我和鲁为民博士系统梳理大模型学习脉络,这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码免费领取🆓**⬇️⬇️⬇️
【大模型全套视频教程】
教程从当下的市场现状和趋势出发,分析各个岗位人才需求,带你充分了解自身情况,get 到适合自己的 AI 大模型入门学习路线。
从基础的 prompt 工程入手,逐步深入到 Agents,其中更是详细介绍了 LLM 最重要的编程框架 LangChain。最后把微调与预训练进行了对比介绍与分析。
同时课程详细介绍了AI大模型技能图谱知识树,规划属于你自己的大模型学习路线,并且专门提前收集了大家对大模型常见的疑问,集中解答所有疑惑!
深耕 AI 领域技术专家带你快速入门大模型
跟着行业技术专家免费学习的机会非常难得,相信跟着学习下来能够对大模型有更加深刻的认知和理解,也能真正利用起大模型,从而“弯道超车”,实现职业跃迁!
【精选AI大模型权威PDF书籍/教程】
精心筛选的经典与前沿并重的电子书和教程合集,包含《深度学习》等一百多本书籍和讲义精要等材料。绝对是深入理解理论、夯实基础的不二之选。
【AI 大模型面试题 】
除了 AI 入门课程,我还给大家准备了非常全面的**「AI 大模型面试题」,**包括字节、腾讯等一线大厂的 AI 岗面经分享、LLMs、Transformer、RAG 面试真题等,帮你在面试大模型工作中更快一步。
【大厂 AI 岗位面经分享(92份)】
【AI 大模型面试真题(102 道)】
【LLMs 面试真题(97 道)】
【640套 AI 大模型行业研究报告】
【AI大模型完整版学习路线图(2025版)】
明确学习方向,2025年 AI 要学什么,这一张图就够了!
👇👇点击下方卡片链接免费领取全部内容👇👇
抓住AI浪潮,重塑职业未来!
科技行业正处于深刻变革之中。英特尔等巨头近期进行结构性调整,缩减部分传统岗位,同时AI相关技术岗位(尤其是大模型方向)需求激增,已成为不争的事实。具备相关技能的人才在就业市场上正变得炙手可热。
行业趋势洞察:
- 转型加速: 传统IT岗位面临转型压力,拥抱AI技术成为关键。
- 人才争夺战: 拥有3-5年经验、扎实AI技术功底和真实项目经验的工程师,在头部大厂及明星AI企业中的薪资竞争力显著提升(部分核心岗位可达较高水平)。
- 门槛提高: “具备AI项目实操经验”正迅速成为简历筛选的重要标准,预计未来1-2年将成为普遍门槛。
与其观望,不如行动!
面对变革,主动学习、提升技能才是应对之道。掌握AI大模型核心原理、主流应用技术与项目实战经验,是抓住时代机遇、实现职业跃迁的关键一步。
01 为什么分享这份学习资料?
当前,我国在AI大模型领域的高质量人才供给仍显不足,行业亟需更多有志于此的专业力量加入。
因此,我们决定将这份精心整理的AI大模型学习资料,无偿分享给每一位真心渴望进入这个领域、愿意投入学习的伙伴!
我们希望能为你的学习之路提供一份助力。如果在学习过程中遇到技术问题,也欢迎交流探讨,我们乐于分享所知。
*02 这份资料的价值在哪里?*
专业背书,系统构建:
-
本资料由我与鲁为民博士共同整理。鲁博士拥有清华大学学士和美国加州理工学院博士学位,在人工智能领域造诣深厚:
-
- 在IEEE Transactions等顶级学术期刊及国际会议发表论文超过50篇。
- 拥有多项中美发明专利。
- 荣获吴文俊人工智能科学技术奖(中国人工智能领域重要奖项)。
-
目前,我有幸与鲁博士共同进行人工智能相关研究。
内容实用,循序渐进:
-
资料体系化覆盖了从基础概念入门到核心技术进阶的知识点。
-
包含丰富的视频教程与实战项目案例,强调动手实践能力。
-
无论你是初探AI领域的新手,还是已有一定技术基础希望深入大模型的学习者,这份资料都能为你提供系统性的学习路径和宝贵的实践参考,助力你提升技术能力,向大模型相关岗位转型发展。
抓住机遇,开启你的AI学习之旅!