- cli: 使用命令行编译,android编译参考android_build.sh
- web: 使用命令行编译,运行时需要指定web资源
- android: 使用Android Studio打开编译;
- ios: 使用Xcode打开编译;🚀🚀🚀该示例代码100%由ChatGPT生成🚀🚀🚀
- python: 对mnn-llm的python封装
mnnllm
; - other: 新增文本embedding,向量查询,文本解析,记忆库与知识库能力🔥;
llm模型导出onnx
和mnn
模型请使用llm-export
modelscope
模型下载:
qwen系列
glm系列
llama系列
CI构建状态:
# clone
git clone --recurse-submodules https://github.com/wangzhaode/mnn-llm.git
cd mnn-llm
# linux
./script/build.sh
# macos
./script/build.sh
# windows msvc
./script/build.ps1
# python wheel
./script/py_build.sh
# android
./script/android_build.sh
# android apk
./script/android_app_build.sh
# ios
./script/ios_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
# 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
- chatglm-6b
- chatglm2-6b
- chatglm3-6b
- codegeex2-6b
- Baichuan2-7B-Chat
- Qwen-7B-Chat
- Qwen-VL-Chat
- Qwen-1.8B-Chat
- Llama-2-7b-chat-ms
- internlm-chat-7b
- phi-2
- bge-large-zh
- TinyLlama-1.1B-Chat-v0.6
- Yi-6B-Chat
- Qwen1.5-0.5B-Chat
- Qwen1.5-1.8B-Chat
- Qwen1.5-4B-Chat
- Qwen1.5-7B-Chat
- cpp-httplib
- chatgpt-web
- ChatViewDemo
- nlohmann/json