Deepseek 在Snapdragon 8 Elite平台推理部署教程
本文档旨在指导用户如何在 Android 设备上手动部署和执行基于 QNN SDK 和 Genie 推理引擎的 DeepSeek 模型。
1. 环境确认与准备
在开始之前,请确保您的开发环境和目标设备已准备就绪。
1.1 确认 ADB 环境
首先,确认您的电脑已正确安装 Android 调试桥 (ADB) 工具,并且能够成功连接到您的目标设备。在终端或命令提示符中运行以下命令:
adb devices
您应该能看到您的设备序列号出现在列表中,状态为 device。如果未出现或状态为 unauthorized,请检查您的 USB 连接、驱动程序以及设备上的 USB 调试授权。
2. 推送文件至设备
2.1 Linux / macOS 用户推送指令
请在您的工作目录(包含模型 .bin 文件、prompts_qwen2.5.txt 等的目录)下执行以下命令。请将 <您的设备序列号> 替换为实际序列号,ARCH 设置为您的目标架构 (如 79),并确保 QNN SDK 路径正确。
# 清理环境
adb -s <您的设备序列号> shell "rm -rf /data/local/tmp/qwen2_deepseek_test && mkdir -p /data/local/tmp/qwen2_deepseek_test"
# 设置目标架构
export QNN_SDK_ROOT="/path/to/your/qnn/sdk"
ARCH="79"
DEVICE="<您的设备序列号>"
REMOTE_DIR="/data/local/tmp/qwen2_deepseek_test"
# 推送模型文件
adb -s $DEVICE push *.serialized.bin $REMOTE_DIR
# 推送可执行文件
adb -s $DEVICE push $QNN_SDK_ROOT/bin/aarch64-android/genie-t2t-run $REMOTE_DIR
# 推送安卓库文件
adb -s $DEVICE push $QNN_SDK_ROOT/lib/aarch64-android/libc++_shared.so $REMOTE_DIR
adb -s $DEVICE push $QNN_SDK_ROOT/lib/aarch64-android/libGenie.so $REMOTE_DIR
adb -s $DEVICE push $QNN_SDK_ROOT/lib/aarch64-android/libQnnHtp.so $REMOTE_DIR
adb -s $DEVICE push $QNN_SDK_ROOT/lib/aarch64-android/libQnnSystem.so $REMOTE_DIR
adb -s $DEVICE push $QNN_SDK_ROOT/lib/aarch64-android/libQnnHtpPrepare.so $REMOTE_DIR
adb -s $DEVICE push $QNN_SDK_ROOT/lib/aarch64-android/libQnnHtpNetRunExtensions.so $REMOTE_DIR
adb -s $DEVICE push $QNN_SDK_ROOT/lib/aarch64-android/libQnnHtpV${ARCH}Stub.so $REMOTE_DIR
# 推送DSP库文件
adb -s $DEVICE push $QNN_SDK_ROOT/lib/hexagon-v${ARCH}/unsigned/libQnnHtpV${ARCH}Skel.so $REMOTE_DIR
# 推送配置文件和提示词
adb -s $DEVICE push qbq_qcdsqwen1p5B_w4_0516.json $REMOTE_DIR
adb -s $DEVICE push prompts_qwen2.5.txt $REMOTE_DIR
adb -s $DEVICE push tokenizer.json $REMOTE_DIR
adb -s $DEVICE push htp_backend_ext_config.json $REMOTE_DIR
2.2 Windows 用户推送指令
请在您的工作目录下,打开命令提示符 (CMD) 执行以下命令。同样,请替换相关路径和设备序列号。
# 清理环境
adb -s <您的设备序列号> shell "rm -rf /data/local/tmp/qwen2_deepseek_test && mkdir -p /data/local/tmp/qwen2_deepseek_test"
# 设置目标架构和设备
set QNN_SDK_ROOT="C:\path\to\your\qnn\sdk"
set ARCH=79
set DEVICE=<您的设备序列号>
set REMOTE_DIR=/data/local/tmp/qwen2_deepseek_test
# 推送模型文件 (Windows CMD 不支持通配符,需要使用 for 循环)
for %f in (*.serialized.bin) do adb -s %DEVICE% push %f %REMOTE_DIR%
# 推送可执行文件
adb -s %DEVICE% push %QNN_SDK_ROOT%\bin\aarch64-android\genie-t2t-run %REMOTE_DIR%
# 推送安卓库文件
adb -s %DEVICE% push %QNN_SDK_ROOT%\lib\aarch64-android\libc++_shared.so %REMOTE_DIR%
adb -s %DEVICE% push %QNN_SDK_ROOT%\lib\aarch64-android\libGenie.so %REMOTE_DIR%
adb -s %DEVICE% push %QNN_SDK_ROOT%\lib\aarch64-android\libQnnHtp.so %REMOTE_DIR%
adb -s %DEVICE% push %QNN_SDK_ROOT%\lib\aarch64-android\libQnnSystem.so %REMOTE_DIR%
adb -s %DEVICE% push %QNN_SDK_ROOT%\lib\aarch64-android\libQnnHtpPrepare.so %REMOTE_DIR%
adb -s %DEVICE% push %QNN_SDK_ROOT%\lib\aarch64-android\libQnnHtpNetRunExtensions.so %REMOTE_DIR%
adb -s %DEVICE% push %QNN_SDK_ROOT%\lib\aarch64-android\libQnnHtpV%ARCH%Stub.so %REMOTE_DIR%
# 推送DSP库文件
adb -s %DEVICE% push %QNN_SDK_ROOT%\lib\hexagon-v%ARCH%\unsigned\libQnnHtpV%ARCH%Skel.so %REMOTE_DIR%
# 推送配置文件和提示词
adb -s %DEVICE% push qbq_qcdsqwen1p5B_w4_0516.json %REMOTE_DIR%
adb -s %DEVICE% push prompts_qwen2.5.txt %REMOTE_DIR%
adb -s %DEVICE% push tokenizer.json %REMOTE_DIR%
adb -s %DEVICE% push htp_backend_ext_config.json %REMOTE_DIR%
3. 在设备上执行模型
文件推送完毕后,我们需要进入设备的 shell 环境来运行模型。
3.1 进入 ADB Shell 并设置环境
首先,进入设备的 shell 环境。
adb -s <您的设备序列号> shell
进入 shell 后,执行以下命令来设置运行环境并解决常见问题。
# 将当前目录添加到库搜索路径
export LD_LIBRARY_PATH=/data/local/tmp/qwen2_deepseek_test
# 添加 DSP 相关的库路径
export ADSP_LIBRARY_PATH="/data/local/tmp/qwen2_deepseek_test;/system/lib/rfsa/adsp;/system/vendor/lib/rfsa/adsp;/dsp"
3.2 运行推理
环境设置完毕后,可以使用以下命令启动模型推理。
3.2.1 使用提示词文件
./genie-t2t-run -c qbq_qcdsqwen1p5B_w4_0516.json --prompt_file prompts_qwen2.5.txt
执行后,您应该能看到模型开始加载,并根据 prompts_qwen2.5.txt 文件中的内容生成回复。您可以使用 Ctrl+C 来中断执行。
3.2.2 使用自定义提示词
您也可以直接在命令行中输入自己的提示词来与模型交互。
# 为了方便,也可以把配置文件名设为变量
export LLM_CFG=qbq_qcdsqwen1p5B_w4_0516.json
export PROMPT_FILE=prompts_qwen2.5.txt
# 运行推理程序
./genie-t2t-run -c ${LLM_CFG} --prompt_file ${PROMPT_FILE}
4. 模型下载
如果需要下载本文档使用的 DeepSeek 模型,请点击以下链接:
