天风计算机团队
摘要
来源: 飞桨PaddlePaddle视频号专题直播课
1、思元370系列芯片和加速卡:
寒武纪推出的AI芯片,采用台积电7纳米工艺,最高int8算力达256TOPS,支持芯片间高速互联技术,加速训练。
2
、MLU370推理和训练产品:
3、寒武纪 基础软件平台:
提供通用平台,包括BANG异构计算平台、编译和运行工具、加速库(CNNL、CNNL-Extra)、通信库(CNCL)、云端辅助工具(DCMM、CNTOPO)、流处理工具(CNStream),以及AI框架和推理引擎(MagicMind)。
4、PaddleX框架和模型产线:
支持云端和多硬件本地端运行,提供丰富的模型库和场景,支持低代码开发和模型产线设计,高效支持寒武纪370系列。
5、实战案例:
手写汉字识别和行人跌倒检测两个案例,展示了从模型选型、数据校验、模型微调到模型测试的完整流程,并提供了将训练好的模型集成到项目中的方法。
建议关注:
自主AI算力的国内企业:寒武纪
01
思元370系列芯片和加速卡
思元370系列芯片和加速卡是寒武纪首颗采用Chiplet芯粒技术的AI芯片,公司使用了台积电的7纳米的工艺,最高的int8最高算力达到了256TOPS, 同时公司也使用了另一个芯片间互联的技术来加速训练。
02
MLU370推理和训练产品
MLU370 S4和X4这两款推理产品左边是公司的MLU 370 S4,它是一个半高半长的一个尖端的产品,在相同的一个密度下这样的性能会达到两倍的 GPU的能力,在2U的空间中,可以部署到最高8卡的一套解决方案。右边的产品是MLU370 X4,它是面向训练的专门面向训练的的芯片。
MLU 370X8具备两倍370X4的内存带宽,并且支持了MLU-Link芯片间高速互联, 能够在模型训练中取得很好的性能。
MLU370X8的最大功耗是250瓦,它的产品形态是全高全长双槽类的形态,最高支持PCIe 4的一个协议。
03
寒武纪基础软件平台
寒武纪的基础软件平台,整体软件平台是各个产品线通用的一套平台,硬件上一层有自己的BANG异构计算平台,提供了编译工具、运行工具以及调试工具。在上一层的话也提供了加速库,其中包括 CNNL、CNNL-Extra等高性能计算库。通信口叫做CNCL提供了结合通信的能力。云端的辅工具,包括DCMM、CNTOPO这样一套工具。同时也具有CNStream的一套流处理的工具。再上一层是AI框架,框架层具有Inference Engine、Framework还有一些通用工具。在推理引擎方面,MagicMind对标Nvidia的Tesla T的工具。
在框架方面,公司在做PaddlePaddle、PyTorch、TensorFlow寒武纪特定的版本。在往寒武纪上做一些相应的适配,包括Megatron-LM、DeepSpeed、TransformerEngine、FlashAttention等,基于下面这一套一等技术软件栈,支持互联网、金融、交通、能源、运营商这样一个全场景的AI行业应用。
寒武纪3.0版本,可以从飞桨官网上进行试用,选择Linux、pip、寒武纪来进行下载。
04
PaddleX360 beta在寒武纪上的适配和使用
PaddleX的整体框架,从下往上看可以看到PaddleX的运行环境支持云端运行,也支持多硬件的本地端运行,模型开发环境包括分享模型框架和多联件的各类型模型套件等,寒武纪提供了模型产线工具,包含基础模z型产线和特定模型产线,通过模型产线,可以系统性的解决各类实际场景中的问题,这样PaddleX可以广泛利用到各个领域。
PaddleX核心亮点:
1)支持丰富的模型和场景。2)支持迭代码开发,使得开发和部署更加便捷。3)模型产线的设计,支持多模型串联,支持端到端的解决问题。4)对寒武纪370系列的高效支持。
功能详解:
丰富的模型库、全面的场景,方便大家来选择,包含分类检测、OCR分割持续等等常用的模型。
在寒武纪370上,已经支持39个模型,涉及到5个类别,主要包含分类、检测、OCR、分割、持续等等这些常用的模型。
PaddleX模型产线:
PaddleX提出了一个模型产线的概念,然后也内置了一些已有的模型产线可以直接来使用,如进行推理预测和部署,可以看到中间一条线直接用来进行推理,如果推理效果不理想,就可以用单模型开发工具对模型进行一个微调,微调后再通过产线测试,如果能达到想要的效果,然后再进行推理预测和部署,所有这些操作寒武纪都提供了一个非常简易的接口,方便大家直接来进行使用。
PaddleX一个显著特点就是低门槛、低代码,只需要一条命令就能完成数据校验,模型评估和模型推理。
利用代码进行数据校验、模型评估、模型推理。除此之外,还支持开发者对一些常用的超参数进行修改,对于模型优化中的是都已经暴露在模型对应的配置文件中了,可以通过命令行方便的修改替换。
在介绍两个实战案例之前,先讨论环境配置。环境配置是开发中常见的问题,提供了稳定的基础镜像和依赖包来统一环境,推荐大家使用这种方法。具体操作步骤在X的仓库文档中有详细说明。
05
实战案例
1)手写汉字识别案例。手写汉字识别是OCR领域的难题。可以使用内置模型快速体验,但内置模型的识别效果可能不理想,因此需要进行模型微调。
微调步骤如下:
选择模型:基于CPU测试结果,选择轻量级的PP-OCRv4_mobile模型进行微调。
数据收集与标注:使用社区提供的手写体中文识别数据集,包含训练集和评估集,确保数据格式正确。
参数配置:使用官方权重加速模型收敛,如有需要,可替换为自定义权重。训练中断时,可加载断点继续训练。
模型调优:
确定训练轮次和学习率。
固定训练轮次为20轮,批大小为8,使用4卡训练,总批大小为32。
训练精度最高的最优学习率为0.0002。
增加训练轮次至80轮,精度提升逐渐放缓,表明模型接近最优性能。
接下来,可以通过PaddleOCR的API将训练好的模型集成到项目中。具体步骤如下:
指定设备和模型路径:设置设备为MLU,并指定模型的路径。
创建OCR实例:使用PaddleOCR库创建一个OCR实例。
进行推理:调用OCR实例的推理方法,传入图像文件进行识别。
2)第二个案例,是选择了一个检测模型,案例选择的是行人跌倒检测,与第一个案例一样,关于检测模型的开发。模型开发通常包括以下几个步骤:模型选型、数据校验、模型微调和模型测试。
模型选型:使用PaddleX内置的检测模型进行快速体验。通过一条命令,我们对图片进行推理,使用的模型是PP-YOLO-S。但通用检测模型会检测出所有物体,包括人物,而我们只需要检测跌倒的人。因此,我们需要对模型进行微调。
数据校验:在数据校验阶段,使用global_mode参数进行数据格式转换和数据划分,以满足PaddleX的要求。
模型微调:我们选择轻量级的PP-YOLO-S模型进行微调。通过调整训练参数,我们发现当学习率为0.06,训练轮次为150时,模型表现最佳。
模型测试:训练完成后,我们使用mAP(平均精度)来评估模型精度。mAP是交并比(IoU)的平均值,IoU越大,模型精度越高。我们使用PaddleX进行测试,发现模型能够正确检测出跌倒的人。
最后提供了实战作业,鼓励大家体验PaddleX,并在开源仓库中提问和交流。对于使用MLU进行训练和推理的问题,可以直接在PaddleX中指定设备为MLU。