# Deepseek-V3.1_Pytorch
## 论文
`DeepSeek-V3 Technical Report`
- https://arxiv.org/abs/2412.19437
## 模型结构
DeepSeek-V3.1 是一个支持思考模式和非思考模式的混合模型。与之前的版本相比,此次升级在多个方面都有所改进:
- 混合思维模式:通过更改聊天模板,一种模型即可支持思维模式和非思维模式。
- 更智能的工具调用:通过后期训练优化,模型在工具使用和代理任务方面的性能有了显著提升。
- 更高的思维效率:DeepSeek-V3.1-Think 实现了与 DeepSeek-R1-0528 相当的答案质量,同时响应速度更快。
## 算法原理
DeepSeek-V3.1 是在 DeepSeek-V3.1-Base 的基础上进行后置训练的。DeepSeek-V3.1-Base 是基于原始 V3 基础检查点通过两阶段长上下文扩展方法构建而成的,其遵循了原始 DeepSeek-V3 报告中所阐述的方法。我们通过收集更多长文档并大幅扩展了两个训练阶段的规模,从而扩充了我们的数据集。32K 扩展阶段的规模已增加 10 倍,达到 630 亿个标记,而 128K 扩展阶段则扩大了 3.3 倍,达到 209 亿个标记。
## 环境配置
### 硬件需求
DCU型号:BW200,节点数量:4台,每台卡数:8张。
### 模型下载及配置
在乌镇千卡集群启动模型,需要将模型下载到每个节点的/module目录下,随后容器映射
### Docker(方法一)
```bash
docker pull image.sourcefind.cn:5000/dcu/admin/base/vllm:0.9.2-ubuntu22.04-dtk25.04.1-rc5-rocblas101839-0811-das1.6-py3.10-20250812-beta
docker run -it --name {docker_name} --device=/dev/kfd --privileged --network=host --device=/dev/dri --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v /your_code_path:/your_code_path -v /opt/hyhal:/opt/hyhal:ro -v /module/DeepSeek-V3.1:/your_model_path/DeepSeek-V3.1 --group-add video --shm-size 64G {imageID} bash
cd /your_code_path/deepseek-v3.1_pytorch
```
### Dockerfile(方法二)
此处提供dockerfile的使用方法
```bash
cd docker
docker build --no-cache -t deepseek-v3.1_pytorch:latest .
docker run -it --name {docker_name} --device=/dev/kfd --privileged --network=host --device=/dev/dri --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v /your_code_path:/your_code_path -v /opt/hyhal:/opt/hyhal:ro -v /module/DeepSeek-V3.1:/your_model_path/DeepSeek-V3.1 --group-add video --shm-size 64G {imageID} bash
cd /your_code_path/deepseek-v3.1_pytorch
```
### Anaconda(方法三)
关于本项目DCU显卡所需的特殊深度学习库可从[光合](https://developer.sourcefind.cn/tool/)开发者社区下载安装。
```bash
DTK: 25.04
python: 3.10
torch: 2.5.1+das.opt2.dtk25041
```
`Tips:以上dtk驱动、pytorch等DCU相关工具版本需要严格一一对应`
其它非深度学习库安装方式如下:
```bash
pip install transformers==4.55.0
```
## 精度转换
```bash
python ./infer/fp8_cast_bf16.py --input-fp8-hf-path /path/to/fp8_weights --output-bf16-hf-path /path/to/bf16_weights
```
转换成功后,将其他文件一并复制粘贴到输出目录,并删掉config.json中的"quantization_config"键值对。
## 通信与环境变量配置
VLLM_HOST_IP: 节点本地通信口ip
NCCL_SOCKET_IFNAME和GLOO_SOCKET_IFNAME: 节点本地通信网口名
通信口和ip查询方法:ifconfig
set_env.sh 文件中的
NCCL_SOCKET_IFNAME=ib0
GLOO_SOCKET_IFNAME=ib0
VLLM_HOST_IP设置为ib网卡对应的IP
设置完成后分别在四个节点 source set_env.sh
## 启动ray
```bash
# head节点执行
ray start --head --node-ip-address=12.12.12.46 (头节点的VLLM_HOST_IP) --port=6379 --num-gpus=8 --num-cpus=32
# worker节点执行
ray start --address='12.12.12.46:6379' (头节点的VLLM_HOST_IP) --num-gpus=8 --num-cpus=32
```
## 数据集
暂无
## 训练
暂无
## 推理
### vllm推理方法
```bash
vllm serve /your_path/DeepSeek-V3.1-bf16 --trust-remote-code --distributed-executor-backend ray --dtype bfloat16 --tensor-parallel-size 32 --enable-expert-parallel --served-model-name ds31 --max-model-len 64000 --max-seq-len-to-capture 64000 --max-num-batched-tokens 64000 --max-num-seqs 128 --disable-log-requests --block-size 64 --no-enable-chunked-prefill --no-enable-prefix-caching --enforce-eager --gpu-memory-utilization 0.9
```
## result
```bash
# 示例:ray的head节点在loaclhost
curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{
"model": "ds31",
"messages": [
{
"role": "user",
"content": "请介绍下你自己"
}
],
"chat_template_kwargs": {
"thinking": true
}
}'
```
### 精度
```bash
{"id":"chatcmpl-48c26ddfc27b410ea3935c87e23b459b","object":"chat.completion","created":1756449320,"model":"ds31","choices":[{"index":0,"message":{"role":"assistant","reasoning_content":null,"content":"唔,用户让我介绍自己,这是一个很常见的开场问题。需要简洁明了地说明我的身份、功能和特点,让用户快速了解我能做什么。\n\n可以用轻松友好的语气开头,先打招呼并自我介绍名称和开发团队。然后重点列举核心能力,比如知识范围、上下文长度、文件处理等实用功能,让用户知道我的优势。\n\n最后可以补充一些免费提示,并鼓励用户提问,保持开放和帮助的态度。整体结构可以分三段:基本介绍、能力说明、结束语。你好呀!我是 **DeepSeek-V3**,由**深度求索(DeepSeek)** 打造的一款智能对话助手。我擅长回答各种问题,提供知识解答、代码编写、论文总结、文本润色等多样化的帮助。 \n\n### 🌟 我的特点:\n- **免费使用**:不收费,随时为你解答问题! \n- **长期记忆**:有128K的上下文长度,可以处理超长文本。 \n- **文件阅读**:支持 PDF、Word、Excel、PPT、TXT 等文件的解析和总结。 \n- **知识丰富**:涵盖编程、科技、学术、历史、文学等众多领域。 \n- **中文优化**:更适合中文用户,理解和表达都很自然! \n\n无论是学习、工作,还是日常生活遇到难题,都可以来找我聊聊!😊 有什么我可以帮你的吗?","tool_calls":[]},"logprobs":null,"finish_reason":"stop","stop_reason":null}],"usage":{"prompt_tokens":8,"total_tokens":298,"completion_tokens":290,"prompt_tokens_details":null},"prompt_logprobs":null,"kv_transfer_params":null}
```
DCU(BW200)与GPU(A800)在BF16精度下推理Deepseek-V3.1模型,结果精度一致,推理框架:vllm。
## 应用场景
### 算法类别
`对话问答`
### 热点应用行业
`制造,金融,教育`
## 预训练权重
- [deepseek-ai/DeepSeek-V3.1](https://huggingface.co/deepseek-ai/DeepSeek-V3)
- [deepseek-ai/DeepSeek-V3.1-Base](https://hf-mirror.com/deepseek-ai/DeepSeek-V3.1-Base)
## 源码仓库及问题反馈
- https://developer.sourcefind.cn/codes/modelzoo/deepseek-v3.1_pytorch
## 参考资料
- https://huggingface.co/deepseek-ai