Deepseek技术浅析(二):大语言模型

embedded/2025/2/7 1:37:49/

DeepSeek 作为一家致力于人工智能技术研发的公司,其大语言模型(LLM)在架构创新、参数规模扩展以及训练方法优化等方面都达到了行业领先水平。

一、基于 Transformer 架构的创新

1.1 基础架构:Transformer 的回顾

Transformer 架构是当前最先进的大语言模型架构,其核心机制是自注意力机制(Self-Attention Mechanism),能够有效捕捉序列中长距离的依赖关系。以下是 Transformer 的主要组件及其工作原理:

(1) 编码器(Encoder)

  • 多头自注意力机制(Multi-Head Self-Attention):

    • 目的: 捕捉输入序列中不同位置之间的依赖关系。
    • 工作原理:
      • 将输入向量 xx 分别线性变换为查询(Query, Q)、键(Key, K)和值(Value, V)矩阵:

        其中,W_{Q},W_{K},W_{V}​ 是可训练的权重矩阵。
      • 计算注意力权重:

        其中,d_{k}​ 是键的维度,用于缩放注意力权重,防止梯度消失。
      • 多头机制: 将输入向量分割成多个头(head),每个头独立计算注意力,然后将多个头的输出拼接起来,并通过线性变换得到最终输出。
  • 前馈神经网络(Feed-Forward Neural Network, FFN):

    • 对每个位置的表示进行非线性变换。
    • 通常由两个线性变换和一个激活函数(如 ReLU)组成:

      其中,W_{1},W_{2},b_{1},b_{2}​ 是可训练的参数。

(2) 解码器(Decoder)

  • 除了多头自注意力机制和前馈神经网络外,解码器还包含一个编码器-解码器注意力机制(Encoder-Decoder Attention),用于捕捉编码器输出与解码器输入之间的关系。
  • 在训练过程中,使用**掩码(Masking)**机制,防止模型在预测当前词时看到未来的词。
1.2 DeepSeek 的创新与改进

DeepSeek 在 Transformer 基础上进行了多项创新和改进,以提升模型性能、效率和可扩展性。

(1) 稀疏注意力机制(Sparse Attention Mechanisms)

  • 问题: 传统的自注意力机制计算复杂度为 O(n2)O(n2),其中 nn 是序列长度。当处理长序列时,计算量和内存需求会急剧增加。
  • 解决方案:

    • 局部注意力(Local Attention):

      • 原理: 只计算相邻位置的注意力权重,例如只计算每个位置与前后 kk 个位置的注意力。
      • 公式表示:

        其中,K_{local},V_{local} 是局部键和值矩阵。
      • 优点: 降低计算复杂度,适用于局部依赖性强的任务。
      • 缺点: 无法捕捉长距离依赖关系。
    • 块状注意力(Blockwise Attention):

      • 原理: 将序列划分为多个块,只计算块内和块间部分位置的注意力权重。
      • 优点: 在一定程度上保留长距离依赖关系,同时降低计算复杂度。
      • 缺点: 块间信息传递效率较低。
    • 随机注意力(Random Attention):

      • 原理: 随机选择部分位置计算注意力权重。
      • 优点: 增加模型的多样性,可能捕捉到一些意想不到的依赖关系。
      • 缺点: 随机性可能导致模型不稳定。
    • 组合策略:

      • DeepSeek 采用多种稀疏注意力机制的组合,例如:
        • 局部 + 块状: 先使用局部注意力捕捉局部依赖关系,再使用块状注意力捕捉长距离依赖关系。
        • 局部 + 随机: 在局部注意力的基础上,添加随机注意力,增加模型的多样性。
  • 优势:

    • 显著降低计算复杂度和内存需求。
    • 在保持模型性能的同时,提高训练和推理效率。

(2) 混合专家模型(Mixture of Experts, MoE)

  • 问题: 大规模模型参数数量庞大,但并非所有参数在所有任务或输入上都发挥作用,导致计算资源浪费。
  • 解决方案:

    • 专家网络(Expert Networks):

      • DeepSeek 将模型划分为多个专家子模型,每个专家网络是一个独立的神经网络,可以是前馈神经网络、注意力机制等。
      • 每个专家网络可以专注于不同的任务或领域,例如:
        • 语言专家: 处理语言相关的任务。
        • 知识专家: 存储和利用知识库信息。
        • 推理专家: 执行推理任务。
    • 门控网络(Gating Network):

      • 根据输入内容,动态选择激活哪些专家网络。
      • 公式表示:

        其中,W_{g},b_{g}​ 是门控网络的参数。
      • 作用: 根据输入的不同,分配不同的计算资源给不同的专家网络。
    • 输出组合:

      • 将激活的专家网络的输出进行加权组合,得到最终输出。
      • 公式表示:

        其中,N 是专家网络的数量,\textrm{Expert}_{i}\left ( x \right )是第 i 个专家网络的输出。
  • 优势:

    • 提高模型的参数利用率和计算效率。
    • 允许模型根据不同的输入动态调整其行为,提高模型的灵活性和适应性。

(3) 多头潜在注意力(Multi-Head Latent Attention, MLA)

  • 问题: 在推理过程中,注意力机制的计算量仍然较大,尤其是当模型规模较大时。
  • 解决方案:

    • 低秩分解:

      • 将键和值矩阵分解为低秩矩阵,从而减少存储和计算需求。
      • 公式表示:

        其中,U_{K},U_{V}​ 是低秩矩阵,S_{K},S_{V}​ 是压缩矩阵。
    • 联合压缩:

      • 对压缩后的键和值矩阵进行联合压缩,进一步减少存储需求。
    • 潜在注意力计算:

      • 在压缩后的表示上进行注意力计算。
      • 公式表示:

  • 优势:

    • 显著降低推理过程中的内存占用。
    • 保持模型性能的同时,提高推理效率。

二、更大规模的参数

2.1 参数规模

DeepSeek 的 LLM 拥有数百亿到数千亿参数,例如:

  • DeepSeek-V3: 拥有 6710 亿参数。
  • DeepSeek-LLM: 在 2 万亿 token 的数据集上进行训练。
  • DeepSeek-V2: 在 8.1 万亿 token 的多样化语料库上预训练。
2.2 关键技术

(1) 分布式训练

  • 数据并行:

    • 将训练数据分配到多个计算节点上,每个节点独立计算梯度,最后进行梯度聚合和参数更新。
    • 优点: 提高数据吞吐量,加快训练速度。
  • 模型并行:

    • 将模型参数分配到多个计算节点上,每个节点负责计算模型的一部分参数。
    • 优点: 解决单个节点的显存限制问题,支持训练更大规模的模型。
  • 流水线并行:

    • 将模型的不同层分配到不同的计算节点上,实现流水线式的并行计算。
    • 优点: 提高计算资源利用率,减少计算等待时间。

(2) 混合精度训练

  • 半精度浮点数:

    • 使用半精度(FP16)浮点数表示模型参数和梯度。
    • 优点: 减少显存占用和计算量。
  • 损失缩放:

    • 对损失值进行缩放,以避免梯度消失。
    • 原理: 半精度浮点数表示范围有限,损失缩放可以防止梯度值过小,导致梯度消失。

(3) 混合专家模型(MoE)

  • 作用: 通过 MoE 架构,DeepSeek 可以有效管理大规模参数,避免计算资源浪费。
  • 具体实现:
    • 每个 token 仅激活部分专家网络,而不是所有专家网络。
    • 例如,DeepSeek-V3 的每个 token 仅激活 370 亿参数,而不是全部 6710 亿参数。

(4) 模型压缩与剪枝

  • 权重共享(Weight Sharing):

    • 共享模型参数,例如在 Transformer 中共享参数矩阵。
    • 优点: 减少参数数量,降低存储和计算需求。
  • 剪枝(Pruning):

    • 删除模型中不重要的参数或神经元,例如:
      • 权重剪枝: 删除权重值较小的参数。
      • 神经元剪枝: 删除激活值较低的神经元。
    • 优点: 进一步减少参数数量,提高模型效率。

三、过程模型公式

3.1 稀疏注意力机制
  • 局部注意力:

  • 块状注意力:

  • 随机注意力:

  • 组合策略:

    其中,\alpha ,\beta ,\gamma 是权重系数。

3.2 混合专家模型(MoE)
  • 门控网络:

  • 专家网络输出:

  • 最终输出:

3.3 多头潜在注意力(MLA)
  • 低秩分解:

  • 潜在注意力计算:

四、训练方法

4.1 预训练
  • 目标: 让模型学习语言的通用表示和知识。
  • 方法: 使用海量的文本数据进行训练,模型通过预测文本序列中的下一个词或字符来学习语言模式。
  • 数据: 包含互联网上的各种文本数据,如书籍、文章、网页等。
  • 训练目标: 例如,**掩码语言模型(Masked Language Model, MLM)**任务,即随机遮蔽文本中的部分词,让模型预测被遮蔽的词。
4.2 监督微调
  • 目标: 针对特定任务或应用场景,对预训练模型进行微调。
  • 方法: 使用特定任务的数据集对模型进行训练,例如:
    • 文本分类: 对文本进行分类,例如情感分析、主题分类等。
    • 问答系统: 根据用户的问题生成相应的答案。
    • 机器翻译: 将一种语言翻译成另一种语言。
  • 训练目标: 根据具体任务设计相应的损失函数,例如交叉熵损失(Cross-Entropy Loss)。
4.3 人类反馈的强化学习
  • 目标: 利用人类反馈信息,进一步优化模型输出。
  • 方法: 将人类对模型输出的反馈作为奖励信号,使用强化学习算法调整模型参数。
  • 优势: 使模型生成的结果更符合人类的期望和需求,提高模型的质量和实用性。

http://www.ppmy.cn/embedded/160170.html

相关文章

车载软件架构 --- 软件定义汽车面向服务架构的应用迁移

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活…

【自学笔记】计算机网络的重点知识点-持续更新

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 计算机网络重点知识点一、计算机网络概述二、网络分类三、网络性能指标四、网络协议与体系结构五、数据交换方式六、物理层与数据链路层七、网络层与运输层八、应用…

算法与数据结构(合并有序链表)

思路: 本题可以用迭代或递归两种方法来解题: 本次的方法为递归,通过不断来移动链表中元素的位置实现递归 解题过程: L1: 1 2 4 L2: 1 3 4 首先判断两个链表都不为空,所以前两个条件不符合 接着判断list…

【阅读笔记】LED显示屏非均匀度校正

一、背景 发光二极管(LED)显示屏具有色彩鲜艳、图像清晰、亮度高、驱动电压低、功耗小、耐震动、价格低廉和使用寿命长等优势。LED显示图像的非均匀度是衡量LED显示屏显示质量的指标,非均匀度过高,会导致LED显示图像出现明暗不均…

UE5 蓝图学习计划 - Day 14:搭建基础游戏场景

在上一节中,我们 确定了游戏类型,并完成了 项目搭建、角色蓝图的基础设置(移动)。今天,我们将进一步完善 游戏场景,搭建 地形、墙壁、机关、触发器 等基础元素,并添加角色跳跃功能,为…

mac安装wireshark

mac启动wireshark时,提示没有权限抓包,报错内容如下: “The capture session could not be initiated on interface ‘en0’ (You don’t have permission to capture on that device). Please check to make sure you have sufficient perm…

VSCode中使用EmmyLua插件对Unity的tolua断点调试

一.VSCode中搜索安装EmmyLua插件 二.创建和编辑launch.json文件 初始的launch.json是这样的 手动编辑加上一段内容如下图所示: 三.启动调试模式,并选择附加的进程

基于 SpringBoot 的电影购票系统

基于SpringBoot的电影购票系统是一个集成了现代化Web开发技术的在线电影票务平台。以下是对该系统的详细介绍: 一、系统背景与意义 随着电影行业的快速发展和观众对观影体验的不断追求,电影票务管理面临着越来越多的挑战。传统的票务管理方式存在效率低…