高通万卫星:生成式 AI 落地端侧,解密高通的软硬件 AI 大招
芯东西(公众号:aichip001)
编辑 | GACS
9 月 14 日 -15 日,2023 全球 AI 芯片峰会(GACS 2023)在深圳市南山区圆满举行。在首日主题演讲开幕式上,高通 AI 产品技术中国区负责人万卫星分享了主题为《终端侧 AI 是 AI 的未来》的主题演讲。
万卫星着重分享了高通对生成式 AI 未来发展趋势的观察:随着云端处理生成式 AI 的成本不断提升,未来云经济将难以支撑生成式 AI 的规模化发展。此外,基础模型正在向多模态扩展,模型能力越来越强大,而垂直领域模型的参数量也正在变得越来越小。未来,丰富的生成式 AI 模型将在终端侧运行,让大众享受到生成式 AI 带给生活、工作、娱乐上的变革。
以下为万卫星的演讲实录:
尊敬的各位嘉宾,各位同行,大家上午好!很荣幸作为高通中国的代表参加这次峰会并进行演讲,我非常期待能跟各位一起共同推动 AI 产业在中国的繁荣发展。今天我给大家带来的演讲主题是终端 AI 是 AI 的未来。
一、终端侧 AI 加速落地,高通已深耕端侧 AI 多年
随着去年 Stable Diffusion、Midjourney 和 GPT 的火爆,生成式 AI 的概念在以指数速度在我们普通大众中普及。前面有嘉宾也分享了,ChatGPT 是有史以来最快的,只花了两个月的时间就拥有了 1 亿使用者的应用。
回到这张胶片,虽然我在这里列举的多数是图片相关的生成式 AI 应用,但是我们也知道生成式 AI 应用不仅仅是局限于图像,还包括文字生成文字、图片生成图片,甚至包括文字生成代码、音乐,图片生成视频,等等。
我们看到现在的基础大模型都在朝多模态模型转变,我们认为这将深刻影响到我们的生活、工作和娱乐方式。为了让普通大众能够更方便地享受到生成式 AI,生成式 AI 需要在终端侧运行,这也是高通公司努力推动的一个方向。
我们认为数据在哪里,AI 的推理就应该在哪里。这个正确的地方,就是在终端侧。跟云端相比,端侧的优势包括成本、能耗、可靠性、时延和性能,还有非常重要的隐私和安全,因为所有数据都保留在终端,不会上传到任何云端。
除此之外,我们还可以根据端侧的信息为不同的用户提供定制化、个性化的服务,所有的这些服务都不依赖于任何网络连接。对于一些有着上千亿参数,只能在云端运行的大模型,高通的 5G 技术也能够帮助我们充分利用云端的算力,提高我们在端侧的 AI 体验。
在今年 2 月份的世界移动通信大会上,我们基于第二代骁龙 8 的终端演示了全球首个在安卓手机上运行 Stable Diffusion 的终端侧演示,通过高通全栈式 AI 对 Stable Diffusion 这样一个超过 10 亿参数的文生图大模型的优化,我们可以 15 秒内完成 20 步推理,输出一张 512*512 的图片。
今年 6 月份,同样也是基于第二代骁龙 8,我们完成了全球最快的手机上运行 ControlNet 终端侧演示,ControlNet 是一个参数量比 Stable Diffusion 更大的图生图大语言模型,用户可以输入一些文本,同时选择输入你日常拍摄的一张普通照片。比如说现在展示的拍了一张花瓶的照片,通过 ControlNet 得到一张具有文艺复兴时期作品风格的输出照片。当然,你也可以用它做其他的事情,比如对旅游照片做背景切换或者构图等等。
二、生成式 AI 发展三大趋势,终端侧 AI 势不可挡
下面我想谈一谈我们观察到的,生成式 AI 当前的发展趋势。
第一个趋势,生成式 AI 的成本。我们这里举了一个例子,单就网络搜索为例,使用生成式 AI 的新技术跟传统的办法相比,每次搜索的成本提升 10 倍。考虑到还有各种各样的生成式 AI 应用正在涌现,以及全球数十亿的用户,显而易见,云经济将难以支撑生成式 AI 的规模化发展。
第二个趋势,我前面也提到,现在数据的模态非常多,有文本、图像,音乐、语音等等,基础模型正在向多模态扩展,也就是说用户可以随意输入任意模态的数据,可以得到与之对应的任意模态的输出数据,也就是所谓的 "X to X"。
第三个趋势,我们能看到现在的基础模型变得越来越强大,但同时垂直领域模型的参数量变得越来越小,比如说 GPT-3 总的参数量在 1750 亿,但是 Meta 发布的 Llama,包括国内的百川等模型,他们的参数量要小很多,可能只有 70 亿或者 130 亿。
跟大参数量基础模型相比,这些相对较小参数量的大模型在某些垂直领域,性能依然十分强大,这也是为什么我们认为在未来,我们非常有机会将这些模型在终端侧部署,让更广泛大众能够享受到生成式 AI 给我们的生活、工作、娱乐带来的各种变革。
如果我们仔细看一下不同的这些生成式 AI 的用例,包括文字生成图像或对话、NLP(自然语言处理)、编程、推理甚至包括图像、视频理解等等,所有支撑这些 AI 用例的大模型,它的参数量在 10 亿 -150 亿之间,这也是为什么我们认为在终端侧完全有可能让这些模型跑起来。
当前我们可以支持 10 亿包括 15 亿参数的大模型在骁龙平台支持的终端侧运行。未来几个月我们也非常有希望能看到,超过 100 亿参数的大模型能够完整地在骁龙平台上跑起来。我们在终端侧通过不断提升大模型支持的参数阈值,让更多云端的生成式 AI 用例向边缘侧迁移。
像手机这样的终端,它有着相机、麦克风、传感器、蓝牙、Wi-Fi、调制解调器等等能够提供感知信息的模块,而这些感知信息可以作为生成式 AI 输入提示,让终端可以提供更个性化的服务,而不需要通过任何网络连接。
但同时人们可能担心,所有的个性化隐私数据当作生成式 AI 的输入,会不会有隐私安全泄露的问题?针对这方面的担心,我们认为一个比较好的解决方案,是让整个模型完全闭环跑在终端侧,让所有感知信息、隐私数据全部保留在终端侧,没有任何数据可以上云。
三、高通 AI 引擎成硬件杀手锏,多项黑科技实现能效翻倍
高通之所以能够支撑这些超过 10 亿参数,甚至未来超过 100 亿参数量的大模型在终端部署,所依赖的是高通强大的高通 AI 引擎和统一的技术路线图。
下面,我会从硬件和软件两个角度分别跟大家展开介绍。
第一就是我们的硬件高通 AI 引擎。可以看到,高通 AI 引擎既有通用的 CPU、GPU 硬件加速单元,还有一颗专门为大算力 AI 工作负载而设计的高性能 AI 硬件加速单元 Hexagon 处理器。
在此之上我们还有另外一块单独的超低功耗处理器,高通传感器中枢,适用于一些始终开启功能,比如相机、屏幕和语音唤醒等等。这些模块共同构成了一整套异构计算系统,同时结合我们的异构软件系统,能够充分释放高通 AI 引擎的 AI 加速能力。
高通的 AI 硬件优势在哪里?我觉得第一是性能,我们不仅能提供领先的峰值性能,也能提供非常好的能效。我们在既定功耗下的性能领先于手机和 PC 领域的竞争对手。
第二点,前面有嘉宾提到,目前大语言模型 70% 都是基于 Transformer,高通在硬件上,也针对 Transformer 网络架构做了专门的硬件优化,重塑了神经网络架构,减少算子数量,引入了先进的量化、微切片推理等技术。
微切片推理技术可以把一个比较大的模型切成更细粒度的切片,在更细粒度的层面上对整个算子融合,包括边缘计算等做加速,充分利用较大的配套内存,提高配套内存的使用率,尽量去降低跟 DDR 的交互。
因为大家知道,其实在数据读取上,读取配套内存跟读取 DDR,性能大概有 1-2 个数量级的差异。除此之外,我们还专门针对 Transformer 里面的激活函数和分组卷积做了专门的加速。
大家都知道神经网络里面有不同的数据类型,这颗 Hexagon 处理器上有标量、向量和张量加速器。尤其是张量加速器,跟上一代产品相比,算力翻倍。
另外是量化技术,功耗对于终端设备是一个非常关键的问题,所以我们在做模型推理的时候,对模型做量化是一个非常好的手段。高通此前就提供了对 INT8 和 INT16 的支持,甚至我们支持它们之间的混合量化。有些神经网络架构对首尾层精度要求比较高,但在中间层对精度要求没那么高,所以我们提出的混合量化,可以针对某些层用 INT16 去做量化,对于精度要求不那么高的,用 INT8 去做量化。
这样既可以享受到 INT8 量化带来的性能优势,也可以享受到 INT16 带来的精度优势。在去年年底的骁龙峰会上,第二代骁龙 8 宣布首次支持 INT4 精度量化。INT4 量化跟 INT8 量化相比,可以带来 60% 的功耗节省或者 90% 的性能提升。
四、一次开发多端部署,打通软件底层加速生态扩展
前面讲的大多数跟硬件相关,在软件方面我们推出了高通 AI 软件栈(Qualcomm AI Stack),这是一个跨平台、跨终端、跨 OS 的统一软件栈,它贯彻了我们的每一条产品线,包括手机,汽车、PC,还有各种 IoT 设备、机器人等。
这张图就是我们高通 AI 软件栈的整体框架。从上往下看,最上面是我们的框架层,我们支持目前主流的框架,包括 TensorFlow、PyTorch、ONNX、Keras 等等。
再往下是 Runtimes 层,高通有自己的 Runtimes,叫高通神经网络处理 SDK,我们的合作伙伴或者开发者可以直接调用我们的 Runtimes。当然,我们也支持开源的 Runtimes,包括像 ONNX、Direct ML、TF Lite 等等。我们还有更底层的模块去支持第三方的 Runtimes,叫高通 AI 引擎 Direct。第三方 Runtimes 可以调用高通 AI 引擎 Direct 的接口,充分利用高通 AI 引擎的 AI 硬件加速单元来做推理加速。
再往下就是开发者库和服务层,我们提供丰富的加速库给到开发者去做调用。同时,我们还提供编译器,让开发者在做模型转化时对高通底层的硬件更友好。同时我们的编译器也可以支持用户通过我们给定的引导去写自己定义的算子。
除了编译器之外,我们还提供比较丰富强大的分析器和调试器。开发者在做推理部署的时候会发现,很多时候推理性能或者精度不如人意,我们的工具可以告诉开发者整个推理性能在哪里;网络结构、推理结构对高通硬件是否友好;或者是哪一层引起的精度问题,是因为量化位宽不够,还是本身的算子在高通 HTP 实现的效率不够好等等。
再往下就是我们的系统层。系统层提供了丰富的系统接口,也提供了各种各样底层的 Kernel 驱动器。当然,我们还提供了一个仿真支持。如果开发者没有拿到高通的平台或者开发板,但又想知道整体算法在骁龙平台上部署的表现情况或者精度怎么样,可以用我们的仿真支持,我们有一个模拟器会给到大家。
再往下就是 OS 层,高通的产品线非常丰富,OS 层支持安卓手机、平板、PC 的 Windows 系统,还有各种 IoT 设备采用的 Linux 或者是 CentOS 等等,还有我们的 QNX。我们把所有的 OS 都集成在高通 AI 软件栈里面,能够支持高通所有的产品形态。
除此之外,我们还有高通 AI 模型增效工具包(AIMET),AIMET 最主要有两个功能,一个是帮助大家做量化,我们支持 PTQ(量化感知训练)和 QAT(训练后量化);另外是模型压缩。
结一下,高通 AI 软件栈是一个跨平台、跨终端、跨 OS 的统一软件栈。高通 AI 软件栈旨在帮助合作伙伴及开发者在骁龙平台上更高效地完成软件部署,提高它的扩展性,也就是所谓的一次开发、多次部署。以上就是我今天演讲的全部内容,谢谢大家!
以上是万卫星演讲内容的完整整理。