最近AI大模型变得越来越大,参数数量已经是千亿级别了,而MoE这个稀疏架构既能让模型变得很大,又能节省算力,所以成了研究热点。这时候南京大学的李猛博士团队,在学校的鲲鹏昇腾科教创新孵化中心给他们提供算力支持的情况下,利用华为的昇腾硬件做了不少研究。他们发现一个大问题,就是MoE模型在运行时需要占用很多显存,导致只能同时保留少量“热专家”,其他参数就得不断在内存和显存之间来回搬移,这就造成了推理速度变慢。于是他们提出了一个软硬结合的优化方案,解决了这个难题。这个方案主要包含四个核心技术:第一,他们设计了一种三级流水线架构,把加载参数、CPU计算和GPU推理这三个步骤深度重叠起来做,大大减轻了数据传输的压力;第二,打破了传统的路由规则,把专家分成高分、中分和低分三类,只缓存最重要的那些,用其他等价的专家来临时顶替那些还没加载的低分专家;第三,他们还发明了一个共享专家引导的在线预取机制,不需要事先训练就知道后面要用到哪些参数,提前加载好;第四,设计了双指针算法来智能分配CPU和GPU的算力。有了这些技术后,他们专门给昇腾平台开发了一个加速引擎叫MoE-Ascend,里面集成了动态路由管理、专家预测等功能模块。这个引擎让显存占用降低了50%以上,推理速度也比以前快了两倍多,缓存命中率提高到70%以上。 这个项目还计划把工具链开源到昇腾社区、DeepModeling社区还有GitHub上给大家用。以后这些成果会用在AI推理平台、智能客服、语音生成这些地方,特别是给昇腾这样的自主NPU提供支持,帮助边缘侧的智能服务跑得更快更稳。