中国工程院院士郑纬民:做好模型推理要掌握四大关键

【导语】7月27日,上海举办了世界人工智能大会的一个分论坛,聚焦“芯节点·新突破——协同创新聚力 加速智算破局”主题。中国工程院院士、清华大学计算机系教授郑纬民在会上发表了重要演讲,深入剖析了人工智能产业竞争的关键——大模型推理引擎。他指出,要提升模型推理能力,必须掌握算子优化、模型量化、异构调度和并行优化四大关键点。这些关键技术的突破,将为人工智能的未来发展注入强劲动力。

7月27日,世界人工智能大会分论坛“芯节点·新突破——协同创新聚力 加速智算破局”主题论坛在上海举行。中国工程院院士、清华大学计算机系教授郑纬民会上发表演讲。他表示,大模型推理引擎是人工(gōng)智(zhì)能(néng)产(chǎn)业(yè)竞(jìng)争(zhēng)的(de)关键,做(zuò)好(hǎo)模(mó)型(xíng)推(tuī)理(lǐ)需(xū)要(yào)掌(zhǎng)握(wò)好(hǎo)算(suàn)子(zi)优(yōu)化(huà)、模(mó)型(xíng)量(liàng)化(huà)、异(yì)构(gòu)调(diào)度(dù)、并(bìng)行(xíng)优(yōu)化(huà)四(sì)大(dà)关键点。

郑纬民.j

关键点一:算子优化

算子优化就是对大模型中的单个算子(如Conv卷积、MatMu矩阵乘法等)做性能改造,使同一个算子在给定硬(yìng)件(jiàn)上(shàng)跑(pǎo)得(de)更(gèng)快(kuài)、占(zhàn)用(yòng)内(nèi)存(cún)更(gèng)少(shǎo)、功(gōng)耗(hào)更(gèng)低(dī)。例(lì)如(rú),将(jiāng)“卷(juǎn)积(jī)”这(zhè)个(gè)算(suàn)子(zi)从(cóng)普(pǔ)通(tōng)C语(yǔ)言(yán)替(tì)换(huàn)为(wèi)汇(huì)编(biān)级(jí)Winograd+SIMD+缓(huǎn)存(cún)分(fēn)块(kuài),就(jiù)是(shì)一(yī)次(cì)算(suàn)子(zi)优(yōu)化(huà)。

算(suàn)子(zi)优(yōu)化(huà)主要(yào)有(yǒu)两(liǎng)种(zhǒng)实(shí)现(xiàn)方(fāng)案(àn):其(qí)一,图层优化,包括不等价交换,用可控误差换性能;基于表达式交换,用代数/符号规则在图层级别做等价化简;张量属性变换,通过调整张量的形状、步长等消除冗余内存搬移或者提高并行度等。其二,算子层优化,即采用计算访存重叠、异步流水调度等技术进行算子优化。

关键点(diǎn)二:模型量化

模型量化就是将模型中的浮点参数(如32位FP32)转换为低比特整数(如8位INT8)的技术,目的是缩减模型体量、降低计算量、提升推理速度,同时尽量保持模型精度。在模型规模急剧增加、低精度计算单元越来越多样的背景下,模型量化是减少内存需求和提升推理性能的有效途径。

当前模型量化主要有两种方案:

其一,单一精度量化,直接将模型中的高位宽参数替换为低比特,例如将16位浮点数直接替换为8位整数,这一方式以“极简部署”换“精度弹性”,在硬件支持单一格式或对精度不敏感时是首选。

其二,混合精度量化,在同一网络里按层、张量或通道分别使用两种及以上位宽(如INT8+FP16、INT4+INT8、FP8+FP16+FP32等),而不是“一刀切”成单一低比特。

但混合精度推理的发展也面临着挑战,混合精度库开发周期长,历时超过一年;代码量大,超过1万行;算子性能差,相较于单一精度推理,性能下降70%。导致现有的混合精度推理利用率仍较低。

关键点三:异构调度

异构调度指在包含多种不同类型计算单元(CPU、GPU、FA、AI加速器等)系统中,将任务或(huò)子(zi)任(rèn)务动态、合理地分配到最合适的处理器上,同时满足性能、功耗、资源利用率或实时性等多重目标的一种资源管理技术。该技术的目标是让正确的任务在正确的时间跑到正确的芯片上,例如将“跑得快但耗电高”的GPU留给矩阵乘法,把“省电但慢”的CPU小核留给控制逻辑。

模型推理可大致分为两个过程:一是P过程(prefill,预填充),二是D过程(decode,解码)。前者预处理负载请求的所有token,读取并“理解”用户输入的上下文,这一过程是计算密集型的;D过程则是和访存密(mì)集相(xiāng)关。

P过(guò)程(chéng)与(yǔ)D过(guò)程(chéng)所(suǒ)需(xū)的(de)负(fù)载(zài)不(bù)同(tóng),如(rú)果(guǒ)能(néng)将(jiāng)P过(guò)程(chéng)和(hé)D过(guò)程(chéng)拆(chāi)成(chéng)两(liǎng)个(gè)独(dú)立(lì)的(de)流(liú)水(shuǐ)线(xiàn),分(fēn)别(bié)在(zài)不(bù)同(tóng)的(de)硬(yìng)件(jiàn)上(shàng)跑(pǎo),且(qiě)能(néng)实(shí)现(xiàn)互(hù)不(bù)干(gàn)扰(rǎo),推理计算的整体性能就提高了。

关键点四:并行优化

并行优化即把深度学习任务拆成多条独立或半独立的计算通路,让他们在同一个时刻被多个计算单元并行执行,从而在“时间”或“空间”维度上换取整体吞吐或延迟提升的一系列工程手段。简单理解,这就相当于“把1个人干100天的活,拆成100个人1天干完”。

当前,并行优化面临着两大挑战:

其一,由于推理场景多样化,且不同推理场景的负载模式不同,固定的并行策略无法适应动态推理场景。例如,科研论文摘要、财报分析等,输入内容长,则Prefill占优,属于计算密集型任务;深度思考,输出文本长,则Decode占优,属于访存密集型。针对这些不同的应用场景,需要制定不同的并行策略。

其二,由于大模型服务场景存在明显的潮汐特性,不同时段的系统压力不同,静态的推理系统也无法适应动态服务场景。具体来看,白天时段使用人数多,请求量大,系统压力大,存在显存缺口;凌晨时段使用人数少,请求数量小,系统压力小,存在显存空闲。

因此需要采用动态的并行策略,通过并行策略自动调整减少算力浪费。例如,在请求较多时,采用张量并行+流水线并行的策略,吞吐量更大;在请求较少时,Attention(注意力机制模型)部分采用数据并行,MoE(混合专家模型)部分采用专家并行策略的吞吐量更高。