llama.cpp:Android端测试Qwen2.5-Omni


目录


.

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)克隆项目:

Shell 复制代码
git lfs install
git clone https://github.com/ggml-org/llama.cpp.git
cd llama.cpp

(2)Android构建:

Shell 复制代码
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-android

cmake --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为例:

Shell 复制代码
# 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设备连接:

Shell 复制代码
$ adb devices

(2)push文件到设备:

Shell 复制代码
$ 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)设备上运行模型:

Shell 复制代码
$ 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 \
  • 测试:
Shell 复制代码
......
main: loading model: ./Model/Qwen2.5-Omni-3B-GGUF/Qwen2.5-Omni-3B-Q8_0.gguf

 Running 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 ms

Hello, everyone. My name is Omni demo. This is demo test. 这是一个测试。一个中文参数测试。一个omni的样例测试。

> 四大名著是哪些?

四大名著是《红楼梦》、《西游记》、《水浒传》和《三国演义》。

.


声明:资源可能存在第三方来源,若有侵权请联系删除!

相关推荐
江上清风山间明月1 分钟前
Android 系统中进程和线程的区别
android·python·线程·进程
2501_940094021 小时前
mig烧录卡资源 Mig-Switch游戏合集 烧录卡 1.75T
android·游戏·安卓·switch
渡我白衣1 小时前
深入理解 OverlayFS:用分层的方式重新组织 Linux 文件系统
android·java·linux·运维·服务器·开发语言·人工智能
2501_915106321 小时前
iOS性能调优的系统化实践,从架构分层到多工具协同的全流程优化指南(开发者深度版)
android·ios·小程序·架构·uni-app·iphone·webview
stevenzqzq2 小时前
android recyclerview缓存_缓存问题解决办法
android·java·缓存
下位子3 小时前
『OpenGL学习滤镜相机』- Day10: 相机预览与 OpenGL 结合
android·opengl
那就逆流而上吧3 小时前
Android AIDL 的详细讲解和实践指南
android
TDengine (老段)5 小时前
TDengine 字符串函数 POSITION 用户手册
android·java·大数据·数据库·物联网·时序数据库·tdengine
2501_937154936 小时前
神马影视 8.8 源码 2025 版,HDR + 杜比音效 + 零卡顿
android·源码·源代码管理·机顶盒
asjhan6 小时前
Android framework强制修改系统属性
android