能,但还比较勉强。
在客户端上跑大模型,一定是未来的趋势。
-
上个时代 AI 的核心应用是推荐系统,推荐是依赖海量数据的,海量数据只有服务端上存在,在推荐这主场景下客户端 AI 上能做的事很少,发展得比较吃力。
-
生成式 AI 时代,最大的应用就是模型本身,只有训练时依赖海量数据,使用时并不依赖数据,那理论上只要客户端硬件资源足够,在客户端使用,跟在服务端使用,场景和效果是一致的。
-
生成式 AI 在端上跑模型,最大的优势是成本。成本是当前生成式 AI 应用除了效果以外第二大关键因素,在用户客户端上跑模型,对服务提供方来说就是 0 成本,0 成本使更多场景大规模免费应用成为可能。其他的优势还包括 隐私保护、实时性、离线可用。
硬件条件
那当前手机设备硬件条件如何?我们可以通过一些指标对手机和服务端的算力差距有个大概认识。
显存:一个模型能不能跑,取决于显存够不够,显存不够模型无法加载。
-
服务端一般用独立显卡,有独立显存。
-
手机通常使用系统级芯片 Soc(System on a Chip),无独立显卡,SoC 中包含了 CPU、GPU、基带等多个组件,使用统一内存架构允许 CPU 和 GPU 共享同一块内存,所以手机 GPU 显存跟手机内存是一个东西。
性能:而模型跑得快不快,取决于芯片性能怎样。
-
芯片性能取决于很多因素,例如芯片架构、显存带宽,而算力是其中一个,通常用TOPS(万亿次每秒 Tera Operations Per Second)指标来衡量算力。TOPS 默认是针对 INT8 整型数的处理次数,另一个指标 TFLOPS 是针对 Float32 浮点数的处理次数。
-
在通用 GPU 以外,现代芯片会搭载专门处理 AI 运算的硬件加速器,NVIDIA 是 Tensor Core,手机 SoC 芯片是 NPU (Neural Processing Unit 神经网络处理单元),以下是 Tensor Core 和 NPU 的运算性能指标。
-
不同芯片性能,特别是涉及不同芯片架构设计的,应该以实测数据作为对比,但当前缺乏这类数据,先用 TOPS 指标看个大概。
我们看看当前常用的英伟达各种显卡芯片,以及移动端设备芯片这几个指标的情况:
芯片
|
TOPS(INT8)
|
显存
|
搭载设备
|
|
服务端芯片
|
2000
|
80G
|
/
|
|
624
|
80G
|
/
|
||
NVIDIA A30
|
330
|
24G
|
/
|
|
NVIDIA A10
|
250
|
24G
|
/
|
|
移动设备芯片
|
45
|
16G
|
小米14/一加12/荣耀6/Redmi K70 Pro
|
|
Apple M4
|
38
|
24G(iPad)
|
iPad Pro / MacBook Pro
|
|
Apple A17 Pro
|
35
|
8G
|
iPhone 15 Pro / Max
|
|
天玑9300
|
20
|
12G/16G
|
vivo X100 / OPPO Find X7
|
|
Apple A15
|
15
|
6G
|
iPhone 13 Pro Max
|
|
Apple M1
|
11
|
16G/32G
|
MacBook Pro
|
手机内存显存与系统共用,正常能提供给 APP 使用的内存只有1/2~2/3,所以可以认为对 APP 来说,手机设备的可用内存需要减半,否则有内存不足 APP 被系统 kill 的风险,像 iPhone 15 Pro 预计是4G,小米14等高端机是8G。
生图模型要求
那当前主流的生图模型,对硬件的要求是怎样?
显存
Stable Diffusion XL base 参数量 3.5B(35 亿),精度 Float16(16位bits,2个字节),换算下来参数总大小 6.5G,实际文件大小6.94G,在模型推理过程中,参数得加载到显存中,也就是显存至少6.9G,同时在模型推理过程过程中,也有一些中间值需要保留在显存中,所以正常需要8G – 12G显存支持。
实测在 Macbook 跑起来,占用了10.3G。极端情况下,通过显存调度之类的技术在 4G 显存也能勉强跑起来,但会性能较差或不稳定。
这个显存要求,在 iPhone 15 Pro 基本是不满足的,Android 高端机整体内存普遍较大,勉强可以支持。
性能
我在 A10 卡和 M1 MacBook Pro 上分别实测了下,SDXL base 模型生成 1024×1024 的图,A10大概6.4秒,M1 大概 95 秒。如果只看 TOPS 指标,A10 220TOPS 是 M1 11TOPS 的20倍,实测跑下来 95秒/6.4秒 = 14.8倍,也就是 M1 与 A10 的实际差距没那么大。
真实性能受各种因素影响,每个芯片有各自的优化方案,单用 TOPS 指标难以衡量,但可以看个大概。如果只看 TOPS 倍率,内存完全足够的情况下,搭载骁龙 8 Gen3 的小米 14 生成同样的图预计需要 17.6s,官方宣传是15s左右。
芯片
|
TOPS
|
SDXL 生图耗时
|
设备
|
NVIDIA A10
|
220
|
6.4s(实测)
|
服务器
|
Apple M1
|
11
|
95s~140s(实测)
|
MacBook Pro
|
骁龙8 Gen3
|
45
|
17.6s(预估)
|
小米14
|
量化
原 SDXL 模型硬件要求高,但如果可以牺牲部分效果,是有办法对原模型做压缩,让它可以跑在低内存手机的。
模型为了成本、速度考虑,一般会进行不同程度的量化。量化就是降低模型参数的精度,神经网络模型中的参数通常使用32位浮点数 Float32 表示,但 Float32(4个字节) 存储大计算量也大,进一步可以压缩映射到更低的数值表示,包括 Float16、Int8、Int4 甚至 Int2 都有应用,只是会带来不同程度的效果损失。
模型量化后,参数需要的存储空间降低,所需要的显存跟着降低,而因为数据量小了,计算量也相应减小,模型推理速度也会加快。
Draw things 这个应用,将 SDXL base 模型量化到 Int8 的精度,模型大小 2G,可以跑在 4G 内存的 iPhone 上(APP 最多只能使用 2G 内存,为此作者做了系列优化)。实测 SDXL base Int8 模型 在 iPhone 13 Pro Max(A15,6G)上,生成 1024*768 的图需要 180s,跟它硬件 TOPS 算力差得有点多,可以认为是推理架构上为了节省内存做的妥协。
LLM 大模型要求
那在 LLM 大模型上,情况怎样?
我们拿阿里通义千问qwen的模型大概看下它 7B 和 72B 在不同量化下的大小。qwen 最大模型是 72B,而 llama3 最大是 400B(还在训练中),可以预估 400B 模型会是接近1T的体量。
如果拿400B模型对标GPT4,72B 模型对标 GPT3.5+,可以看到目前可用的 LLM 模型推理成本和硬件要求是非常高的,比图生成高几十倍。
模型
|
参数量
|
量化
|
大小
|
生成 2048 token 所需显存
|
1.8B
|
Int4
|
1.88G
|
2.9G
|
|
Int8
|
2.49G
|
|||
Float16
|
3.6G
|
|||
7B
|
Int4
|
5.86G
|
8.2G
|
|
Int8
|
9.13G
|
|||
Float16
|
15.41G
|
|||
72B
|
Int4
|
41.65G
|
48G
|
|
Int8
|
111.86G
|
|||
Float16
|
144.18G
|
|||
Stable Diffusion XL base
|
3.5B
|
Float16
|
6.94G
|
qwen 最小的 1.8B 模型,生成 2048 个 token 最低需要 2.9G 显存,当前高端机是可以跑起来的。但 1.8B 效果差很多,预计只能预训练做特定任务。7B 可用性高一些,可以看到 7B 模型就没多少手机能支持了,骁龙8 Gen3 宣传号称 7B 模型推理每秒执行 20 个token,未搜到相关实测。
Google 用于端侧的 Gemini Nano 有 1.8B、3.25B 两种参数量。苹果之前放出来的 OpenELM 模型有 0.27B ~ 3B 的参数量,最新 iOS18 的 AI 模型估计用的就是 OpenELM,限制了只有最新 iPhone 15 Pro 能跑。
iOS Android 都在往系统级集成端侧 LLM 大模型这个方向做,系统集成有更多的硬件资源调度权限,在当前资源条件下容易先做起来,APP 能用到的资源有限,目前很难跑起来。
所以手机跑 LLM 大模型,用最小的模型,在最高端的手机上理论可行,实际应用还要再等等。
端模型问题
除了硬件理论情况,端模型也有一些问题待解决:
-
对服务提供方,有技术保密问题:在端上部署模型,模型、prompt、workflow 都是存储在本地,虽然可以做各种加密,但总能破解,如果服务方视这些为核心竞争力,那就难以以这种方案部署,更有可能的是端云协同的架构,部分运算放客户端,云端处理核心和保密部分。
-
对于手机用户:手机耗电、发热、耗时问题:大量运算跑满 GPU 必然导致手机发热严重耗电高,在持续使用的场景下体验会比云端差,手机芯片跑起来速度也会不如云端快,手机端系统需要做好资源控制和平衡。
-
生态问题:英伟达的CUDA、PyTorch 生态,相关工具链/社区,在端上都是需要重新建立的,当然只要有场景有诉求,这些可以补上,但需要时间。
-
场景和价格问题:能运行大模型的手机,在未来几年价格还是高的,目前还没有比较好的理由让用户接受这个溢价,对用户来说,像生图、修图、LLM当前服务端能提供最好的,在端侧跑模型体验没提升,就没必要溢价买个高端机,高端机平民化速度就会慢。在没有 killer APP 的情况下, 需要靠手机厂商和系统强推了,例如 iOS 18 新Siri 只在最高端机可使用。
结论
图生成硬件要求不算高,高端机已经摸到实际应用的门槛,预计再过一两年,硬件进一步提升,不追求效果极致的图生成应用场景,大部分会部署在客户端上。
LLM 硬件要求高,iOS/Android 系统级应用有条件接入,APP 基本还用不了。等系统应用被大众认知和接受,硬件普遍升级,才轮到 APP 端发挥。
当前过渡阶段,端云协同的方案会比较多,预计也会存在很长一段时间。例如图生成,可以将部分运算(比如 VAE 编解码)放到端上,主生成流程放云端。iOS 18 Siri 也会判断如果用户输入的是简单指令,就不请求服务端,直接端模型生成。
Measure
Measure
© 版权声明
文章版权归作者所有,未经允许请勿转载。
暂无评论内容