手机流畅运行470亿参数大模型,上交大发布PowerInfer-2推理框架,性能提升29倍

本文主要是介绍手机流畅运行470亿参数大模型,上交大发布PowerInfer-2推理框架,性能提升29倍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!



苹果一出手,在手机等移动设备上部署大模型迅速成为行业焦点。

目前,移动设备上运行的模型相对较小(苹果的是3B,谷歌的是2B),并且消耗大量内存,这在很大程度上限制了其应用场景。

即使是苹果,也需要与OpenAI合作,通过将云端GPT-4o大模型嵌入到操作系统中来提供更强大的服务。

GPT-4o深夜发布!Plus免费可用!icon-default.png?t=N7T8https://www.zhihu.com/pin/1773645611381747712
没体验过OpenAI最新版GPT-4o?快戳最详细升级教程,几分钟搞定:

升级ChatGPT-4o Turbo步骤icon-default.png?t=N7T8https://www.zhihu.com/pin/1768399982598909952



这种混合方案引发了关于数据隐私的讨论和争议,甚至马斯克也参与了讨论。

既然本地部署大模型既能提供强大的AI功能,又能保护隐私,为什么苹果还要冒着隐私风险选择云端大模型呢?主要有两点挑战:

  •  手机内存不足:根据大模型的Scaling Law法则,模型参数越大,能力越强,对内存的要求也越高。
     
  • 手机算力不够:即使通过量化等手段将模型塞进手机,推理速度也慢,适用场景有限。



    为了解决这些挑战,上海交大IPADS实验室推出了面向手机的大模型推理引擎PowerInfer-2.0。

论文地址:https://arxiv.org/pdf/2406.06282


PowerInfer-2.0能够在内存有限的智能手机上实现快速推理,让Mixtral 47B模型在手机上达到11 tokens/s的速度。

与热门开源推理框架llama.cpp相比,PowerInfer-2.0的推理加速比平均达到25倍,最高达29倍。

针对手机运行内存不足的问题,PowerInfer-2.0利用了稀疏模型推理的特点:每次只需激活一小部分神经元,即“稀疏激活”。



未激活的神经元不参与推理计算,不影响模型输出质量。

稀疏激活为降低模型推理的内存使用创造了机会。

PowerInfer-2.0将神经网络中的神经元分为冷、热两种,并在内存中基于LRU策略维护一个神经元缓存池。



频繁激活的“热神经元”被放置在运行内存中,而“冷神经元”只有在被预测激活时才会被拉进内存,大幅降低了内存使用量。

冷热神经元分类继承自PowerInfer-1.0已有的做法。

去年12月,苹果在“LLM in a Flash”中提出了类似的“滑动窗口”技术,但这些工作主要针对PC环境,直接迁移到手机环境还会遇到新的难题。



手机平台的硬件条件远不及PC,无论是算力、内存总量还是存储带宽,都存在较大差距。

手机硬件平台存在CPU、GPU、NPU三种异构计算单元,十分复杂。

神经元簇概念不仅适应手机的异构计算环境,还能支持计算与存储I/O的流水线并行执行。

而对于Mistral 7B这种可以放进手机运行内存的模型,PowerInfer-2.0可以节约40%内存的情况下,达到与llama.cpp和MLC-LLM同水平甚至更快的解码速度:



PowerInfer-2.0提出了分段神经元缓存和神经元簇级的流水线技术,在一个神经元簇等待I/O时,可以及时调度另一个已准备好的神经元簇到处理器上计算,从而隐藏I/O延迟。

这种基于神经元簇的流水线打破了传统推理引擎中逐矩阵计算的方式,允许来自不同参数矩阵的神经元簇交错执行,达到最高的并行效率。

如何使用WildCard正确方式打开GPT-4o,目前 WildCard 支持的服务非常齐全,可以说是应有尽有!

官网有更详细介绍:WildCard



推荐阅读:

如何免费使用GPT-4o?如何升级GPT...

更强大Mamba-2正式发布啦!!!

黎曼猜想取得重大进展!!

这篇关于手机流畅运行470亿参数大模型,上交大发布PowerInfer-2推理框架,性能提升29倍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1057505

相关文章

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

修复已被利用的高危漏洞! macOS Sequoia 15.6.1发布

《修复已被利用的高危漏洞!macOSSequoia15.6.1发布》苹果公司于今日发布了macOSSequoia15.6.1更新,这是去年9月推出的macOSSequoia操作... MACOS Sequoia 15.6.1 正式发布!此次更新修复了一个已被黑客利用的严重安全漏洞,并解决了部分中文用户反馈的

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

Java利用@SneakyThrows注解提升异常处理效率详解

《Java利用@SneakyThrows注解提升异常处理效率详解》这篇文章将深度剖析@SneakyThrows的原理,用法,适用场景以及隐藏的陷阱,看看它如何让Java异常处理效率飙升50%,感兴趣的... 目录前言一、检查型异常的“诅咒”:为什么Java开发者讨厌它1.1 检查型异常的痛点1.2 为什么说

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

Java慢查询排查与性能调优完整实战指南

《Java慢查询排查与性能调优完整实战指南》Java调优是一个广泛的话题,它涵盖了代码优化、内存管理、并发处理等多个方面,:本文主要介绍Java慢查询排查与性能调优的相关资料,文中通过代码介绍的非... 目录1. 事故全景:从告警到定位1.1 事故时间线1.2 关键指标异常1.3 排查工具链2. 深度剖析: