HuggingFace镜像/DeepSeek-V3
模型介绍模型推理文件和版本分析
下载使用量0

DeepSeekV3推理使用指南

目录

  • 模型介绍
  • 快速开始
  • 声明

模型介绍

DeepSeek-V3是深度求索于2024年12月16日发布的人工智能大型语言模型。其基于混合专家(MoE)架构,总参数量达 6710 亿。它通过创新的多头潜在注意力(MLA)和 FP8 混合精度训练,显著提升了推理效率和训练经济性。在数学推理、代码生成和知识理解等任务中,DeepSeek-V3 超越了主流开源模型,并与 GPT-4 等闭源模型性能相当。而且,DeepSeek-V3是全球前十中性价比最高的模型。其开源模型检查点推动了 AI 社区的发展,为通用人工智能(AGI)研究提供了重要参考。DeepSeek-V3使用MIT协议开源,意味着任何人都可以自由使用该模型,包括商业用途。

下载链接:

社区下载地址
魔乐社区https://modelers.cn/models/MindSpore-Lab/DeepSeek-V3

快速开始

DeepSeek-V3推理至少需要4台Atlas 800I A2(64G)服务器(基于BF16权重)。昇思MindSpore提供了DeepSeek-V3推理专用的Docker容器镜像,供开发者快速体验。

下载昇思 MindSpore DeepSeek-V3 推理容器镜像

执行以下 Shell 命令,拉取昇思 MindSpore DeepSeek-V3 推理容器镜像:

docker pull swr.cn-central-221.ovaijisuan.com/mindformers/deepseek_v3_mindspore2.5.0-infer:20250217

启动容器

执行以下命令创建并启动容器:

docker run -it --privileged  --name=deepseek-v3 --net=host \
   --shm-size 500g \
   --device=/dev/davinci0 \
   --device=/dev/davinci1 \
   --device=/dev/davinci2 \
   --device=/dev/davinci3 \
   --device=/dev/davinci4 \
   --device=/dev/davinci5 \
   --device=/dev/davinci6 \
   --device=/dev/davinci7 \
   --device=/dev/davinci_manager \
   --device=/dev/hisi_hdc \
   --device /dev/devmm_svm \
   -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
   -v /usr/local/Ascend/firmware:/usr/local/Ascend/firmware \
   -v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \
   -v /usr/local/sbin:/usr/local/sbin \
   -v /etc/hccn.conf:/etc/hccn.conf \
   swr.cn-central-221.ovaijisuan.com/mindformers/deepseek_v3_mindspore2.5.0-infer:20250217 \
   bash

注意事项:

  • 起容器时,如果有部分宿主机的hostname是一致的,需要在起容器的时候修改容器的hostname,保证所有容器的hostname都不一致。

后续所有操作均在容器内操作。

模型下载

执行以下命令为自定义下载路径./model_path添加白名单:

export HUB_WHITE_LIST_PATHS=./model_path

执行以下 Python 脚本从魔乐社区下载昇思 MindSpore 版本的 DeepSeek-V3 文件至指定路径./model_path。下载的文件包含模型代码、权重、分词模型和示例代码,占用约 1.4TB 的磁盘空间:

from openmind_hub import snapshot_download

snapshot_download(
    repo_id="MindSpore-Lab/DeepSeek-V3",
    local_dir="./model_path",
    local_dir_use_symlinks=False
)

注意事项:

  • ./model_path 可修改为自定义路径,确保该路径有足够的磁盘空间(约 1.4TB)。
  • 下载时间可能因网络环境而异,建议在稳定的网络环境下操作。

模型配置修改

配置./model_path/examples/predict_deepseek3_671B.yaml的load_checkpoint参数为权重文件夹绝对路径,配置tokenizer_file参数和vocab_file参数为tokenizer.json文件绝对路径。

服务化部署

1. 准备rank_table_file.json

rank_table_file.json按照下面进行配置,其中各配置项需要替换为实际的值。

{
   "server_count": "...",
   "server_list": [
      {
         "device": [
            {
               "device_id": "...", 
               "device_ip": "...", 
               "rank_id": "..."
            },
            ...
         ],
         "server_id": "...", 
         "container_ip": "..." 
      },
      ...
   ],
   "status": "completed",
   "version": "1.0"
}

配置说明:

配置项配置说明
server_count总节点数
server_list节点列表,列表中第一个server为主节点
deviceNPU设备列表
device_idNPU设备ID,取值范围[0,8)
device_ipNPU设备IP,可通过hccn_tool命令获取
rank_idNPU设备全局ID,取值范围[0,总卡数)
server_id节点IP
container_ip容器IP,服务化部署时需要,若无特殊配置,则与server_ip相同
status配置状态,不用修改
version配置版本,不用修改

其中NPU设备IP通过如下命令获取,需要在容器外执行:

for i in {0..7}; do hccn_tool -i $i -ip -g; done

执行以下命令配置服务化需要的环境变量:

export MS_SCHED_HOST=192.168.1.1
export MS_SCHED_PORT=8080
export MS_ENABLE_LCCL=off
export HCCL_OP_EXPANSION_MODE=AIV
export MIES_CONTAINER_IP=192.168.1.1
export RANKTABLEFILE=./rank_table_file.json
export PYTHONPATH=/home/work/mindformers/:$PYTHONPATH
export REGISTER_PATH=path/to/DeepSeek-V3/examples

注意:

  • 将MS_SCHED_HOST配置为实际的主节点IP。
  • 将MIES_CONTAINER_IP配置为本节点IP。
  • 将RANKTABLEFILE配置为rank_table_file.json的实际路径。
  • 将REGISTER_PATH需要修改成DeepSeek-V3/examples的实际路径。

2. 修改服务化配置文件

执行以下命令打开服务化配置文件config.json:

cd /usr/local/Ascend/mindie/latest/mindie-service/
vim conf/config.json

修改以下参数:

参数名修改说明
ipAddress修改为主节点IP
managementIpAddress修改为主节点IP
httpsEnabled配置为false
multiNodesInferEnabled配置为true,开启多机推理
interCommTLSEnabled若不需要安全认证,修改为false
interNodeTLSEnabled若不需要安全认证,修改为false
modelName自定义模型名,不影响服务化拉起
modelWeightPath修改为模型文件夹绝对路径“path/to/model_path/DeepSeek-V3/examples”

3. 拉起服务化任务

在所有机器上同时执行如下命令:

cd /usr/local/Ascend/mindie/latest/mindie-service/
./bin/mindieservice_daemon

执行命令后,首先会打印本次启动所用的所有参数,然后直到出现以下输出,则认为服务成功启动。

Daemon start success!

执行以下命令发送流式推理请求进行测试:

curl -w "\ntime_total=%{time_total}\n" -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"inputs": "请介绍一个北京的景点", "parameters": {"do_sample": false, "max_new_tokens": 128}, "stream": false}' http://192.168.0.133:9091/generate_stream &

本地纯模型推理

在DeepSeek-V3/examples目录下提供了一个推理脚本run_deepseekv3_predict.py和一个分布式任务拉起脚本msrun_launcher.sh。

分别在4台机器上执行如下命令进行分布式推理,设置master_ip为IP地址,即Node 0服务器的IP。

在Node 0服务器上执行如下命令:

export HCCL_OP_EXPANSION_MODE=AIV
export MS_ENABLE_LCCL=off
export PYTHONPATH=/home/work/mindformers/:$PYTHONPATH
master_ip=192.168.1.1
cd model_path/DeepSeek-V3/examples
bash msrun_launcher.sh "run_deepseekv3_predict.py" 32 8 $master_ip 8888 0 output/msrun_log False 300

在Node 1服务器上执行如下命令:

export HCCL_OP_EXPANSION_MODE=AIV
export MS_ENABLE_LCCL=off
export PYTHONPATH=/home/work/mindformers/:$PYTHONPATH
master_ip=192.168.1.1
cd model_path/DeepSeek-V3/examples
bash msrun_launcher.sh "run_deepseekv3_predict.py" 32 8 $master_ip 8888 1 output/msrun_log False 300

在Node 2服务器上执行如下命令:

export HCCL_OP_EXPANSION_MODE=AIV
export MS_ENABLE_LCCL=off
export PYTHONPATH=/home/work/mindformers/:$PYTHONPATH
master_ip=192.168.1.1
cd model_path/DeepSeek-V3/examples
bash msrun_launcher.sh "run_deepseekv3_predict.py" 32 8 $master_ip 8888 2 output/msrun_log False 300

在Node 3服务器上执行如下命令:

export HCCL_OP_EXPANSION_MODE=AIV
export MS_ENABLE_LCCL=off
export PYTHONPATH=/home/work/mindformers/:$PYTHONPATH
master_ip=192.168.1.1
cd model_path/DeepSeek-V3/examples
bash msrun_launcher.sh "run_deepseekv3_predict.py" 32 8 $master_ip 8888 3 output/msrun_log False 300

声明

本文档提供的模型代码、权重文件和部署镜像,当前仅限于基于昇思MindSpore AI框架体验DeepSeekV3的部署效果,不支持生产环境部署。相关使用问题请反馈至Issue。