Project Icon

DeepSeek-LLM

多语言大模型展现卓越编码与数学能力

DeepSeek LLM是一个包含67亿参数的先进语言模型,经过2万亿英文和中文token的训练。该模型在推理、编码、数学和中文理解等方面表现优异,超越多个同类模型。其67B Chat版本在编码和数学方面尤为出色,在HumanEval和GSM8K等基准测试中名列前茅。项目开源了7B和67B的base与chat版本,可用于学术和商业研究。

DeepSeek LLM

模型下载 | 快速开始 | 评估结果 | 许可 | 引用

论文链接👁️

1. 简介

DeepSeek LLM 是一个拥有670亿参数的先进语言模型。它在包含2万亿个英文和中文词元的庞大数据集上从头开始训练。为了促进研究,我们已经向研究社区开源了DeepSeek LLM 7B/67B Base和DeepSeek LLM 7B/67B Chat模型。

结果
  • 卓越的通用能力: DeepSeek LLM 67B Base在推理、编程、数学和中文理解等领域的表现优于Llama2 70B Base。

  • 精通编程和数学: DeepSeek LLM 67B Chat在编程(HumanEval Pass@1: 73.78)和数学(GSM8K 零样本: 84.1,Math 零样本: 32.6)方面表现出色。它还展示了出色的泛化能力,在匈牙利全国高中考试中取得了65分的优异成绩。

  • 精通中文: 根据我们的评估,DeepSeek LLM 67B Chat在中文方面的表现超过了GPT-3.5。

2. 模型下载

我们向公众发布了DeepSeek LLM 7B/67B,包括基础模型和聊天模型。为了支持学术和商业社区更广泛、更多样化的研究,我们提供了基础模型训练过程中的中间检查点。请注意,使用本模型需遵守许可部分中列出的条款。这些条款允许商业用途。

Huggingface

模型序列长度下载
DeepSeek LLM 7B Base4096🤗 HuggingFace
DeepSeek LLM 7B Chat4096🤗 HuggingFace
DeepSeek LLM 67B Base4096🤗 HuggingFace
DeepSeek LLM 67B Chat4096🤗 HuggingFace

中间检查点

我们在AWS S3(简单存储服务)上托管了DeepSeek LLM 7B/67B的中间检查点。可以使用AWS命令行界面(CLI)下载这些文件。

# 使用AWS CLI

# DeepSeek-LLM-7B-Base
aws s3 cp s3://deepseek-ai/DeepSeek-LLM/DeepSeek-LLM-7B-Base <本地路径> --recursive --request-payer

# DeepSeek-LLM-67B-Base
aws s3 cp s3://deepseek-ai/DeepSeek-LLM/DeepSeek-LLM-67B-Base <本地路径> --recursive  --request-payer

3. 评估结果

基础模型

我们在一系列具有代表性的英文和中文基准测试上评估了我们的模型和一些基线模型。更多结果可以在evaluation文件夹中找到。在这部分,我们报告的评估结果基于内部的、非开源的hai-llm评估框架。请注意,使用转换后的HuggingFace模型时可能会有轻微的差异。

模型Hella
Swag
Trivia
QA
MMLUGSM8KHuman
Eval
BBHCEvalCMMLU中文
问答
零样本五样本五样本八样本零样本三样本五样本五样本五样本
LLaMA-2
-7B
75.663.845.815.514.638.533.932.621.5
LLaMA-2
-70B
84.079.569.058.428.762.951.453.150.2
DeepSeek LLM
7B 基础版
75.459.748.217.426.239.545.047.278.0
DeepSeek LLM
67B 基础版
84.078.971.363.442.768.766.170.887.6

注意: 中文问答是一个内部基准测试,灵感来自TriviaQA。

对话模型

全新考试

为解决数据污染和针对特定测试集进行调优的问题,我们设计了全新的问题集来评估开源LLM模型的能力。评估结果表明,DeepSeek LLM 67B 对话模型在从未见过的考试中表现出色。


匈牙利国家高中考试: 与Grok-1一致,我们使用匈牙利国家高中考试评估了模型的数学能力。该考试包含33个问题,模型的分数通过人工标注确定。我们遵循solution.pdf中的评分标准来评估所有模型。

result

备注: 我们修正了初次评估中的一个错误。在这个修订版中,我们省略了第16、17、18题以及上述图片的最低分。评估详情可在此处查看。


指令遵循评估: 2023年11月15日,谷歌发布了一个指令遵循评估数据集。他们确定了25种可验证的指令类型,并构建了约500个提示,每个提示包含一个或多个可验证的指令。我们使用提示级别的宽松指标来评估所有模型。在这里,我们使用谷歌发布的第一个版本进行评估。对于谷歌修订测试集的评估结果,请参考我们论文中的数字。

result

LeetCode周赛: 为评估模型的编码能力,我们使用了LeetCode周赛的问题(第351-372周周赛,第108-117双周赛,从2023年7月到2023年11月)。我们通过爬取LeetCode的数据获得了这些问题,共126个问题,每个问题有超过20个测试用例。评估指标类似于HumanEval。如果模型的输出成功通过所有测试用例,则认为模型有效解决了该问题。模型的编码能力如下图所示,其中y轴表示领域内人工评估测试的pass@1得分,x轴表示领域外LeetCode周赛问题的pass@1得分。

result

具体问题和测试用例将很快发布。敬请期待!


标准基准测试

模型TriviaQAMMLUGSM8KHumanEvalBBHC-EvalCMMLU中文问答
DeepSeek LLM 7B 基础版59.748.217.426.239.545.047.278.0
DeepSeek LLM 67B 基础版78.971.363.442.768.766.170.887.6
DeepSeek LLM 7B 对话版57.949.462.648.242.347.049.775.0
DeepSeek LLM 67B 对话版81.571.184.173.871.765.267.885.1

注意: 我们对MMLU、GSM8K、C-Eval和CMMLU的对话模型进行零样本评估。更多评估结果可在此处找到。

重新审视多选题基准测试

根据我们的实验观察,我们发现使用多选题(MC)提高基准测试性能(如MMLU、CMMLU和C-Eval)是一项相对简单的任务。通过纳入中国考试的多选题,我们取得了出色的结果,如下表所示:

模型MMLUC-EvalCMMLU
DeepSeek LLM 7B 对话版49.447.049.7
DeepSeek LLM 7B 对话版 + MC60.971.373.8
注意:+MC 表示增加了从网络上收集的 2000 万道中文多选题。需要注意的是,我们对 C-Eval 验证集和 CMMLU 测试集进行了去重,以防止数据污染。这一增加不仅改善了中文多选题基准,还提高了英语基准的表现。然而,我们观察到在 7B 设置下,它并未提升模型在其他非多选题形式评估上的知识表现。因此,我们决定在预训练或微调过程中不纳入 MC 数据,因为这会导致在基准测试上过拟合。

4. 预训练详情

数据

我们的主要目标是全面提升数据集的丰富性和多样性。为实现这一目标,我们实施了多种方法,并建立了一个名为"cc_cleaner"的分布式、频繁检查点批处理系统,以加强我们的数据管道。

我们的最小可行解决方案从 RefinedWeb + CCNet 出发。我们非常感谢他们对 AGI 研究的无私奉献。

我们还在数据管道中大量引入了确定性随机化。这种方法使我们能够在漫长且难以预测的训练过程中持续改进我们的数据。

  • 数据组成:我们的训练数据包括多样化的互联网文本、数学、代码、书籍以及尊重 robots.txt 的自收集数据。除了多样化的内容外,我们还高度重视个人隐私和版权保护。所有包含个人信息或受版权限制的内容都已从我们的数据集中移除。

  • 数据集修剪:我们的系统采用启发式规则和模型来优化训练数据。我们的过滤过程去除低质量的网络数据,同时保留宝贵的低资源知识。它旨在提高整体语料库质量并移除有害或有毒内容。

  • 去重:我们先进的去重系统使用 MinhashLSH,严格地在文档和字符串级别上去除重复内容。这一严格的去重过程确保了卓越的数据唯一性和完整性,这在大规模数据集中尤为重要。

预训练

DeepSeek LM 模型使用与 LLaMA 相同的架构,即自回归 transformer 解码器模型。7B 模型使用多头注意力(MHA),而 67B 模型使用分组查询注意力(GQA)。

我们在一个包含 2 万亿个标记的庞大数据集上预训练了 DeepSeek 语言模型,序列长度为 4096,使用 AdamW 优化器。7B 模型的训练使用了 2304 的批量大小和 4.2e-4 的学习率,67B 模型则使用了 4608 的批量大小和 3.2e-4 的学习率。我们在训练过程中采用多步学习率计划。学习率从 2000 步的预热开始,然后在 1.6 万亿个标记时降至最大值的 31.6%,在 1.8 万亿个标记时降至最大值的 10%。

我们公布了训练损失曲线和几个基准指标曲线,详见下图。

result
result

5. 快速开始

安装

在 Python >= 3.8 的环境基础上,通过运行以下命令安装必要的依赖:

pip install -r requirements.txt

使用 Huggingface 的 Transformers 进行推理

你可以直接使用 Huggingface 的 Transformers 进行模型推理。

文本补全

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_dtype=torch.bfloat16, device_map="auto")
model.generation_config = GenerationConfig.from_pretrained(model_name)
model.generation_config.pad_token_id = model.generation_config.eos_token_id

text = "注意力函数可以被描述为将一个查询和一组键值对映射到一个输出,其中查询、键、值和输出都是向量。这个输出是"
inputs = tokenizer(text, return_tensors="pt")
outputs = model.generate(**inputs.to(model.device), max_new_tokens=100)

result = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(result)

对话补全

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_dtype=torch.bfloat16, device_map="auto")
model.generation_config = GenerationConfig.from_pretrained(model_name)
model.generation_config.pad_token_id = model.generation_config.eos_token_id

messages = [
    {"role": "user", "content": "你是谁?"}
]
input_tensor = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt")
outputs = model.generate(input_tensor.to(model.device), max_new_tokens=100)

result = tokenizer.decode(outputs[0][input_tensor.shape[1]:], skip_special_tokens=True)
print(result)

如果不使用提供的 apply_chat_template 函数,你也可以按照示例模板与我们的模型交互。注意,messages 应该替换为你的输入。

User: {messages[0]['content']}

A: {messages[1]['content']}<|end▁of▁sentence|>User: {messages[2]['content']}

A:

注意: 默认情况下(add_special_tokens=True),我们的分词器会自动在输入文本前添加一个 bos_token(<|begin▁of▁sentence|>)。此外,由于系统提示与此版本的模型不兼容,我们不建议在输入中包含系统提示。

使用 vLLM 进行推理

你也可以使用 vLLM 进行高吞吐量推理。

文本补全

from vllm import LLM, SamplingParams

tp_size = 4 # 张量并行度
sampling_params = SamplingParams(temperature=0.7, top_p=0.9, max_tokens=100)
model_name = "deepseek-ai/deepseek-llm-67b-base"
llm = LLM(model=model_name, trust_remote_code=True, gpu_memory_utilization=0.9, tensor_parallel_size=tp_size)

prompts = [
    "如果一个国家里的每个人都彼此相爱,",
    "研究还应该关注哪些技术",
    "为了确定标签是否正确,我们需要"
]
outputs = llm.generate(prompts, sampling_params)

generated_text = [output.outputs[0].text for output in outputs]
print(generated_text)

对话补全

from transformers import AutoTokenizer
from vllm import LLM, SamplingParams

tp_size = 4 # 张量并行度
sampling_params = SamplingParams(temperature=0.7, top_p=0.9, max_tokens=100)
model_name = "deepseek-ai/deepseek-llm-67b-chat"
tokenizer = AutoTokenizer.from_pretrained(model_name)
llm = LLM(model=model_name, trust_remote_code=True, gpu_memory_utilization=0.9, tensor_parallel_size=tp_size)
messages_list = [
    [{"role": "user", "content": "你是谁?"}],
    [{"role": "user", "content": "你能做什么?"}],
    [{"role": "user", "content": "简要解释一下Transformer。"}],
]
# 避免重复添加bos_token
prompt_token_ids = [tokenizer.apply_chat_template(messages, add_generation_prompt=True) for messages in messages_list]

sampling_params.stop = [tokenizer.eos_token]
outputs = llm.generate(prompt_token_ids=prompt_token_ids, sampling_params=sampling_params)

generated_text = [output.outputs[0].text for output in outputs]
print(generated_text)

6. 常见问题

您能提供用于模型量化的tokenizer.model文件吗?

DeepSeek LLM使用HuggingFace Tokenizer来实现字节级BPE算法,并设计了特殊的预分词器以确保最佳性能。目前没有直接的方法将tokenizer转换为SentencePiece tokenizer。我们正在为开源量化方法做出贡献,以便使用HuggingFace Tokenizer。

GGUF(llama.cpp)

我们已向流行的量化仓库llama.cpp提交了一个PR,以全面支持所有HuggingFace预分词器,包括我们的。

在等待PR合并的同时,您可以按照以下步骤生成GGUF模型:

git clone https://github.com/DOGEwbx/llama.cpp.git
cd llama.cpp
git checkout regex_gpt2_preprocess
# 根据README设置环境
make
python3 -m pip install -r requirements.txt
# 生成GGUF模型
python convert-hf-to-gguf.py <MODEL_PATH> --outfile <GGUF_PATH> --model-name deepseekllm
# 以q4_0量化为例
./quantize <GGUF_PATH> <OUTPUT_PATH> q4_0
./main -m <OUTPUT_PATH> -n 128 -p <PROMPT>

GPTQ(exllamav2)

更新:exllamav2现在已经能够支持HuggingFace Tokenizer。请拉取最新版本并尝试。

GPU内存使用

我们在不同批量大小和序列长度设置下,对7B和67B模型的推理峰值内存使用进行了分析。

对于DeepSeek LLM 7B,我们使用1块NVIDIA A100-PCIE-40GB GPU进行推理。

批量大小序列长度
256512102420484096
113.29 GB13.63 GB14.47 GB16.37 GB21.25 GB
213.63 GB14.39 GB15.98 GB19.82 GB29.59 GB
414.47 GB15.82 GB19.04 GB26.65 GB内存不足
815.99 GB18.71 GB25.14 GB35.19 GB内存不足
1619.06 GB24.52 GB37.28 GB内存不足内存不足

对于DeepSeek LLM 67B,我们使用8块NVIDIA A100-PCIE-40GB GPUs进行推理。

批量大小序列长度
256512102420484096
116.92 GB17.11 GB17.66 GB20.01 GB33.23 GB
217.04 GB17.28 GB18.55 GB25.27 GB内存不足
417.20 GB17.80 GB21.28 GB33.71 GB内存不足
817.59 GB19.25 GB25.69 GB内存不足内存不足
1618.17 GB21.69 GB34.54 GB内存不足内存不足

7. 局限性

尽管DeepSeek LLMs展示了令人印象深刻的能力,但它们也并非没有局限性。以下是这类模型的一些潜在缺点:

  1. 过度依赖训练数据:这些模型是在大量文本数据上训练的,可能会引入数据中存在的偏见。它们可能无意中生成有偏见或歧视性的回应,反映了训练数据中普遍存在的偏见。

  2. 幻觉:模型有时会生成听起来合理但事实上不正确或缺乏支持的回应。当模型过度依赖从训练数据中学到的统计模式时,即使这些模式与现实世界的知识或事实不符,也可能发生这种情况。

  3. 重复:模型可能在生成的回应中出现重复。这种重复可以以各种方式表现,如重复某些短语或句子、生成冗余信息,或在生成的文本中产生重复的结构。这个问题可能使LLMs的输出不够多样化,对用户的吸引力也较低。

8. 许可证

本代码仓库采用MIT许可证。DeepSeek LLM Base/Chat模型的使用受模型许可证约束。DeepSeek LLM系列(包括Base和Chat)支持商业使用。

9. 引用

@article{deepseek-llm,
  author = {DeepSeek-AI},
  title = {DeepSeek LLM: Scaling Open-Source Language Models with Longtermism},
  journal = {arXiv preprint arXiv:2401.02954},
  year = {2024},
  url = {https://github.com/deepseek-ai/DeepSeek-LLM}
}

10. 联系方式

如果您有任何问题,请提出issue或通过service@deepseek.com联系我们。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号