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 微调 提示词 知识库 智能体
# 热门搜索 #
搜索
挑战Scaling Law,Meta发布移动端350M小模型MobileLLM,性能比肩7B LLaMA-v2
9247点击    2024-07-22 15:25

从5月和6月几家科技巨头的发布会中,我们已经能隐隐感受到AI的一个重要发展趋势:从云数据中心走向个人用户,从大型服务器走向笔记本和移动设备。


遵循Scaling Law已经不再是唯一的路径,模型「以小搏大」的故事不断上演。


先有微软更新Phi系列小模型,一个树莓派即可运行RAG;后有谷歌用27B参数Gemma 2力压70B的Llama 3


硬件方面,我们看到了AI功能逐渐与电子产品进行深度集成。


比如微软臭名昭著的Recall功能,正是他们AI+PC战略的重要组成部分;苹果也在Apple Intelligence的大旗下推出用于3B小模型,力求与iOS无缝衔接。


如今LLM的参数量动辄上百亿,苹果3B的参数量已经显得十分迷你,但对手机这种移动设备来说依旧有很高门槛。


不仅用2-bit和4-bit混合精度压缩模型(平均每个权重3.5-bit),而且要有至少8G内存和M1芯片才能运行。


Meta最近发表的一篇论文就表明,参数量可以进一步收缩,最新提出的MobileLLM模型参数量小于1B,但性能依旧可观。



论文地址:https://arxiv.org/abs/2402.14905


LeCun也亲自发推为这项研究背书,称赞了其中一系列精简参数量的操作。



这篇论文已被ICML 2024接收,模型的训练代码也已经在GitHub上开源。



GitHub地址:https://github.com/facebookresearch/MobileLLM


简介


我们首先做个假设,如果把GPT-4(大约有1万亿参数)以50tokens/s的推理速度部署在生活中,你需要什么样的硬件?


答案是1亿个H100 GPU。别说是移动设备了,家里都放不下。


那如果降低标准,用LLaMA-v2 7B这样的模型,再加上8-bit量化呢?


简单计算一下,光存储模型参数就需要约7GB,但不是存储空间,而是珍贵的运存空间(DRAM)。



而且DRAM也不能被AI模型全占了,考虑到操作系统和其他应用的运行,LLM的运存占比不能超过10%。


按照图2的统计,各个品牌最近发布的移动设备一般会配备6~12GB的DRAM。这就意味着,如果要在手机上顺利部署,模型的参数量最好能降低到<1B。


不仅是运存,耗电也是一大问题。7B模型的能耗大概是0.7J/token,一个满电的iPhone大概有50kJ可供挥霍。计算下来,如果生成速度是10tokens/s,手机充满一次电只够你和模型对话2小时。


基于上述考虑,用<1B的模型部署在移动端是更理想的选择,因此MobileLLM的参数量定位在125M/350M,比苹果的3B模型还少了一个数量级,可谓「迷你中的迷你」。


但是别被Scaling Law局限,参数小不意味着能力弱,模型架构的重要性应该重新进入我们的视线。



MobileLLM不仅在同等大小的模型中达到了SOTA性能,而且提出,架构的深度比宽度更重要。一个「深而窄」的「瘦长」小模型同样可以学习到抽象概念。


架构与方法


在只有125M/350M参数的情况下,如何在有限范围内实现架构设计的最优化就成为了重要的问题。


对于<1B的LLM,作者探索出了4种行之有效的架构设计技巧。


1)使用SwiGLU前馈网络


2)让网络整体形状变得「狭长」,即深而窄


3)重新使用编码共享(embedding sharing)方法


4)使用组查询注意力机制(grouped query attention)



在此基础上,作者还提出了一种块间层共享(block-wise layer-sharing)方法,能够在不引入额外内存开销的情况下进一步提高模型准确率,但代价是增加解码过程的推理延迟。


这种添加了层共享机制的模型被标记为MobileLLM-LS。


反驳Scaling Law:小模型的架构设计很重要


2020年提出Scaling Law的论文认为,训练数据量、参数量以及训练迭代次数才是决定性能的关键因素,而模型架构的影响几乎可以忽视。


然而这篇论文的作者通过对比实验提出,这个定律对小模型并不适用。


当模型参数固定在125M或者350M时,30~42层的「狭长」模型明显比12层左右的「矮胖」模型有更优越的性能(图4),在常识推理、问答、阅读理解等8个基准测试上都有类似的趋势。



这其实是非常有趣的发现,因为以往为125M量级的小模型设计架构时,一般都不会叠加超过12层。


为什么要重拾「编码共享」


「编码共享」(embedding sharing)方法最开始由OPT这样的小模型提出,因为小模型中编码层的参数占到了相当大的比例。


比如,125M模型中要使用上下文长度32k、维度512的编码,输入和输出编码层就包含了16M的参数,占比达到20%。


相较之下,大模型的编码层参数量显得微不足道。比如LLaMA-7B中,这个比例就下降到了3.7%,LLaMA-70B甚至只有0.7%。因此,共享编码对于LLM来说可有可无。


编码共享在大模型时代的过气,不代表这种技术不再适用于小模型,它可以让模型架构更紧凑、更有效率。


如表1所示,进行编码共享后,模型在总参数量降低16M的情况下依旧总体维持了原有性能,甚至在某些基准上有提升。



层共享机制


之前提到,论文的实验结果发现,让小模型变得「瘦长」有利于性能提升。于是作者想到:如果引入层共享机制,不就相当于保持参数总量不变的同时,增加了模型深度。


实验证明,这种方法的确可以提升性能,而且论文还对比了不同的层共享方法(图6),最终权衡设备内存、性能和推理延迟,选择了即时块间层共享(immediate block-wise sharing,图6b)。



评估实验


作者构建了125M和350M参数的MobileLLM/MobileLLM-LS模型,并在1T的数据集上进行训练。


预训练后的模型在多个数据集上进行零样本测试,包括ARC-easy、ARCchallenge、HellaSwag、 WinoGrande、TQA、RACE等常用基准。


表3展示的是零样本常识推理方面的测评结果,MobileLLM系列基本实现了全面SOTA,不仅能超越之前发布的OPT、BLOOM等经典模型,也优于最近发布的GPT-neo、Galactica、RWKV等参数更大的模型。



在问答和阅读理解方面,MobileLLM依旧表现出色(表4)。相比其他模型,125M和325M的MobileLLM在TQA上分别有>6.4分和约10分的提升。


下游任务


除了在基准测试上跑分,论文还考虑到了应用场景部署时对模型多方面的要求,并进行了相应测评。


AlpacaEval和MT-Bench分别测试模型在单轮和多轮聊天任务中的表现,相比其他3个基线模型,MobileLLM依旧是性能最优,而且甚至能用350M的参数超过其他参数>1B模型的表现。



除了对话,在API调用的场景中,MobileLLM的EM分数可以和7B参数的LLaMA-v2相匹配。



此外,MobileLLM与量化(PTQ)的兼容性也很好。经过W8A8量化后,模型的性能只有不到0.5分的下降,并且依旧与层共享机制兼容,因此可以适应更严苛硬件条件下的部署。



作者简介


本文的通讯作者Zechun Liu是Meta Reality Labs的研究科学家。她本科毕业于复旦大学,博士毕业于香港科技大学,加入Meta前曾有两年多的时间在CMU担任访问学者。



Zechun的研究兴趣是深度学习在现实场景中的应用,例如资源不足的限制、计算资源和精度之间的权衡等,其中重点关注网络二值化和量化、网络通道剪枝、架构设计、知识蒸馏等方面。


文章来源于“新智元”,作者“新智元





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