写点什么

零一万物李谋:当大模型推理遇到算力瓶颈,如何进行工程优化?

  • 2024-05-08
    北京
  • 本文字数:2248 字

    阅读完需:约 7 分钟

零一万物李谋:当大模型推理遇到算力瓶颈,如何进行工程优化?

自 OpenAI 发布 ChatGPT 起,大语言模型的惊艳效果吸引了越来越多的人和资本关注到该领域,近年模型本身的参数量和序列长度也呈指数级增长,要面对的算力瓶颈问题接踵而至。


在 AICon 全球人工智能开发与应用大会 暨 大模型应用生态展·2024 上,InfoQ 邀请到了零一万物资深算法专家李谋发布演讲分享,他将结合大模型的的算力需求和模型结构,详细介绍零一万物在构建 Yi 模型在线推理服务过程中所运用的优化技术手段。为了让听众了解更多的内容,我们提前采访了李老师,以下为内容纪要:


InfoQ:您在演讲中提到了大模型的算力需求及其增长趋势,可以详细介绍一下目前大模型在推理过程中所面临的主要算力挑战是什么?针对这种快速增长的算力需求,您认为目前的技术和资源是否足以应对?


李谋: 大模型的计算主要分为训练和推理两个步骤,他们对于算力的侧重点不太一样。模型训练侧重整体吞吐 (throughput),需要大规模,高扩展性,低能耗的分布式计算集群,而推理侧重延迟 (latency),在算力方面需要强大的计算芯片,高速的内存访问技术。这种算力的需求在深度学习和大模型流行之后的近年来呈指数级增长,对于硬件厂商和电力供应厂商是巨大的挑战,目前也有不少芯片制造商针对大模型场景设计了专用芯片和硬件架构,相信短期的未来能够完美迎接这波挑战。


InfoQ:您觉得传统模型和大语言模型在结构上的不同之处是什么,推理优化手段是否有差异?


李谋: 传统模型,包括 CNN, NLP, ASR 等网络的特点是结构复杂,算子类型多,模型的变种也很多,不同的软件框架有自己的模型描述语言和模型结构。而大语言模型绝大多数基于 Transformer 网络结构,通过多个 Transformer Block 串联得到,其特点是网络结构简单,但参数量巨大,针对这些差异这两套模型在工程上也有不同的优化手段。


InfoQ:了解到分布式并行加速是一个在大模型推理中措施,零一万物在这方面是如何做的?


李谋: 简单来讲对于分布式并行的推理优化手段主要是张量并行 (tensor parallelism) 和上下文并行 (context parallelism),分别从模型维度和输入序列维度对参数做切分,使用多个设备并行计算达到加速的目的。


InfoQ:在推理过程中,大模型的内存消耗通常是一个重要的考量因素。您对于内存管理方面有哪些优化策略或经验分享吗?


李谋: 大模型的内存消耗主要来源于模型权重本身的加载和 Transformer Block 中的 Key/Value 这 2 个矩阵,首先模型的低精度量化是一个常见降低内存使用量的优化手段,使用更低精度的数据类型往往也能得到正确性的推理结果。其次模型中 Key/Value 矩阵的分页内存管理 (PagedAttention) 也可以大幅度提升内存利用率,甚至在任务空闲的时候我们可以将 Key/Value 矩阵临时切换放置到其它内存区域,在需要的时候再切换回来,以时间换空间。


InfoQ:在面对算力瓶颈时,有时候需要进行折衷权衡,比如牺牲一定的模型精度以换取更快的推理速度。您是如何权衡和决策的?是否有一些通用的指导原则?


李谋: 从感知上来讲模型的参数量越大,其中的信息冗余程度也就越高,低精度量化在传统的小模型推理中已经是一个常见的优化手段了,对于更大参数量的语言模型更是如此。零一万物的低精度量化覆盖了训练和推理整个流程,所以对于推理来讲是无损量化,不需要校验这个过程。从生产环境的角度来讲,如果模型量化能够在保持主流任务评测精度几乎不降 (或降低零点几个点) 的情况下服务性价比提升 1 倍以上,我觉得是可以完全可以接受的。


InfoQ:大模型在推理过程中可能会面临的另一个挑战是延迟问题,特别是对于实时或者交互式应用来说,延迟是一个非常关键的指标。您是如何处理推理延迟的优化问题的?


李谋: 优化延迟比优化吞吐要棘手一些,首先最好的情况是有条件购买算力更强大的硬件,或者从硬件设计的角度上去降低延迟。软件层面上,比如对于 NVIDIA GPU 可以开发更高效的 CUDA Kernel,使用多卡并行等手段,当然这中优化往往有较大的人力和时间成本。


InfoQ:除了硬件加速器和分布式并行加速外,是否还有其他类型的加速技术或者优化手段可以用于缓解大模型推理的算力压力?


李谋:这个方面内容,技术点有点多,在 5 月 17 日的 AIConAICon 全球人工智能开发与应用大会 暨 大模型应用生态展·2024 上,我们会展开分享,欢迎关注。


InfoQ:针对不同规模和复杂度的任务,您是否采用了不同的推理优化策略?是否可以分享一些根据任务需求调整策略的经验?


李谋:不同复杂度的任务使用了不同数量,不同配比的硬件。举个例子,对于同一个模型 Yi-34B,我们部署了 2 套硬件集群 (低配版 / 高配版,算力和成本不同),针对用户在线请求的具体输入长度来决定使用哪个集群服务,这样能兼顾用户体验,服务压力和服务成本。


InfoQ:针对目前大模型推理算力瓶颈的问题,您认为未来可能出现的技术突破或发展方向是什么?


李谋: 首先是针对大模型的场景的专用芯片,目前国内已经有一些相关的产品,但问题是这些专用芯片和软件配套体系在市场上没有形成良好生态,没有用户的使用和共识对于生态发展是个挑战。其次随着大模型和 AI 对算力需求的增长,伴随计算集群规模的增长,局部地区的电力供应可能会是一个问题,这可能会推动一些清洁能源和高效发电技术 (如风力发电,可控核聚变) 的发展。


嘉宾介绍:


李谋零一万物资深算法专家,毕业于哈尔滨工业大学,零一万物大模型在线推理服务负责人,历任阿里达摩院和华为云 EI 服务产品部技术专家。长期从事 AI 模型推理和训练全链路研发与优化工作,曾带领团队自研通用推理引擎与底层加速库,取得 Standford DAWNBench GPU 排行榜 TOP1 的推理性能排名。



2024-05-08 10:179212

评论

发布
暂无评论
发现更多内容

14岁懂社会-《被你讨厌的昆虫们》读书笔记

懒时小窝

读书笔记 14岁懂社会

墨天轮访谈 | 拓扑岭雷鹏:数据库新思维下的弹性压缩与内存计算

墨天轮

数据库 redis 国产数据库 键值数据库

开发一个不需要重写成Hive QL的大数据SQL引擎

华为云开发者联盟

sql 大数据 mapreduce SQL引擎 大数据仓库

设备如何使用go sdk轻松连接华为云IoT平台

华为云开发者联盟

华为云 sdk go sdk IoT平台 华为云IoT平台

科创人·SUSE大中华区董事长江永清:真开源要有打磨技术的匠心,要能持续创造社会价值

科创人

广袤之中:沿着克拉克三大定律,读懂华为的最深期待

脑极体

Java中关于内存泄漏分析和解决方案,都在这里了

爱好编程进阶

Java 程序员 后端开发

搞懂这份大厂Java面试知识点笔记汇总,涨薪15K你也没问题

Java架构追梦

Java 程序员 后端开发

JavaCV人脸识别三部曲之三:识别和预览

爱好编程进阶

Java 程序员 后端开发

AIRIOT物联网低代码平台如何配置OPC DA驱动?

AIRIOT

驱动配置

阿里大牛评:入门到大成!GitHub新上线并发编程深度解析实战PDF

Java架构追梦

Java 后端开发 程序员面试

浪潮信息加入,已完成与龙蜥操作系统产品兼容性验证

OpenAnolis小助手

云计算 服务器 龙蜥社区 CLA 浪潮

如何在优麒麟上进行超大型文件的远程传输?这个命令帮你快速搞定!

优麒麟

Linux 开源 命令行 优麒麟 远程传输

云管平台有哪几家?现在采购福利哪家好?

行云管家

云计算 混合云 云管平台

迎战大厂!“金三银四”和通过率达95%的Java面试八股文

Java架构追梦

Java 后端开发 程序员面试

21天连更回归,这个五一宅家写作,挑战一触即发!

InfoQ写作社区官方

热门活动 5月月更

JavaWeb静态网页

爱好编程进阶

Java 程序员 后端开发

java中锁的四种状态

爱好编程进阶

Java 程序员 后端开发

【等保小知识】等保测评是安全认证吗?

行云管家

等保 等级保护 等保测评 安全认证

网络协议之:haproxy的Proxy Protocol代理协议

程序那些事

Java Netty 程序那些事 4月月更

为团队投资CRM系统的投资回报率是多少?

低代码小观

CRM 客户关系管理 低代码开发 CRM系统 客户关系管理系统

Java之Spring Boot入门到精通【IDEA版】SpringBoot整合其他框架

爱好编程进阶

Java 程序员 后端开发

科创人·数智未来私董会第4期:转型的实证-幸存者偏差与盲人摸象| 活动报名

科创人

Java全栈开发---Java ERP系统开发:商业ERP(七

爱好编程进阶

Java 程序员 后端开发

华为数字化转型实践

乌龟哥哥

4月月更

以图搜图应用篇-家具家居行业

视觉智能

人工智能 以图搜图 图像搜索 视觉智能

技术人的必备特质

Hockor

零一万物李谋:当大模型推理遇到算力瓶颈,如何进行工程优化?_AI&大模型_李忠良_InfoQ精选文章