Deepseek 在Snapdragon 8 Elite平台推理部署教程

DeepSeek 模型手动部署与执行指南

本文档旨在指导用户如何在 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 模型,请点击以下链接:

点击下载 DeepSeek 模型 (deepseek_r1_7b.zip)