您的位置:首页 > 互联网

端到端测试是什么「LLaMA 2端到端推理打通!来自中国团队」

发布时间:2023-11-23 22:43:53  来源:互联网     背景:

允中 发自 凹非寺
量子位 | 公众号 QbitAI

Buddy Compiler 端到端 LLaMA2-7B 推理示例已经合并到 buddy-mlir仓库[1]主线。

我们在 Buddy Compiler 的前端部分实现了面向 TorchDynamo 的第三方编译器,从而结合了 MLIR 和 PyTorch 的编译生态。

目前,前端部分可以覆盖 LLaMA 计算图,转换到 MLIR 后我们集成了部分向量化和并行优化,并在 AVX512 平台上进行了测试。整个推理过程可以跑通但还需要大量优化。以下是相关链接和现状:

股东锁定期

  • [E2E] Buddy Compiler 端到端 LLaMA2-7B 推理示例[2]
  • [E2E] 上述端到端推理示例目的是展示编译栈设计,并非完备的 LLaMA 问答工具
  • [Frontend] Buddy Dynamo Compiler[3]
  • [Midend] 集成面向矩阵乘法的向量化以及面向循环的并行优化
  • [Backend] 端到端示例在 X86 AVX512 机器上进行测试(Ubuntu 22.04)
  • [WIP] 开发并集成各种优化(现在速度太慢)
  • [WIP] 在多种 CPU 后端进行测试(Arm Neon, RVV, etc.)
  • [WIP] 对接多种硬件平台(GPU, Gemmini Accelerator, etc.)
  • [WIP] 增加前端覆盖程度(Stable Diffusion, CLIP, Whisper, etc.)

概述

AI 大模型的爆发为软硬件设计带来了新的抓手和机会。随着模型的规模、类型、模态的增加和发散,单一软硬件技术栈覆盖各种场景的能力越来越受限。这种趋势也加深了我对软硬件生态重要性的认识。在我看来,整个生态的最重要的三条设计原则如下(重要程度由高到低):

  • 技术路线标准化(生态的立足之本)
  • 上手门槛低(足够多的贡献者和玩家是生态繁荣的关键)
  • 优化上限高(决定了生态的发展潜力)

我们基于以上思考打造了 Buddy Compiler, 致力于实现软硬件协同设计生态。我们的目标是实现从领域特定编程语言(DSL)到领域特定硬件架构(DSA)的编译流程和协同设计。

本文将介绍如何使用 Buddy Compiler 完成 LLaMA 2 的端到端推理。同时,我们也会分享 Buddy Compiler 的整体设计理念和未来的规划。具体的构建流程请参阅此处的文档[4](大模型的构建需要十足的耐心和一台性能不错的机器)我们基于 PyTorch 和 MLIR 打通了 LLaMA 端到端的推理通路,但是尚未进行完整的性能分析和优化。

目前,我们只应用了针对矩阵乘法的向量化优化,以及针对循环的并行计算优化。

优化和调优的策略仍在开发阶段,因此目前的性能还处于较低水平。我们的初步目标并不是追求极致的性能,而是建立一个标准的端到端通路,在此基础上再做各层级性能优化和调优。

技术路线

技术路线的标准化不仅是我们努力追求的核心原则,而且我们坚信这能够吸引更多的贡献者和合作伙伴,同时还能够有效降低用户的学习门槛和后续的维护成本。

如图所示,我们选择 PyTorch 生态对接各种 AI 模型,选择 MLIR 生态作为 Buddy Compiler 的中间表示。

我们将 Buddy Compiler 作为 Torch Dynamo 的自定义编译器组成整个编译栈,从而希望实现将各种 AI 模型映射到多种硬件架构上的愿景。以下是一些设计点:

使用TorchDynamo作为Trace工具对接AI模型

TorchDynamo 使用 CPython 的 Frame Evaluation API 特性能够做到更加准确的 PyTorch 图的捕捉,详情可以参阅 PyTorch 的文档[5]。除此之外,PyTorch 2.x 提供了全面的编译支持,尤其是提供了非常友好的自定义编译器对接方案[6]。因此,PyTorch 2.x TorchDynamo 成为了我们对接 AI 模型的不二选择。

选择Aten IR作为对接层级

根据 PyTorch 的文档[5],Core Aten IR 是服务于对接后端的算子集合,它相比 Prime IR 抽象级别也更高。我们倾向于使用较高的抽象级别映射到 MLIR 从而有更多的空间和信息来进行多层优化,因此我们选择 Aten IR 作为对接层级,可以很方便地映射到 Linalg Dialect 和 TOSA Dialect 的各种操作。

使用MLIR Python Bindings实现Dynamo Compiler生成TOSA/Linalg Ops

Buddy Compiler 前端中的 Dynamo Compiler(或者叫做 Dynamo Importer)的作用是将 PyTorch 的 Aten IR 转换到 MLIR,同时也负责将模型参数进行处理和打包。

Dynamo Compiler 遍历从 TorchDynamo 传入的 FX Graph,并且针对每个 Aten IR 节点进行转换,转换过程使用 MLIR Python Bindings 生成目标 MLIR 代码。

Dynamo Compiler 支持对接 Dialect 的优先级设定,即可以选择 Linalg Dialect 或者 TOSA Dialect 作为首选项进行转换。

苹果计划在更多地区上线卫星通信服务怎么关闭

最终,Dynamo Compiler 负责输出转换后的 MLIR Module 和权重参数。

使用Buddy Compiler工具链进行优化和下降

我们的整个编译通路目前并没有完全使用 Python 脚本完成,而是使用 CMake 将前、中、后端集成起来。

这一定程度上简化了并解耦了前、中、后端的开发流程。编译优化和下降的所有 Pass 注册到 buddy-opt 工具中,它包括所有的上游 Pass 和 Buddy Compiler 中的优化 Pass,因此 buddy-opt 是上游 mlir-opt 的超集。面向通用硬件的编译流程我们使用 MLIR Core Dialect 进行实现,从而达成最大化的复用,我们的工具也因此和所有 LLVM/MLIR 的工具兼容,例如 mlir-translate, llc 等等。

目前我们针对循环采用并行计算的优化,其中相关中间表示和优化 Pass 完全来自上游的 OMP Dialect,可以直接复用并带来不错的优化效果。从此也可以看出统一生态的优势。此外,我们针对粗颗粒度的 Operations 设计了向量化算法进行编译优化,使用 Vector Dialect 也可以实现跨 SIMD/Vector 平台的效果。

如果希望面向特定加速器(例如 Gemmini Accelerator)生成代码,也可以使用 buddy-translate 和 buddy-llc生成到特定于硬件的 LLVM IR,从而最终生成加速器的硬件指令。

Forward函数搭配Buddy Compiler Text Container完成端到端推理

在完成编译优化和下降之后,模型的 Forward 函数将会被构建为共享库。

由于我们很多场景需要在模拟器和开发平台上测试,因此我们没有选择将执行的流程交给 Python 生态,而是进行 AOT 编译,生成可执行文件。

为了配合从 MLIR 构建出来的 Forward 函数实现端到端的推理,我们提供了 C++ 版本的 Text Container 和 MemRef Container 来作为文本输入输出的 Tokenizer 和数据容器。

最终,在 C++ 的 main 函数中将输入的文本和权重参数加载到数据容器,然后调用 Forward 函数进行推理,输出的 Token 再交由 Text Container 进行后处理即可得到最终的文本。

未来工作

我们目前打通了 LLaMA 到 CPU SIMD/Vector 平台的通路,使用 X86 AVX512 进行初步的测试。用于 Vector Dialect 的跨平台性,Arm Neon 和 RISC-V Vector Extesion 也是可以天然支持的,我们正在进行广泛测试。

同时我们也在支持尝试将 Buddy Compiler 中的 Gemmini 加速器支持对接到大模型推理的通路上。

此外,GPU 的优化 Pass 也在开发中。在模型层面,我们希望测试并对接更多的多模态大模型,进一步提升 Buddy Dynamo Compiler 前端的覆盖程度。在完成上述工作后,下一个里程碑是将多模态大模型编译到多种硬件平台上。

总的来说,接下来前、中、后端将会相对解耦地进行开发,最终进行对接。

  • 前端:对接更多模型完善算子覆盖程度。
  • 中端:进行更详细的性能分析,面向各种计算负载开发不同层级的优化。
  • 后端:对 CPU 各 SIMD/Vector 平台进行测试,完成面向 GPU / Gemmini 加速器的端到端通路。

三个部分均相对完备的时候就考虑用 Python 接口将所有工具链包装起来,形成一个更为优雅的使用流程。

总结

如今大模型推理的软件栈也层出不穷,技术路线也各不相同。我们使用的 Torch 2.x + Buddy Compiler 的编译栈设计策略实际上是希望融合 PyTorch 和 MLIR 两大生态进行 AI 计算。当然,在 MLIR 生态里面做大模型推理,我们认为 Torch-MLIR + IREE 目前是相对比较完备的解决方案。nod.ai 的 SHARK Turbine[7] 就使用了这种技术路线。

相比于 Torch-MLIR 搭配 IREE 的组合,Buddy Compiler 更强调 Simple But Powerful 设计,采用极致复用策略和完全代码生成策略。相比于 Torch-MLIR 的 Torch Dialect 层级,Buddy Compiler 更偏向直接复用 TOSA/Linalg 对接 Aten IR;相比于 IREE 覆盖一切后端的 Runtime 和 Execution Engine 的设计,Buddy Compiler 更偏向进行完全代码生成。

Shark Turbine 封面[8]是一个飞机涡轮发动机,这和他们的技术路线非常契合,TorchDynamo + Torch-MLIR + IREE 是一个极其精密且重型的编译栈,这样的“发动机“理论上可以带着他们飞跃任何高山沟壑。相比而言,Buddy Compiler 更像是电动汽车的三电平台,可以以此为基础打造各种性格的电动汽车。对我们来说,LLaMA 的支持不是起点也不是终点,是在探索路上偶遇的一座高山,我们希望翻过它,看看山那边的世界,尤其是开着自己造的车!

致谢

感谢所有 Buddy Compiler 的贡献者,特别感谢一起努力跑通 LLaMA 的伙伴:zhanghb97,weilinquan,xTayEx,EllisLambda,Lester-1,LAJIidea,SForeKeeper,LHY-24,xlinsist,qingqing12138. 同时感谢 OSPP 组委会提供的开源项目席位。



端到端测试是什么

关于Intelligent Computing

Intelligent Computing是由之江实验室和美国科学促进会(AAAS)共同创办,是《科学》合作期刊框架中智能计算领域的第一本开放获取(Open Access)国际期刊。期刊以“面向智能的计算、智能驱动的计算”以及“智能、数据与计算驱动的科学发现”为主题,主要刊载原创研究论文、综述论文和观点论文。

[1]https://github.com/buddy-compiler/buddy-mlir

[2]https://github.com/buddy-compiler/buddy-mlir/tree/main/examples/BuddyLlama#buddy-compiler-llama-example

[3]https://github.com/buddy-compiler/buddy-mlir/tree/main/frontend/Python

[4]https://github.com/buddy-compiler/buddy-mlir/tree/main/examples/BuddyLlama

[5]https://pytorch.org/docs/stable/torch.compiler.html#torch-compiler

[6]https://pytorch.org/docs/stable/torch.compiler_custom_backends.html#custom-backends

[7]https://github.com/nod-ai/SHARK-Turbine#shark-turbine

端到端测试是什么

[8]https://github.com/nod-ai/SHARK-Turbine#shark-turbineg


返回网站首页

本文评论
搜狗ai气象主播是谁_搜狗AI气象主播上线,视频产业开启智能化升级之路
  “今天晚上到明天白天,冷空气将由西向东影响我国大部分城市,云南、广西、甘肃等地还将迎来降雨……”,从1980年起,《天气预报》就紧随《新闻联播》后出现,每天为广大居民的...
日期:07-16
苹果闪电接口将成历史,中国配件厂商提前备货抢单,有工厂利润率翻倍
苹果旗舰店 图源:时代财经在诞生的第11个年头,苹果Lightning(闪电)接口要开始成为历史了。9月22日,iPhone 15系列、Apple Watch Ultra 2、Apple Watch Series 9将正式发售,全部标...
日期:09-20
吐血推荐!VR专业学生人手必备的VR编辑器,用过都说好…(vr制作是什么专业)
  VR专业以后的就业形势有多好?   据中商产业研究院发布的《2018-2023年虚拟现实行业发展前景及投资机会分析报告》数据显示,2017年中国虚拟现实市场规模将达到52.8亿元...
日期:09-19
Microsoft Surface Duo 2「DuoWOA新进展:Surface Duo 2即将可以运行Windows 11系统」
通过 DuoWOA 项目最新版本,Surface Duo 2 距离运行 Windows 11 系统这个目标又近了一步。该项目负责人古斯塔夫·蒙塞(Gustave Monce)已经发布了 SurfaceDuoPkg 2209.90 版本,在...
日期:09-29
6.7英寸及以上最轻薄,6nm芯片性能在线 1399元起荣耀X30i今日开售
  10月28日,荣耀举办“11.11新品发布会”,正式推出荣耀X30i,定位轻薄,是目前主流厂商6.7英寸及以上手机中最轻的产品。11月5日10:08,荣耀X30i正式开售,6GB+128GB版本售价1399元...
日期:06-14
浙江移动携手华为全面深化SPN算网系列创新_浙江移动互联网开发
通信世界网消息(CWW)金秋十月,中国移动通信集团浙江有限公司(以下简称浙江移动)联合华为,基于SPN(Slicing Packet Network,切片分组网)智能算力承载网打造精品入算网络,全面深化SPN算...
日期:10-25
绿光资本认为史蒂夫鲍尔默扯微软后腿
  5月31日消息,据国外媒体报道,绿光资本公司(Greenlight))的基金经理人大卫艾因霍恩认为,微软的股票值得买进,尽管该公司的股价并未能反映它的成就。他公开推荐该股票,但这位具有...
日期:07-28
iqoo z1 2021「iQOO 11官宣降价:3799买2K E6直屏旗舰」
iQOO宣布iQOO 11降价,起售价为3799元。虽然8GB+128GB版本的价格没有变化,仍为3799元,但12GB+256GB版本和16GB+256GB版本的价格分别从4399元和4699元降至4099元和4399元,对于有大...
日期:03-01
妙鸭相机摸着石头过河
声明:本文来自于微信公众号 银杏科技(ID:yinxingcj),作者:王叶琳,授权转载发布。万众期待出现一个AI相关的C端爆款应用,大厂尚未找到方法论之时,妙鸭相机突然冒了头。在微信小程序...
日期:08-04
情怀拉满!《灌篮高手》电影预售票房破亿_灌篮高手电影上映时间2021
快科技4月19日消息,根据灯塔专业版消息,动画电影《灌篮高手》截止今天16时43分,预售总票房已经突破一亿。《灌篮高手》电影将在今晚0点正式上映,该片由原作者井上雄彦亲自执导,并...
日期:04-19
AI占星师横空出世!赛博玄学靠谱吗?我们问了问人类占星师
声明:本文来自于微信公众号 头号AI玩家(ID:AIGCplayer),作者:阿虎,授权转载发布。在算数和算法之间,选择了算卦,是当代年轻人最真实的写照。前有陶白白的走红,后有AI占星的兴起,遇事...
日期:07-28
印度5G手机「外媒:三星将开始在印度生产4G和5G电信设备」
11月28日消息,据国外媒体报道,三星除了是手机生产商之一,还是全球最大的电信设备制造商之一。今日,三星宣布将开始在印度生产4G和5G电信网络设备。据悉,三星计划在其位于印度泰米...
日期:11-30
我们与丰田副社长聊了聊汽车电动化和未来出行「丰田宣布与 Oncor 合作研究电动汽车向电网反向充电技术」
12月16日消息:丰田汽车北美公司和位于德克萨斯州的输电和配电公司 Oncor Electric Delivery(Oncor)已同意围绕车辆到电网(V2G)开展试点项目,这项技术允许车辆将其电池中的能...
日期:12-16
2新生同名同姓同籍贯同专业同寝室 网友:时空重叠
9月9日消息,今年大连理工大学有这样两位新生,同样来自广东省,同样入学国际信息与软件学院,同样都叫刘博文,报到后入住了同一间寝室。微软surface历代产品火币交易所李林消失两人...
日期:09-10
特斯拉将允许第三方充电桩进入其导航系统  但必须满足特定条件
12月22日 消息:特斯拉证实,将允许第三方充电桩进入其导航系统,但这些充电桩需要满足该汽车制造商的高标准要求。目前,用户在特斯拉内部的导航系统中只能看到特斯拉的充电桩,而大...
日期:12-22
2023-2024赛季“动感地带中国街舞联赛校园赛”高能来袭!_动感地带全国街舞挑战赛
(原标题:2023-2024赛季“动感地带中国街舞联赛校园赛”高能来袭!) 10月14日,“动感地带·2023-2024中国街舞联赛校园赛”即将正...
日期:10-08
陌陌签约主播在抖音直播被索赔千万违约金:一审判赔300万_陌陌签约主播工资
10月8日消息,据澎湃新闻报道,中国裁判文书网公布的判决书显示,2019年10月17日,原告天津合尔公司(陌陌科技全资子公司)与被告秦某某签订了《王牌主播直播协议》。约定甲方系乙方直...
日期:10-09
2017款MacBook Pro被列为过时产品:苹果寄予厚望的Touch Bar设计引发争议
快科技9月1日消息,苹果将2017款13英寸、15英寸MacBook Pro列为过时产品。据悉,苹果会将停止发售之日起、已超过5年的设备列为过时产品,老设备不保证能在苹果Apple Store零售店...
日期:09-01
618,电商平台上演“直播大战” | 618观察_618电商战绩
声明:本文来自于微信公众号伯虎财经(bohuFN),作者:灵灵,授权转载发布。淘宝:加码内容,打造更有看点的直播间据战报,淘宝直播618预售期间,李佳琦、香菇来了、蜜蜂惊喜社、烈儿宝贝、...
日期:06-21
苹果2023年第二季度财报显示营收和利润下滑_苹果2021年第二季度财报
苹果2023年第二季度财报显示营收和利润下滑,受全球消费电子产品需求下降影响,硬件产品销量下降。不过,该公司iPhone产品线收入保持稳定,甚至超出预期,而服务业务收入继续增长,并创...
日期:05-05