返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

MNN 手机本地部署 DeepSeek R1 和多模态大模型,告别服务器繁忙!

[复制链接]
链载Ai 显示全部楼层 发表于 11 小时前 |阅读模式 打印 上一主题 下一主题

Phi-3大模型发布之际,我们基于Termux应用,在我的小米手机部署了Phi-3模型:

Termux应用是一个终端模拟器,它允许我们安装 Linux 操作系统,然后在 Linux 操作系统中安装 Ollama,最后基于 Ollama 下载和推理大模型,虽然方法可行,但是存在一些局限:

  • 操作步骤繁琐,用户体验较差:安装 Linux 操作系统、启动系统、安装和启动 Ollama 等操作,都需要通过命令行完成,体验较差。
  • 资源消耗较大:手机内存有限,Termux 应用、Linux 操作系统、Ollama 框架等都需要消耗资源,推理速度较慢,资源吃紧

DeepSeek R1 很火爆,导致在使用 DeepSeek R1 时,老牛同学经常会遇到“服务器繁忙,请稍后重试。”的问题:

DeepSeek R1服务器繁忙

今天老牛同学推荐一款更加先进的应用:MNN Chat,它是由阿里巴巴开源的全功能多模态模型应用。

  • 仅需一台手机即可运行: 完全在设备本地运行,确保数据隐私,无需将信息上传至外部服务器。
  • CPU 推理优化: 在安卓平台上,MNN-LLM 展现了卓越的 CPU 性能,预填充速度相较于 llama.cpp 提高了 8.6 倍,相较于 fastllm 提升了 20.5 倍,解码速度分别快了 2.3 倍和 8.9 倍。
  • 多模态支持: 提供多种任务功能,包括文本生成文本、图像生成文本、音频转文本及文本生成图像。
  • 广泛的模型兼容性: 支持多种领先的模型提供商,包括 Qwen、Gemma、Llama(涵盖 TinyLlama 与 MobileLLM)、Baichuan、Yi、DeepSeek、InternLM、Phi、ReaderLM 和 Smolm 等。

官网地址:https://www.mnn.zone

GitHub 源码地址:https://github.com/alibaba/MNN

接下来,我们在手机上部署试用一下,老牛同学的手机配置如下:

小米手机配置


1.安装 MNN 应用

对于 Android 手机,我们可以直接下载和安装最新版本:下载地址

MNN LLM

或者,我们也可以按照以下步骤,自己编译 Android 和 iOS 应用:


Android 编译和使用

  • 克隆 MNN 源代码:git clone https://github.com/alibaba/MNN.git
  • 构建库:
cdproject/androidmkdirbuild_64../build_64.sh"-DMNN_LOW_MEMORY=true-DMNN_CPU_WEIGHT_DEQUANT_GEMM=true-DMNN_BUILD_LLM=true-DMNN_SUPPORT_TRANSFORMER_FUSE=true-DMNN_ARM82=true-DMNN_USE_LOGCAT=true-DMNN_OPENCL=true-DLLM_SUPPORT_VISION=true-DMNN_BUILD_OPENCV=true-DMNN_IMGCODECS=true-DLLM_SUPPORT_AUDIO=true-DMNN_BUILD_AUDIO=true-DMNN_BUILD_DIFFUSION=ON-DMNN_SEP_BUILD=ON"
  • 复制到 LLM Android 应用项目:
mkdir-p../../../apps/Android/MnnLlmChat/app/src/main/jniLibs/arm64-v8afind.-name"*.so"-execcp{}../../../apps/Android/MnnLlmChat/app/src/main/jniLibs/arm64-v8a\;
  • 构建 Android 应用项目并安装:
cd../../../apps/Android/MnnLlmChat./gradlewinstallDebug


iOS 应用编译和使用

  • 克隆 MNN 源代码:git clone https://github.com/alibaba/MNN.git
  • 编译 MNN.framework:
cdMNN/shpackage_scripts/ios/buildiOS.sh"-DMNN_ARM82=true-DMNN_LOW_MEMORY=true-DMNN_SUPPORT_TRANSFORMER_FUSE=true-DMNN_BUILD_LLM=true-DMNN_CPU_WEIGHT_DEQUANT_GEMM=true-DMNN_METAL=ON-DMNN_BUILD_DIFFUSION=ON-DMNN_BUILD_OPENCV=ON-DMNN_IMGCODECS=ON-DMNN_OPENCL=OFF-DMNN_SEP_BUILD=OFF-DMNN_SUPPORT_TRANSFORMER_FUSE=ON"
  • 拷贝 framework 到 iOS 项目中:
mvMNN-iOS-CPU-GPU/Static/MNN.framework/apps/iOS/MNNLLMChat/MNN.framework

确保 Link Binary With Libraried 中包含 MNN.framework,和其他三个 Framework:

Framework

如果没有包含,可以手动添加 MNN.framework:

MNN.framework
  • 修改 iOS 签名并编译项目
cd/apps/iOS/MNNLLMChatopenMNNLLMiOS.xcodeproj

在 Xcode 项目属性中 Signing & Capabilities > Team 输入自己的账号和 Bundle Identifier:

签名

等待 Swift Package 下载完成之后,进行编译使用。


2.下载模型文件

手机上安装好MNN Chat应用之后,我们打开应用,就可以看到它所兼容的模型列表,包括文本、音频、图像等:

大模型列表

点击即可下载,老牛同学想体验一下文本和图片识别,下载了DeepSeek-R1-7B-Qwen-MNNQwen2-VL-2B-Instruct-MNN这 2 个大模型,等待下载完成。


3. MNN 模型推理

先试用一下DeepSeek-R1-7B-Qwen-MNN文本模型,输入提示词:

同样是一年,为什么阳历固定12个月,而阴历却有闰月?
DeepSeek文本推理

DeepSeek R1 开始思考,分析阳历和阴历的计算方法,最终得出结论:

DeepSeek思考结果

从手机的推理速率来看,总体还算不错,比通过Termux应用的方式推理效率高多了。

接下来,看看Qwen2-VL-2B-Instruct-MNN图片多模态大模型,老牛同学让它进行车牌识别:

Qwen2-VL车牌识别

可以看到,识别的结果是很不错的!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ