Python DeepSeek-v3介绍(一),最强大的开源大模型deepseek详细介绍,和本地化部署实战

1.deepseek介绍

deepseek推出 DeepSeek-V3,这是一款强大的专家混合(MoE)语言模型,总参数量达 6710 亿,每个标记激活 370 亿参数。为了实现高效的推理和经济高效的训练,DeepSeek-V3 采用了多头潜在注意力(MLA)和 DeepSeekMoE 架构,这些架构在 DeepSeek-V2 中得到了充分验证。此外,DeepSeek-V3 还率先采用无辅助损失的策略来实现负载均衡,并设定了多标记预测训练目标以增强性能。deepseek使用 14.8 万亿个多样且高质量的标记对 DeepSeek-V3 进行预训练,随后经过监督微调和强化学习阶段,以充分发挥其能力。全面评估表明,DeepSeek-V3 的性能优于其他开源模型,并达到了与领先闭源模型相当的水平。尽管性能出色,但 DeepSeek-V3 的完整训练仅需 278.8 万 H800 GPU 小时。此外,其训练过程非常稳定。在整个训练过程中,deepseek没有遇到任何不可恢复的损失峰值,也无需进行任何回滚操作。

 

架构:创新的负载均衡策略与训练目标

在 DeepSeek-V2 高效架构的基础上,deepseek开创了一种无需辅助损失的负载均衡策略,从而将因鼓励负载均衡而产生的性能下降降至最低。
deepseek研究了一种多标记预测(MTP)目标,并证明其对模型性能有益。它还可用于推测性解码以加速推理。 

预训练:迈向极致训练效率

deepseek设计了一个 FP8 混合精度训练框架,并首次验证了在超大规模模型上进行 FP8 训练的可行性和有效性。
通过算法、框架和硬件的协同设计,deepseek克服了跨节点 MoE 训练中的通信瓶颈,几乎实现了计算与通信的完全重叠。这极大地提高了deepseek的训练效率,降低了训练成本,使deepseek能够在不增加额外开销的情况下进一步扩大模型规模。
仅花费 266.4 万 H800 GPU 小时的经济成本,deepseek就在 14.8 万亿个标记上完成了 DeepSeek-V3 的预训练,生成了目前最强的开源基础模型。预训练之后的后续训练阶段仅需 10 万 GPU 小时。 

训练后:从 DeepSeek-R1 中进行知识蒸馏

deepseek引入了一种创新的方法,将长链思维(CoT)模型(特别是 DeepSeek R1 系列模型之一)的推理能力提炼到标准的大型语言模型(LLM)中,尤其是 DeepSeek-V3 中。deepseek的流程巧妙地将 R1 的验证和反思模式融入到 DeepSeek-V3 中,并显著提升了其推理性能。同时,deepseek还对 DeepSeek-V3 的输出风格和长度进行了控制。 

2.模型下载

Model #Total Params #Activated Params Context Length Download
DeepSeek-V3-Base 671B 37B 128K 🤗 Hugging Face
DeepSeek-V3 671B 37B 128K 🤗 Hugging Face

注意

DeepSeek-V3 模型在 Hugging Face 上的总大小为 6850 亿,其中包括主模型权重 6710 亿和多令牌预测(MTP)模块权重 140 亿。 

3.结果评估

3.1基础模型—标准的基准测试

Benchmark (Metric) # Shots DeepSeek-V2 Qwen2.5 72B LLaMA3.1 405B DeepSeek-V3
Architecture MoE Dense Dense MoE
# Activated Params 21B 72B 405B 37B
# Total Params 236B 72B 405B 671B
English Pile-test (BPB) 0.606 0.638 0.542 0.548
BBH (EM) 3-shot 78.8 79.8 82.9 87.5
MMLU (Acc.) 5-shot 78.4 85.0 84.4 87.1
MMLU-Redux (Acc.) 5-shot 75.6 83.2 81.3 86.2
MMLU-Pro (Acc.) 5-shot 51.4 58.3 52.8 64.4
DROP (F1) 3-shot 80.4 80.6 86.0 89.0
ARC-Easy (Acc.) 25-shot 97.6 98.4 98.4 98.9
ARC-Challenge (Acc.) 25-shot 92.2 94.5 95.3 95.3
HellaSwag (Acc.) 10-shot 87.1 84.8 89.2 88.9
PIQA (Acc.) 0-shot 83.9 82.6 85.9 84.7
WinoGrande (Acc.) 5-shot 86.3 82.3 85.2 84.9
RACE-Middle (Acc.) 5-shot 73.1 68.1 74.2 67.1
RACE-High (Acc.) 5-shot 52.6 50.3 56.8 51.3
TriviaQA (EM) 5-shot 80.0 71.9 82.7 82.9
NaturalQuestions (EM) 5-shot 38.6 33.2 41.5 40.0
AGIEval (Acc.) 0-shot 57.5 75.8 60.6 79.6
Code HumanEval (Pass@1) 0-shot 43.3 53.0 54.9 65.2
MBPP (Pass@1) 3-shot 65.0 72.6 68.4 75.4
LiveCodeBench-Base (Pass@1) 3-shot 11.6 12.9 15.5 19.4
CRUXEval-I (Acc.) 2-shot 52.5 59.1 58.5 67.3
CRUXEval-O (Acc.) 2-shot 49.8 59.9 59.9 69.8
Math GSM8K (EM) 8-shot 81.6 88.3 83.5 89.3
MATH (EM) 4-shot 43.4 54.4 49.0 61.6
MGSM (EM) 8-shot 63.6 76.2 69.9 79.8
CMath (EM) 3-shot 78.7 84.5 77.3 90.7
Chinese CLUEWSC (EM) 5-shot 82.0 82.5 83.0 82.7
C-Eval (Acc.) 5-shot 81.4 89.2 72.5 90.1
CMMLU (Acc.) 5-shot 84.0 89.5 73.7 88.8
CMRC (EM) 1-shot 77.4 75.8 76.0 76.3
C3 (Acc.) 0-shot 77.4 76.7 79.7 78.6
CCPM (Acc.) 0-shot 93.0 88.5 78.6 92.0
Multilingual MMMLU-non-English (Acc.) 5-shot 64.0 74.8 73.8 79.4

最佳结果以粗体显示。分差不超过 0.3 的分数被视为处于同一水平。DeepSeek-V3 在大多数基准测试中表现最佳,尤其是在数学和代码任务方面。更多评估详情,请查阅deepseek的论文。 

3.2聊天模型—标准基准(大于 670 亿参数的模型) 

Benchmark (Metric) DeepSeek V2-0506 DeepSeek V2.5-0905 Qwen2.5 72B-Inst. Llama3.1 405B-Inst. Claude-3.5-Sonnet-1022 GPT-4o 0513 DeepSeek V3
Architecture MoE MoE Dense Dense MoE
# Activated Params 21B 21B 72B 405B 37B
# Total Params 236B 236B 72B 405B 671B
English MMLU (EM) 78.2 80.6 85.3 88.6 88.3 87.2 88.5
MMLU-Redux (EM) 77.9 80.3 85.6 86.2 88.9 88.0 89.1
MMLU-Pro (EM) 58.5 66.2 71.6 73.3 78.0 72.6 75.9
DROP (3-shot F1) 83.0 87.8 76.7 88.7 88.3 83.7 91.6
IF-Eval (Prompt Strict) 57.7 80.6 84.1 86.0 86.5 84.3 86.1
GPQA-Diamond (Pass@1) 35.3 41.3 49.0 51.1 65.0 49.9 59.1
SimpleQA (Correct) 9.0 10.2 9.1 17.1 28.4 38.2 24.9
FRAMES (Acc.) 66.9 65.4 69.8 70.0 72.5 80.5 73.3
LongBench v2 (Acc.) 31.6 35.4 39.4 36.1 41.0 48.1 48.7
Code HumanEval-Mul (Pass@1) 69.3 77.4 77.3 77.2 81.7 80.5 82.6
LiveCodeBench (Pass@1-COT) 18.8 29.2 31.1 28.4 36.3 33.4 40.5
LiveCodeBench (Pass@1) 20.3 28.4 28.7 30.1 32.8 34.2 37.6
Codeforces (Percentile) 17.5 35.6 24.8 25.3 20.3 23.6 51.6
SWE Verified (Resolved) 22.6 23.8 24.5 50.8 38.8 42.0
Aider-Edit (Acc.) 60.3 71.6 65.4 63.9 84.2 72.9 79.7
Aider-Polyglot (Acc.) 18.2 7.6 5.8 45.3 16.0 49.6
Math AIME 2024 (Pass@1) 4.6 16.7 23.3 23.3 16.0 9.3 39.2
MATH-500 (EM) 56.3 74.7 80.0 73.8 78.3 74.6 90.2
CNMO 2024 (Pass@1) 2.8 10.8 15.9 6.8 13.1 10.8 43.2
Chinese CLUEWSC (EM) 89.9 90.4 91.4 84.7 85.4 87.9 90.9
C-Eval (EM) 78.6 79.5 86.1 61.5 76.7 76.0 86.5
C-SimpleQA (Correct) 48.5 54.1 48.4 50.4 51.3 59.3 64.8

所有模型均在将输出长度限制为 8K 的配置下进行评估。对于包含少于 1000 个样本的基准测试,使用不同的温度设置多次进行测试,以得出可靠的最终结果。DeepSeek-V3 是表现最佳的开源模型,并且在与前沿的闭源模型的对比中也展现出具有竞争力的性能。 

4.聊天网站及 API 平台 

您可以在 DeepSeek 的官方网站上与 DeepSeek-V3 进行聊天:chat.deepseek.com
deepseek还在 DeepSeek 平台提供与 OpenAI 兼容的 API:platform.deepseek.com 

5.如何本地运行

DeepSeek-V3 可以使用以下硬件和开源社区软件在本地部署:

DeepSeek-Infer 演示:deepseek提供了一个简单且轻量级的 FP8 和 BF16 推理演示。
SGLang:全面支持 DeepSeek-V3 模型的 BF16 和 FP8 推理模式,多标记预测即将推出。
LMDeploy:支持本地和云端部署的高效 FP8 和 BF16 推理。
TensorRT-LLM:目前支持 BF16 推理和 INT4/8 量化,FP8 支持即将推出。
vLLM:支持 DeepSeek-V3 模型的 FP8 和 BF16 模式,用于张量并行和流水线并行。
AMD GPU:通过 SGLang 实现 DeepSeek-V3 模型在 AMD GPU 上的 BF16 和 FP8 模式运行。
华为 Ascend NPU:支持在华为 Ascend 设备上运行 DeepSeek-V3。
由于deepseek的框架原生支持 FP8 训练,因此deepseek仅提供 FP8 权重。如果您需要 BF16 权重进行实验,可以使用提供的转换脚本进行转换。

以下是一个将 FP8 权重转换为 BF16 的示例: 

cd inference
python fp8_cast_bf16.py --input-fp8-hf-path /path/to/fp8_weights --output-bf16-hf-path /path/to/bf16_weights

5.1 使用 DeepSeek-Infer 演示进行推理(示例)

注意
仅支持搭载 Python 3.10 的 Linux 系统。不支持 Mac 和 Windows 系统。

Dependencies:

torch==2.4.1
triton==3.0.0
transformers==4.46.3
safetensors==0.4.5

首先,克隆DeepSeek-V3 GitHub 代码库: 

git clone https://github.com/deepseek-ai/DeepSeek-V3.git

进入相应目录,安装环境依赖:

cd DeepSeek-V3/inference
pip install -r requirements.txt

模型权重转换
将 Hugging Face 模型权重转换为特定格式:

python convert.py --hf-ckpt-path /path/to/DeepSeek-V3 --save-path /path/to/DeepSeek-V3-Demo --n-experts 256 --model-parallel 16

运行文件,进行chat

torchrun --nnodes 2 --nproc-per-node 8 --node-rank $RANK --master-addr $ADDR generate.py --ckpt-path /path/to/DeepSeek-V3-Demo --config configs/config_671B.json --interactive --temperature 0.7 --max-new-tokens 200

5.2 使用 SGLang 进行推理

SGLang 目前支持 MLA 优化、DP 注意力机制、FP8(W8A8)、FP8 KV 缓存和 Torch 编译,在开源框架中实现了最先进的延迟和吞吐量性能。

值得注意的是,SGLang v0.4.1 完全支持在 NVIDIA 和 AMD 的 GPU 上运行 DeepSeek-V3,使其成为一种高度通用且强大的解决方案。

SGLang 还支持多节点张量并行,使您能够在多台联网的机器上运行此模型。

多标记预测(MTP)正在开发中,其进展情况可在优化计划中进行追踪。

以下是 SGLang 团队提供的启动说明:https://github.com/sgl-project/sglang/tree/main/benchmark/deepseek_v3

5.3  使用 LMDeploy 进行推理

LMDeploy 是一个专为大型语言模型打造的灵活且高性能的推理和部署框架,现已支持 DeepSeek-V3。它既支持离线流水线处理,也支持在线部署,可无缝集成到基于 PyTorch 的工作流中。

有关使用 LMDeploy 运行 DeepSeek-V3 的详细分步说明,请参阅此处:InternLM/lmdeploy#2960

5.4 使用 TRT-LLM 进行推理 

TensorRT-LLM 现已支持 DeepSeek-V3 模型,提供 BF16 和 INT4/INT8 权重仅选项等精度选项。FP8 的支持目前正在进行中,很快就会发布。您可以通过以下链接访问专门支持 DeepSeek-V3 的 TRTLLM 自定义分支,直接体验新功能:https://github.com/NVIDIA/TensorRT-LLM/tree/deepseek/examples/deepseek_v3.

5.5 使用 vLLM 进行推理

vLLM v0.6.6 支持在 NVIDIA 和 AMD GPU 上以 FP8 和 BF16 模式进行 DeepSeek-V3 推理。除了标准技术外,vLLM 还提供了流水线并行性,允许您在通过网络连接的多台机器上运行此模型。有关详细说明,请参阅 vLLM 指南。您也可以随时遵循增强计划。 

5.6 AMD GPU 推理功能

与 AMD 团队合作,我们已通过 SGLang 实现了对 AMD GPU 的第一天支持,同时完全兼容 FP8 和 BF16 精度。如需详细指导,请参阅 SGLang 说明。 

5.7 华为昇腾 NPU 推理功能 

华为昇腾社区的 MindIE 框架已成功适配 DeepSeek-V3 的 BF16 版本。有关昇腾 NPU 的分步指南,请在 instructions here此处查看.

注意:下篇讲一下DeepSeek技术细节 ,以及它为什么这么牛逼

作者:医学小达人

物联沃分享整理
物联沃-IOTWORD物联网 » Python DeepSeek-v3介绍(一),最强大的开源大模型deepseek详细介绍,和本地化部署实战

发表回复