Qwen3-chat-DEMO
一、 简介
Qwen3(通义千问3) 是阿里巴巴推出的新一代 大语言模型(LLM) 系列,属于 通义千问(Qwen) 家族的最新迭代版本。它在 性能、多模态能力、长文本处理 等方面进行了显著升级,适用于 自然语言理解、代码生成、数学推理、多轮对话 等任务。
1、特性
- 1.更强的性能 参数量级:涵盖 1.8B、7B、14B、72B 等多个规模,满足不同场景需求。 基准表现:在 MMLU、C-Eval、GSM8K、HumanEval 等中英文评测中领先同类模型。 长文本支持:上下文窗口扩展至 128K tokens,适合长文档分析、代码理解等任务。
- 2.开源与生态 开源协议:部分模型采用 Apache 2.0 许可,允许商用和研究。 工具链支持:提供 量化、微调、API 等配套工具,适配 GPU/TPU 硬件(如BM1684X)。
- 3.推理优化 低资源适配:支持 4-bit/8-bit 量化,可在消费级GPU(如RTX 4090)或边缘设备(如BM1684X TPU)部署。 动态计算:自适应调整计算资源,平衡速度与精度。
2、工程目录
个人演示的工程目录
Qwen3
├── cpp_demo
├── Models
│ └── BM1684X
│ └── qwen3-4b_w4bf16_seq512_bm1684x_1dev_20250429_120231.bmodel # BM1684X qwen3-4b模型
├── python_demo
│ ├── config # 配置文件
│ ├── chat.cpp # 启动程序
│ ├── CMakeLists.txt # 创建python chat模块
│ ├── pipeline.py # 运行文件
│ └── README.md # 说明文档
└── README.md # 说明文档
二、运行步骤
1、准备Python环境、数据与模型
1.1 首先升级python版本为3.10
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.10 python3.10-dev
# 创建虚拟环境(不含pip包)
# !!!每次运行都要按照步骤切换虚拟环境!!!
cd /data
# 创建虚拟环境(不包含 pip)
python3.10 -m venv --without-pip myenv
# 进入虚拟环境
source myenv/bin/activate
# 手动安装 pip
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
rm get-pip.py
# 安装依赖库
pip3 install torchvision pillow qwen_vl_utils transformers --upgrade
1.2 复制算能官方的Qwen3工程目录(或者复制后将Qwen3上传到盒子中的/data下)
git clone https://github.com/sophgo/LLM-TPU.git
cd sophgo/LLM-TPU/models/Qwen3
cd /data/Qwen3 ##如果只上传了Qwen3,则只需进入此目录下操作
1.3 准备运行环境
内存配置(建议进行) 在PCIe上无需修改内存,以下为soc模式相关: 对于1684X系列设备(如SE7/SM7),都可以通过这种方式完成环境准备,使其满足Qwen2.5-VL运行条件。首先,确保使用V24.04.01 SDK,可以通过bm_version命令检查SDK版本,如需要升级,可从sophgo.com获取v24.04.01版本SDK,刷机包位于sophon-img-xxx/sdcard.tgz中,参考对应的产品手册进行刷机。
确保SDK版本后,在1684x SoC环境上,参考如下命令修改设备内存:
cd /data/
mkdir memedit && cd memedit
wget -nd https://sophon-file.sophon.cn/sophon-prod-s3/drive/23/09/11/13/DeviceMemoryModificationKit.tgz
tar xvf DeviceMemoryModificationKit.tgz
cd DeviceMemoryModificationKit
tar xvf memory_edit_{vx.x}.tar.xz #vx.x是版本号
cd memory_edit
./memory_edit.sh -p #这个命令会打印当前的内存布局信息
./memory_edit.sh -c -npu 7615 -vpu 2048 -vpp 2048 #如果是在1688平台上请修改为:./memory_edit.sh -c -npu 10240 -vpu 0 -vpp 3072
sudo cp /data/memedit/DeviceMemoryModificationKit/memory_edit/emmcboot.itb /boot/emmcboot.itb && sync
sudo reboot
1.4 模型准备
cd /data/Qwen3
# 建议/data/Qwen3/下新建Models/BM1684X目录,并将模型移动到此目录下(或者不新建目录,只需要记住模型的路径)
mkdir Models && mkdir Models/BM1684X && cd /data/Qwen3/Models/BM1684X
python3 -m dfss --url=open@sophgo.com:/ext_model_information/LLM/LLM-TPU/qwen3-4b_w4bf16_seq512_bm1684x_1dev_20250429_120231.bmodel ##下载模型文件
2、python例程
2.1 环境准备
cd /data/Qwen3/python_demo
# 建议在/data/Qwen3/python_demo/下新建一个requirements.txt的文本文档,并添加如下内容
transformers==4.49.0
torch==2.4.1
numpy==1.24.4
requests==2.32.3
torchvision==0.19.1
packaging==24.2
av==12.3.0
psutil==5.9.1
opencv-python-headless==4.11.0.86
# 此外您可能还需要安装其他库
pip3 install dfss -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade
pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 您需要安装SILK2.Tools.logger
python3 -m dfss --url=open@sophgo.com:tools/silk2/silk2.tools.logger-1.0.2-py3-none-any.whl
pip3 install silk2.tools.logger-1.0.2-py3-none-any.whl --force-reinstall
rm -f silk2.tools.logger-1.0.2-py3-none-any.whl
# 本例程依赖sophon-sail,可直接安装sophon-sail,执行如下命令:
pip3 install dfss --upgrade
python3 -m dfss --install sail
2.2 编译运行程序
# 安装 pybind11 开发包
sudo apt-get update
sudo apt-get install pybind11-dev
mkdir build cd build && cmake .. && make && cp *cpython* .. && cd ..
2.3 运行测试
# chat测试
python3 pipeline.py -m qwen3_xxx.bmodel -c config # 请将模型路径和config路径换成自己的路径
使用效果
