【AICon】硅谷视野+中国实践,汇聚全球顶尖技术的 AI 科技盛会 >>> 了解详情
写点什么

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

  • 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 的推理性能排名。



公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2024-05-08 10:176761

评论

发布
暂无评论

启科 QuTrunk+Runtime+QuSaaS+亚马逊云科技量子计算编程实战

亚马逊云科技 (Amazon Web Services)

Python 量子计算 Amazon EC2 Hero 专栏 Amazon Braket

Lattice - 模式级复用的能力定义

原力在线

架构 lattice 高可扩展

树与二叉树深度剖析(二)

C++后台开发

数据结构 算法 二叉树 红黑树 Linux服务器开发

Perfkit - 性能分析与测量工具集

王玉川

Linux 性能优化 Dockerfile ebpf perf

软件测试/测试开发 | 如何使用代理配置快速定位接口测试脚本问题?

测试人

软件测试 自动化测试 接口测试 测试开发

在Spring异步线程池中自动传递上下文,这样写轻松又方便

程序员拾山

Spring Boot #java

MySQL:如何给字符串加一个高效索引?

程序员拾山

MySQL

Golang如何优雅接入多个远程配置中心?

王中阳Go

golang 高效工作 学习方法 后端 viper

性能优化 - 访问局部性

王玉川

c++ 性能 cpu 访问局部性

可观测性之网站性能调优的实际案例-小白都看的懂

Yestodorrow

前端 可观测性 网站性能

阿里巴巴最新版“Java性能优化实践文档来袭”把性能优化玩的出神入化

架构师之道

Java 编程 性能优化

“零信任”下的防火墙策略管理

智维数据

大数据 防火墙 数据可视化 智能运维 运维安全

Databend 内幕大揭秘第二弹 - Data Source

Databend

华为云发布冷启动加速解决方案:助力Serverless计算速度提升90%+

华为云开发者联盟

Serverless 华为云 冷启动 Cold Start 进程级快照

Studio One6永久免费版本下载安装包

茶色酒

Studio One6

CleanMyMac4.12.3中文版如何汉化免费?

茶色酒

CleanMyMac4.12.3

细胞分裂问题的原创解法

王玉川

原创 算法 递归 LeetCode 动态规划

架构训练营第10期模块5作业

Geek_4db2d5

设计模式之装饰者模式

程序员大彬

Java 设计模式

深度学习快速上手——基于 MegEngine 的 LeNet 快速训练与部署

MegEngineBot

深度学习 开源 MegEngine

从人工分析到智能分析,流量分析如何快速上手?

智维数据

智能运维 应用交付 可视化数据 流量分析系统

C++ Lambda表达式

王玉川

c++ Lambda

C++ const与指针

王玉川

c++ 指针 常量 const

C++ 引用:他是坤坤也是鸡哥

子夜的星

c++ 引用 语法 引用参数函数

谈谈enabled_shared_from_this

SkyFire

c++ 智能指针

软件测试/测试开发 | 接口自动化测试如何进行认证?

测试人

软件测试 自动化测试 接口测试 测试开发

中国国际电子商务中心与易观分析联合发布:2022年3季度全国网络零售发展指数同比增长1.5%

易观分析

零售 电商

nCompass为医疗行业信息安全穿上“铠甲”

智维数据

大数据 数据可视化 智能运维 应用交付 流量分析系统

性能优化 - 伪共享

王玉川

c++ 缓存 性能 cpu

安全事件溯源分析场景

智维数据

大数据 数据可视化 智能运维 应用交付 流量分析系统

通用池化框架commons-pool2功能拓展

FunTester

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