apps/iOS/MNNLLMChat/README-ZH.md
本项目是一个基于MNN引擎,支持本地大模型多模态对话的iOS应用。
纯本地运行,隐私性强。当模型下载到本地之后,所有的对话都将在本地进行,不会有任何网络上传处理。
| Text To Text | Image To Text | Audio To Text | Model Fliter |
| Local Model | Model Market | Benckmark | History |
此外,本应用支持 DeepSeek 带think模式端侧使用:
下载仓库代码:
git clone https://github.com/alibaba/MNN.git
编译 MNN.framework:
sh package_scripts/ios/buildiOS.sh "
-DMNN_ARM82=ON
-DMNN_LOW_MEMORY=ON
-DMNN_SUPPORT_TRANSFORMER_FUSE=ON
-DMNN_BUILD_LLM=ON
-DMNN_CPU_WEIGHT_DEQUANT_GEMM=ON
-DMNN_METAL=ON
-DMNN_BUILD_DIFFUSION=ON
-DMNN_OPENCL=OFF
-DMNN_SEP_BUILD=OFF
-DLLM_SUPPORT_AUDIO=ON
-DMNN_BUILD_AUDIO=ON
-DLLM_SUPPORT_VISION=ON
-DMNN_BUILD_OPENCV=ON
-DMNN_IMGCODECS=ON
-DMNN_BUILD_LLM_OMNI=ON
"
拷贝 framework 到 iOS 项目中
mv MNN-iOS-CPU-GPU/Static/MNN.framework apps/iOS/MNNLLMChat
确保 Link Binary With Libraried 中包含 MNN.framework,和其他三个 Framework。
如果没有包含,可以手动添加 MNN.framework:
修改 iOS 签名并编译项目
cd apps/iOS/MNNLLMChat
open MNNLLMiOS.xcodeproj
在 Xcode 项目属性中 Signing & Capabilities > Team 输入自己的账号和Bundle Identifier
等待 Swift Package 下载完成之后,进行编译使用。
iPhone 因为内存有限,建议使用7B以及以下的模型,避免内存不足导致的崩溃。
本地调试模型非常简单,只需要将模型文件拖动到LocalModel文件夹下,然后运行项目即可:
首先在 huggingface 或者 modelscope 下载 MNN 相关的模型
将下载之后的模型文件夹拖动到项目中 LocalModel 文件夹下
如果是根目录模型,可以进行配置:
进入ModelListViewModel.swift的配置,比如是否支持思考:
// MARK: Config the Local Model here
let modelName = "Qwen3-0.6B-MNN-Inside" // 模型名称
let localModel = ModelInfo(
modelName: modelName,
tags: [
// MARK: if you know that model support think, uncomment the line
// NSLocalizedString("tag.deepThinking", comment: "Deep thinking tag for local model"), // 是否支持 think
NSLocalizedString("tag.localModel", comment: "Local model inside the app")],
categories: ["Local Models"],
vendor: "Local",
sources: ["local": "bundle_root/\(modelName)"],
isDownloaded: true
)
localModels.append(localModel)
ModelStorageManager.shared.markModelAsDownloaded(modelName)
应用会自动检测并加载LocalModel文件夹中的模型,无需额外配置。
| | | |
新增:
| | |
新增:
支持配置mmap和手动缓存清理
支持使用 ModelScope 源进行模型下载
| | |