yuanjie-ai / mnn-llm

llm deploy project based mnn.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

mnn-llm

mnn-llm

License Download

Read me in english

示例工程

  • cli: 使用命令行编译,android编译参考android_build.sh
  • web: 使用命令行编译,运行时需要指定web资源
  • android: 使用Android Studio打开编译;APK下载: Download
  • ios: 使用Xcode打开编译;🚀🚀🚀该示例代码100%由ChatGPT生成🚀🚀🚀

模型支持

llm模型导出onnx模型请使用llm-export

当前支持以模型:

model onnx-fp32 mnn-int4
chatglm-6b Download Download
chatglm2-6b Download Download
chatglm3-6b Download Download
codegeex2-6b Download Download
Qwen-7B-Chat Download Download
Baichuan2-7B-Chat Download Download
Llama-2-7b-chat Download Download
Qwen-1_8B-Chat Download Download

其他版本:

  • Qwen-1_8B-Chat-int8:Download

速度

CPU 4线程速度: prefill / decode tok/s

model android(f16/32) macos (f32) linux (f32) windows (f32)
qwen-1.8b-int4 100.21 / 22.22 84.85 / 19.93 151.00 / 35.89 117.30 / 33.40
qwen-1.8b-int8 99.95 / 16.94 67.70 / 13.45 118.51 / 24.90 97.19 / 22.76
chatglm-6b-int4 17.37 / 6.69 19.79 / 6.10 34.05 / 10.82 30.73 / 10.63
chatglm2-6b-int4 26.41 / 8.21 20.78 / 6.70 36.99 / 11.50 33.25 / 11.47
chatglm3-6b-int4 26.24 / 7.94 19.67 / 6.67 37.33 / 11.92 33.61 / 11.21
qwen-7b-int4 14.60 / 6.96 19.79 / 6.06 33.55 / 10.20 29.05 / 9.62
baichuan2-7b-int4 13.87 / 6.08 17.21 / 6.10 30.11 / 10.87 26.31 / 9.84
llama-2-7b-int4 17.98 / 5.17 19.72 / 5.06 34.47 / 9.29 28.66 / 8.90

测试的系统和设备信息如下,

os device CPU Memory
android XiaoMi12 Snapdragon 8gen1 8 GB
macos MacBook Pro 2019 Intel(R) Core(TM) i7-9750H 16 GB
linux PC Intel(R) Core(TM) i7-13700K 32GB
windows PC Intel(R) Core(TM) i7-13700K 32GB

下载int4模型

# <model> like `chatglm-6b`
# linux/macos
./script/download_model.sh <model>

# windows
./script/download_model.ps1 <model>

构建

当前构建状态:

System Build Statud
Linux Build Status
Macos Build Status
Windows Build Status
Android Build Status

本地编译

# linux
./script/linux_build.sh

# macos
./script/macos_build.sh

# windows msvc
./script/windows_build.ps1

# android
./script/android_build.sh

默认使用CPU后端,如果使用其他后端,可以在脚本中添加MNN编译宏

  • cuda: -DMNN_CUDA=ON
  • opencl: -DMNN_OPENCL=ON

4. 执行

# linux/macos
./cli_demo # cli demo
./web_demo # web ui demo

# windows
.\Debug\cli_demo.exe
.\Debug\web_demo.exe

# android
adb push libs/*.so build/libllm.so build/cli_demo /data/local/tmp
adb push model_dir /data/local/tmp
adb shell "cd /data/local/tmp && export LD_LIBRARY_PATH=. && ./cli_demo -m model"

Reference

About

llm deploy project based mnn.

License:Apache License 2.0


Languages

Language:C++ 73.3%Language:HTML 8.9%Language:Java 8.1%Language:JavaScript 3.1%Language:Dockerfile 2.1%Language:Swift 1.2%Language:PowerShell 1.2%Language:Shell 0.8%Language:CMake 0.6%Language:Objective-C++ 0.4%Language:Objective-C 0.2%Language:CSS 0.1%