当前位置: 首页 > news >正文

deepseek-r1 api部署和镜像

背景

本文提供一个deepseek-r1-14b/32b的镜像,支持vllm api部署,提供客户端调用api代码,支持history和functioncall。

deepseek镜像

使用auto-dl平台:https://www.autodl.com/create
选择社区镜像
在这里插入图片描述
找到Tecioon4的镜像
在这里插入图片描述
镜像详情:
https://www.codewithgpu.com/i/deepseek-ai/DeepSeek-R1/deepseek-R1-14B-32B-vllm-api

镜像构建

镜像已预装 1.5B 模型和部分14B模型,开箱即用,支持多轮对话推理。

如需使用更大的模型版本,可根据算力按需下载。

须知

  • 章节一是快速尝试
  • 章节二、三是准备环境和模型
  • 章节四是在服务器上使用模型进行对话
  • 章节五是在服务器上进行API部署,方便你远程调用API
  • 章节六是在客户端(本地电脑)上调用服务器API

模型选择:

本镜像支持不同规格的模型,内置1.5B的和部分14B模型,如果你只是想使用1.5B,就不用下载模型,直接使用章节一,四、五、六。如果你需要使用14B和32B或者其他模型,请先使用章节二、三下载模型,再用章节四、五、六。

交互方式选择:
只是想在服务器上进行对话,使用章节四即可。
如果需要部署API,使用章节五和六。

一、快速上手使用

镜像中有1.5B的模型,可以直接测试效果

cd ~
conda activate torch_env
python deepseek_multichat.py

二、基本环境

  • 框架及版本

    • Python: 3.8.10
    • PyTorch: 2.4.1
    • Transformers: 4.46.3
    • Triton: 3.0.0
    • Safetensors: 0.4.5
  • CUDA 版本

    • CUDA 12.1

三、构建过程

默认下载了1.5B的模型,以及部分14B模型
1.5B: /root/DeepSeek-R1
14B: /root/DeepSeek-R1-Distill-Qwen-14B

环境配置

进入root目录

cd ~

激活环境

conda activate torch_env

设置下载源

export HF_ENDPOINT=https://hf-mirror.com

在数据盘创建目录

mkdir -p /root/autodl-tmp/model

将14B模型移动到数据盘

mv /root/DeepSeek-R1-Distill-Qwen-14B /root/autodl-tmp/model/

下载模型

默认使用1.5B的本地模型,其他类型的模型需要根据以下指令下载。
!!!下载失败的话进行多次尝试,我本地网络不太好重试了十几次,最后还是可以成功下载完!!!!

1.5B

已经下载在/root/DeepSeek-R1中。

14B

下载了一部分,需要继续下载

huggingface-cli download deepseek-ai/DeepSeek-R1-Distill-Qwen-14B \
  --local-dir /root/autodl-tmp/model/DeepSeek-R1-Distill-Qwen-14B \
  --resume-download
32B,需要重头开始下,有点慢
huggingface-cli download deepseek-ai/DeepSeek-R1-Distill-Qwen-32B \
  --local-dir /root/autodl-tmp/model/DeepSeek-R1-Distill-Qwen-32B \
  --resume-download
更多模型
  • DeepSeek-R1 Models(未蒸馏版)
Model#Total Params#Activated ParamsContext LengthDownload
DeepSeek-R1-Zero671B37B128K? HuggingFace
DeepSeek-R1671B37B128K? HuggingFace
  • DeepSeek-R1-Distill Models(蒸馏版)
ModelBase ModelDownload
DeepSeek-R1-Distill-Qwen-1.5BQwen2.5-Math-1.5B? HuggingFace
DeepSeek-R1-Distill-Qwen-7BQwen2.5-Math-7B? HuggingFace
DeepSeek-R1-Distill-Llama-8BLlama-3.1-8B? HuggingFace
DeepSeek-R1-Distill-Qwen-14BQwen2.5-14B? HuggingFace
DeepSeek-R1-Distill-Qwen-32BQwen2.5-32B? HuggingFace
DeepSeek-R1-Distill-Llama-70BLlama-3.3-70B-Instruct? HuggingFace

参考:

https://huggingface.co/collections/deepseek-ai/deepseek-r1-678e1e131c0169c0bc89728d

https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B

四、对话、推理

环境搭建完成后,下次就直接调用deepseek_multichat或者vllm_model就可以启动模型

推理,有以下3中方式
  1. 终端对话,可以在代码中修改变量config_path来选择模型
    python deepseek_multichat.py

  2. vllm加速,默认用的14B,可以在代码中修改变量model来选择模型
    python vllm_model.py

    参考:

https://github.com/datawhalechina/self-llm/blob/master/models/DeepSeek-R1-Distill-Qwen/04-DeepSeek-R1-Distill-Qwen-7B%20vLLM%20%E9%83%A8%E7%BD%B2%E8%B0%83%E7%94%A8.md

  1. 官方方式,https://github.com/deepseek-ai/DeepSeek-V3

五、vllm-api部署

1.5B

python -m vllm.entrypoints.openai.api_server
–model /root/autodl-tmp/model/DeepSeek-R1
–served-model-name DeepSeek-R1
–max-model-len=19000

14B

需要先下载14B模型

python -m vllm.entrypoints.openai.api_server
–model /root/autodl-tmp/model/DeepSeek-R1-Distill-Qwen-14B
–served-model-name DeepSeek-R1-Distill-Qwen-14B
–max-model-len=19000

32B

需要先下载32B模型

python -m vllm.entrypoints.openai.api_server
–model /root/autodl-tmp/model/DeepSeek-R1-Distill-Qwen-32B
–served-model-name DeepSeek-R1-Distill-Qwen-32B
–max-model-len=19000

六、客户端调用

1.端口映射

先使用autodl自带的"自定义服务"进行端口映射,例如:

ssh -CNg -L 8000:127.0.0.1:8000 root@region-9.autodl.pro -p 26901

在客户端终端运行自定义服务的指令,需要将两个6006都改成8000,第一个是你客户端用的端口,第二个是你服务器的端口,也可以自己设置。

2. 代码调用

/model.py和/test.py拷贝到客户端同一个目录下,直接运行test.py

3. 也可以直接终端测试

终端运行以下指令:

curl http://localhost:8000/v1/chat/completions
-H "Content-Type: application/json"
-d '{
"model": "DeepSeek-R1-Distill-Qwen-14B",
"messages": [
{"role": "user", "content": "我想问你,5的阶乘是多少?<think>\n"}
]
}'
4. 更多玩法参考以下链接

https://github.com/datawhalechina/self-llm/blob/master/models/DeepSeek-R1-Distill-Qwen/04-DeepSeek-R1-Distill-Qwen-7B%20vLLM%20%E9%83%A8%E7%BD%B2%E8%B0%83%E7%94%A8.md

http://www.dtcms.com/a/106596.html

相关文章:

  • OpenCV 图形API(9)用于执行矩阵与标量之间的逐元素除法操作函数divC()
  • 获取oracle表大小
  • 《系统分析师开篇》
  • 电动打气泵方案,多种充气模式的充气泵方案【天吉智芯】
  • 从商汤科技年报,看一家AI企业的确定性叙事
  • 山东港口船货通平台:赋能航运产业升级,构建智慧物流新生态
  • 二分查找算法精讲
  • Mysql 的binlog日志的优缺点
  • 【多通道数据采集系统:汽车测试江湖的“兵器谱”——硬核分类与实战秘籍】
  • 大模型(LLMs)RAG 版面分析——表格识别方法篇
  • 二分类交叉熵以及加权交叉熵
  • 批量删除或替换文本文件中指定的行,如删除第一行、删除最后一行
  • 诠视科技Unity SDK开发环境配置、项目设置、apk打包。
  • 利用空间-运动-回波稀疏性进行5D图像重建,以实现自由呼吸状态下肝脏定量磁共振成像(MRI)的加速采集|文献速递--深度学习医疗AI最新文献
  • 穿透单链表的神秘屏障,洞察数据结构的真谛
  • 瑞萨RA-Eco-RA4M2-100PIN-V1.0MCU使用心得
  • 超级好用的小软件,连接电脑和手机。
  • AI 大模型应用开发实战营-毕业总结
  • SQLSugar单列查询Select和条件查询Where的封装
  • 整点报时时间HTML源码
  • gitee 配置git上传
  • 扫描线离散化线段树解决矩形面积并-洛谷P5490
  • 《电流与电压的誓约》
  • (六)窗口表面
  • 【SPP】蓝牙串口配置中LM互操作性要求深度解析
  • 解决elementui-plus使用el-table的合计功能时横向滚动条显示在了合计上方
  • 基于SpringBoot的河道水情大数据可视化分析平台设计与实现(源码+论文+部署讲解等)
  • 在 Rocky Linux 9.2 上编译安装 Redis 6.2.6
  • MaxScript 实现冒泡排序算法
  • .Net8项目使用docker、docker-compose部署步骤