础滨驱动的设计应用
随着 ChatGPT 在 2022 年底的推出,生成式 AI (GenAI)进入公众的视野。用户惊讶于自然语言处理聊天机器人的能力,它们几乎是神奇地将短文本提示转变为连贯的类人文本,包括论文、语言翻译和代码示例。科技公司对 ChatGPT 的能力印象深刻,已经开始寻找方法,寻求通过这种创新技术改善自己的产物或客户体验。由于较之以往的 AI 模型,添加 GenAI 将导致在计算复杂性和功耗要求方面的“成本”显著提升,此类 AI 算法可以应用于功耗、性能和成本至关重要的实用边缘设备应用吗? 答案是不一定。
GenAI 的简单定义是“一类机器学习算法,可以生成各种类型的内容,包括类人文本和图像。” 早期的机器学习算法专注于检测图像、语音或文本中的规律,然后根据数据进行预测。例如,预测某一图像中有猫的概率百分比。GenAI 算法迈出了下一步——它们感知和学习规律,然后通过模拟原始数据集按需生成新规律。它们生成猫的图像或详细描述猫。
虽然 ChatGPT 可能是最著名的 GenAI 算法,但还有许多算法可用,并且会经常发布更多算法。GenAI 算法的两种主要类型是文本到文本生成器(又名聊天机器人,如 ChatGPT、GPT-4 和 Llama2),和文本到图像生成模型(如 DALLE-2、Stable Diffusion 和 Midjourney)。您可以在图 1 中看到这两种 GenAI 模型的示例提示及其返回的输出。因为一种基于文本,另一种基于图像,所以这两种类型的输出将需要来自尝试实现这些算法的边缘设备提供的不同资源。
图 1:文本到图像生成器 (DALLE-2) 和文本到文本生成器 (ChatGPT) 的 GenAI 输出示例
常见的 GenAI 用例需要连接到互联网,并从那里访问大型服务器群,以计算复杂的生成式 AI 算法。但是,对于边缘设备应用而言,整个数据集和神经处理引擎必须位于单个边缘设备上。如果可以在边缘运行生成式 AI 模型,那么汽车、相机、智能手机、智能手表、虚拟现实和增强现实、IoT 等应用都会实现潜在的用例和好处。
在延迟低、隐私或安全问题少或网络连接受限是关键考虑因素的情况下,在边缘设备上部署 GenAI 具有显著优势。
考虑 GenAI 在汽车应用中的可能应用。车辆并不总是受到无线信号覆盖,因此 GenAI 需要利用边缘可用的资源运行。GenAI 可用于改善道路救援,并将操作手册转换为 AI 增强的交互式指南。车载用途可能包括 GenAI 驱动的虚拟语音助手,改善在驾驶时设置导航、播放音乐或用语音发送消息的能力。GenAI 还可用于个性化定制您的座舱体验。
其他边缘应用也可能受益于生成式 AI。通过本地生成覆盖计算机生成的图像并减少对云处理的依赖,可以优化增强现实 (AR) 边缘设备。虽然联网的移动设备可以使用生成式 AI 提供的转换服务,但断开连接的设备应能够提供至少一部分相同的功能。与我们的汽车示例一样,语音助手和交互式问答系统可以使一系列边缘设备受益。
虽然边缘现已存在 GenAI 用例,但实现工作必须克服与计算复杂性和模型大小以及边缘设备固有的功率、面积和性能限制相关的挑战。
包括深度技术文章、白皮书、视频、即将举行的网络研讨会、产物公告等等。
了解 GenAI 的构建模块对于了解其架构要求很有帮助。GenAI 快速发展的核心是转换器,这是一种在 2017 年 Google Brain 论文中引入的相对较新的神经网络。转换器在图像、视频或其他二维或三维数据的自然语言处理和卷积神经网络 (CNN) 方面优于递归神经网络 (RNN) 等成熟的 AI 模型。转换器模型的重要架构改进领域是其注意力机制。与传统的 AI 模型相比,转换器可以更关注特定的字词或像素,从而基于数据得出更好的推断。这使得转换器能够更准确地学习文本字符串中的字词与 RNN 之间的上下文关系,从而能够更准确地学习和表达图像中比 CNN 更复杂关系。
图 2:各种机器学习算法的参数大小
GenAI 模型针对大量数据进行了预训练,使他们能够更好地识别和解读人类语言或其他类型的复杂数据。例如,数据集越大,模型就越能更好地处理人类语言。与 CNN 或视觉转换器机器学习模型相比,GenAI 算法的参数(神经网络中用于识别规律和创建新规律的预训练权重或系数)要大几个数量级。在图 2 中,我们可以看到 ResNet50(用于基准测试的通用 CNN 算法)拥有 2,500 万个参数(或系数)。BERT 和 Vision Transformer (ViT) 等转换器具有数亿个参数。而其他转换器,如移动 ViT 已经进行了优化,可以更好地适应嵌入式和移动应用。MobileViT 在参数方面与 CNN 模型 MobileNet 相当。
与 CNN 和视觉转换器相比,ChatGPT 需要 1,750 亿个参数,而 GPT-4 需要 1.75 万亿个参数。即使在服务器群中实现的 GPU 也难以执行这些高端大型语言模型。鉴于边缘设备的内存资源有限,嵌入式神经处理单元 (NPU) 怎样才能完成处理如此多参数的工作? 答案是它们无法完成。然而,现在出现一种趋势,使得 GenAI 更容易在计算资源较为有限的边缘设备应用中运行。有些 LLM 模型经过调整,以减少参数集的资源需求。例如,Llama-2 提供了 700 亿个参数模型版本,但它们也创建了参数较少的较小模型。具有 70 亿个参数的 Llama-2 仍然很大,但却处于实际嵌入式 NPU 实现的范围内。
对于在边缘上运行的生成式 AI,不设硬性阈值。然而像 Stable Diffusion 这样的文本到图像生成器,其具有 10 亿个参数,可以在 NPU 上从容运行。并且边缘设备有望运行高达 60 亿到 70 亿个参数的 LLM。MLCommons 已将 60 亿参数 GenAI 模型 GPT-J 添加到其 MLPerf edge AI 基准测试列表中。
GenAI 算法需要大量的数据移动和显著的计算复杂性(借助转换器支持)。平衡了这两个要求之后,就可以确定给定架构是计算受限(乘法不足以处理现有数据),还是内存受限(内存和/带宽不足以提供完成处理所需的全部乘法)。文本到图像具有更好的计算和带宽要求组合——处理二维图像需要的计算较多,参数较少(在十亿范围内)。大型语言模型则更加不平衡。只需要较少的计算,却需要数量庞大的数据移动。即使是较小的(六七十亿参数)LLM 也受内存限制。
显而易见的解决方案是选择最快的内存接口。从图 3 中可以看出,边缘设备中通常使用的内存 LPDDR5 的带宽为 51 Gbps,而 HBM2E 可支持高达 461 Gbps 的带宽。然而,这并没有考虑到 LPDDR 内存相对于 HBM 的降耗优势。HBM 接口通常用于高端服务器型 AI 实现,但 LPDDR 因其降耗能力,而几乎完全用于功耗敏感型应用。
图 3:LPDDR 和 HBM 之间的带宽和功率差异
使用 LPDDR 内存接口将自动限制 HBM 内存接口可实现的最大数据带宽。这意味着,与服务器应用中使用的 NPU 或 GPU 相比,边缘应用给予 GenAI 算法的带宽将自动减少。解决带宽限制的一种方法是增加片上 L2 内存的数量。然而,这影响了面积,进而就会影响硅成本。虽然嵌入式 NPU 经常通过实现硬件和软件来减少带宽,但它不允许 LPDDR 获取 HBM 带宽。嵌入式 AI 引擎将被限制为可用的 LPDDR 带宽量。
草榴社区 ARC? NPX6 NPU IP 系列基于第六代神经网络架构,旨在支持包括 CNN 和转换器在内的一系列机器学习模型。NPX6 系列可通过可配置数量的内核进行扩展,每个内核都有自己的独立矩阵乘法引擎、通用张量加速器 (GTA) 和专用直接内存访问 (DMA) 单元,用于简化数据处理。NPX6 可以使用相同的开发工具,将需要性能低于 1 TOPS 的应用扩展为需要数千 TOPS 的应用,从而最大限度地提高软件的重复使用。
矩阵乘法引擎、GTA 和 DMA 全都经过优化以支持转换器,使 ARC NPX6 能够支持 GenAI 算法。每个内核的 GTA 都经过明确设计和优化,可高效执行非线性函数,例如 ReLU、GELU、Sigmoid。这些功能使用灵活的查找表方法加以实现,可预测未来的非线性函数。GTA 还支持其他关键操作,包括转换器所需的 SoftMax 和 L2 标准化。除此之外,每个内核内的矩阵乘法引擎每个循环可以执行 4,096 次乘法。由于 GenAI 基于转换器,因此在 NPX6 处理器上运行 GenAI 没有计算限制。
要针对 GenAI 等基于转换器的模型实现高效的 NPU 设计,就需要复杂的多级内存管理。ARC NPX6 处理器具有灵活的内存架构,可支持可扩展的 L2 内存,最高可支持 64MB 的片上 SRAM。此外,每个 NPX6 内核都配备了独立的 DMA,专门用于执行获取特征图和系数以及编写新特征图的任务。这种任务区分可以实现高效的流水线数据流,从而最大限度地减少瓶颈并最大化处理吞吐量。该系列在硬件和软件中还具有一系列带宽节省技术,以最大化利用带宽。
在嵌入式 GenAI 应用中,ARC NPX6 系列将仅受系统中可用 LPDDR 的限制。NPX6 成功运行 Stable Diffusion(文本到图像)和 Llama-2 7B(文本到文本)GenAI 算法,而其效率取决于系统带宽和片上 SRAM 的使用情况。虽然更大的 GenAI 模型也可以在 NPX6 上运行,但它们将比在服务器上实现的更慢(按照每秒令牌数测量)。
如需了解更多信息,请访问 。
深度技术文章、白皮书、视频、网络研讨会、产物公告等等。