Skip to content

wangzhaode/mnn-llm

Repository files navigation

mnn-llm

mnn-llm

License Download

English

示例工程

  • cli: 使用命令行编译,android编译参考android_build.sh
  • web: 使用命令行编译,运行时需要指定web资源
  • android: 使用Android Studio打开编译;
  • ios: 使用Xcode打开编译;🚀🚀🚀该示例代码100%由ChatGPT生成🚀🚀🚀
  • python: 对mnn-llm的python封装mnnllm
  • other: 新增文本embedding,向量查询,文本解析,记忆库与知识库能力🔥;

模型导出与下载

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

modelscope模型下载:

qwen系列
glm系列
llama系列
其他

构建

当前构建状态:

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

本地编译

# linux
./script/build.sh

# macos
./script/build.sh

# windows msvc
./script/build.ps1

# android
./script/android_build.sh

一些编译宏:

  • BUILD_FOR_ANDROID: 编译到Android设备;
  • USING_VISUAL_MODEL: 支持多模态能力的模型,需要依赖libMNNOpenCV
  • DUMP_PROFILE_INFO: 每次对话后dump出性能数据到命令行中;

默认使用CPU后端且不实用多模态能力,如果使用其他后端或能力,可以在编译MNN的脚本中添加MNN编译宏

  • cuda: -DMNN_CUDA=ON
  • opencl: -DMNN_OPENCL=ON
  • opencv: -DMNN_BUILD_OPENCV=ON -DMNN_IMGCODECS=ON

4. 执行

# linux/macos
./cli_demo ./Qwen2-1.5B-Instruct-MNN/config.json # cli demo
./web_demo ./Qwen2-1.5B-Instruct-MNN/config.json ../web # web ui demo

# windows
.\Debug\cli_demo.exe ./Qwen2-1.5B-Instruct-MNN/config.json
.\Debug\web_demo.exe ./Qwen2-1.5B-Instruct-MNN/config.json ../web

# 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 ./Qwen2-1.5B-Instruct-MNN/config.json"

Reference

reference