中国工程院院士郑纬民:做好模型推理要掌握四大关键
【导语】7月27日,上海举办了世界人工智能大会的一个分论坛,聚焦“芯节点·新突破——协同创新聚力 加速智算破局”主题。中国工程院院士、清华大学计算机系教授郑纬民在会上发表了重要演讲,深入剖析了人工智能产业竞争的关键——大模型推理引擎。他指出,要提升模型推理能力,必须掌握算子优化、模型量化、异构调度和并行优化四大关键点。这些关键技术的突破,将为人工智能的未来发展注入强劲动力。
7月27日,世界人工智能大会分论坛“芯节点·新突破——协同创新聚力 加速智算破局”主题论坛在上海举行。中国工程院院士、清华大学计算机系教授郑纬民会上发表演讲。他表示,大模型推理引擎是人工智能产业竞争的关键,做好模型推理需要掌握好算子优化、模型量化、异构调度、并行优化四大关键点。
关键点一:算子优化
算子优化就是对大模型中的单个算子(如Conv卷积、MatMu矩阵乘法等)做性能改造,使同一个算子在给定硬件上跑得更快、占用内存更少、功耗更低。例如,将“卷积”这个算子从普通C语(yǔ)言(yán)替(tì)换为汇编级Winograd+SIMD+缓存分块,就是一次算子优化。
算子优化主要有两种实现方案:其一,图层优化,包括不等价交换,用可控误差换性能;基于表达式交换,用代数/符号规则在图层级别做等价化简;张量属性变换,通过调整张量的形状、步长等消除冗余内存搬移或者提高并行度等。其二,算子层优化,即采用计算访存重叠、异步流水调度等技术进行算子优化。
关键点二:模型量化
模型量化就是将模型中的浮点参数(如32位FP32)转换为低比特整数(如8位INT8)的技术,目的是缩减模型体量、降低(dī)计(jì)算(suàn)量(liàng)、提(tí)升(shēng)推(tuī)理(lǐ)速(sù)度(dù),同(tóng)时(shí)尽(jǐn)量(liàng)保(bǎo)持(chí)模(mó)型(xíng)精(jīng)度(dù)。在(zài)模(mó)型(xíng)规(guī)模(mó)急(jí)剧(jù)增(zēng)加(jiā)、低(dī)精(jīng)度(dù)计(jì)算(suàn)单(dān)元(yuán)越(yuè)来(lái)越(yuè)多(duō)样(yàng)的(de)背(bèi)景(jǐng)下(xià),模(mó)型(xíng)量(liàng)化(huà)是(shì)减(jiǎn)少(shǎo)内(nèi)存(cún)需(xū)求(qiú)和(hé)提(tí)升(shēng)推(tuī)理性能的有效途径。
当前模型量化主要有两种方案:
其一,单一精度量化,直接将模型中的高位宽参数替换为低比特,例如将16位浮点数直接替换为8位整数,这一方式以“极简部署”换“精度弹性”,在硬件支持单一格式或(huò)对精度不敏感时是首选。
其二,混合精度量化,在同一网络里按层、张量或通道分别使用两种及以上位宽(如INT8+FP16、INT4+INT8、FP8+FP16+FP32等),而不是“一刀切”成单一低比特。
但混合精度推理的发展也面临着挑战,混合精度库开发周期长,历时超过一年;代码量大,超过1万行;算子性能差,相较于单一精度推理,性能下降70%。导致现有的混合精度推理利用率仍较低。
关键点三:异构调度
异构调度指在包含多种不同类型计算单元(CPU、GPU、FA、AI加速器等)系统中,将任务或子任务动态、合理地分配到最合适的处理器上,同时满足性能、功耗、资源利用率或实时性等多重目标的一种资源管理技术。该技术的目标是让正确的任务在正确的时间跑到正确的芯片上,例如将“跑得快但耗电高”的GPU留给矩阵乘法,把“省电但慢”的CPU小核留给控制逻辑。
模型推理可大致分为两个过程:一是P过程(prefill,预填充),二是D过程(decode,解码)。前者预处理负载请求的所有token,读取并“理解”用户输入的上下文,这一过程是计算密集型的;D过程则是和访存密集相关。
P过程与D过程所(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),推(tuī)理(lǐ)计(jì)算(suàn)的(de)整(zhěng)体(tǐ)性(xìng)能(néng)就(jiù)提(tí)高(gāo)了(le)。
关键点四:并行优化
并行优化即把深度学习任务拆成多条独立或半独立的计算通路,让他们在同一个时刻被多个计算单元并行执行,从而在“时间”或“空间”维度上换取整体吞吐或延迟(chí)提(tí)升的一系列工程手段。简单理解,这就相当于“把1个人干100天的活,拆成100个人1天干完”。
当前,并行优化面临着两大挑战:
其一,由于推理场景多样化,且不同推理场景的负载模式不同,固定的并行策略无法适应动态推理场景。例如,科研论文摘要、财报分析等,输入内容长,则Prefill占优,属于计算密集型任务;深度思考,输出文本长,则Decode占优,属于访存密集型。针对这些不同的应用场景,需要制定不同的并行策略。
其二,由于大模型服务场景存在明显的潮汐特性,不同时段的系统压力不同,静态的推理系统也无法适应动态服务场景。具体来看,白天时段使用人数多,请求量大,系统压力大,存在显存缺口;凌晨时段使用人数少,请求数量小,系统压力小,存在显存空闲。
因此需要采用动态的并行策略,通过并行策略自动调整减少算力浪费。例如,在请求较多时,采用张量并行+流水线并行的策略,吞吐量更大;在请求较少时,Attention(注意力机制模型)部分采用数据并行,MoE(混合专家模型)部分采用专家并行策略的吞吐量更高。