DeepSeek-R1-Distill-Qwen-1.5B 模型推理
本项目演示了如何部署和使用 DeepSeek-R1-Distill-Qwen-1.5B 模型进行推理,并构建一个可交互的对话机器人。
项目概述
本教程基于昇思大模型平台,展示了如何加载 DeepSeek-R1-Distill-Qwen-1.5B 模型并进行推理操作。用户可以通过命令行与模型进行交互式对话,体验模型的问答能力。
环境准备
安装依赖
# 卸载并重新安装指定版本的 MindSpore
pip uninstall mindspore -y
pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/2.6.0/MindSpore/unified/aarch64/mindspore-2.6.0-cp39-cp39-linux_aarch64.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com -i https://pypi.tuna.tsinghua.edu.cn/simple
# 安装 MindNLP 0.4.1
pip uninstall mindnlp -y
pip install https://xihe.mindspore.cn/coderepo/web/v1/file/MindSpore/mindnlp/main/media/mindnlp-0.4.1-py3-none-any.whl
模型加载
项目从 Modelers 模型库加载预训练模型和分词器:
from mindnlp.transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("MindSpore-Lab/DeepSeek-R1-Distill-Qwen-1.5B-FP16", mirror="modelers")
model = AutoModelForCausalLM.from_pretrained("MindSpore-Lab/DeepSeek-R1-Distill-Qwen-1.5B-FP16", mirror="modelers")
默认系统提示词为:“你是一个智能聊天机器人,以最简单的方式回答用户问题”
使用方法
运行代码后,程序会显示欢迎信息:
欢迎使用 DeepSeek-R1-Distill-Qwen-1.5B 模型,输入内容即可进行对话,clear 清空对话历史,stop 终止程序
支持的命令:
- 输入任意问题与模型对话
- 输入
clear清空对话历史 - 输入
stop退出程序
核心功能
- 对话历史管理:维护用户与模型的对话历史,支持上下文理解
- 流式输出:使用
TextIteratorStreamer实现文本生成的流式输出,提升用户体验 - 多线程生成:在独立线程中执行文本生成,避免阻塞主线程
技术细节
- 最大新生成令牌数:1024
- 缓存使用:启用
use_cache=True提高生成效率 - 特殊令牌处理:自动处理
pad_token和eos_token
注意事项
- 本教程适用于昇思大模型平台的单卡环境
- 在昇腾开发板上的实际操作请参考提供的示例代码
- 首次运行时可能会显示一些警告信息,这是正常现象