Back to Mnn

mnn-llm ios demo

transformers/llm/engine/ios/README.md

3.5.01.9 KB
Original Source

mnn-llm ios demo

🚀 本示例代码全部由ChatGPT-4生成。

速度

旧版测试prompt

  • Qwen-1.8b-chat 4bit
    • iPhone 11 : pefill 52.00 tok/s, decode 16.23 tok/s
    • iPhone 14 Pro: pefill 102.63 tok/s, decode 33.53 tok/s
  • Qwen-1.8b-chat 8bit
    • iPhone 11 : pefill 61.90 tok/s, decode 14.75 tok/s
    • iPhone 14 Pro: pefill 105.41 tok/s, decode 25.45 tok/s

新版测试prompt

  • Qwen1.5-0.5b-chat 4bit
    • iPhone 15 Pro: pefill 282.73 tok/s, decode 51.68 tok/s
  • Qwen2-0.5b-instruct 4bit
    • iPhone 15 Pro: pefill 234.51 tok/s, decode 51.36 tok/s
  • Qwen2-1.5b-instruct 4bit
    • iPhone 15 Pro: pefill 107.64 tok/s, decode 25.57 tok/s

编译

  1. 编译 MNN iOS Framework: 在 MNN 根目录下执行
sh package_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"
mv MNN-iOS-CPU-GPU/Static/MNN.framework transformers/llm/engine/ios/MNN.framework
  1. 下载模型文件: Qwen1.5-0.5B-Chat-MNN ,或者使用 export 下面的脚本导出模型
  2. 将模型文件拷贝到${MNN根目录}/transformers/llm/engine/model/目录下
  3. 在xcode项目属性中Signing & Capabilities > Team输入自己的账号;Bundle Identifier可以重新命名;
  4. 连接iPhone并编译执行,需要在手机端打开开发者模式,并在安装完成后在:设置 > 通用 > VPN与设备管理中选择信任该账号;

备注:如测试其他模型,可以将ios/mnn-llm/model/替换为其他模型的文件夹;同时修改LLMInferenceEngineWrapper.m +38的模型路径;

性能

等待模型加载完成后,发送:benchmark,即可进行benchmark测试;

测试

等待模型加载完成后即可发送信息,如下图所示: