昇思学习营-DeepSeek-R1-Distill-Qwen-1.5B 模型推理学习心得

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 退出程序

核心功能

  1. 对话历史管理:维护用户与模型的对话历史,支持上下文理解
  2. 流式输出:使用 TextIteratorStreamer 实现文本生成的流式输出,提升用户体验
  3. 多线程生成:在独立线程中执行文本生成,避免阻塞主线程

技术细节

  • 最大新生成令牌数:1024
  • 缓存使用:启用 use_cache=True 提高生成效率
  • 特殊令牌处理:自动处理 pad_tokeneos_token

注意事项

  • 本教程适用于昇思大模型平台的单卡环境
  • 在昇腾开发板上的实际操作请参考提供的示例代码
  • 首次运行时可能会显示一些警告信息,这是正常现象

参考资源