技术创新研究院使用Amazon SageMaker培训最先进的Falcon LLM 40B基础模型

本博客文章与TII LLM项目领导、AI-Cross中心执行主任暨首席AI研究员Dr. Ebtesam Almazrouei博士共同撰写。

阿布扎比先进技术研究理事会(TII)的应用研究支柱——技术创新研究院(TII),推出了一个拥有40亿参数的基础大型语言模型(LLM)——Falcon LLM。TII是致力于推动知识前沿的领先全球研究中心。TII的科学家、研究人员和工程师致力于提供发现性科学和变革性技术。TII的工作重点是打破未来社会的瓶颈。TII Falcon LLM训练数据达到1万亿标记,性能卓越,成本极低。Falcon-40B在公共Hugging Face开放LLM排行榜中排名第一,性能与其他高性能LLM相当。Falcon-40B提供两种不同大小的开源版本——Falcon-40B和Falcon-7B,并基于Amazon SageMaker上的数据预处理和模型训练工作进行全新构建。开源Falcon-40B使用户能够构建和定制适用于独特用户需求的AI工具,促进无缝集成并确保数据资产的长期保护。模型权重可供下载、检查和部署到任何地方。

从6月7日开始,Falcon LLM将在Amazon SageMaker JumpStart中提供。SageMaker JumpStart是SageMaker机器学习(ML)中心,提供预训练模型、内置算法和预构建解决方案模板,以帮助您快速开始使用ML。您可以通过SageMaker Studio或通过SageMaker Python SDK轻松地部署和使用Falcon LLM。要部署和运行Falcon LLM的推理,请参阅“介绍SageMaker JumpStart——使用Falcon LLM生成文本”的示例笔记本。

TII AI-Cross中心执行主任暨首席AI研究员Dr. Ebtesam Almazrouei表示:

“我们自豪地宣布Falcon-40B的官方开源发布,这是世界上排名第一的开源语言模型。Falcon-40B是一个拥有40B参数的特殊开源模型,专门设计为因果解码器模型。它是在包括经过策展的语料库在内的1,000B标记数据集上进行训练的。该模型在Apache 2.0许可下提供,确保其可访问性和可用性。Falcon-40B在由Hugging Face维护的公共排行榜上超过了像LLaMA-65B、StableLM和MPT这样的知名模型。Falcon-40B的架构针对推理进行了优化,采用了FlashAttention和multiquery技术。”

“这一步反映了我们致力于推动AI创新和技术准备水平的承诺,以及推动社区参与、教育、实际应用和合作。继续Dr Ebtesam说道。通过将Falcon-40B作为开源模型发布,我们为研究人员、企业家和组织提供了利用其卓越能力推动从医疗保健到空间、金融、制造业到生物技术的AI驱动解决方案进步的机会;AI驱动解决方案的可能性是无限的。要访问Falcon-40B并探索其卓越潜力,请访问FalconLLM.tii.ae。加入我们,利用Falcon-40B的力量塑造AI的未来,革命化产业”

在本文中,我们与Dr. Almazrouei博士一起深入研究Falcon LLM在SageMaker上的训练、数据处理、优化、性能和下一步工作。

一代新的LLMs

LLMs是训练完成自然文本序列的软件算法。由于其规模和与之交互的训练数据量,LLMs具有令人印象深刻的文本处理能力,包括摘要、问答、上下文学习等。

2020年初,全球的研究机构开始关注模型大小,观察到准确性与参数数量相关。例如,GPT-3(2020)和BLOOM(2022)具有约1750亿个参数,Gopher(2021)有230亿个参数,MT-NLG(2021)有530亿个参数。2022年,霍夫曼等人观察到模型参数和数据集大小之间的计算平衡不够优化,并发布实证缩放定律,建议将计算预算平衡到更小的模型上,训练更多的数据可能会导致性能更好的模型。他们在70B参数的Chinchilla(2022)模型中实施了他们的指导,该模型的性能超过了更大的模型。

在 SageMaker 上进行 LLM 训练

SageMaker 是一组托管的 API,用于开发、训练、调整和托管机器学习(ML)模型,包括 LLM。许多客户依赖 SageMaker 处理其 LLM 工作负载,例如 Stability AI、AI21 Labs、Hugging Face 和 LG AI。SageMaker Training 通过用户定义的硬件配置和代码提供计算集群。计算作业按运行计费,按秒按比例计算,这意味着用户不使用服务时不会被收取 GPU 容量费用。TII 使用 SageMaker Training API 提供的短暂集群来训练 Falcon LLM,最多使用 48 个 ml.p4d.24xlarge 实例,累计使用 384 个 NVIDIA A100 GPU。现在,TII 正在训练下一个 Falcon LLM,将他们的训练扩展到了 3,136 个 A100 GPU(392 个 ml.p4d 实例)。

项目的所有层面都进行了前所未有的自定义创新,以提高科学质量和训练速度。在接下来的几节中,我们将描述 TII 在深度学习(DL)训练系统的所有层面上所进行的优化。

可扩展的数据筛选

最新一代的 LLMs 从训练数据的规模和质量中获得力量。该团队特别关注高质量的万亿级令牌数据集的制作。多个 SageMaker Training CPU 作业将 PB 级的廉价可扩展 Web 数据转换为经过筛选的安全训练数据集。自动化系统过滤和去重数据;例如,使用 ML 分类器过滤亵渎语言。使用 ml.c5.18xlarge(72 个 vCPUs,144 GB RAM)上运行的 CPU 作业可以通过 SageMaker Training 的几个 API 调用来实例化,以运行数据转换任务。该团队为不同的用例使用了单个实例和多个实例的 CPU 作业。其中一些作业使用数百个并行的共享无内容(SNA)作业,每个作业在单个机器上运行,对于需要工作人员间同步的任务,团队启动了多个实例作业,累计了数十个实例和数千个 vCPUs。流传的是,在下游的数据集准备任务中,该团队在单个 SageMaker Training 作业中使用了 257 个 ml.c5.18xlarge,累计使用了 18,504 个 vCPU 和 37 TB 的内存。

最大化训练吞吐量

为了将培训成本和上市时间最小化,该团队追求了几个方向的优化,以加速与处理的训练令牌成比例的训练速度,并以 TFLOPs/GPU 测量。该团队使用了一个完全自定义的 3D 并行 LLM 训练框架,具有使用编译的 GPU 代码编写的自定义优化层。该团队甚至进一步编写了自己的自定义矩阵乘法实现,以获得更快的速度!该团队还开发了适应底层网络拓扑的并行通信逻辑。在其初始的扩展实验中,TII 能够在 256 个 GPU 上的 147B 模型上达到 166 TFLOPs/GPU,以及在 16 个 GPU 上的 13B 模型上达到 173 TFLOPs/GPU,在我们所知道的最快的模型 TFLOPs 测试中,时间为 2022 年末。

无服务器存储

LLM 训练需要大量的存储空间;数千亿字节的训练数据需要传输到训练集群,并且数千亿字节的模型检查点定期从集群返回到永久存储。在作为作业重启事件的情况下,检查点也需要尽快到达训练集群。在传统的高性能计算(HPC)中,计算节点连接到分布式文件系统,该文件系统通过类似 POSIX 的界面提供高性能的 I/O 和吞吐量。在 AWS 中,客户经常使用 Amazon FSx for Lustre 文件系统(有关更多详细信息,请参阅使用 Amazon FSx for Lustre 和 Amazon EFS 文件系统加速在 Amazon SageMaker 上的训练),我们还记录了一个自我管理的 BeeGFS 在分布式计算机视觉案例研究中的使用情况。由于他们专注于成本和操作简易性,该团队决定不实施和操作文件系统服务器,而是接受了仅在无服务器对象存储 Amazon Simple Storage Service(Amazon S3)上构建的挑战。使用 AWS SDK for Python(Boto3)构建了自定义 S3 数据集类,并在提供满意的性能的同时,使科学家们能够在同一个代码库内自主迭代 I/O 工程和模型科学。

客户端创新

LLM 项目很少只包含单个训练作业;需要大量的作业来进行初步测试和体验。在主要的生产培训期间,可能会链接多个作业,例如更新配置或软件版本,部署补丁或从故障中恢复。TII 的科学家们进行了大量的工程工作,构建了适用于 LLM 训练的自定义客户端。启动器客户端是基于 SageMaker 训练 SDK 构建的,以便将多个功能打包到一个命令中,例如代码版本控制、Docker 镜像构建和作业启动。此外,还设计了 AWS Lambda 无服务器计算函数,以对作业进行监视、监控和干预。

使用Slack机器人进行推理质量审计

在培训接近尾声时,团队将模型部署在内部SageMaker Hosting GPU终端上以进行实时交互。团队甚至创建了一个Slack机器人进行对话,以获得现实反馈并对模型运行定性质量审核。

培训和性能监控

训练LLM需要大量的计算资源,包括CPU,GPU和内存资源。因此,TII需要监视训练作业的性能和空闲时间,以确保计算资源的最佳利用和成本效益。

为了构建自动监控解决方案,TII使用Amazon CloudWatch警报来监视训练作业的GPU,CPU和内存利用率。 CloudWatch从SageMaker培训作业中使用的底层容器实例收集原始数据,并将其处理为可读的准实时指标。之后,我们为每个指标设置阈值,如果任何指标低于阈值,就会触发警报。此警报通知TII团队低资源利用率,使他们能够采取纠正资源利用率限制的措施。

除了监视资源利用率外,TII还可以监视培训作业资源的空闲时间。如果培训作业资源长时间处于空闲状态,则可能表明培训周期的任何阶段存在瓶颈,并且需要手动调查。在某些情况下,资源利用仍然相对优化,但培训过程本身没有进展。对于这些情况,TII将CloudWatch警报与Lambda函数集成,以查询和读取生成的培训日志,然后根据生成的错误或日志生成过程的空闲情况(集群被停止)采取自动操作。警报触发操作以停止培训作业,这确保TII在资源未被利用时不会产生不必要的成本。

结论

使用与专有自定义创新配对的SageMaker,TII能够对模型进行培训,该模型在多个维度上达到了最先进的水平:技术突破,科学质量,培训速度以及操作简便性。

“发布阿联酋的Falcon 40B,世界排名第一的开源AI模型,说明了技术领导力,并为该地区的AI驱动创新铺平了道路”,Dr. Ebtesam Almazrouei表示;补充说:“我们展示了我们致力于2021年国家人工智能战略中概述的目标。通过投资和开发AI解决方案,我们旨在为经济增长,社会进步和教育进步创造新机遇。 Falcon-40B所代表的全球技术进步,反映了我们在全球技术进步方面的积极参与。通过民主化先进的AI技术能力,使Falcon-40B可供全球研究人员和组织使用。““展望未来,我们将继续在管道中推出AI和技术进步。此外,我们将积极促进我国组织和企业采用先进的AI技术,促进与我们战略目标相一致的增长和繁荣。”

– Dr. Almazrouei

要了解有关Falcon LLM的更多信息,请访问FalconLLM.tii.ae网站和Hugging Face上的模型卡!