mnn llm
llama3-8b-instruct-mnn
# 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
: 각 세션 후에 명령줄에 성능 데이터를 덤프합니다. 기본적으로 CPU
사용됩니다. 다른 백엔드나 기능을 사용하는 경우 MNN을 컴파일할 때 MNN
컴파일 매크로를 추가할 수 있습니다.
-DMNN_CUDA=ON
-DMNN_OPENCL=ON
-DMNN_METAL=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
. D ebug c li_demo.exe ./Qwen2-1.5B-Instruct-MNN/config.json
. D ebug w eb_demo.exe ./Qwen2-1.5B-Instruct-MNN/config.json ../web
# android
adb push android_build/MNN/OFF/arm64-v8a/libMNN.so /data/local/tmp
adb push android_build/MNN/express/OFF/arm64-v8a/libMNN_Express.so /data/local/tmp
adb push android_build/libllm.so android_build/cli_demo /data/local/tmp
adb push Qwen2-1.5B-Instruct-MNN /data/local/tmp
adb shell " cd /data/local/tmp && export LD_LIBRARY_PATH=. && ./cli_demo ./Qwen2-1.5B-Instruct-MNN/config.json "