专栏名称: 计算机视觉深度学习和自动驾驶
讨论计算机视觉、深度学习和自动驾驶的技术发展和挑战
目录
相关文章推荐
不正常人类研究中心  ·  自制的粘土"小零食"这小点心也太萌啦 ·  昨天  
不正常人类研究中心  ·  这也太哑了!你怎么讲话会发射激光 ·  昨天  
英式没品笑话百科  ·  《愤怒转移》——理查德・萨金特,1954年 ... ·  昨天  
不正常人类研究中心  ·  做饭最忌讳灵机一动 ·  2 天前  
51好读  ›  专栏  ›  计算机视觉深度学习和自动驾驶

幻方发布全球最强MOE大模型! DeepSeek-V2

计算机视觉深度学习和自动驾驶  · 公众号  ·  · 2024-05-17 04:36

正文

仓库和技术报告地址:https://github.com/deepseek-ai/DeepSeek-V2

介绍

重新了解一下DeepSeek

DeepSeek,是一款国产大型语言模型,凭借其670亿参数的规模,开源了国产第一个基于混合专家技术的大模型DeepSeekMoE-16B,正引领着人工智能领域的新浪潮!

混合专家(Mixture of Experts)是大模型一种技术,这个技术将大模型划分为不同的子专家模型,每次推理只选择部分专家网络进行推理,在降低成本的同时保证模型的效果;

继一月份开源首个MOE,历时4个月钻研,终于开源第二代MoE模型:DeepSeek-V2!

全新的模型结构

DeepSeek-V2没有沿用主流的“类LLaMA的Dense结构”和“类Mistral的Sparse结构”,而是对模型框架进行了全方位的创新,提出了媲美MHA的MLA(Multi-head Latent Attention)架构,大幅减少计算量和推理显存;

自研Sparse结构DeepSeekMoE进一步将计算量降低到极致,两者结合最终实现模型性能跨级别的提升;

不严谨估计,DeepSeek-V2以236B总参数、21B激活,大致达到70B~110B Dense的模型能力,同时消耗的显存(KV Cache)只有同级别Dense模型的1/5~1/100,每token成本大幅降低。实际部署在8卡H800机器上,输入吞吐量超过每秒10万tokens,输出超过每秒5万tokens。

DeepSeek-V2 API的定价为:每百万tokens输入1元、输出2元(32K上下文),价格仅为GPT-4-Turbo的近百分之一,欢迎使用;

随着LLM参数量持续地增加,其在训练和推理过程中面临着巨大的计算资源和低推理效率的挑战。尽管也出现了Grouped-Query Attention (GQA) 和 Multi-Query Attention (MQA)这类改进Multi-Head Attention (MHA) 以提高推理效率的自注意力机制技术,但模型性能可能会有所降低。

根据论文及博客,DeepSeek-V2在DeepSeek上进行改进,但并没有沿用主流的“类LLaMA的Dense结构”和“类Mistral的Sparse结构”,而是对Transformer架构中的自注意力机制进行了全方位的创新,提出了MLA(Multi-head Latent Attention)结构,并使用了MoE技术进一步将计算量降低,大幅提高了推理效率。

DeepSeek-V2 包含236B参数,每个Token激活2.1B参数,支持长达 128K 的上下文长度。与DeepSeek 67B相比,DeepSeek-V2 在性能上取得了显著提升,节省了42.5%的训练成本,减少了93.3%的KV缓存,并将最大生成吞吐量提高到了5.76倍。

这真的是真开源啊!根据内部消息,深度求索将该 DeepSeek-V2 模型已完全上线至平台服务用户,DeepSeek-V2 API也是物美价廉。并且秉持着最开放的开源精神,深度求索将这次的DeepSeek-V2模型和论文也将完全开源,免费商用。

模型架构

MLA(Multi-head Latent Attention)

低秩KV联合压缩(Low-Rank Key-Value Joint Compression)

MLA的核心是通过低秩联合压缩来减少Key和Value的维度,同时也Query进行低秩的压缩,这导致计算量大幅度降低,并且在推理时,只需要缓存,这极大地减少了所需要的KV缓存。

解耦RoPE位置编码(Decoupled Rotary Position Embedding)

为了解决MLA中RoPE与低秩KV联合压缩导致不兼容的问题,提出了解耦RoPE的策略。

标准的多头注意力MHA

MLA与MHA、GQA和MQA进行KV Cache的对比

根据下面的表格,MLA 只需要少量的 KV 缓存,相当于只有 2.25 组的 GQA,但却能获得比 MHA 更强的性能。

DeepSeekMoE

对于前馈神经网络,DeepSeek-V2 采用了MoE的架构。DeepSeekMoE主要包括细粒度专家(finer granularity for higher expert)和共享专家(shared experts)这两个特点,在激活和总专家参数数量相同的情况下,DeepSeekMoE可以大幅超越传统的MoE架构。

预训练

数据构建

DeepSeek-V2在保持DeepSeek 67B数据处理流程不变的同时,增加了数据量和质量。通过深入挖掘互联网数据、优化清洗流程,恢复了误删数据,并引入更多中文数据,以充分利用中文网络资源。重点在于数据质量提升,采用多种高质量数据源丰富预训练语料库,并改进质量过滤算法,移除无效数据,保留高质量内容,同时排除有争议内容以减少文化偏见。分词器沿用DeepSeek 67B的基于BBPE算法的版本,词汇量100K,预训练语料库达8.1T Token,其中中文 Token占比12%高于英文。

超参数

模型配置如下:Transformer层60层,隐藏维度5120。参数随机初始化,标准偏差0.006。在MLA中,注意力头数128,每头维度128。KV压缩维度512,查询压缩维度1536。解耦查询和键,每头维度64。除首层外,FFN层替换为MoE层,每层含2个共享专家和160个路由专家,专家中间隐藏维度1536。每 Token激活6个专家。低秩压缩和精细化专家分割影响输出规模,故添加RMS Norm层和缩放因子。DeepSeek-V2总参数236B,每 Token激活参数21B。

训练配置:AdamW优化器, 1=0.9, 2=0.95,权重衰减0.1。学习率预热后阶梯衰减,最大2.4×10−4,梯度裁剪1.0。批量大小前225B Token从2304增至9216。最大序列长度4K,8.1T Token训练。模型层流水线并行,路由专家均匀部署在8设备上,每 Token至多3设备路由。平衡损失 1=0.003, 2=0.05, 3=0.02。训练时采用 Token丢弃策略,评估时不禁用。

实验设备

DeepSeek-V2 使用了内部开发的 HAI-LLM 框架进行训练,该框架高效且轻量级。它实现了16路零气泡流水线并行、8路专家并行以及ZeRO-1数据并行。由于模型参数激活较少,通过重新计算操作符节省了激活内存,避免了张量并行,减少了通信成本。训练效率通过重叠共享专家计算和专家并行全通信进一步提升,同时定制了CUDA核心以加速通信、路由算法和专家间融合计算。MLA 采用了改进的 FlashAttention-2 进行优化。

实验在配备 NVIDIA H800 GPU 的集群上进行,每个节点包含8个GPU,通过 NVLink 和 NVSwitch 在节点内连接,节点间使用 InfiniBand 互连。

长上下文扩展

DeepSeek-V2 初始预训练后,采用YaRN将上下文窗口长度从4K扩展到128K。YaRN 专门用于处理解耦共享密钥,负责携带 RoPE。设置比例 s 为40,α 为1,β 为32,目标最大上下文长度为160K,以期待模型对128K的上下文长度有良好的响应。还对模型进行了1000步的额外训练,序列长度为32K,批量大小为576序列。虽然训练仅在32K的序列长度进行,但在评估128K的上下文长度时,模型仍然显示出强大的性能。

大海捞针 (NIAH) 测试的评估结果显示了 DeepSeek-V2 在所有测试的上下文窗口长度(高达128K)中表现良好。

评估

DeepSeek-V2 在多种语言理解和生成任务的基准测试上进行了评估,并与代表性的开源模型进行了比较,包括 DeepSeek 67B、Qwen1.5 72B、LLaMA3 70B 和 Mixtral 8x22B。

在训练成本方面,DeepSeek-V2 由于激活参数较少,因此在训练每个万亿tokens时,与 DeepSeek 67B 相比,可以节省42.5%的训练成本。

在推理效率方面,DeepSeek-V2 通过将参数转换为 FP8 精度,并采用 KV 缓存量化,显著减少了所需的 KV 缓存。这使得 DeepSeek-V2 能够处理更大的批量大小,从而提高了推理吞吐量。在单个节点上使用 8 个 H800 GPU 进行评估时,DeepSeek-V2 的生成吞吐量超过了每秒 50K 个tokens,这是 DeepSeek 67B 最大生成吞吐量的 5.76 倍。

RL算法 :为了节省RL训练的成本,研究人员采用了Group Relative Policy Optimization (GRPO)算法,该算法避免了通常与策略模型大小相同的评估模型,并从组分数中估计基线。

评估结果

基准测试

英文能力







请到「今天看啥」查看全文