ChatGPT 人工智能 GPT4 伦理 生成式 医疗 监管 安全 机器学习 深度学习 神经网络 计算机视觉 强化学习 模型 算法 应用 开发 研究 工具 平台 框架 数据集 训练 部署 安全 合规 培训 投资 LLM,llm AI,ai,Ai 大模型 大语言模型 制图 生图 绘图 文生图 文生视频 生成式AI AGI 世界模型 sora chatGPT,chatgpt,ChatGpt claude openai Llama deepseek midjourney 红熊猫模型 Red panda,panda Stable Diffusion,StableDiffusion,stable DALL- E 3 DALL E DALL Flux,flux 扩散模型 混元大模型 文心一言 通义千问 可灵 Pika PixelDance 豆包 月之暗面 零一万物 阶跃星辰 搜索增强 MiniMax Talkie Agent prompt fastai LangChain TTS 微调 提示词 知识库 智能体
# 热门搜索 #
搜索
苹果这篇“魔改”闪存的论文,暴露了它想彻底掌控大模型的野心
3744点击    2024-01-03 10:10

苹果追上来了,用它最擅长的方式。


大模型领域最新的一个热门趋势是把模型塞到手机里。而最应该做这个研究的公司终于带着它的论文现身,那就是苹果。


这家公司的研究团队最近发布了一篇论文《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也好,都不能完全理解这种提示词的输入。


苹果将要推出的AR设备Vision Pro,对外宣称是首款采用空间计算的产品。空间计算本质是传感器的一门学问,通过传感器来获取关于物理空间的数据,并通过计算和分析这些数据来理解和处理环境信息。传统电子设备屏幕都只是平面二维,但是空间计算作用的是现实中三维空间的物理概念,在Ferret的加持下,空间的边界感、长宽高三种向量的立体感就会更加明显。


Ferret模型不一定能按要求画出最美的画面,但它一定能符合拥有艺术设计能力创作者的需求。尤其是在视觉识别、配色方案、排版、网格等设计专业领域,Ferret模型的效果将会最为明显。设计从业者是苹果最为广泛的受众之一,苹果就像是个狙击手,专门瞄准用户最需要它的地方。


此外苹果也一直在对与Siri相关的AI技术做研究,比如大语言模型在SLU任务上的准确性受限于ASR系统对给定语音输入的准确性。那为了解决这一问题,苹果找到了一种方法:使用ASR的n-best假设列表来提示大语言模型,而非仅依赖错误率较高的1-best假设。意味着Siri在接入大语言模型后,性能会得到提高。


至此,从硬件的芯片层,到调用系统侧,到与空间计算概念相联系的自研多模态模型,再到目前看起来最被期待的苹果的AI能力的入口Siri,苹果已经有体系有目的有节奏的完成了诸多技术积累。2024年,在讨论AI时没人能忽视苹果了。


文章来自于微信公众号 “GenAI新世界”(gh_e06235300f0d),作者 “苗正”


AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
RAG

【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。

项目地址:https://github.com/microsoft/graphrag

【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。

项目地址:https://github.com/langgenius/dify


【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。

项目地址:https://github.com/infiniflow/ragflow/tree/main


【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目

项目地址:https://github.com/phidatahq/phidata


【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。

项目地址:https://github.com/TaskingAI/TaskingAI

2
prompt

【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。

项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md

在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0

3
无人直播

【开源免费】VideoChat是一个开源数字人实时对话,该项目支持支持语音输入和实时对话,数字人形象可自定义等功能,首次对话延迟低至3s。

项目地址:https://github.com/Henry-23/VideoChat

在线体验:https://www.modelscope.cn/studios/AI-ModelScope/video_chat


【开源免费】Streamer-Sales 销冠是一个AI直播卖货大模型。该模型具备AI生成直播文案,生成数字人形象进行直播,并通过RAG技术对现有数据进行寻找后实时回答用户问题等AI直播卖货的所有功能。

项目地址:https://github.com/PeterH0323/Streamer-Sales