AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

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

  • 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:179136

评论

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

VirtualBox虚拟机网络设置(四种方式),java高级程序员简历

Java 程序员 后端

Web开发基础:HTML,java面试没问技术问题

Java 程序员 后端

YYDS,瞬间秒杀全网,这套Java面试笔记可以解决90

Java 程序员 后端

《恋上数据结构第1季》B树,java基础案例教程第二版答案

Java 程序员 后端

《恋上数据结构第1季》二叉树代码实现,mongodb持久化原理

Java 程序员 后端

《零基础》MySQL 管理(三),java程序设计精编教程第三版课后答案

Java 程序员 后端

《深入理解Java虚拟机 3》类加载机制与字节码执行引擎

Java 程序员 后端

《码出高效:Java开发手册,java基础编程视频

Java 程序员 后端

super与this在成员变量,成员方法,构造方法方面的作用

Java 程序员 后端

Vue 脚手架结合 SpringBoot 构建前后端分离入门项目(实现增删改查)

Java 程序员 后端

《JVM系列》 第六章 -- 对象的实例化与内存布局

Java 程序员 后端

《Spring实战》读书笔记-第2章 装配Bean,kafka调优面试

Java 程序员 后端

T-SQL——数据透视和逆透视,java架构师面试答案

Java 程序员 后端

zookeeper之java API使用,zookeeper学习

Java 程序员 后端

[译] 微服务的设计模式,java后端面经

Java 程序员 后端

《重构 改善既有代码的设计 3》代码的可理解性应该是我们虔诚追求的目标

Java 程序员 后端

Spring经典面试题,帮你整理好了!(1),一个星期4轮面试终拿下offer

Java 程序员 后端

《菜菜的机器学习sklearn课堂》数据预处理和特征工程

Java 程序员 后端

Spring总结以及在面试中的一些问题,java面试笔试题代码

Java 程序员 后端

Spring源码学习~循环依赖(面试必问系列,学java基础的心得体会

Java 程序员 后端

Threadtear:一款多功能Java代码反混淆工具套件

Java 程序员 后端

Tomcat是如何运行的?整体架构又是怎样的?,java面试经验技巧

Java 程序员 后端

VIVO一面竟然翻车,含泪整理了这些Java面经,看完我悟了

Java 程序员 后端

“我骑着我心爱的小摩托,他又在这里翻车了,mybatisdao接口工作原理

Java 程序员 后端

Tomcat服务器搭建及测试教程,java技术路线规划

Java 程序员 后端

“三次握手,四次挥手,java程序设计教程第三版雍俊海pdf

Java 程序员 后端

“打工人”都在用的邮件使用规范,springcloud架构源码

Java 程序员 后端

Spring源码解析(一)IOC,终于找到一个看得懂的JVM内存模型了

Java 程序员 后端

Spring经典面试题,帮你整理好了!,阿里P8大牛亲自教你

Java 程序员 后端

windows下快速安装nginx 并配置 开机自启动,基础+底层+算法+数据库

Java 程序员 后端

《深入理解Java虚拟机 1》Java内存区域与内存分配策略

Java 程序员 后端

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