
浅谈国产化AI芯片模型部署实践
国产化AI芯片的发展已经成为国内信息技术产业的一个重要领域,它的发展始于对高性能计算需求的崛起,尤其是在人工智能和大数据领域,国内的科研机构和高新技术企业开始投入大量资源用于AI芯片的研发,以满足国内应用的需求。并且随着中国在各个高新领域的不断发力与国外AI芯片技术近年来不断加深的制裁,各个行业的企业也开始合作,以共同推动AI芯片的研发和应用,包括通信、云计算、智能制造、自动驾驶等领域。国内市场对AI芯片的需求迅速增长,也促使了本土芯片的研发和生产。以上种种皆表明使用国产化AI芯片,推动国产化芯片的繁荣发展具有极其重要的现实含义。
一、国产化AI芯片模型部署的重要意义
人工智能的发展主要依赖两个领域的创新和演进:一是模仿人脑建立起来的数学模型和算法,其次是半导体集成电路AI芯片。AI的发展一直伴随着半导体芯片的演进过程,AI芯片则是AI发展的底层基石。
全球AI芯片市场主要由海外厂商占据垄断地位,但国产厂商也在加速布局。国内市场中,景嘉微在图形渲染GPU领域持续深耕,另外天数智芯、壁仞科技、登临科技等一批主打AI及高性能计算的GPGPU初创企业正加速涌入。在GPGPU方面,目前国内厂商与Nvidia在GPGPU上仍存在较大差距。制程方面,目前Nvidia已率先到达4nm,国内厂商多集中在7nm;算力方面,国内厂商大多不支持双精度(FP64)计算,在单精度(FP32)及定点计算(INT8)方面与国外中端产品持平,天数智芯、壁仞科技的AI芯片产品在单精度性能上超过Nvidia A100;接口方面,壁仞科技与Nvidia率先使用PCle5.0,其余厂商多集中在PCle4.0;生态方面,国内企业多采用OpenCL进行自主生态建设,与Nvidia CUDA的成熟生态相比,差距较为明显。对于大模型训练而言,目前能够提供云端训练和推理加速芯片的独立厂商及产品则有壁仞科技BR100系列、高通Cloud AI 100、墨芯智能英腾处理器、燧原科技邃思2.0/2.5、瀚博半导体SV100、寒武纪思元370、鲲云科技CAISA数据流推理AI芯片等。
基于上述现状以及国外技术的制裁等原因,在国产化AI芯片上进行模型部署则具有多方面的重要理由。首先,在AI应用中,许多敏感数据和任务涉及国家安全。依赖国际厂商的芯片可能会暴露国家对外部供应链的依赖性,从而带来潜在的安全风险而使用国产AI芯片可以更好地掌握技术控制权,确保国家的安全和主权。其次,发展国产AI芯片有助于提高技术自主性。国内企业能够掌握AI芯片的设计、制造和优化,而不必依赖外国技术。这有助于加速技术创新,提高国家的核心竞争力。并且国产AI芯片的发展将带动整个创新生态系统的建设,这包括芯片设计、软件开发、应用部署等各个环节,将促进国内创业公司的发展,推动技术生态系统的繁荣。
二、使用华为昇腾310平台进行模型部署
ONNX是一种用于表示和交换深度学习模型的开放标准。它的主要目的是解决不同深度学习框架之间的互操作性问题,使开发者能够轻松地在不同框架之间共享和部署训练好的模型。本文以英伟达平台训练导出的ONNX模型为出发点,主要进行如下几个步骤完成在华为昇腾310平台上的模型部署
▲ 华为昇腾310芯片主要参数一览
1.设计部署测试流程
由于模型要兼容华为底层硬件,所以需要将原始的ONNX模型转换为华为硬件兼容的OM模型,然后对转换后模型的优化适配再进行部署。整体的模型的部署测试流程如下图:
2.对ONNX模型进行图重构与优化
对模型进行改图优化需要安装auto_optimizer工具,需提前安装auto_optimizer,安装教程参考华为昇腾官方仓库。对模型优化步骤参考如下:
- 查看当前AI芯片版本支持的可优化知识库:python3 -m auto_optimizer list
- 评估当前ONNX模型在昇腾平台可被优化的知识库:python3 -m auto_optimizer evaluate model.onnx
- 对输入的ONNX模型进行自动改图优化生成新的优化后的ONNX模型:python3 -m auto_optimizer optimize model.onnx model_new.onnx
3.将ONNX模型转换为昇腾平台支持的OM模型
在将原始的ONNX模型进行官方的改图优化后,进一步将优化后的ONNX模型转换成昇腾平台支持的OM模型。需要提前安装华为模型转换工具ATC,安装教程参加华为昇腾官方仓库。步骤如下:
- 查看当前芯片型号:npu-smi info (查看芯片型号用于后续ATC转换工具中soc_version参数的设置,该参数用于适配转换平台的芯片型号。)
- 激活ATC工具环境:source /usr/local/Ascend/ascend-toolkit/set_env.sh
- 生成动态维度模型:atc --model=model_new.onnx --framework=5 --input_format=ND --input_shape="input_ids:1,-1;attention_mask:1,-1" --dynamic_dims="256,256;512,512" --output=model_fp16_out_new --soc_version=Ascend310 (具体参数含义可以参考官方文档)
4.使用华为ais_bench工具进行性能测试
对于转换后的OM模型,华为官方提供ais_bench用于模型性能的测试和评估,需要提前安装ais_bench工具,安装教程参考华为ais_bench官方仓库。测试步骤如下:
激活ais_bench工具环境:source /usr/local/Ascend/ascend-toolkit/set_env.sh
测试模型推理性能:python3 -m ais_bench --model=model_new.om --dymDims "input_ids:1,512;attention_mask:1,512" --output ./output --outfmt TXT
5.模型测试精度一览
我们使用FP16格式的命名实体识别模型在昇腾310平台和英伟达平台分别部署进行模型的精度测试比较如下:
总的来说,较英伟达T4芯片,命名实体识别模型平均F1提高0.39。模型在两个平台的推理精度差距较小,在合理接受的范围内。
我们采用计算命名实体识别模型在两个平台上的平均单次推理时间作为性能比较的指标,可以看到,由于华为昇腾310对于FP16的性能为8TOPS而英伟达T4在FP16的性能表现为65TOPS,两者相差较大,导致单次推理时间存在较大的差距。
三、结语
国产化AI芯片的快速发展标志着我国在人工智能领域取得了重大突破,为技术自主创新和国内产业的发展迈出了坚实的一步。通过将AI模型部署到国产AI芯片上,我们不仅提高了技术的自主性,还为未来的创新和发展奠定了坚实的基础。因此,将深度学习大模型部署在更多的国产化AI芯片上并积极使用国产化AI芯片进行大模型的训练和推理,将会不断推动国产化芯片的发展与技术社区的繁荣,具有重要的战略意义。
参考文献
[1] tools: Ascend tools - Gitee.com
[2] Ascend/msadvisor - Gitee.com
[3] 昇腾社区-官网丨昇腾万里 让智能无所不及 (hiascend.com)
[4] OM模型部署至Atlas 300I(Ascend 310)推理卡-云社区-华为云 (huaweicloud.com)
[5] 2022年10大国产AI芯片 - 知乎 (zhihu.com)
[6] 2023年TOP 60 国产AI芯片厂商调研分析报告 - 知乎 (zhihu.com)
[7] 2022国产AI芯片报告之一:10大国产AI芯片-电子工程专辑 (eet-china.com)
本文转载自 AI遇见云,作者: 赵行前
