一、概述
DeepSeek-R1-Distill-Qwen 是 DeepSeek 团队基于 DeepSeek-R1 模型通过蒸馏技术生成的一系列轻量化模型。这些模型在保持高性能推理能力的同时,显著降低了计算资源和内存需求,适合在资源受限的环境中部署。DeepSeek-R1-Distill-Qwen 系列模型是通过从 DeepSeek-R1 模型中提取推理模式并迁移到更小的模型架构中生成的。这些模型基于 Qwen 系列架构,包括 1.5B、7B、14B 和 32B 等不同参数规模的版本,适用于多种任务场景,如数学推理、代码生成和逻辑推理等。
想试用满血版的DeepSeek与各种开源的大语言模型可以转到,带联网搜索+图片+文档+语音+群聊,实测比DeepSeek官网还牛逼:https://askmany.cn/login?i=d788ca33
二、性能与部署要求
2.1 性能
DeepSeek-R1-Distill-Qwen 系列模型在多个基准测试中表现出色:
- 数学推理:在 AIME 2024 和 MATH-500 测试中,DeepSeek-R1-Distill-Qwen-32B 的准确率分别达到 72.6% 和 94.3%,接近 OpenAI-o1-mini 的表现。
- 代码生成:在 LiveCodeBench 和 Codeforces 测试中,DeepSeek-R1-Distill-Qwen-32B 的评分分别为 57.2 和 1691,展现了强大的代码生成能力。
- 逻辑推理:在 GPQA Diamond 测试中,DeepSeek-R1-Distill-Qwen-32B 的准确率为 62.1%,显著优于许多同类模型。
2.2 部署与硬件要求
DeepSeek-R1-Distill-Qwen 系列模型支持多种部署方式,包括本地部署和云服务部署:
- 本地部署:可以通过 LM Studio 或 Ollama 等工具进行部署。例如,DeepSeek-R1-Distill-Qwen-7B 的最低硬件要求为 NVIDIA Tesla 16GB GPU,而 32B 版本则需要更高配置的 GPU(如 NVIDIA A100)。
- 云服务部署:阿里云函数计算 FC 和摩尔线程的 KUAE GPU 集群均支持 DeepSeek-R1-Distill-Qwen 系列模型的推理服务部署,显著降低了部署成本。
2.3 代码部署
为了方便嵌入自己的项目,这里演示如何基于python部署DeepSeek-R1模型,当前开发环境Win11,IDE是PyCharm,GPU是RTX 4080 8G,CUDA 是11.8。这里默认已安装好GPU驱动与CUDA与CUDNN环境,如未安装则转到博主另一个博客:Windows下从零开始基于Ollama与Open-WebUI本地部署deepseek R1详细指南(包含软件包和模型网盘下载) 。
二、环境安装
这里使用conda进行环境搭建,首先创建一个conda环境:
conda create -n deepseek python==3.10
激活环境:
conda activate deepseek
安装与cuda对应的pytorch库,可以从torch官网得到安装指令,我的装的是cuda 11.8,找到对应的torch版本:
pip install torch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 --index-url https://download.pytorch.org/whl/cu118
之后安装对应的依赖库:
requests==2.32.3
fastapi==0.115.8
uvicorn==0.34.0
transformers==4.48.2
huggingface-hub==0.28.1
accelerate==1.3.0
modelscope==1.22.3
numpy==1.22.4
安装完成环境之后,配置已安装好的Conda虚拟环境到PyCharm,可参考博主这个博客:详细记录Pycharm配置已安装好的Conda虚拟环境。
三、模型下载
使用 modelscope 中的 snapshot_download 函数下载模型,第一个参数为模型名称,参数 cache_dir 为模型的下载路径。
使用PyCharm中新建download_ model.py 文件,文件代码如下:
import os
from modelscope import snapshot_download
from modelscope.utils.constant import DownloadMode
def download_model(model_name,cache_path):
"""
此函数用于从 modelscope 下载指定模型到指定路径。
函数会尝试从 modelscope 下载 'deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B' 模型,
并将其保存到 './models' 目录下。如果下载过程中出现任何异常,
将会捕获并打印错误信息。
返回值:
- 如果下载成功,返回模型保存的目录路径。
- 如果下载失败,返回 None。
"""
try:
# 确保下载路径存在,如果不存在则创建
if not os.path.exists(cache_path):
os.makedirs(cache_path)
# 使用 snapshot_download 函数下载模型,设置下载模式为强制重新下载以获取最新版本
model_dir = snapshot_download(
model_name,
cache_dir=cache_path,
revision='master',
download_mode=DownloadMode.FORCE_REDOWNLOAD
)
print(f"模型已成功下载到: {
model_dir}")
return model_dir
except Exception as e:
print(f"下载模型时出现错误: {
e}")
return None
if __name__ == "__main__":
model_name = 'deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B'
cache_path = './models'
download_model(model_name,cache_path)
四、 终端输出
在PyChram添加代码:
4.1 导入必要的模块