查看原文
其他

FlagPerf v1.0 发布,构建开源开放的AI硬件评测生态

智源研究院 智源研究院 2023-11-14

国产AI硬件群雄逐鹿的局面之下,AI 硬件评测早已不是可选项,而是必做任务。首先,AI硬件制造商需要一个客观的坐标系度量自身创新进程;再者,产业落地需要公正的评测基准和方式,采购方迫切需要公正的、适应场景需求的评测来指导实际的生产环境搭建。

然而,由于AI软硬件技术栈异构程度高、兼容性差,再加上应用场景复杂多变,AI硬件评测工作就像在攻克“芯片制造厂商-AI框架-模型结构”的三维“迷宫”,当前市面上几乎没有中立可靠并长期维护的评测基准。由图灵奖得主David Patterson联合顶尖学术机构发起的 MLPerf 评测项目,评测结果更多是在理想条件下的“跑分”优化,对生产实践的指导意义有限,无法满足当前国产芯片创新和应用的需求。

智源研究团队认为,应当建立以产业实践为导向的指标体系,评测AI硬件在软件栈组合(模型+框架+编译器)下的实际能力,除了衡量“芯片能否支持特定模型训练”的功能正确性指标之外,还应该包含更多维度的性能指标、资源使用指标以及生态适配能力指标等。

因此,智源研究院联合各大AI软硬件厂商,共建开源、开放、灵活、公正、客观的一体化AI硬件评测引擎——FlagPerf,可快速高效地对AI硬件进行适配和评测,解决当前AI硬件所面临的兼容性差、技术栈异构程度高、应用场景复杂多变等挑战,快速对国产芯片进行评测。

目前 FlagPerf v1.0 已涵盖自然语言处理、计算机视觉、语音、多模态等领域的20余个经典模型50余个训练样例,并与天数智芯、昆仑芯科技、百度PaddlePaddle、华为昇腾AI及昇思MindSpore、摩尔线程、腾讯九霄等厂商进行深度合作,完成了FlagPerf 与多种芯片、框架的适配及评测

未来,FlagPerf 将继续扩大模型和框架的覆盖范围,以更全面、更精准地评测不同AI硬件的性能。

FlagPerf 开源项目:

https://github.com/FlagOpen/FlagPerf


FlagPerf :

一体化AI硬件开源评测工具


1、构建多维度评测指标体系,不止关注“耗时”


FlagPerf 评测指标体系包括功能正确性指标、性能指标、资源使用指标以及生态适配指标。

1.1 功能正确性指标


功能正确性指标将验证芯片对模型运行的支持,即测试芯片在模型训练中达到收敛趋势并满足官方论文或权威开源代码仓库提供的“正确性”指标。例如测试样例模型 ResNet50 的功能正确性指标为“第一分类准确率 acc1”;测试样例模型 BERT 的功能正确性指标为“掩码语言建模第一准确率 mlmacc”。

由于BBOX MAP、F1 Score等经典指标不足以体现芯片在大规模预训练模型上的正确性 ,FlagPerf 进一步增加了针对大模型输出结果(即模型生成内容)的评测,进一步验证生成模型是否能在芯片上实现正确的输出。复杂内容评测指标参考了大模型研发团队的公开论文和业界公认的评测基准,例如 GLUE、MMLU、HumanEval、BigBench 等相关指标。

1.2 性能指标

为了更全面的评估芯片的性能数据,FlagPerf 对训练时间和计算吞吐量进行更细粒度的统计。

  • 训练时间

训练时间指芯片完成特定模型训练任务,满足功能正确性指标所需的时间。同一任务下,训练时间越短,通常意味着芯片处理任务的效率越高,性能越好

  • 端到端时间:从代码启动到记录最后一条log结束,完整的端到端时间。

  • 训练全流程时间:包含训练子过程(读取数据、训练、验证)全过程。

  • 纯训练流程时间(相比全流程,去除验证阶段时间):包含纯训练过程(读取数据、训练)。

  • 纯计算时间(相比纯训练时间,去除数据读取时间):仅包含训练中的计算过程(前向传播、反向传播、更新参数)。

  • 计算吞吐量

计算吞吐量指芯片在单位时间内处理的数据量或执行的计算操作数量,能够反映出计算机芯片或处理器执行计算任务的速度或效率。

计算吞吐量的数值越高,意味着芯片可以更快地执行计算任务或处理数据,在高性能计算、数据中心工作负载和科学计算等人工智能计算场景中获得更佳的性能表现。

1.3 资源使用指标

资源使用指标是指在执行计算任务过程中,芯片以及服务器其他零部件的使用情况,用来衡量芯片是否被满额使用、计算过程中的能源消耗等。

  • 计算卡:MFU(Model FLOPs Utilization)、显存使用率、功耗

  • CPUCPU使用率

  • 存储: 内存使用率

1.4 生态适配指标

生态适配指标是一个重要考量因素。对于用户来说,芯片具备更高的生态适配能力,意味着使用场景选择空间更多、迁移成本更低

首先在芯片迁移方面,由于各厂商的技术方案不同,适配成本也会有所不同,如对于习惯使用CUDA生态的研发人员来说,“芯片能否适配CUDA生态”尤为关键,这也是FlagPerf评测的关注点之一。其次,软件框架的迁移成本也不容忽视,芯片厂商通常会有配套的软件生态,如何支持主流训练推理框架也是 FlagPerf关注的核心点。

2、支持多样例场景及任务,覆盖大模型训练推理场景


FlagPerf 已经涵盖计算机视觉、自然语言处理、语音等领域的20余个经典模型,50余个训练样例,支持评测AI硬件的训练和推理能力,以及大模型场景的推理任务评测。未来智源及众多AI硬件、框架团队还将共同拓展FlagPerf的评测场景,如开展集群性能的整体评估,以更全面的评估国产软硬件的性能。

2.1 自然语言处理( NLP)

如今,语言大模型集万千关注于一身,目前 FlagPerf 开源项目已增加 Llama2、 Aquila两个7B模型的推理评测样例,可评测AI硬件在进行模型推理时的吞吐量及推理结果在公开数据集上的正确性。FlagPerf 未来持续拓展语言大模型种类和推理结果的评测数据集。

在基本的功能正确性、性能指标评估之外,FlagPerf 在大模型场景上重点关注芯片的生态适配指标,如果仅用较少量策略、少量代码修改即可满足训练需求,该芯片可以被简便地用于模型训练或推理,那么表明该芯片的生态适配指标更高。

  • 考察在特定“训练框架+芯片”的组合下,支持模型训练的“最小并行策略”集合,比如在数据并行(DDP)、分片并行(SDP)、张量并行(TP)、流水线并行(PP)、序列并行(SP),CPU Offload等一系列并行或降显存策略中。

  • 考察在特定“模型训练/推理+芯片”的组合下,使用的“最小优化策略”集合,比如是否使用LoRA,Checkpointing,KVcache,Flash Attention等优化手段。

注:FlagPerf v1.0 当前仅支持数据并行(DDP),后续将逐渐完善其他并行策略和优化策略的支持。


2.2 计算机视觉(CV)

计算机视觉是深度学习最早开启的领域,任务类别繁多,模型生态完善。FlagPerf 针对计算机视觉领域主流的图像识别、目标检测、图像语义分割等任务,选取了一批最经典、工业界最常使用的模型,如ResNet50,MaskRCNN进行测试,并定义了完整的功能、性能指标评估方案。

2.3 语音(Audio)

语音领域的深度学习模型有着广泛的科研和工业应用,特别是以语音识别、语音合成为代表的一系列音频处理技术。FlagPerf 包含了 WaveGlow、Tacotron2等音频领域的经典标准化模型。

2.4 多模态 (Multimodal)

FlagPerf 包含了多模态领域的Stable Diffusion 模型样例,Stable Diffusion是近两年AIGC领域、文生图任务的经典多模态模型。

在评测时,FlagPerf 在功能正确性指标中增加了对于“模型输出内容”的评测,使用模型作者公开论文中针对生成图片的评测指标 CLIP score,来考察AI硬件是否能够正确地支撑模型完成“文本-图片”生成任务。

3、支持多训练框架及推理引擎,灵活连接AI硬件与软件生态

在训练任务场景中,除了支持 PyTorch、TensorFlow,FlagPerf 还在积极与 PaddlePaddle、MindSpore 研发团队密切配合。作为国产训练框架的领军者,百度 Paddle团队、华为昇思MindSpore 团队正在将 Llama、GPT3 等明星模型集成至 FlagPerf 测试样例集。

推理任务场景中,FlagPerf 适配了多家芯片厂商和训练框架研发团队的推理加速引擎,以更灵活地连接AI硬件与软件生态,拓宽评测的边界和效率,如英伟达TensorRT、昆仑芯XTCL(XPU Tensor Compilation Library)、天数智芯IxRT(Iluvatar CoreX RunTime)、PyTorch TorchInductor。

4、支持多测试环境,综合考察单卡、单机、多机性能

为全面评估国产AI芯片多样性、可扩展性、实际应用模拟情况,FlagPerf 设定了单卡、单机(通常是8卡)、多机三个测试环境,为不同的测试环境匹配了不同测试样例场景和任务:

  • 单卡测试:适用于推理任务以及小规模的训练任务,有助于评估芯片推理任务和小规模传统模型训练任务上的性能。同时,单卡训练任务的性能数据还将作为单机、多机场景加速比计算的基准,考察单机、多机环境是否造成了芯片的性能损失

  • 单机测试(一般为“单机8卡”):适用于中等规模模型的训练任务,比如大型卷积神经网络、小型或中等规模多头自注意力网络,能够评估芯片在中等规模模型预训练任务上的性能。

  • 多机测试:在多数复杂训练场景中,单机不能完全满足训练需求,例如大模型、大数据集场景下需要几十台,甚至上百台机器。在当前有限的资源条件下,Flagperf 采用“双机16卡”模拟多机复杂场景,测试芯片在大规模复杂模型预训练任务上的性能。

注:当前FlagPerf在保证测试环境除芯片外其他条件一致的情况下,进行芯片本身的离线批处理评测,暂不支持集群和客户端的性能评估。


5、严格审核参评代码,关注“结果公平”,更关注“过程公正”


测试由智源研究院与众多芯片厂商联合展开。总体原则是确保客观、公平地评估芯片的通用性能,限制厂商开展有针对性的定制优化。

在确定测试模型之后,首先由芯片厂商进行模型适配,这个过程中只允许厂商进行分布式通信、批数据量(batch size)等和硬件执行强相关的方面的代码修改,以确保模型能够在芯片上高效运行。其次由智源研究院依托基准测试平台FlagPerf对芯片能力开展测试,并确保测试过程顺利,芯片性能和稳定性得到最佳发挥。最后在产生测试结果后,智源研究院将芯片表现同步厂商确认。同时,所有测试代码均已开源,测试过程、数据可复现。

以评测为创新助推器
共建AI硬件开源开放生态


2022年为推动人工智能技术创新和产业发展,智源研究院联合一批全国重点的人工智能芯片企业共建“AI开放生态实验室”,围绕AI芯片进行底层技术联合创新,验证各种AI芯片对超大规模模型训练任务的支持力度,推动AI芯片构建完整的上下游软件生态,为AI芯片的生态发展和创新打造开放合作的平台。

目前 FlagPerf 先后与天数智芯、昆仑芯、百度飞桨、华为昇腾AI、华为昇思、摩尔线程、腾讯九霄进行了深度合作,共同推进AI硬件评测体系建设。

了解更多:

《FlagPerf x 昆仑芯 | AI芯片一体化评测引擎首批适配完成》

《FlagOpen x 昇腾AI | 共建AI硬件评测体系,赋能大模型生态创新》

《天数智芯天垓100在FlagPerf框架下Resnet50实践》:
https://hub.baai.ac.cn/view/29875


此外,中国移动研究院使用了 FlagPerf 作为内部评测参考。接下来,FlagPerf 还将与新华三 、壁仞科技、海飞科、清微智能等企业展开合作。

未来智源研究院将与合作伙伴共同完善AI芯片创新生态,推动AI软硬件协同的底层创新,实现AI芯片的百花齐放。欢迎更多企业单位和机构加入共建!




继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存