当前位置: 首页 > news >正文

阿里巴巴开源移动端多模态LLM工具——MNN

在这里插入图片描述

MNN 是一个高效且轻量级的深度学习框架。它支持深度学习模型的推理和训练,并在设备端的推理和训练方面具有行业领先的性能。目前,MNN 已集成到阿里巴巴集团的 30 多个应用中,如淘宝、天猫、优酷、钉钉、闲鱼等,覆盖了直播、短视频拍摄、搜索推荐、以图搜货、互动营销、权益发放、安全风控等 70 多个使用场景。此外,MNN 还被用于嵌入式设备,如物联网。

MNN-LLM 是一个基于 MNN 引擎开发的大型语言模型运行时解决方案。该项目的使命是将 LLM 模型部署在每个人的本地平台上(手机/PC/物联网)。它支持流行的大型语言模型,如千问、百川、智谱、LLAMA 等。

MNN-Diffusion 是一个基于 MNN 引擎开发的稳定扩散模型运行时解决方案。该项目的使命是在每个人的平台上本地部署稳定扩散模型。

在这里插入图片描述
在阿里巴巴内部,MNN作为Walle系统中的计算容器基础模块,Walle系统是首个端到端、通用且大规模的设备-云协同机器学习生产系统,该系统已在顶级系统会议OSDI’22上发表。MNN的关键设计原则和广泛的基准测试结果(与TensorFlow、TensorFlow Lite、PyTorch、PyTorch Mobile、TVM的对比)可以在OSDI论文中找到。基准测试的脚本和说明放在“/benchmark”路径下。

主要特点

轻量级
  • 针对设备进行优化,无依赖项,可轻松部署到移动设备和各种嵌入式设备。
  • iOS 平台:armv7+arm64 平台的静态库大小约为 12MB,链接的可执行文件大小增加约为 2M。
  • Android 平台:核心 so 文件大小约为 800KB(armv7a - c++_shared)。
  • 使用 MNN_BUILD_MINI 可以将包大小减少约 25%,但限制了固定模型输入大小。
  • 支持 FP16 / Int8 量化,可以将模型大小减少 50%-70%。
多功能性
  • 支持 TensorflowCaffeONNXTorchscripts,并支持常见的神经网络,如 CNNRNNGANTransformer
  • 支持具有多输入或多输出的 AI 模型,各种维度格式,动态输入,控制流。
  • MNN 支持近似全量的 AI 模型操作符。转换器支持 178 个 Tensorflow 操作符,52 个 Caffe 操作符,163 个 Torchscripts 操作符,158 个 ONNX 操作符。
  • 支持 iOS 8.0+、Android 4.3+ 以及具有 POSIX 接口的嵌入式设备。
  • 支持多设备混合计算。目前支持 CPU 和 GPU。
高性能
  • 通过大量优化的汇编代码实现核心计算,以充分利用 ARM / x64 CPU。
  • 使用 Metal / OpenCL / Vulkan 支持移动设备上的 GPU 推理。
  • 使用 CUDA 和 tensorcore 支持 NVIDIA GPU,以获得更好的性能。
  • 卷积和转置卷积算法高效且稳定。Winograd 卷积算法广泛用于更好地处理对称卷积,如 3x3、4x4、5x5、6x6、7x7。
  • 支持 FP16 半精度计算的新架构 ARM v8.2 速度提升两倍。使用 sdot 和 VNNI 的 ARM v8.2 速度提升 2.5 倍。

支持的架构/精度MNN如下所示:

  • S:支持且运行良好,深度优化,推荐使用
  • A:支持且运行良好,可以使用
  • B:支持但有bug或未优化,不推荐使用
  • C:不支持
架构 / 精度常规FP16BF16Int8
CPUNativeBCBB
x86/x64-SSE4.1ABBA
x86/x64-AVX2SBBA
x86/x64-AVX512SBBS
ARMv7aSS (ARMv8.2)SS
ARMv8SS (ARMv8.2)S(ARMv8.6)S
GPUOpenCLASCS
VulkanAACA
MetalASCS
CUDAASCA
NPUCoreMLACCC
HIAIACCC
NNAPIBBCB

News 🔥

[2025/05/12] android app 支持 qwen2.5 omni 3b and 7b

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码:https://github.com/alibaba/MNN/

http://www.xdnf.cn/news/500923.html

相关文章:

  • Dockerfile学习指南
  • 搜索引擎工作原理|倒排索引|query改写|CTR点击率预估|爬虫
  • Linux面试题集合(4)
  • 木材价格动态定价实战指南:多算法模型与行业案例深度解析
  • 算法题(148):排座椅
  • 实验八 基于Python的数字图像问题处理
  • MySQL 中 JOIN 和子查询的区别与使用场景
  • 基于 Leaflet 地图库的强大线条、多边形、圆形、矩形等绘制插件Leaflet-Geoman
  • [强化学习的数学原理—赵世钰老师]学习笔记02-贝尔曼方程
  • 《算法导论(第4版)》阅读笔记:p82-p82
  • 如何免费在线PDF转换成Excel
  • Java并发编程的挑战:从理论到实战
  • 题单:汉诺塔问题
  • 使用Langfuse和RAGAS,搭建高可靠RAG应用
  • ctfshow——web入门254~258
  • JavaScript入门【2】语法基础
  • webpack 学习
  • 并发学习之synchronized,JVM内存图,线程基础知识
  • 【双指针】缺失的第一个正整数
  • Visual Studio2022跨平台Avalonia开发搭建
  • 混合学习:Bagging与Boosting的深度解析与实践指南
  • 系统架构设计(七):数据流图
  • 售前工作.工作流程和工具
  • 从专家编码到神经网络学习:DTM 的符号操作新范式
  • tp5 关键词搜索商品时进行关键词拆分
  • Slidev集成Chart.js:专业数据可视化演示文稿优化指南
  • 黄点追踪是什么?:揭秘打印机隐形识别机制的技术分析
  • windows编写和调试代码工具——IDE安装
  • QMK 宏(Macros)功能详解(实战部分)
  • muduo库TcpConnection模块详解——C++