新闻详情-k8凯发

k8凯发

tel 010-61934861

mail tm@tsingmicro.com

add 北京市海淀区宝盛南路1号院26号楼领智中心南楼2层

k8凯发首页 / 新闻

清微智能可重构工具链团队夺得2024 ieee aicas 国际通用算力大模型优化挑战赛第一名

time:2024年6月21日 | author:清微智能

简介

专注于ai硬件的实现、类脑计算和学习算法等领域的aicas,是ieee的旗舰会议,也是该领域最受好评的年度会议之一。aicas 2024 grand challenge大模型优化国际挑战赛是该会议的重要活动之一,共吸引了包括达摩院<="" svg>");"="">、浙江大学、阿联酋khalifa university、韩国hanyang university等在内的来自国内外高校、科研院所、产业界研究人员的200余支团队组织参与。清微智能工具链团队联合腾讯ncnn团队以及阿里mnn团队夺得挑战赛第一名。aicas 2024将在阿联酋首都阿布扎比<="" svg>");"="">举办。


比赛介绍

大语言模型(large language models<="" svg>");"="">)在绝大多数自然语言处理的下游任务上都取得了瞩目的表现,例如文本理解、文本生成、情感分析、机器翻译和互动问答等。然而,数十亿乃至上千亿的模型参数,使得llm在端侧应用进行高效部署面临很大的挑战。并且模型参数量增长的速度远大于硬件性能提升的速度,学术界和工业界开始通过模型压缩、数据流优化和算子调用等软硬件协同的方法尝试在有限的硬件条件下部署和运行大模型。选手可从多角度提出相关方法(如模型压缩,参数稀疏,精度量化和结构剪枝等)来系统优化提升大模型在硬件上的推理性能。

本次比赛采用的是阿里qwen1.8b模型,其主要结构如下图所示,相较于传统的transfomer,主要区别在于:

1)采用rms norm代替layernorm;

2)采用swiglu<="" svg>");"="">作为激活函数;

3)采用rope<="" svg>");"="">通过动态位置编码,来解决传统位置编码处理长序列时困难的问题。


比赛流程中会将pytorch模型先转到onnx上面,对onnx优化完成之后再进行部署。清微工具链团队推出了onnxslim优化工具,特别针对大模型做优化。

优化效果

清微智能工具链团队推出跨平台(windows, linux, mac; x86, arm)onnx模型优化工具onnxslim,针对qwen1.8b模型,优化后算子个数减少约40%,同时推理性能提升约10%。


部分优化技术介绍

1. 算子输出形状推理

onnxslim图优化强烈依赖形状推理,当算子输出形状推理出来之后,可以根据具体形状做优化。以下左图为例:


当reshape算子的输出形状推理出为(1, dynamic_dim, 16, 2, 64)时,onnxslim会将reshape算子右路所有需要计算的部分删除掉,优化结果为上右图。

2. 算子常量折叠

常量折叠主要用于优化子图中输入为常量的情况,以下左图为例:


当所有shape算子的输出都为常量时,可以通过实际推理一次模型,然后将concat算子的输出,作为reshape算子的第二路输入,从而删除shape算子到concat算子这个子网络,优化结果为上右图。

3. 算子融合

算子融合可以将多个算子合并成一个算子,这样可以减少内存占用以及计算开销,提升硬件利用率并降低推理延迟。以下左图为例:


当两个级联的slice算子满足一定条件时,可以被融合成一个,如上右图所示。

4. 公共子图消除

公共子图消除是编译器常用的一种优化技术,它的主要目标是减少程序中重复的计算,通过识别和消除重复的计算来提高程序的性能。以下左图为例:


左上图中两个reducemean算子输入和属性完全一致,可以通过公共子图算法融合到一起,以此类推,直到div算子都可以被融合到一起。优化结果为上右图。

关于清微智能工具链

清微骑士工具链提供一整套从算法到应用的全栈式加速工具,支持清微智能云端大算力,边缘端中算力芯片全系列产品落地,兼容市面上主流的tensorflow、pytorch、caffe、keras、onnx等学习框架,支持llama、chatglm等国内外大模型部署。清微智能工具链团队在开源社区持续贡献自己的力量,是mnn、ncnn、tensorrt、onnxruntime、pytorch等多个开源项目的贡献成员,已完成与百度paddlepaddle iii级兼容性认证,支持涉及视觉,自然语言处理和推荐的30多个模型。清微工具链以强大的兼容性和高效的易用性,推动人工智能尤其人工智能大模型的发展。


关闭
网站地图