You need to enable JavaScript to run this app.
文档中心
GPU云服务器

GPU云服务器

复制全文
下载 pdf
DeepSeek系列模型
HPC-单机部署DeepSeek-R1的W4A8方案
复制全文
下载 pdf
HPC-单机部署DeepSeek-R1的W4A8方案
本文主要介绍云平台与NVIDIA合作推出的针对DeepSeek-R1的优化方案以及在GPU云服务器上的部署指引,以降低部署成本、提升效率。​
背景信息​
DeepSeek-R1凭借其优秀的深度推理能力,一经推出便在AI市场掀起热潮。然而,DeepSeek-R1包含671B的模型参数,基于FP8的数据精度,权重显存消耗接近700GB,即便使用单卡96GB显存的GPU卡,也需要16张卡进行多卡部署(2台ecs.hpcpni3ln.45xlarge实例),多机推理之间的数据传输效率也面临极大挑战。如何在保证模型性能的前提下,提升部署效率、降低推理成本,成为限制DeepSeek-R1大模型规模化部署及应用的关键挑战。​
为应对上述挑战,云平台与NVIDIA深度协同,推出基于TensorRT-LLM推理框架的DeepSeek-R1加速优化方案,通过W4A8量化技术实现性能突破,在大幅降低模型存储需求和计算复杂度的同时,最大限度的保留了模型精度:​
  • 4位权重量化(W4):采用混合精度动态量化算法,在保留模型精度的前提下,将权重存储空间压缩至原来的二分之一左右。​
  • 8位激活量化(A8):激活参数数据精度选用FP8,确保模型推理的精度。​
部署指引​
通过以下步骤指引,您可以在GPU云服务器上实现W4A8量化版DeepSeek-R1的高效部署,有效降低DeepSeek-R1模型的部署门槛,既充分展现W4A8量化技术具备的性能优势,又有助于将先进的AI模型应用于实际业务场景。​
步骤一:环境准备​
  1. 参考通过向导购买实例,创建高性能计算GPU实例。具体配置如下:​
  • 计算规格:ecs.hpcpni3ln.45xlarge​
  • 镜像:Ubuntu 22.04 with GPU Driver 535.161.08 and doca​
  1. 配置Docker环境。​
  1. 执行以下命令,查看Docker是否安装。​
  • ​
    docker info | grep -i runtime​
    ​
  • 若返回Runtime相关信息,表明已安装Docker,您可跳过安装和配置步骤,直接执行步骤f(拉取容器镜像并启动容器镜像服务)。​
  • ​​​
  1. 执行以下命令,安装Docker。​
  • ​
    sudo apt update​
    sudo apt install ca-certificates curl gnupg lsb-release​
    sudo mkdir -p /etc/apt/keyrings​
    curl -fsSL https://mirrors.ivolces.com/docker/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg​
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.ivolces.com/docker/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null​
    sudo apt update​
    sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y​
    ​
  1. 执行以下命令,安装NVIDIA Container Toolkit。​
  • ​
    curl -s https://mirrors.ivolces.com/nvidia_all/ubuntu2204/x86_64/3bf863cc.pub | sudo apt-key add -​
    cat <<EOF >/etc/apt/sources.list.d/nvidia.list​
    deb http://mirrors.ivolces.com/nvidia_all/ubuntu2204/x86_64/ /​
    EOF​
    apt update​
    apt install nvidia-container-toolkit -y​
    ​
  1. 执行以下命令配置Docker,使容器可以使用实例的GPU资源。​
  • ​
    sudo nvidia-ctk runtime configure --runtime=docker​
    sudo systemctl restart docker​
    ​
  1. 依次执行以下命令,拉取容器镜像并启动容器镜像服务。​
  • ​
    docker pull ai-containers-cn-beijing.cr.volces.com/deeplearning/tensorrt-llm:quant_v3​
    docker run --gpus all -itd --net=host --shm-size=100g --ulimit memlock=-1 --ulimit stack=67108864 --privileged --ipc=host --security-opt seccomp=unconfined --cap-add=ALL -v /var/run/nvidia-topologyd/:/var/run/nvidia-topologyd/ ${IMAGE} /bin/bash​
    ​
步骤二:模型量化准备​
​
方式一:直接通过Oniod工具下载量化后的模型文件
方式二:手动生成DeepSeek-R1的W4A8量化模型
​
为了提高部署效率,云平台已经完成了模型量化,并将量化后的模型预置到Oniond模型库,您可以直接通过Oniond工具执行以下命令快速下载模型文件。​
Oniond是云平台自研的模型下载器,可使用oniond list models查看当前支持拉取的模型。​
  1. 执行以下命令,安装Oniond。​
  • ​
    curl -fsSL https://mirrors.ivolces.com/extra-tools/ubuntu/GPG-KEY-system | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/volc-extra-tools.gpg​
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/trusted.gpg.d/volc-extra-tools.gpg] http://mirrors.ivolces.com/extra-tools/ubuntu jammy main" > /etc/apt/sources.list.d/volctools.list && apt update && apt install -y onion-ai-data​
    ​
  1. 下载量化后的模型文件。​
  • ​
    oniond download model DeepSeek-R1-W4AFP8​
    ​
​
​
步骤三:性能评估及模型运行​
DeepSeek-R1模型除了量化以及部署,W4A8量化后的模型效果也是需要关注的重点。本文基于MMLU和MATH-500两个基准测试进行比较,W4A8量化版DeepSeek-R1的性能对比FP8数据精度的版本差异在0.5%以内。​
  1. 完成模型部署后,可以执行参考以下内容进行快速验证。​
说明​
下述命令中的$CKPT_PATH需替换为实际的模型存储路径。​
  • 模型可用性验证​
  • 执行以下命令,验证模型的可用性。​
  • ​
    python examples/pytorch/quickstart_advanced.py --model_dir $CKPT_PATH --tp_size 8 --moe_ep_size 8 --moe_tp_size 1​
    ​
  • 模型精度评测​
  • 本文以MMLU测试集为例,介绍如何进行模型精度评估。请执行以下命令下载MMLU的测试数据集,并完成模型精度的评测。​
  • ​
    # 下载数据集​
    wget https://people.eecs.berkeley.edu/~hendrycks/data.tar && tar -xf data.tar​
    # 精度评估​
    trtllm-eval --model $CKPT_PATH --backend pytorch --tp_size 8 --ep_size 8 --kv_cache_free_gpu_memory_fraction 0.75 mmlu --dataset_path $PATH_TO_MMLU_DATA ​
    ​
    # MMLU weighted average accuracy: 86.88 (14042)​
    ​
  • 性能指标评测​
  • 同时,也可以通过以下命令来完成模型吞吐以及TTFT、TPOT等相关指标的性能评测。​
  • ​
    # 准备数据集​
    DS_R1_MODEL_PATH=/path/to/DeepSeek-R1​
    python /app/tensorrt_llm/benchmarks/cpp/prepare_dataset.py \​
    --stdout --tokenizer ${DS_R1_MODEL_PATH} \​
    token-norm-dist \​
    --input-mean 1000 --output-mean 1000 \​
    --input-stdev 0 --output-stdev 0 \​
    --num-requests 2000 > /tmp/synthetic_1000_1000.txt​
    ​
    cat <<EOF > /workspace/extra-llm-api-config.yml​
    enable_attention_dp: false​
    pytorch_backend_config:​
    enable_overlap_scheduler: false​
    use_cuda_graph: true​
    cuda_graph_padding_enabled: true​
    print_iter_log: true​
    EOF​
    ​
    trtllm-bench --model $CKPT_PATH --model_path $CKPT_PATH throughput --backend pytorch --max_batch_size 128 --max_num_tokens 1127 --dataset /tmp/synthetic_1000_1000.txt --tp 8 --ep 8 --kv_cache_free_gpu_mem_fraction 0.8 --extra_llm_api_options /workspace/extra-llm-api-config.yml --concurrency 128 --num_requests 640 --streaming --report_json /workspace/logs/mtp/bench_log_2node_bs128_ep8_tp16_conc128_aa_latency.json​
    ​
  1. 执行以下命令,启动模型在线任务。​
  • ​
    trtllm-serve $CKPT_PATH --host localhost --port 8000 --backend pytorch --max_batch_size 128 --max_num_tokens 3627 --tp_size 8 --ep_size 8 --kv_cache_free_gpu_memory_fraction 0.8 --extra_llm_api_options /workspace/extra-llm-api-config.yml​
    ​
  1. 至此,您已完成DeepSeek-R1模型的量化和部署,可以通过本地curl命令调用API来使用模型推理服务了。​
  • ​
    curl -X POST http://0.0.0.0:8080/v1/chat/completions -H "Content-Type: application/json" -d '{​
    "model": "/path/to/model",​
    "messages": [​
    {​
    "role": "user",​
    "content": "请证明一下黎曼猜想"​
    }​
    ],​
    "max_tokens": 100,​
    "temperature": 0.7​
    }'​
    ​
​
最近更新时间:2025.07.08 17:09:42
这个页面对您有帮助吗?
有用
有用
无用
无用