把大模型塞进 iPhone,苹果的这篇论文给出了突破性方案公众号新闻2024-01-04 09:01文章来源:GenAI新世界 作者:苗正 大模型领域最新的一个热门趋势是把模型塞到手机里。而最应该做这个研究的公司终于带着它的论文现身,那就是苹果。这家公司的研究团队最近发布了一篇论文《LLM in a flash: Efficient Large Language Model Inference with Limited Memory》,简单说,它尝试利用闪存来解决大模型在塞进手机时遇到的内存不足的问题。这是一个对于端侧部署模型十分关键的问题。计算机的记忆体(Memory)简单分为内存(Ram)和闪存(Flash)两种。内存用于临时存储那些需要随时访问的数据和指令,它提供高速的读写,有较高的存储密度。而闪存正相反,它读写较慢,适用于长期数据的存储。因此从特性上看,内存更适合需要频繁读写的大模型。然而这带来一个问题,它成了一个限制死了的搭配,比如一个 70 亿参数的模型就必须需要超过 14GB 的内存才能以半精度浮点格式加载参数,但这超出了大多数边缘设备的能力。如这篇论文的标题所示,苹果想要通过闪存来解决这个问题。苹果版的曹冲称象论文为了将大模型搬到闪存上,一共做了三步。第一步:先让闪存能参与进模型运行中来。论文提到一个概念,大语言模型在前馈网络(FFN)层展现出高度的稀疏性(超过 90%)。FFN 是一种基本的神经网络架构,其中信息单向流动,从输入层流向输出层,中间可能经过多个隐藏层。在这种网络中,每一层的输出仅作为下一层的输入,而没有任何反馈或循环连接。于是论文把 FFN 当成是一个筛子,仅迭代传输闪存中必要的、非稀疏数据到 DRAM 进行处理。使用修正线性单元(ReLU)前后输出幅度对比,ReLU 用来实现稀疏性接下来是第二步:论文提出了一种名为「滑动窗口技术」的神经元数据管理方法。把那些在预测模型中产生正输出的神经元定义为活跃神经元,在内存中保留最近一部分输入标记的神经元数据,仅加载当前输入标记与其直接前驱不同的神经元数据。这样做能有效利用内存,释放掉之前分配给已不在滑动窗口内的旧标记神经元数据的内存。滑动窗口技术第三步:论文还提出了一种增加数据块大小的策略。论文用 OPT 和 Falcon 模型做实验,把向上投影的第 i 列和向下投影的第 i 行捆绑存储。当激活第 i 个中间神经元时,这两部分数据会同时被使用。通过在闪存中将这些对应的列和行一起存储,可以将数据整合成更大的块进行读取。内存管理策略,首先将最后的元素复制到要删除的神经元中,以保持连续的内存块,然后将需要的元素堆叠到最后。这些术语看起来依然晦涩?没关系我们可以做个类比,事实上它的思路与曹冲称象非常像。首先论文要解决的问题就是,大模型是大象,没办法直接上秤测量(设备内存有限,放不了大模型)。于是用了三个步骤来在特定环节减少对大模型的访问延迟。首先找到一个等价方法,让大象上船,测量水位线,再用石头垒在船上,船达到同样的水位线,最后称这些石头的重量(也就是上面说的第一步,可以理解为减少数据加载)。然后,其中体积一样大的石头不需要称第二次(也就是第二步,优化数据块大小以提高闪存吞吐量)。此外,搬运石头的时候使用更大的框,一次可以装很多块石头(就是最后一步的,高效管理加载到内存中的数据)。而这个过程的重点,是优化闪存交互和内存管理,以实现内存受限设备上的高效推理。使用这个方法来预测FFN的稀疏性并避免加载零化的参数,优化成本模型和按需选择性加载参数,实现了可以运行比设备 DRAM 容量大两倍的模型,并在 CPU 和 GPU 上分别比传统方法提速 4-5 倍和 20-25 倍。当然,论文提供的方法只针对 60 到 70 亿左右参数的模型,如果是几百亿参数的模型,这样的办法会造成死锁或者内存溢出。不过他仍然给了便携使用大模型这事一种可能性,这是非常难得的。为了证明论文提出方法的实际价值,论文引用了 Facebook 的 OPT 6.7B 模型和 TII 的 Falcon 7B 模型。下图在模型的一半内存可用时,1 个 token 的推理延迟。在 M1 Max 上,每个 token 从闪存加载需要 125 毫秒的延迟,内存管理需要 65 毫秒。因此,每个 token 总的与内存相关的延迟小于 190 毫秒(两者总和)。相比之下,传统方法需要以 6.1GB/s 的速度加载 13.4GB 的数据,导致每个 token 的延迟大约为 2330 毫秒。因此,这个方法相对于基准方法表示了重大改进。 Falcon 7B 也是类似,使用论文的方法延迟仅为 250 毫秒,而传统方法的延迟为 2330 毫秒。延迟肯定是越低越好,越低代表从闪存中加载大模型的速度越快。各模型 1 个 token 的推理延迟 在 AI 上落后了?苹果已经悄悄地做了一堆工作在今年 AI 的疯狂里,苹果曾被诟病动作很慢,但这篇论文、此前苹果提出的 MLX 框架、自动语音识别(ASR)以及它自己的模型 Ferret 等研究其实说明,苹果已经目标明确地在做很具体的研究了。看看这几个重要的但并没有引起很多重视的研究,也可以感受到苹果 AI 的方向。MLX 框架是苹果在 2023 年推出的一个专门运行在苹果芯片上的机器学习数组框架。MLX 支持可组合的函数变换,用于自动微分、自动向量化和计算图优化,但重点是 MLX 中的计算只有在需要时,数组才会被实际计算出来。同时 MLX 中的计算图是动态构建的,改变函数参数的形状不会触发缓慢的编译过程。而且 MLX 中的数组存在于共享内存中,可以在任何支持的设备类型上执行 MLX 数组的操作,而不需要数据传输。也就是说,MLX 突出一个节省资源且「海陆空」三栖作战(可以同时调用内存、显存,可以在手机和电脑运行)。这说明苹果非常注重模型的可实现性,即便是手机这样内存有限的设备也能跑大模型。当有了这样的框架后,苹果就可以将 Ferret 模型塞进便携设备里了。Ferret 模型是苹果在 2023 年 10 月推出的新型多模态大型语言模型(MLLM),它能够理解图像内任意形状或粒度的空间指代,并准确地对开放词汇的描述进行定位。Ferret 采用了一种新颖而强大的混合区域表示方法,将离散坐标和连续特征结合起来表示图像中的一个区域。为了提取多样化区域的连续特征,论文提出了一种空间感知的视觉采样器,能够处理不同形状之间的稀疏性差异。模型这种理解能力,意味着 Ferret 可以接受各种输入,比如点、边界框和自由形状,像是 DALL·E 也好,Midjourney 也好,都不能完全理解这种提示词的输入。苹果将要推出的 MR 设备 Vision Pro,对外宣称是首款采用空间计算的产品。空间计算本质是传感器的一门学问,通过传感器来获取关于物理空间的数据,并通过计算和分析这些数据来理解和处理环境信息。传统电子设备屏幕都只是平面二维,但是空间计算作用的是现实中三维空间的物理概念,在 Ferret 的加持下,空间的边界感、长宽高三种向量的立体感就会更加明显。Ferret 模型不一定能按要求画出最美的画面,但它一定能符合拥有艺术设计能力创作者的需求。尤其是在视觉识别、配色方案、排版、网格等设计专业领域, Ferret 模型的效果将会最为明显。设计从业者是苹果最为广泛的受众之一,苹果就像是个狙击手,专门瞄准用户最需要它的地方。此外苹果也一直在对与 Siri 相关的 AI 技术做研究,比如大语言模型在 SLU 任务上的准确性受限于 ASR 系统对给定语音输入的准确性。那为了解决这一问题,苹果找到了一种方法:使用 ASR 的 n-best 假设列表来提示大语言模型,而非仅依赖错误率较高的 1-best 假设。意味着 Siri 在接入大语言模型后,性能会得到提高。至此,从硬件的芯片层,到调用系统侧,到与空间计算概念相联系的自研多模态模型,再到目前看起来最被期待的苹果的 AI 能力的入口 Siri,苹果已经有体系有目的有节奏的完成了诸多技术积累。2024 年,在讨论 AI 时没人能忽视苹果了。微信扫码关注该文公众号作者戳这里提交新闻线索和高质量文章给我们。来源: qq点击查看作者最近其他文章