ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

DeepSeek LLM 开源大模型全解:67B/7B 架构、预训练与评测,从 Transformers 到 vLLM 的推理部署实战

DeepSeek LLM 开源大模型全解:67B/7B 架构、预训练与评测,从 Transformers 到 vLLM 的推理部署实战 人工智能大模型基础模型模型评测【免费下载链接】DeepSeek-LLMDeepSeek LLM: Let there be answers项目地址https://gitcode.com/GitHub_Trending/de/DeepSeek-LLM点击查看免费下载DeepSeek LLM 是 DeepSeek 推出的开源大语言模型系列包含 7B 与 67B 两档规模的 Base基座与 Chat对话版本从零开始在 2 万亿 token 的中英双语数据上训练而成。本指南以仓库根目录 README.md 为主体结合 requirements.txt、evaluation 目录下的真实评测数据与 LICENSE-MODEL 许可条款系统讲解模型能力定位、下载方式、评测方法论、预训练细节以及基于 HuggingFace Transformers 与 vLLM 的完整推理部署方案。读完本文你将掌握 DeepSeek LLM 的选型依据、评测口径、资源估算方法并能直接复现官方给出的文本补全与对话推理代码。一、模型概览67B 与 7B 的定位与核心能力根据 README 的 Introduction 部分DeepSeek LLM 是一个包含67B670 亿参数的先进语言模型使用英语与中文的2 万亿 token大规模数据从零from scratch预训练。为促进研究官方同时开源了 4 个模型DeepSeek LLM 7B/67B Base 与 DeepSeek LLM 7B/67B Chat。README 对模型能力的三点概括对应上图中的雷达能力分布综合能力突出DeepSeek LLM 67B Base 在推理、编码、数学、中文理解等维度优于同规模的 LLaMA 2 70B Base。编码与数学专长DeepSeek LLM 67B Chat 在 HumanEval Pass1 上达到73.78GSM8K 0-shot 达84.1MATH 0-shot 达32.6并在匈牙利国家高中毕业考试上表现亮眼。中文优势基于官方评测DeepSeek LLM 67B Chat 的中文能力超越 GPT-3.5。这些结论均来自官方自建未开源的 hai-llm 评测框架README 同时提示由于评测框架与 HuggingFace 转换权重之间存在差异复现结果可能与报告数值存在小幅出入。二、模型下载与获取方式README 公开了 7B/67B 的 Base 与 Chat 共 4 个模型并额外开放了 Base 模型训练过程中的中间检查点intermediate checkpoints以支持更广泛的学术与商业研究。使用这些模型需遵守 LICENSE-MODEL 条款详见第八节条款允许商业使用。2.1 HuggingFace 模型清单所有模型序列长度均为4096模型名即为推理代码中使用的标识符模型序列长度模型标识符HuggingFaceDeepSeek LLM 7B Base4096deepseek-ai/deepseek-llm-7b-baseDeepSeek LLM 7B Chat4096deepseek-ai/deepseek-llm-7b-chatDeepSeek LLM 67B Base4096deepseek-ai/deepseek-llm-67b-baseDeepSeek LLM 67B Chat4096deepseek-ai/deepseek-llm-67b-chat2.2 中间检查点AWS S3 下载Base 模型的中间检查点托管在 AWS S3 上使用 AWS CLI 递归下载注意需携带--request-payer参数请求方付费模式# DeepSeek-LLM-7B-Base aws s3 cp s3://deepseek-ai/DeepSeek-LLM/DeepSeek-LLM-7B-Base local_path --recursive --request-payer # DeepSeek-LLM-67B-Base aws s3 cp s3://deepseek-ai/DeepSeek-LLM/DeepSeek-LLM-67B-Base local_path --recursive --request-payer其中local_path替换为本地的目标存储目录。三、评测结果从标准 Benchmark 到从未见过的考试这一节是 README 篇幅最大的部分也是判断 DeepSeek LLM 能力边界的关键。评测分 Base 模型与 Chat 模型两线展开仓库 evaluation 目录下保留了可验证的评测数据文件是复读和交叉验证的第一手材料。3.1 Base 模型标准基准评测README 报告中 Base 模型的评测基于内部非开源的 hai-llm 评测框架。下表覆盖英语与中文的代表性基准注意每个基准的 few-shot 设置不同0-shot / 3-shot / 5-shot / 8-shot模型HellaSwagTriviaQAMMLUGSM8KHumanEvalBBHCEvalCMMLUChineseQA0-shot5-shot5-shot8-shot0-shot3-shot5-shot5-shot5-shotLLaMA-2-7B75.663.845.815.514.638.533.932.621.5LLaMA-2-70B84.079.569.058.428.762.951.453.150.2DeepSeek LLM 7B Base75.459.748.217.426.239.545.047.278.0DeepSeek LLM 67B Base84.078.971.363.442.768.766.170.887.6说明ChineseQA 是官方自建的中文问答基准设计上参考了 TriviaQA。可以看到 DeepSeek 67B Base 在中文相关基准CEval、CMMLU、ChineseQA上显著领先于同规模的 LLaMA-2 70B而 HumanEval 编码能力也高出约 14 个点。3.2 Chat 模型在从未见过的考试上验证泛化能力为避免**数据污染data contamination**与针对特定测试集的调参效应官方设计了全新题目来评估开源模型。评测结果显示 DeepSeek LLM 67B Chat 在全新考题上表现尤为出色这是 README 最强调的结论之一。匈牙利国家高中毕业考试Hungarian National High-School Exam沿用 Grok-1 的做法用匈牙利高中数学毕业考题共 33 题检验数学能力评分依据官方评分标准、由人工标注完成。仓库 evaluation/hungarian_national_hs_solutions 保存了各模型的逐题作答与得分 CSV例如 exam_DeepSeek-66B.csv 中记录了 DeepSeek 66B 对集合运算、排列组合等题目的完整解题过程与得分。修订说明README 特别注明修正了初版评测的一处错误——修订版中删除了第 16、17、18 题的最低分及其对应配图因此不同版本中该考评分值存在差异请以修订版数据为准。IFeval 指令遵循评测Instruction Following Evaluation2023 年 11 月 15 日 Google 发布该评测数据集定义了25 类可验证指令、约 500 条 prompt每条包含一条或多条可验证指令。官方采用prompt 级宽松prompt-level loose指标且评测使用的是 Google 首版数据集修订版测试集的结果见论文。仓库 evaluation/IFEval 保留了各模型的逐条作答 JSONL 数据例如 deepseek67B.jsonl 中每条记录包含index、prompt、response、finished等字段可直接复算约束类指令禁用逗号、全小写、指定 JSON 格式、字数限制等的满足率。LeetCode 周赛为检验编码能力官方爬取了Weekly Contest 351–372 与 Bi-Weekly Contest 108–1172023 年 7 月至 11 月共126 道题每题附带20 测试用例。评测口径与 HumanEval 一致模型输出全部通过测试用例才视为解题成功。图中 y 轴为域内in-domainHumanEval pass1x 轴为域外out-domainLeetCode 周赛 pass1。3.3 Chat 模型标准基准下表为 0-shot 设置下的 Chat 模型标准基准MMLU、GSM8K、C-Eval、CMMLU 均为 0-shot模型TriviaQAMMLUGSM8KHumanEvalBBHC-EvalCMMLUChineseQADeepSeek LLM 7B Base59.748.217.426.239.545.047.278.0DeepSeek LLM 67B Base78.971.363.442.768.766.170.887.6DeepSeek LLM 7B Chat57.949.462.648.242.347.049.775.0DeepSeek LLM 67B Chat81.571.184.173.871.765.267.885.1更多扩展基准结果HellaSwag、PIQA、WinoGrande、RACE、ARC、MBPP、DROP、OpenBookQA、Pile-test、AGIEval、CHID 等以及 LLaMA2/Qwen/Baichuan2 对照数据收录在 evaluation/more_results.md其中还包含两套值得关注的延伸评测数学能力对比67B ChatCoT思维链与 Tool-Integrated Reasoning工具集成推理可调用外部工具解题两种推理范式下的表现——工具集成推理在 GSM8k 上从 84.1% 提升到 86.7%MATH 从 32.6% 大幅提升到 51.1%推理方式GSM8kMATHMGSM-zhCMATHGaokao-MathClozeGaokao-MathQACoT84.1%32.6%74.0%80.3%16.9%20.2%Tool-Integrated Reasoning86.7%51.1%76.4%85.4%21.2%28.2%从未见过评测的多模型横向对比匈牙利高中考试、IFevalprompt 级与 LeetCode 周赛三个场景下DeepSeek LLM 67B Chat 与 Qwen-14B-Chat、ChatGLM3-6B、Baichuan2-Chat-13B、Yi-Chat-34B、GPT-3.5-Turbo、Grok-1、Claude 2、GPT-4 等的同场对比均为报告数据评测场景DeepSeek LLM 67B Chat次优开源模型闭源对照匈牙利高中考试满分参考 6858Yi-Chat-34B39GPT-468Grok-159IFeval prompt 级59.1Baichuan2-Chat-13B51.0GPT-479.3LeetCode 周赛 pass117.5Phind-CodeLlama-34B-v212.6GPT-448.4DeepSeek Coder 33B31.7此外仓库 evaluation/deepseek-67b-1206-no-sp.jsonl 还提供了一份中文专业能力问答评测数据涵盖音乐、体育、化学、历史、地理、计算机等子类每条记录包含question、reference参考答案与answer可直接用来自行评估模型在中文知识问答上的正确率。3.4 对多选类基准Multi-Choice的再审视README 分享了一个重要的方法论发现提升 MMLU、CMMLU、C-Eval 这类多选MC题基准并不难。官方实验显示在训练中加入从中文考题采集的2000 万道多选样本MC7B Chat 的成绩大幅上涨模型MMLUC-EvalCMMLUDeepSeek LLM 7B Chat49.447.049.7DeepSeek LLM 7B Chat MC60.971.373.8关键观察与决策README 明确说明官方对 C-Eval 验证集和 CMMLU 测试集做了去重防止数据污染MC 不仅提升中文多选基准也提升英语基准但并未提升其他非多选形式的评测如问答类知识任务因此官方决定不把 MC 数据加入预训练或微调过程以避免对基准的过拟合。这一节对刷榜式评测有直接的警示意义多选基准的提升并不代表模型真实知识能力的提升。四、预训练细节数据管道、架构与超参数4.1 数据管道cc_cleaner 与三层质量控制README 指出其首要目标是全面提升语料库的丰富性与多样性为此建立了名为cc_cleaner的分布式、高频检查点的批处理系统并引入了**确定性随机化deterministic randomization**机制从而能在漫长且不可预测的训练过程中持续优化数据。其方案在 RefinedWeb CCNet 思路上做了最小可行化改造。数据策略包含三个层次数据构成Data Composition训练数据由互联网文本、数学、代码、书籍以及遵守robots.txt的自采集数据混合而成同时高度重视隐私与版权所有包含个人信息或受版权限制的内容均被移除。数据集剪枝Dataset Pruning采用启发式规则与模型相结合的方式过滤低质量网页数据同时保留稀缺的低资源知识提升整体语料质量并清除有害或毒性内容。去重Deduplication基于MinhashLSH的先进去重系统在文档级与字符串级两个层面严格去重保证大规模数据集下的唯一性与完整性。4.2 架构与训练超参数DeepSeek LM 采用与 LLaMA 相同的架构——自回归 Transformer 解码器。两个关键区别README 明确给出7B 模型使用多头注意力Multi-Head AttentionMHA67B 模型使用分组查询注意力Grouped-Query AttentionGQA在保持性能的同时显著降低 KV 缓存与推理带宽开销这是 67B 规模下高效推理的架构基础。预训练核心超参数一览超参数取值训练数据规模2 万亿2 trilliontoken序列长度4096优化器AdamW7B batch size23047B learning rate4.2e-467B batch size460867B learning rate3.2e-4学习率调度多步multi-step调度warmup 步数2000 步学习率调度为多步式从2000 步 warmup开始在1.6 万亿 token处将学习率降至峰值的31.6%在1.8 万亿 token处进一步降至峰值的10%。官方同时公开了训练损失曲线与若干基准指标随训练进程的变化曲线五、快速开始环境安装与两种推理方案5.1 环境与依赖安装在Python 3.8环境中安装 requirements.txt 声明的依赖pip install -r requirements.txt依赖清单及用途说明版本均为仓库 requirements.txt 中的实际约束torch2.0模型推理所需的深度学习框架transformers4.35.0与tokenizers0.14.0HuggingFace 模型加载、分词与生成接口accelerate支持device_mapauto的多设备自动加载sympy1.12数学符号运算用于数学类评测答案校验可从仓库 Makefile 中PROJECT_PATH evaluation的配置推断其服务于 evaluation 评测链路pebble、timeout-decorator评测时并行执行与超时控制attrdict属性化字典便于评测配置的访问。5.2 基于 HuggingFace Transformers 推理以下代码可直接运行两个示例分别演示文本补全Text Completion与对话补全Chat Completion。文本补全以 67B Base 为例import torch from transformers import AutoTokenizer, AutoModelForCausalLM, GenerationConfig model_name deepseek-ai/deepseek-llm-67b-base tokenizer AutoTokenizer.from_pretrained(model_name) model AutoModelForCausalLM.from_pretrained(model_name, torch_dtypetorch.bfloat16, device_mapauto) model.generation_config GenerationConfig.from_pretrained(model_name) model.generation_config.pad_token_id model.generation_config.eos_token_id text An attention function can be described as mapping a query and a set of key-value pairs to an output, where the query, keys, values, and output are all vectors. The output is inputs tokenizer(text, return_tensorspt) outputs model.generate(**inputs.to(model.device), max_new_tokens100) result tokenizer.decode(outputs[0], skip_special_tokensTrue) print(result)要点使用torch_dtypetorch.bfloat16以 bfloat16 精度加载device_mapauto配合 accelerate 自动分配设备多卡场景无需手动切分将pad_token_id设置为eos_token_id可避免无填充符时的告警。对话补全以 67B Chat 为例import torch from transformers import AutoTokenizer, AutoModelForCausalLM, GenerationConfig model_name deepseek-ai/deepseek-llm-67b-chat tokenizer AutoTokenizer.from_pretrained(model_name) model AutoModelForCausalLM.from_pretrained(model_name, torch_dtypetorch.bfloat16, device_mapauto) model.generation_config GenerationConfig.from_pretrained(model_name) model.generation_config.pad_token_id model.generation_config.eos_token_id messages [ {role: user, content: Who are you?} ] input_tensor tokenizer.apply_chat_template(messages, add_generation_promptTrue, return_tensorspt) outputs model.generate(input_tensor.to(model.device), max_new_tokens100) result tokenizer.decode(outputs[0][input_tensor.shape[1]:], skip_special_tokensTrue) print(result)对话模板的底层格式为messages按你的实际输入替换User: {messages[0][content]} Assistant: {messages[1][content]}end▁of▁sentenceUser: {messages[2][content]} Assistant:两条重要使用约束README 原文强调默认add_special_tokensTruetokenizer 会在输入文本前自动添加bos_tokenbegin▁of▁sentence因此请勿手动重复添加本版本模型不兼容 system prompt官方不推荐在输入中加入系统提示词。5.3 基于 vLLM 的高吞吐推理vLLM 通过 PagedAttention 与连续批处理实现高吞吐服务适合生产环境。以下示例采用tensor parallel size 4即 4 卡张量并行。文本补全from vllm import LLM, SamplingParams tp_size 4 # Tensor Parallelism sampling_params SamplingParams(temperature0.7, top_p0.9, max_tokens100) model_name deepseek-ai/deepseek-llm-67b-base llm LLM(modelmodel_name, trust_remote_codeTrue, gpu_memory_utilization0.9, tensor_parallel_sizetp_size) prompts [ If everyone in a country loves one another,, The research should also focus on the technologies, To determine if the label is correct, we need to ] outputs llm.generate(prompts, sampling_params) generated_text [output.outputs[0].text for output in outputs] print(generated_text)对话补全先通过 tokenizer 的apply_chat_template得到 prompt token 序列注意避免重复添加 bos_token再把sampling_params.stop设为tokenizer.eos_tokenfrom transformers import AutoTokenizer from vllm import LLM, SamplingParams tp_size 4 # Tensor Parallelism sampling_params SamplingParams(temperature0.7, top_p0.9, max_tokens100) model_name deepseek-ai/deepseek-llm-67b-chat tokenizer AutoTokenizer.from_pretrained(model_name) llm LLM(modelmodel_name, trust_remote_codeTrue, gpu_memory_utilization0.9, tensor_parallel_sizetp_size) messages_list [ [{role: user, content: Who are you?}], [{role: user, content: What can you do?}], [{role: user, content: Explain Transformer briefly.}], ] # Avoid adding bos_token repeatedly prompt_token_ids [tokenizer.apply_chat_template(messages, add_generation_promptTrue) for messages in messages_list] sampling_params.stop [tokenizer.eos_token] outputs llm.generate(prompt_token_idsprompt_token_ids, sampling_paramssampling_params) generated_text [output.outputs[0].text for output in outputs] print(generated_text)关键参数含义gpu_memory_utilization0.9表示最多使用单卡 90% 显存trust_remote_codeTrue允许加载模型仓库中的自定义代码tensor_parallel_size控制参与张量并行的 GPU 数量。六、FAQtokenizer 量化支持与 GPU 显存评估6.1 tokenizer.model 与量化GGUF / GPTQ针对能否提供 tokenizer.model 文件用于模型量化的常见问题README 的解释是DeepSeek LLM 使用HuggingFace Tokenizer 实现 Byte-level BPE 算法并配有专门设计的 pre-tokenizer 以获得最优性能目前无法直接转换成 SentencePiece tokenizer官方通过为开源量化方案贡献代码来兼容 HuggingFace Tokenizer。GGUFllama.cpp官方已向 llama.cpp 提交了支持全部 HuggingFace pre-tokenizer含 DeepSeek 的的 PR。在 PR 合入之前可按以下步骤自行生成 GGUF 模型其中 fork 分支需从原 README 中获取分支名为regex_gpt2_preprocessgit clone llama.cpp 的 DeepSeek 预处理 fork llama.cpp cd llama.cpp git checkout regex_gpt2_preprocess # set up the environment according to README make python3 -m pip install -r requirements.txt # generate GGUF model python convert-hf-to-gguf.py MODEL_PATH --outfile GGUF_PATH --model-name deepseekllm # use q4_0 quantization as an example ./quantize GGUF_PATH OUTPUT_PATH q4_0 ./main -m OUTPUT_PATH -n 128 -p PROMPTGPTQexllamav2官方更新说明——exllamav2 已支持 HuggingFace Tokenizer拉取最新版本即可直接使用 GPTQ 量化。6.2 GPU 显存占用实测README 给出了不同 batch size 与序列长度下的推理峰值显存实测数据是规划部署资源的重要依据。DeepSeek LLM 7B使用1 张 NVIDIA A100-PCIE-40GB推理峰值显存GBBatch Size256512102420484096113.2913.6314.4716.3721.25213.6314.3915.9819.8229.59414.4715.8219.0426.65OOM815.9918.7125.1435.19OOM1619.0624.5237.28OOMOOMDeepSeek LLM 67B使用8 张 NVIDIA A100-PCIE-40GB推理峰值显存GB即平均每卡约 2–4.3GB 以上Batch Size256512102420484096116.9217.1117.6620.0133.23217.0417.2818.5525.27OOM417.2017.8021.2833.71OOM817.5919.2525.69OOMOOM1618.1721.6934.54OOMOOM实践提示以 67B 为例单卡 40GB 显存下 batch size 2 且序列长度 2048 时就会 OOM长序列 大批次的组合必须依赖张量并行vLLM 的tensor_parallel_size或量化手段如第五节与 6.1 节的方案。七、已知局限README 明确列出了大模型的三类典型局限使用时应有所预期对训练数据的过度依赖模型在海量文本上训练可能继承数据中的偏见偶尔生成带有偏见或歧视性的回复幻觉Hallucination有时生成听起来合理但事实上错误或缺乏依据的内容因为模型依赖训练数据中习得的统计模式重复Repetition回复中可能重复短语、句子或冗余信息降低输出的多样性与可读性。八、许可证与引用8.1 许可证仓库与模型采用双重许可README 明确说明代码仓库遵循 MIT 许可证仓库 LICENSE-CODE 为 2023 DeepSeek 的标准 MIT 文本模型权重使用 DeepSeek 模型许可协议LICENSE-MODEL版本 1.02023 年 10 月 23 日DeepSeek LLM 系列含 Base 与 Chat支持商业使用。从 LICENSE-MODEL 正文可以归纳出几个关键条款作为使用前必读授予永久的、全球的、非独占的版权与专利权许可允许复制、分发、再分发乃至以 SaaS 形式托管第 2、3、4 条分发模型或其衍生品时必须附带本许可文本、保留版权声明、对修改文件显著标注第 4 条使用限制Use-based restrictionsAttachment A不得用于违反法律、任何形式的军事用途、以任何方式剥削或伤害未成年人、生成并传播有意伤害他人的虚假信息、无授权生成个人可识别信息、诽谤骚扰他人、对个人合法权利产生不利影响的完全自动化决策、基于受法律保护特征进行歧视等第 5 条与附件 A你对自己使用模型生成的输出负责第 6 条模型与配套材料以AS IS提供不附带任何明示或暗示的担保第 10 条。8.2 引用论文信息《DeepSeek LLM: Scaling Open-Source Language Models with Longtermism》arXiv:2401.02954README 中给出的 BibTeXarticle{deepseek-llm, author {DeepSeek-AI}, title {DeepSeek LLM: Scaling Open-Source Language Models with Longtermism}, journal {arXiv preprint arXiv:2401.02954}, year {2024} }结语如何在你的项目中使用 DeepSeek LLM结合 README 全文与仓库材料给出三条可直接落地的路径中小显存环境选用 7B 系列单卡 A100-40GB 即可见 6.2 显存表通过 requirements.txt 安装依赖后按第五节代码接入 Transformers追求质量与吞吐则选用 67B 系列并搭配 vLLM 的tensor_parallel_size多卡并行本地轻量化部署参考 6.1 节的 GGUF/GPTQ 量化流程。评测侧可复用 evaluation 目录下的 IFEval、匈牙利高中考试、中文专业能力问答等真实数据自行复测验证模型在当前任务上的表现后再做最终选型。赞分享人工智能大模型基础模型模型评测【免费下载链接】DeepSeek-LLMDeepSeek LLM: Let there be answers项目地址https://gitcode.com/GitHub_Trending/de/DeepSeek-LLM点击查看免费下载相关推荐DeepSeek-LLM部署实战7B/67B模型GPU配置完全指南DeepSeek LLM部署实战7B/67B模型GPU配置完全指南 还在为DeepSeek大语言模型的GPU内存配置头疼吗本文将为你提供从环境搭建到生产部署人工智能大模型基础模型模型评测DeepSeek-V3 671B MoE 开源模型全解析从架构创新、评测数据到本地推理部署实战DeepSeek V3 671B MoE 开源模型全解析从架构创新、评测数据到本地推理部署实战 本文以 DeepSeek V3 官方仓库的 README.md人工智能大模型基础模型本地部署模型量化DeepSeekPaddleFleetX GPT 大模型训练与部署全流程指南从单卡预训练到推理部署PaddleFleetX GPT 大模型训练与部署全流程指南从单卡预训练到推理部署 本指南以 PaddleNLP 仓库中 slm/model_zoo/gpt人工智能大模型预训练微调LoRARLHF强化学习分布式训练模型推理服务推理引擎模型量化模型压缩本地部署NLP上一篇clipboard移动端应用开发gclip-gui示例项目解析下一篇Stack Auth 开发者完全贡献指南如何快速参与开源认证系统建设创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表