Skip to content

BaofengZan/mnn-llm-GOT-OCR2.0

 
 

Repository files navigation

mnn-llm

mnn-llm

License Download Documentation Status

English

运行说明

  1. 实现的是GOT-OCR mnn cpu版本,cuda版本目前还有错误。修改model/config.json backend_type为 cpu或者cuda,来修改不同的后端
  2. 首先运行 export/llmexport.py 生成onnx
  3. 然后安装"pip install mnn", 使用命令 mnnconvert -f ONNX --modelFile ./model/onnx/llm.onnx --MNNModel ./model/llm.mnn --bizCode MNN --transformerFuse
    • 生成对应mnn文件, 将文件放入到 model文件夹下。 注意这里名字需要是 vision.mnn 和 lmm.mnn (因为mnn原始代码src/llmconfig.hpp里面写死了)。
  4. 编译mnn-llm : ./script/build.sh
  5. 运行: ./build/cli-demo ./model/config.json. 3.jpg

示例工程

  • 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
phi
embedding

构建

CI构建状态:

Build Status Build Status Build Status Build Status Build Status Build Status

本地编译

# 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设备;
  • LLM_SUPPORT_VISION: 是否支持视觉处理能力;
  • DUMP_PROFILE_INFO: 每次对话后dump出性能数据到命令行中;

默认使用 CPU,如果使用其他后端或能力,可以在编译MNN时添加 MNN编译宏

  • cuda: -DMNN_CUDA=ON
  • opencl: -DMNN_OPENCL=ON
  • metal: -DMNN_METAL=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

About

使用mnn-llm对GOT-OCR2.0进行推理

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 83.3%
  • Python 10.1%
  • HTML 2.5%
  • Java 1.2%
  • Swift 1.0%
  • JavaScript 0.9%
  • Other 1.0%