0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

请问移动端生成式AI如何在Arm CPU上运行呢?

Arm社区 来源:Arm社区 2024-05-21 17:07 次阅读

2023 年,生成式人工智能 (Generative AI) 领域涌现出诸多用例。这一突破性的人工智能 (AI) 技术是 OpenAI 的 ChatGPT 和 Google 的 Gemini AI 模型的核心,能够根据用户输入的文本提示生成文本、图像,甚至音频内容,其有望简化工作流程和推动教育发展。这是不是听起来相当震撼呢?

而随着生成式 AI 技术下沉到我们钟爱的消费电子设备上,其未来又将会如何发展?答案是,在边缘移动设备上部署生成式 AI。

在本文中,我们将展示大语言模型 (LLM) 作为一种生成式 AI 推理形式,如何在基于 Arm 技术的多数移动设备上运行。此外我们还将介绍,鉴于此类 AI 工作负载所需的典型批量处理大小以及计算和带宽的平衡,Arm CPU 如何适配此类用例。并进一步阐释 Arm CPU 的 AI 功能,展示其灵活性和可编程性如何巧妙地实现软件优化,从而为许多 LLM 用例带来巨大的性能优势和发展机会。

LLM 简介

生成式 AI 可采用的网络架构多种多样。LLM 以其无可比拟的大规模解释和生成文本的能力,迅速崭露头角。

顾名思义,大语言模型 (LLM) 比以往使用的模型要大得多。确切地说,其可训练参数达到一千亿到一万亿。如此规模的参数量,至少是 2018 年 Google 训练的最大型先进自然语言处理 (NLP) 模型之一的 BERT(基于 Transformer 的双向编码器表示技术)三倍以上的数量级。

那么,一个一千亿参数的模型如何转化为 RAM 呢?如果打算在使用 16 位浮点数加速的处理器上部署这一模型,那么至少需要 200 GB 的 RAM!

因此,这些大模型只能在云端运行。然而,这带来了三个根本性的挑战,并进而限制此项技术的普及:

高昂的基础设施成本

隐私问题(因为用户数据可能会泄漏)

可扩展性挑战

2023 年下半年,一些规模较小、效率更高的 LLM 逐渐涌现。这些模型将生成式 AI 扩展至移动端,让此项技术的应用变得更加普遍。

2023 年,Meta 的 Llama 2、Google 的 Gemini Nano 和微软的 Phi-2 开辟了移动端 LLM 的部署,以解决上述三大挑战。具体来说,这三个模型的可训练参数分别达到 70 亿、32.5 亿和 27 亿。

在移动端 CPU 上运行 LLM

基于 Arm 技术,当今的移动设备拥有强大的计算能力,能够实时运行复杂的 AI 算法。事实上,现有的旗舰和高端智能手机已经可以运行 LLM。

预计未来 LLM 在移动端的部署将会加速,并可能出现如下用例:

文本生成:举例而言,我们要求虚拟助理为我们撰写一封电子邮件。

智能回复:即时通讯应用自动提供针对某个问题的建议回复。

文本摘要:电子书阅读器提供章节摘要。

在上述的用例中,模型需要处理大量的用户数据。而在边缘侧运行的 LLM 则无需连接网络,用户数据便会保留在设备中,这将有助于保护个人隐私,同时降低延迟,改善响应速度和用户体验。这些都是在边缘侧移动设备上部署 LLM 所能带来的优势。

幸运的是,得益于 Arm CPU,全世界约 99% 的智能手机都具备在边缘侧处理 LLM 所需的技术。

在 2024 世界移动通信大会 (MWC 2024) 上 Arm 进行了相关演示,敬请观看以下视频:

视频演示了在搭载三核 Arm Cortex-A700 系列 CPU 核心的现有安卓手机上运行 Llama2-7B LLM 的性能表现。视频中展示的是实际运行速度,可以看到安卓应用里的虚拟助手反应非常灵敏,回复速度很快。词元 (Token) 首次响应时间表现惊人,文本生成速率达到每秒 9.6 个词元,高于人们的平均阅读速度。这得益于现有针对 AI 设计的 CPU 指令和专门为 LLM 进行的软件优化。更重要的是,所有处理都在边缘(即移动设备上)本地完成。

随着新模型的不断涌现,Arm 也在不断地改进 Arm 平台上的 LLM 体验。随着近期 Meta 推出了最新 Llama 3 模型,以及微软发布了 Phi-3-mini (Phi-3 3.8B) 模型,我们迅速地让它们得以在移动设备上的 Arm CPU 运行。Llama 3 和 Phi-3-mini 比它们的前代模型更大。从体量上来看,最小版本的 Llama 2 为 7B,而 Llama 3 达到了 8B;另外,Phi-2 为 2.7B,而 Phi-3-mini 达到了 3.8B。这些新的 AI 模型能力更强,可以回应更广泛的问题。

新的演示配备了一个经过专门训练的聊天机器人Ada”,可以作为科学和编码的虚拟助教。在以下视频中运行的 Phi-3-mini 模型显示出同样令人印象深刻的词元首次响应时间性能,文本生成速率每秒超过 15 个词元。该演示基于我们为 Llama 2 和 Phi-2 开发的现有软件优化。尽管这些模型更大、更复杂,但这清楚地表明它们可以在当今由 Arm CPU 驱动的移动设备上良好运行。

那么这些演示是如何开发出来的呢?接下来,我将分享一些技巧,来帮助大家在搭载 Arm CPU 的安卓手机上部署 LLM。

在移动设备上部署 LLM

首先要强调的是,Arm CPU 为 AI 开发者提供了诸多便利。因此,如今第三方应用中有 70% 的 AI 应用均运行在 Arm CPU 上。由于其编程能力非常灵活,AI 开发者可以尝试应用创新的压缩和量化技术,让 LLM 更加小巧,并且在各种环境下运行得更快。实际上,我们之所以能运行一个具有 70 亿参数的模型,关键就在于整数量化技术,我们的演示中使用的是 int4。

int4 位量化

作为一项关键技术,量化可以将 AI 和机器学习 (ML) 模型压缩至足够小,以便能在 RAM 有限的设备上高效运行。因此,这项技术对于那些原生以浮点数据类型(如 32 位浮点 FP32 和 16 位浮点 FP16)存储数十亿可训练参数的 LLM 来说,是必不可少的。例如,采用 FP16 权重的 Llama2-7B 版本至少需要大约 14 GB 的 RAM,而这是许多移动设备无法满足的条件。

通过将 FP16 模型量化到四位,我们可以将其大小缩减至原来的四分之一,并将 RAM 使用量降低到大约 4 GB。得益于 Arm CPU 提供的巨大软件灵活性,开发者还可以通过减少参数值位数来获得更小的模型。但请注意,将位数减少至三位或两位可能会导致准确度明显降低。

在 CPU 上运行工作负载时,我们建议通过一个简单的技巧来提高其性能,即设置线程的 CPU 关联性。

采用线程关联性改善 LLM 的实时体验

一般来说,当部署 CPU 应用时,操作系统 (OS) 负责选择运行线程的核心。此决策并不总是以实现最佳性能为目标。

但是,对于非常看重性能表现的应用而言,开发者可以使用线程关联性,强制线程运行在特定核心上。这项技术帮助我们提升了 10% 以上的延迟速度。

您可以通过关联性掩码指定线程关联性,关联性掩码的每一位都代表系统中的一个 CPU 核心。假设有八核,其中四核是 Arm Cortex-A715 CPU,并被分配给位掩码的最高有效位 (0b1111 0000)。

为了在每个 Cortex-A715 CPU 核心上运行每个线程,我们应该在执行工作负载之前将线程关联性掩码传递给系统调度程序。在安卓设备中,此操作可通过以下系统调用函数完成:

5e0c4dcc-1750-11ef-b74b-92fbcf53809c.jpg

例如,假设有两个线程,我们可以为每个线程使用以下位掩码:

线程 1:位掩码 0b1000 0000

线程 2:位掩码 0b0100 0000

执行工作负载后,我们应将关联性掩码重置为默认状态,如下面的代码片段所示:

5e24e710-1750-11ef-b74b-92fbcf53809c.jpg

通过利用线程关联性,您可轻松提高各类 CPU 工作负载性能。然而,仅靠 int4 量化和线程关联性还不足以全方面发挥 LLM 的性能。我们知道,低延迟直接关系到用户的整体体验,对此类模型至关重要。

因此,Arm 开发了高度优化的 int4 矩阵乘向量和矩阵乘矩阵 CPU 例程,以显著提升性能表现。

Arm int4 优化矩阵乘矩阵和矩阵乘向量例程

矩阵乘矩阵和矩阵乘向量例程是对 LLM 性能至关重要的函数。这些例程已使用 SDOT 和 SMMLA 指令针对 Cortex-A700 系列 CPU 进行了优化。相较于 llama.cpp 中的原生实现,我们的例程(即将推出)将词元首次响应时间(编码器)缩短了 50% 以上,文本生成速率提升了 20%。

这仅仅只是开始......

出色的用户体验、优越的性能表现,而这仅仅只是开始......借助专用 AI 指令、CPU 线程关联性,以及经过软件优化的例程,这些演示展示了出色的交互式用例的整体使用体验。上文中的演示视频展示出,词元首次响应时间非常短,文本生成速率快于人们的平均阅读速度。更令人兴奋的是,所有搭载 Cortex-A700 的移动设备均能实现这样的性能表现。

我们也很高兴看到开发者开源社区参与到 Arm 平台上的模型工作。Arm CPU 为 AI 开发者社区提供了试炼自己技术的机会,以提供进一步的软件优化,使 LLM 得以更小、更快、更高效。开源社区中的开发者大约在 48 小时内就成功在 Arm 平台上启动并运行了新模型,这便是很好的例证。我们期待看到更多来自开源的力量参与到 Arm 平台上的生成式 AI 开发。

而这只是基于 Arm 技术的 LLM 体验的初期成果。随着 LLM 变得更加小巧而精密,它们在边缘移动设备上的表现也将稳步提升。此外,Arm 以及我们行业领先生态系统中的合作伙伴将继续推动硬件进步和软件优化,加速发展 CPU 指令集的 AI 功能,如针对 Armv9-A 架构的可伸缩矩阵扩展 (Scalable Matrix Extension, SME) 等。这些进展预示着在不久的未来,基于 Arm 架构的消费电子设备将迎来 LLM 用例的新时代。



审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1367

    浏览量

    114517
  • 人工智能
    +关注

    关注

    1791

    文章

    46820

    浏览量

    237462
  • LLM
    LLM
    +关注

    关注

    0

    文章

    272

    浏览量

    304
  • 生成式AI
    +关注

    关注

    0

    文章

    487

    浏览量

    458

原文标题:移动端生成式 AI 如何在 Arm CPU 上运行?

文章出处:【微信号:Arm社区,微信公众号:Arm社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MediaTek发布天玑8300移动芯片,全面革新推动生成AI创新

    2023 年11月21日 – MediaTek发布天玑 8300 5G生成AI移动芯片,将天玑的旗舰级体验引入天玑8000系列,赋能高端智能手机A
    发表于 11-21 16:01 1244次阅读
    MediaTek发布天玑8300<b class='flag-5'>移动</b>芯片,全面革新推动<b class='flag-5'>端</b>侧<b class='flag-5'>生成</b><b class='flag-5'>式</b><b class='flag-5'>AI</b>创新

    新功能get√:AI大学移动,来了!

    `「AI大学移动」已经正式上线了!点开公众号菜单栏【AI大学】~即可在手机上观看相关AI课程视频躺着看,坐着看、等地铁的时候看,随时随地,
    发表于 07-13 10:23

    何在RK3399这一 Arm64平台搭建Tengine AI推理框架

    Tengine是什么?如何在RK3399这一 Arm64平台搭建Tengine AI推理框架
    发表于 03-04 12:31

    何在RK3399搭建Tengine AI推理框架

    Tengine是什么?如何在RK3399这一 Arm64 平台上搭建 Tengine AI 推理框架,并运行图像识别相关应用?
    发表于 03-07 07:53

    何在基于Arm的设备运行游戏AI

    的工作原理以及游戏如何在基于 Arm 的设备运行。培训策略是时候开始训练了一切准备就绪后,就该开始训练了。训练区域的许多副本可以在场景中实例化。这加快了训练,允许环境同时收集许多经验
    发表于 08-15 15:43

    何在嵌入设备运行高性能Java

    何在嵌入设备运行高性能Java
    发表于 03-28 09:43 16次下载

    程序是如何在 CPU运行的(二)

    在上一篇文章中《程序是如何在 CPU运行的(一)》笔者讲述了程序中一条一条指令以及一条一条数据是如何在 CPU
    发表于 02-07 11:10 1次下载
    程序是如<b class='flag-5'>何在</b> <b class='flag-5'>CPU</b> 中<b class='flag-5'>运行</b>的(二)

    英伟达 GTC 2023黄仁勋谈生成AI

    英伟达 GTC 2023黄仁勋谈生成AI 黄教主在GTC 2023大谈特谈生成
    的头像 发表于 03-22 17:14 1850次阅读
    英伟达 GTC 2023<b class='flag-5'>上</b>黄仁勋谈<b class='flag-5'>生成</b><b class='flag-5'>式</b><b class='flag-5'>AI</b>

    移动设备部署机器学习,Arm谈如何赋能移动AI

    如今生成AI带火了整个AI产业,尤其是各大厂商扎堆于大模型的AI训练,不过很多AI应用的落地则
    的头像 发表于 07-07 14:47 594次阅读
    <b class='flag-5'>移动</b>设备部署机器学习,<b class='flag-5'>Arm</b>谈如何赋能<b class='flag-5'>移动</b><b class='flag-5'>AI</b>

    利用 NVIDIA Jetson 实现生成 AI

    交互速率运行的 Llama-2-70B 模型。 图 1. 领先的生成 AI 模型在  Jetson AGX Orin 的推理性能 如要在
    的头像 发表于 11-07 21:25 914次阅读
    利用 NVIDIA Jetson 实现<b class='flag-5'>生成</b><b class='flag-5'>式</b> <b class='flag-5'>AI</b>

    MediaTek 发布天玑 8300 移动芯片,全面革新推动生成 AI 创新

    MediaTek 发布天玑 8300 5G 生成 AI 移动芯片,将天玑的旗舰级体验引入天玑 8000 系列,赋能高端智能手机 AI 创新
    的头像 发表于 11-21 20:30 508次阅读
    MediaTek 发布天玑 8300 <b class='flag-5'>移动</b>芯片,全面革新推动<b class='flag-5'>端</b>侧<b class='flag-5'>生成</b><b class='flag-5'>式</b> <b class='flag-5'>AI</b> 创新

    Arm平台赋能移动生成AI

    生成人工智能 (Generative AI) 涵盖了当下广为人知,且备受关注的大语言模型 (LLM),如今也已落地边缘侧的移动设备。
    的头像 发表于 04-26 11:09 763次阅读

    新的Armv9 CPU技术加速AI移动设备等领域的发展

    当今移动设备的大多数人工智能 (AI) 工作负载均可在 Arm CPU
    的头像 发表于 05-30 11:44 556次阅读
    新的Armv9 <b class='flag-5'>CPU</b>技术加速<b class='flag-5'>AI</b>在<b class='flag-5'>移动</b>设备等领域的发展

    原来这才是【生成AI】!!

    随着ChatGPT、文心一言等AI产品的火爆,生成AI已经成为了大家茶余饭后热议的话题。可是,为什么要在AI前面加上“
    的头像 发表于 06-05 08:04 290次阅读
    原来这才是【<b class='flag-5'>生成</b><b class='flag-5'>式</b><b class='flag-5'>AI</b>】!!

    在设备利用AI Edge Torch生成API部署自定义大语言模型

    时,从而无缝地将新的设备生成 AI 模型部署到边缘设备。本文是 Google AI Edg
    的头像 发表于 11-14 10:23 311次阅读
    在设备<b class='flag-5'>上</b>利用<b class='flag-5'>AI</b> Edge Torch<b class='flag-5'>生成</b><b class='flag-5'>式</b>API部署自定义大语言模型