llama.cpp:Android端测试Qwen2.5-Omni
目录
- 1.环境需要
- 2.构建项目
- 3.Android测试
.
1.环境需要
以下是经实验验证可行的环境参考,也可尝试其他版本。
(1)PC:Ubuntu 22.04.4
(2)硬件设备:Android 手机
(3)软件环境:如下表所示
| 工具 | 版本 | 安装 |
|---|---|---|
| Anaconda | 2021.05 | |
| cmake | 3.26.0 | conda install -c conda-forge cmake |
| make | 4.4.1 | conda install -c conda-forge make |
| ndk | android-ndk-r26c | 官网下载解压,设置环境变量 |
| adb | 1.0.41 | conda install -c conda-forge adb |
| git | 2.34.1 | sudo apt-get update ; sudo apt-get install git |
| git-lfs | 3.6.0 | sudo apt-get install git-lfs |
.
2.构建项目
(1)克隆项目:
git lfs install
git clone https://github.com/ggml-org/llama.cpp.git
cd llama.cpp
(2)Android构建:
ANDROID_NDK=$HOME/Env/Tools/android-ndk-r26c# 构建适用于 Android 的版本
cmake \-DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \-DANDROID_ABI=arm64-v8a \-DANDROID_PLATFORM=android-28 \-DCMAKE_C_FLAGS="-march=armv8.7a" \-DCMAKE_CXX_FLAGS="-march=armv8.7a" \-DGGML_OPENMP=OFF \-DGGML_LLAMAFILE=OFF \-DLLAMA_CURL=OFF \-B build-androidcmake --build build-android --config Release -j8
cmake --install build-android --prefix build-android/install --config Release
(3)下载文件:
去hf-mirror.com下载gguf模型,以Qwen2.5-Omni-3B为例:
# https://hf-mirror.com/ggml-org/Qwen2.5-Omni-3B-GGUF/tree/main
# 方式一:手动下载每个文件
# 方式二:命令下载(待补充)
下载模型到./Model/Qwen2.5-Omni-3B-GGUF/路径下
将你想推理的img.png和audio.wav放到./Data目录。
.
3.Android测试
(1)设备连接:确认设备连接好了,使用以下命令查看是否有adb设备连接:
$ adb devices
(2)push文件到设备:
$ adb shell "mkdir -p /data/local/tmp/llama.cpp"
$ adb push ./build-android/install /data/local/tmp/llama.cpp/
$ adb push ./Models /data/local/tmp/llama.cpp/
$ adb push ./Data /data/local/tmp/llama.cpp/
(3)设备上运行模型:
$ adb shell
$ cd /data/local/tmp/llama.cpp$ export LD_LIBRARY_PATH=$PWD/install/lib
$ ./install/bin/llama-mtmd-cli \-m ./Model/Qwen2.5-Omni-3B-GGUF/Qwen2.5-Omni-3B-Q8_0.gguf \--mmproj ./Model/Qwen2.5-Omni-3B-GGUF/mmproj-Qwen2.5-Omni-3B-Q8_0.gguf \
- 测试:
......
main: loading model: ./Model/Qwen2.5-Omni-3B-GGUF/Qwen2.5-Omni-3B-Q8_0.ggufRunning in chat mode, available commands:/image <path> load an image/audio <path> load an audio/clear clear the chat history/quit or /exit exit the program> /image ./Data/img.png
./Data/img.png image loaded> 图中是什么目标
encoding image slice...
image slice encoded in 22695 ms
decoding image batch 1/1, n_tokens_batch = 784
image decoded (batch 1/1) in 8743 ms图中是一只可爱的卡通老鼠。> /audio ./Data/audio.wav
./Data/audio.wav audio loaded> 将音频转文字
encoding audio slice...
audio slice encoded in 5840 ms
decoding audio batch 1/1, n_tokens_batch = 750
audio decoded (batch 1/1) in 9680 msHello, everyone. My name is Omni demo. This is demo test. 这是一个测试。一个中文参数测试。一个omni的样例测试。> 四大名著是哪些?四大名著是《红楼梦》、《西游记》、《水浒传》和《三国演义》。
.
声明:资源可能存在第三方来源,若有侵权请联系删除!
