当前位置: 首页 > article >正文

LLMs 的软件/硬件协同优化策略 – 第二部分(软件)

原文towardsdatascience.com/sw-hw-co-optimization-strategy-for-llms-part-2-software-65ea2247481e随着新的 LLM 模型和特性的不断涌现查看hugging face LLM 排行榜软件工具和库的发布速度正在加快。这种快速进步也在 AI 硬件领域激发了许多创新。从系统角度优化 LLM 时重要的是要理解尽管来自 Meta、Google、OpenAI、Nvidia、斯坦福和其他主要公司和研究机构的研究每天都在涌现但软件堆栈/库不能立即将所有内容转换为硬件执行。只有一小部分软件特性可以支持这需要几个月约 6 个月的开发才能投入生产。如果这些特性需要在 AI 硬件加速器中支持那么在发生任何架构变化的情况下开发周期会更长2-4 年。解决 LLMs 软件和硬件优化之间的这种差异是一个重大挑战我们旨在通过这一系列文章来解决这个问题https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/0878bd03bbe5b26490f45493f1a0dc4d.png作者图片新兴的软件工具和库既适用于 LLM 训练也适用于推理。在这篇文章中我们将特别关注 LLM 部署以及这些工具如何增强 LLM 性能的深入探讨。在未来的文章中我们将深入研究 LLM 训练软件如 deepspeed、Fairscale、colossal-AI 等。之前我讨论了 LLM 模型的改进并强调了新的研究特性。您可以通过回顾下面的讨论来刷新您的记忆大型语言模型LLMs的软件/硬件协同优化策略LLMs作为专门领域的人工智能模型依赖于传统的 AI 堆栈将模型转换为机器代码以便在 AI 硬件上执行。不同的硬件公司提供各自的软件堆栈以促进 AI 推理。以下我将展示三个主要的硬件供应商Nvidia、AMD、Intel及其相应的软件平台https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/ce4da3a661771b293c6a9a00aa7ee5d8.png作者图片传统 AI 软件堆栈如上表所示Nvidia 通过其专有的 CUDA 软件生态系统在生成式 AI 领域中处于领先地位。它提供了一套强大的工具和库如 cuDNN、cuBLAS 等Nvidia 通过其图形处理单元加速了顶级 AI 用例。他们最近发布的 TensorRT-LLM 引入了一系列丰富的功能如连续批处理、vLLM 和张量并行性优化了 LLM。AMD 专注于 RoCm 以加强其强大的 AI 硬件MI 2/300 系列产品。同时Intel 推崇 oneAPI、oneDNN 和 OpenVINO API 和工具链支持 Intel 的 CPU、GPU 和 NPU 平台上的 AI 模型旨在实现 AI 硬件上的统一软件和开放生态系统。将 LLM 应用于传统的 AI 软件堆栈首先是从启用基本函数和算子开始的。大多数算子通常都得到支持因为 LLM 依赖于基于 Transformer 的架构包括编码器/解码器。然而某些新的算子如位置编码可能需要特别注意。以 TensorRT 为例不支持的算子会回退到 PyTorch。然后图被分割成两个区域下图中灰色在 PyTorch 上执行和绿色在 TensorRT 上执行。灰色区域中算子数量过多表明性能不佳。importtorch_tensorrt#convert to tensorRTtrt_moduletorch_tensorrt.compile(model,irFX,...)#run inferencetrt_module(x)https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/53daed2f62688f56383c36d54f9f846d.png来源pytorch.org/Nvidia 的 TensorRT 支持许多针对 DL 模型的优化包括层和张量融合将多个操作或层融合到一个内核中以减少内存访问频率并提高性能内核自动调优选择最佳算法或层批量大小以在目标硬件上实现最佳性能混合精度可以将 FP32 数据类型转换为 FP16/INT8 以实现快速推理。不同的公司都有它们自己的实现来支持这些功能这些功能在各种 AI 模型中是通用的并不特定于 LLM现在让我们深入了解与 LLM 相关的软件。加速 LLM SW 框架和库由于大型 LLM 对计算和内存的高需求传统的 AI 软件堆栈在优化大型 LLM 方面存在不足。一些新兴的开源软件框架和库已经出现以加速 LLM 推理满足开发者的需求。以下表格中列出了一些流行的框架并附有参考链接Ref [1] vLLM; Ref [2] streamingLLM; Ref [3] FlexGen; Ref [4] OpenLLM; Ref [5] DeepSpeed)https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/60ffd42495247287b30b6173ad44e909.png作者总结的表格顶级四个框架由主要公司开发与来自大学且针对特定功能的底部三个框架相比提供了更广泛的功能。例如vLLM 最初专注于分页 kv 注意力逐渐扩展了对其他功能的支持。粗体加亮的特性表示在各种 LLM 框架中最常支持的特性。以下将深入探讨一些这些特性1. 连续批量20x 倍吞吐量在批量生成过程中一些序列比其他序列更快地完成标记生成导致在所有批量完成之前出现空闲时间。连续批量通过将新任务集成到完成较快的批量中来解决这个问题。它利用注意力掩码来屏蔽之前的序列防止干扰。…/Images/6d4fd1057b48a82e8c16c941096e4839.png使用连续批量的四个序列示例。来源如何通过连续批量在 LLM 推理中实现 23 倍吞吐量同时降低 p50 延迟参考文献 [6]上图显示了连续批量的基本原理。与传统静态批量相比每个序列将在不同的时间步结束导致 GPU 利用不足。在这个特定示例中序列 3 在 T5 结束并在 T6、T7 和 T8 上浪费了 GPU 资源。为了解决这个问题一旦检测到结束标记就会插入一个新的序列即 S5、S6、S7以充分利用 GPU。2. 模型并行张量和管道并行张量并行涉及将张量分割成多个子张量每个设备管理一个子张量并执行计算。产生的部分结果被组合起来以产生最终结果。在下面的图中参考文献 [7]如果张量 B 垂直分割成两部分矩阵 A 将乘以这两个部分。每个乘法都在一个单独的设备上执行然后得到的部分输出 C 被连接起来以得到最终结果。…/Images/c1175ac0f6ccb7914758bafaf43ea6cd.png张量并行示意图。来源Colossal-AI参考文献 [7]管道并行涉及根据层将模型分割成多个块将每个块分配给一个单独的设备GPU。在正向传播过程中中间激活或反向传播梯度被传输到另一个设备进行进一步处理直到达到最终输出。这种方法利用多个设备同时工作以增强吞吐量但需要在设备之间进行快速且无缝的通信。…/Images/fded0002e31a4a0514f5dd1f71780712.png管道并行示意图。来源Colossal-AI参考文献[7]3.FlexGen参考文献[8]Flexgen 引入了一种针对内存容量有限的受限计算平台的卸载策略。它通过利用 CPU、GPU 和磁盘的能力优化内存和计算资源识别高效的张量存储和访问模式。…/Images/87b07232cd9f1a339f6b139a4931c6ac.png两种不同的 FlexGen 策略时间表演示。来源FlexGen使用单个 GPU 进行大型语言模型的高吞吐量生成推理参考文献[8]与基于卸载的两种其他框架DeepSpeed 零推理和 Hugging Face Accelerate相比FlexGen 提供了显著更高的吞吐量下文图表所示。…/Images/8993cdb3df4565d750ff094413378585.pngFlexGen 带来 100 倍的最大吞吐量提升。来源FlexGen使用单个 GPU 进行大型语言模型的高吞吐量生成推理参考文献[8]除了上述提到的特性之外新技术正在快速发展一个值得注意的例子是苹果最近发布的卸载策略利用闪存来加速 LLMs参考文献[9]使得模型运行大小达到可用 DRAM 的两倍与 CPU 和 GPU 中的简单加载方法相比推理速度分别提高了 4-5 倍和 20-25 倍。关键信息我在之前的文章中讨论了分页注意力和量化的基本概念。随着关于 LLM 模型和加速技术的新的研究迅速出现各种组织正在开发支持它们的底层软件。对于组织和开发者来说根据他们的需求谨慎选择最合适的选项至关重要。一个强大且高效的软件对于有效地实施这些加速技术、最大化 AI 硬件资源至关重要。在我即将发布的文章中我将深入探讨加速 LLMs 的高级 AI 硬件和内存技术。敬请关注参考文献[1] vLLMgithub.com/vllm-project/vllm[2] streamingLLMgithub.com/mit-han-lab/streaming-llm[3] FlexGengithub.com/FMInference/FlexGen#how-it-works[4] OpenLLMgithub.com/bentoml/OpenLLM[5] 微软研究博客DeepSpeed通过系统优化和压缩加速大规模模型推理和训练[6] 凯德·丹尼尔沈晨梁毅和赖亚华如何通过连续批处理在 LLM 推理中实现 23 倍吞吐量同时降低 p50 延迟Anyscale 博客2023 年 6 月[7] 李胜贵马思琪并行范式Colossal-AI 概念[8] 应胜等FlexGen使用单个 GPU 进行大型语言模型的高吞吐量生成推理arxiv2023 年 6 月[9] 凯万·阿利扎德等LLM in a flash使用有限内存高效进行大型语言模型推理arxiv2023 年 12 月

相关文章:

LLMs 的软件/硬件协同优化策略 – 第二部分(软件)

原文:towardsdatascience.com/sw-hw-co-optimization-strategy-for-llms-part-2-software-65ea2247481e 随着新的 LLM 模型和特性的不断涌现(查看hugging face LLM 排行榜),软件工具和库的发布速度正在加快。这种快速进步也在 AI …...

Oracle 12.2 ORA-600 数据库发生重启案例

适用范围 Oracle Database 12.2 问题概述 Oracle 12.2 RAC一个节点发生重启,重启前有ORA-00600: internal error code, arguments: [kcbk_populate_history_1]报错。 问题原因 Oracle 12.2.0.1.180417 下Bug 31600023 - ORA-700 [kcbk_populate_history_1], ORA-600…...

Page Assist:基于本地大模型的浏览器AI助手,实现隐私安全的网页交互

1. 项目概述:一个能与网页对话的本地AI助手 如果你和我一样,对AI助手既爱又恨——爱它的便利,恨它背后那说不清道不明的数据隐私和持续不断的订阅费用——那么今天聊的这个开源项目,你可能会非常感兴趣。它叫 Page Assist &…...

Java面试现场:从Redis缓存到分布式事务,水货程序员李四的‘表演‘

Java面试现场:从Redis缓存到分布式事务,水货程序员李四的表演 场景:某互联网大厂Java工程师面试现场,严肃的面试官正在面试一位名叫李四的求职者。 第一轮面试:Java核心与基础 面试官:李四,先简…...

论文AI率达标指南:亲测5款实用降AI工具,高效消除AIGC痕迹

每到毕业季,不少同学都会收到导师的同款提醒:“你这篇论文AIGC率太高了,拿回去重改。”但“太高”到底是指多少?不同院校的要求天差地别,不同检测系统的结果也各不相同:有的学校要求AI率不超过30%才算合格&…...

在Node.js后端服务中集成Taotoken实现异步调用多模型AI接口

在Node.js后端服务中集成Taotoken实现异步调用多模型AI接口 对于需要在后端服务中调用大语言模型的Node.js开发者而言,直接对接多个厂商的API往往意味着复杂的密钥管理、不同的调用方式和分散的计费统计。Taotoken平台通过提供统一的OpenAI兼容API,简化…...

容器技术入门与 Docker 环境部署

一、容器与 Docker 核心认知1. 什么是容器容器是操作系统层面的轻量级虚拟化,把应用、依赖、配置打包成独立运行单元,共享宿主机内核,实现环境一致性与资源隔离。2. 为什么用 Docker启动秒级,性能接近原生环境一次打包&#xff0c…...

Cursor深度解析:如何将编程Agent成功推向生产环境?收藏学习!

本文深入剖析Cursor如何将编程智能体(Agent)推向生产环境,涵盖从AI编程的三次浪潮到智能体系统的架构,重点解析生产环境挑战及解决方案,包括Diff问题、延迟叠加效应和规模化沙箱问题。Cursor通过混合专家架构、推测解码…...

百度网盘提取码智能获取工具:3分钟从搜索焦虑到一键解决的效率革命

百度网盘提取码智能获取工具:3分钟从搜索焦虑到一键解决的效率革命 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经为了一个百度网盘提取码,在浏览器、论坛、聊天记录之间反复切换&#xff0…...

2026年AI大模型API中转平台排名揭晓!这三家平台脱颖而出,助你开发无忧

在AI开发领域摸爬滚打多年,大家或许都遇到过各种闹心事儿。如今到了2026年,大模型的迭代速度让人目不暇接,像GPT-5.4、Claude 4.6、Gemini 3.1 Pro等每月都有更新。而API中转平台也如雨后春笋般涌现,为了帮助开发者们用上最新最强…...

终极桌面整理指南:如何使用NoFences免费打造高效工作空间

终极桌面整理指南:如何使用NoFences免费打造高效工作空间 【免费下载链接】NoFences 🚧 Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences 你是否厌倦了Windows桌面上杂乱无章的图标?重…...

XXL-Job单机模式玩出花:模拟集群、灰度发布与本地调试的三种实战技巧

XXL-Job单机模式玩出花:模拟集群、灰度发布与本地调试的三种实战技巧 在分布式任务调度领域,XXL-Job以其轻量级、易用性和强大的功能成为众多开发者的首选。然而,当大家的目光都聚焦在集群部署和分布式执行时,单机模式的价值往往被…...

Cursor AI液态玻璃主题:打造未来感代码编辑器的视觉美学与实战配置

1. 项目概述:当AI代码编辑器遇上液态玻璃美学如果你和我一样,每天有超过8小时的时间是与代码编辑器为伴,那么编辑器的视觉体验就绝不仅仅是“好看”那么简单。它直接关系到你的专注度、代码阅读的舒适度,甚至长时间工作后的疲劳感…...

Rime小狼毫的隐藏玩法:除了打字,还能用‘/’键快速输入符号、网址和颜文字

Rime小狼毫的隐藏玩法:除了打字,还能用‘/’键快速输入符号、网址和颜文字 在数字时代,键盘输入早已超越了简单的文字录入功能。对于追求效率的现代用户来说,每一次击键都应该是精准而富有意义的。Rime小狼毫输入法作为一款高度可…...

游戏服务器容器化部署:基于Docker的Archon镜像实战指南

1. 项目概述:一个为游戏服务器量身定制的容器化部署方案如果你和我一样,曾经被游戏服务器的部署、迁移和运维搞得焦头烂额,那么看到SufficientDaikon/archon这个项目,你可能会和我当初一样眼前一亮。这本质上是一个为特定游戏&…...

AISMM模型能否救活你的创新 pipeline?5分钟自测当前成熟度等级,超86%团队卡在Level 2.4→2.5死区

更多请点击: https://intelliparadigm.com 第一章:AISMM模型与产品创新能力 AISMM(Artificial Intelligence-enabled Software Maturity Model)是一种面向AI原生产品的成熟度评估框架,聚焦于将大模型能力深度融入软件…...

车载光通信芯片:行业现状、技术卡点与国产化实情

在汽车电子行业,我们正处于一个临界点。随着 EEA(电子电气架构)从分布式向中央计算迈进,传统的屏蔽双绞线在带宽、减重和 EMI(电磁干扰)上已经快走到头了。车载光通信不是什么新鲜概念,但现在&a…...

小红书上的“论文初稿一键生成”是智商税吗?

不知道你有没有过这种时刻?对着空白文档发呆两小时,文献堆了几十篇,下笔第一句就卡壳;大纲改了五六版,逻辑还是乱,降重改到崩溃,重复率死活降不下来;答辩 PPT 熬到凌晨,格…...

ArkTS:在自定义组件内不能使用function定义函数

例如,在自定义组件内,用function定义函数,出现告警:我现在将function定义的函数移到组件外边:进行组件预览,日志输出了结果:...

AOP底层:动态代理执行流程(“断点之谜“)

究极迷惑:在学习 Spring AOP 时,我们大多会记住切面、切点、通知这些概念,却始终对运行时到底发生了什么有困惑: 程序进方法时,先进代理对象还是先进原始方法? 为什么 在Debug模式下直接跳进我们写的业务代…...

Arduino实时硬件调试:Inline技术解析与应用

1. Arduino实时硬件调试的革命性突破在嵌入式开发领域,调试始终是最具挑战性的环节之一。传统Arduino开发者最熟悉的调试方式莫过于Serial.print()——在代码中插入大量打印语句,然后在串口监视器中观察输出。这种方法虽然简单直接,却存在几个…...

特斯拉Model 3/Y CAN总线DBC文件:3步掌握汽车数据解析的终极指南

特斯拉Model 3/Y CAN总线DBC文件:3步掌握汽车数据解析的终极指南 【免费下载链接】model3dbc DBC file for Tesla Model 3 CAN messages 项目地址: https://gitcode.com/gh_mirrors/mo/model3dbc 特斯拉Model 3/Y的CAN总线通讯协议是汽车电子开发者和技术爱好…...

NCMconverter终极指南:从加密NCM到通用音频格式的完整转换方案

NCMconverter终极指南:从加密NCM到通用音频格式的完整转换方案 【免费下载链接】NCMconverter NCMconverter将ncm文件转换为mp3或者flac文件 项目地址: https://gitcode.com/gh_mirrors/nc/NCMconverter 在数字音乐生态中,专有格式与开放标准的博…...

SRAM-CIM加速线性衰减脉冲神经网络的设计与实现

1. SRAM-CIM加速线性衰减脉冲神经网络的设计背景脉冲神经网络(SNN)作为第三代神经网络模型,其生物启发的特性使其在能效方面展现出显著优势。与传统人工神经网络不同,SNN采用基于事件的脉冲通信机制,这种异步处理方式能…...

区块链验证性能突破:ACE Runtime的O(1)验证技术解析

1. 区块链验证的性能瓶颈与突破方向在区块链技术栈中,交易验证环节是决定系统吞吐量和延迟的关键路径。传统区块链如比特币和以太坊采用"每交易一签名"(Per-Tx-Signature)模型,每个交易都需要独立验证ECDSA或Ed25519签名…...

3分钟掌握手机号码精准定位:开源工具location-to-phone-number完全指南

3分钟掌握手机号码精准定位:开源工具location-to-phone-number完全指南 【免费下载链接】location-to-phone-number This a project to search a location of a specified phone number, and locate the map to the phone number location. 项目地址: https://git…...

客流统计系统的实现,本质上是一个多模块视觉计算链路

传统方案的问题在于其输入信息单一,只能提供“触发信号”,无法支持行为级分析。因此当前主流实现逐渐转向基于 3D 双目视觉的方案。一、系统架构拆解典型架构分为四层:1. 数据采集层双目摄像头ToF深度传感器RGB Depth同步采集作用&#xff1…...

ARM1136JF-S处理器测试信号与功能变更解析

1. ARM1136JF-S处理器测试信号深度解析在嵌入式系统开发领域,处理器测试信号的理解和运用是硬件验证和调试的基础。ARM1136JF-S作为经典的ARM11系列处理器,其测试接口设计体现了ARM架构对可测试性的重视。让我们深入剖析这些关键信号及其应用场景。1.1 扫…...

ARM CP15协处理器详解:缓存、内存管理与系统控制

1. ARM系统控制协处理器(CP15)概述CP15是ARM架构中负责系统关键功能管理的协处理器,在ARM1136JF-S等处理器中扮演着核心角色。作为开发者,我们通过MRC/MCR指令与CP15交互,实现对底层硬件的精细控制。不同于通用寄存器,CP15寄存器组…...

sql数据库的导入导出【.sql文件格式】

sql数据库里的库怎么导给同事mysqldump -u root -p 库名 > 储存路径\储存文件名然后去你储存的路径里拿这个文件发出去,vchat qq都行怎么导入同事发来的.sql文件我的是Windows1.把文件储存到一个全英文目录2.进入cmd,启动mysql 在MySQL下敲命令3.创建一个新的库&…...