当前位置:首页|资讯|AIGC

潞晨科技创始人尤洋:大模型训练的关键技术|WISE2023颠覆AIGC产业发展峰会

作者:沈筱发布时间:2023-05-28

5月23日,36氪举办「颠覆·AIGC」产业发展峰会。本次峰会汇聚产业力量,共同探讨企业、行业在面临变革时的应对策略,分享思考,探索和发现产业中最具潜力的企业与最具价值的技术,在激荡的环境中探寻前行的方向。

大会上,潞晨科技创始人 、新加坡国立大学校长青年教授尤洋发表了题为《大模型训练的关键技术》的主题演讲。尤洋指出,庞大的AI模型规模对模型训练提出了挑战,现有的硬件设备已无法满足训练所需的大量计算资源和储存空间需求。为解决上述问题,分布式训练技术是可用方案之一。

关于分布式优化技术在企业级大型模型的训练和部署中的应用,尤洋提出了三个关键点:高质量的数据集、计算网络存储的分布式系统,以及合适的基座模型。

具体来说,尤洋认为,企业在选择基座模型时,如果只需考虑业务应用,则可选择对现有的优秀开源模型进行少量的参数调整,无需过多创新;在训练技术的选择上,分布式训练面临通信和同步两大重要挑战。为此,企业可以使用分布式存储系统;在企业级大型模型的部署方面,保证模型的高效运行和可扩展性,以及大模型的管理和维护,例如模型更新、性能监控和故障处理等,均是企业需要关注的重点。

以下为尤洋演讲实录(经36氪整理编辑):

大家好,很荣幸能在今天的36kr活动上与大家交流。我将在本次演讲中分享关于大模型训练过程中的关键技术,以及分享我们创业公司的项目。我希望通过这次演讲,为大家科普一些相关知识,并介绍企业级大模型的解决方案。

我将按照以下目录结构进行演讲。首先,我们将探讨大模型时代所带来的机遇和挑战;其次,我们将讨论由于大模型的规模庞大,我们在训练、微调和部署过程中需要采用分布式训练技术;最后,我将介绍一些企业级大模型的解决方案。

让我们先来看一下当前大规模预训练自然语言处理(NLP)中常见的模型和结构。大多数模型的核心结构是基于Transformer的变体。Transformer主要有三种模式,即编码器(encoder)、解码器(decoder)以及同时包含编码器和解码器的Transformer模型。以将汉语翻译成法语为例,编码器将输入的每个单词进行编码,并提供每个单词的语义理解。这一过程实际上是一个简单的语义理解过程。解码器则负责生成法语翻译结果,编码器和解码器之间起到良好的隔离作用。目前最流行的模型是纯解码器模型,例如GPT,而在四五年前,最流行的是纯编码器模型,而T5则是一个同时包含编码器和解码器的模型。在短短几年内,各大公司和科研机构纷纷发布了自己的大规模模型。

大模型引起了广泛的关注,谷歌和OpenAI等公司做出了很多贡献。国内的一些单位,如智源,也进行了一些尝试。根据目前的规模来看,大模型的参数量已接近万亿级别,有人认为OpenAI的GPT-4已经超过了万亿参数,尽管具体情况尚不明确。未来是否会出现千万亿参数模型还不清楚,这可能需要我们在训练过程中使用更好的技术来提取整个模型的能力。

接下来,让我们来看一下过去六年内的模型发展情况。横坐标表示时间,纵坐标表示AI模型的参数量。从图中可以看出,在过去的六年里,我们的模型规模增长了数千倍。2016年,微软的模型只有2千万个参数,而今天的GPT-4模型参数量大约在1万亿到100万亿之间。具体而言,每18个月,这个模型的规模至少增长了40倍。从2019年到现在,每18个月模型的规模大约增长了340倍。

然而,目前的问题是我们的硬件跟不上模型的发展。以目前最流行的AI训练软件GPU内存增长来看,每18个月增长1.7倍。我将解释为什么训练大模型需要成这种增长速度远远赶不上大模型的需求。大模型的训练需要大量的计算资源和存储空间,而现有的硬件设备往往无法满足这些需求。为了解决这个问题,我们需要采用分布式训练技术。分布式训练是指将一个大模型的训练任务划分为多个小任务,并在多台计算机上同时进行训练。通过将计算任务分布到多个计算节点上,我们可以充分利用集群中的计算资源,加快训练速度。

首先,让我们来讨论训练大型模型的第一步,即寻找适合的数据集。假设我是一名普通工程师,没有任何资源,那么我是否有可能训练自己的大模型呢?答案是肯定的。在互联网上有一些公开免费的数据集,我们可以将它们进行融合,从而帮助我们训练一个不错的大型模型。例如,C4、GitHub和Books等数据集都是公开的,C4包含了互联网上的内容,GitHub是代码数据集,Books包含各种知识类的数据,而百科则是百科类的数据。将这些公开数据集整合起来,可以为我们自己训练大型模型提供良好的基础,如果我们将这些数据集训练好,我们的模型效果至少可以达到Facebook的水平。

接下来,我们需要选择一个基准模型,或者说我们需要有一个参照物来训练自己的模型。我总结了国内一些大厂的大型模型,很多都受到了GPT-3的启发,因此目前我们相对容易找到一个参照物。简单来说,我们可以基于GPT-3的思想设计自己的模型,只要我们对这个思想比较熟悉,就可以迅速设计出自己的模型。至于训练环节需要多少GPU、需要购买多少GPU,我们可以查阅OpenAI的公开数据。根据数据,至少需要1000个GPU。为什么需要这么多GPU呢?我来做一个简单的高中数学解释。假设一个GPU拥有4000亿个模型参数,每个参数占用4个字节,那么总共需要400乘以10的9次方的参数,即需要1600 GB的内存。同样,模型的T度(Transformer的数量)和参数的大小相同,所以T度也需要1600 GB的内存。在目前的主流优化算法中,一级矩和二级矩的存储也需要1600 GB的内存,总计6400 GB的内存。此外,我们还需要存储许多中间结果。假设我们每次处理一个数据点,将bgst(中间结果)设为1,假设我们将中间结果的内存最小化,那么大约需要1600 GB的内存。因此,即使只训练一个数据点,理论上至少需要1600 GB乘以5,即8 TB的内存。然而,这是不可能的,我们不能将bgst设为1,也不能没有数据,所以实际上需要海量的内存。但是每个GPU只有80 GB的内存,这就是为什么我们需要成百上千个GPU的原因,这是内存不足的第一个原因。

另一个重要的原因是计算能力。即使我们使用一些内存优化的方案,将模型参数和梯度存储在服务器的磁盘内存中,这种情况下训练速度也会非常慢。让我们来举一个简单的例子,暂时不考虑GPT-3.5,假设我们使用一个非常小的模型,只有2000万个参数,这是一个非常小的AI模型。假设我们要训练这个模型,我们需要进行高中数学的操作次数是多少?首先,我们需要训练模型90个epoch(遍),这意味着我们需要将数据集训练90次。大家可以想象一下,为了使AI学习一个东西,我们需要让它观察这个东西90次才能学会,这一点说明了AI未来仍然有很大的优化空间,因为人类学习一般只需要看三四五次就可以了。每个epoch中,我们处理了130万张图片,每张图片需要进行770亿次操作。因此,训练一个ResNet-50这样的玩具级模型,我们需要进行90乘以130万乘以770亿次操作,总共需要10的18次方的操作。然后,让我们来看一下训练GPT-3的情况,即使是训练一个非常小的模型,我们现在需要8个A100 GPU,大约需要100个小时。如果我们有能力将GPT-3的所有参数和梯度优化状态都装入一个服务器,那么现在可能需要几百年甚至上千年才能完成训练。这也是为什么我们需要成百上千个GPU才能完成训练的原因。

所以,为了训练大型模型,我们不仅需要解决内存不足的问题,还需要强大的计算基础设施。在我的演讲中,我将介绍一些关键的技术,这些技术是训练和部署企业级大型模型所必需的。

在训练大型模型时,我们需要依靠分布式优化技术。这个流程包括四个层次:高质量的数据集、计算网络存储的分布式系统,以及在更高层次上,我们需要选择一个合适的基座模型。

在选择模型时,如果我们只是想在自己的业务中应用它,我认为并不需要过于创新。目前AI领域有许多开源解决方案,如LLaMA、BERT和Transformer,我们可以稍作修改,大多数情况下效果还是相当不错的。去年10月,我有幸与OpenAI的两位创始人进行了面对面的交流,他们使用了Transformer作为GPT-3的基座模型,并且没有对许多参数进行改动。谷歌也使用了Transformer作为BERT模型的基础,他们也没有进行太多的参数调整。因为Transformer的鲁棒性非常好,所以在特定场景中使用它已经足够。目前还有一些更好的模型,如GPT-3和T5,我们也可以尝试使用它们。谷歌在2020年提出的Palm模型在提升其聊天服务方面取得了显著的效果,这个模型有许多创新点,大家可以对它进行研究,我认为它也是一个不错的基座方案。

在选择基座模型之后,我们需要考虑如何进行训练技术的选择。这个领域有着简要的发展历史。人们曾经使用参数服务器和异步优化方法进行训练,这种方法的好处是可以随意增加机器数量,例如100台机器也没有什么问题。但是,异步优化的收敛速度较慢。现在,包括英伟达、微软和谷歌在内的许多公司都在采用以高性能计算(HPC)为核心的数据并行和张量并行技术。数据并行是将大量数据点分配到不同的机器上进行计算,因为目前神经网络的发展趋势是向宽度发展,例如ResNet只有50层,GPT只有100层,因此更准确地说,我们现在不是在进行深度学习,而是在进行宽度学习。在数据并行和张量并行的方法中,不同的方案有不同的优势和适用场景。

在分布式训练中,通信和同步是两个重要的挑战。由于计算节点之间需要频繁地进行参数传递和同步,网络通信的效率对于整个训练过程至关重要。高效的通信机制可以减少训练时间,并提高分布式训练的可扩展性。另一个挑战是数据的并行化和分布式存储。在大规模数据集上训练大模型时,数据的加载和传输可能成为训练的瓶颈。解决这个问题的一种方法是使用分布式存储系统,将数据分布式地存储在多个节点上,并通过高速网络进行数据访问。这样可以加快数据加载的速度,提高整体的训练效率。

除了分布式训练技术,企业级大模型的解决方案也是一个重要的话题。企业级大模型需要考虑模型的部署、管理和应用。如何将训练好的大模型快速部署到生产环境中,并保证模型的高效运行和可扩展性是一个关键问题。此外,对于大模型的管理和维护也需要一套完整的解决方案,包括模型更新、性能监控和故障处理等。

在潞晨科技,我们专注于解决大模型训练和应用中的挑战。我们的公司推出了一系列的服务,其中包括完全开源的Colossal-AI技术。我们的生态系统主要包括三个方面:异构管理系统、并行技术和系统部署,可以帮助用户快速、无缝地部署他们自己的AI模型。我们的愿景是通过以几万美元完成GPT模型的训练,并将微调过程降低到几百人民币的水平。

我们致力于为企业提供无缝的部署和训练体验。根据我们公司的生态图,ColossalAI的增长速度超过了传统软件,因此我们在全球拥有上千个用户,并且星数已经达到了3万,我们的用户遍布中国、美国、欧洲、印度和东南亚等地区。

在大模型时代,机遇和挑战并存。通过合理利用分布式训练技术和企业级大模型解决方案,我们可以实现更快、更强大的训练,并将大模型的应用推向新的高度。让我们共同努力,推动大模型技术的发展,为科学、商业和社会带来更大的益处。

再次感谢36kr组织这次活动,谢谢大家!

整理|沈筱


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1