当前位置: 首页 > news >正文

AI大模型核心原理(二)

一、人工智能的兴起。

1、前序。

艾伦·麦席森·图灵; 是计算机科学之父。
著名英国数学家、计算机科学家、逻辑学家和密码分析学家,被誉为计算机科学与人工智能之父。

阿兰・图灵(Alan Turing) 是译名(简称)。

  • 1936年,向伦敦权威的数学杂志投一篇论文《论可计算数及其在判定问题上的应用》。
  • 1950年,发表了一篇划时代的论文《计算机机械与智能》。

图灵机、图灵测试。
文中预言了如何创造出具有真正智能的机器的可能性?
有A、B、C 三个玩家,各自在独立空间中;让C来根据A B 的回答猜测A、B的性别。
A的工作是来迷惑C让C尽可能错误,
B的工作是来配合C让C尽可能正确;
现在将A换成电脑,如果回答能和之前一样,那么说明计算机A通过了图灵测试。
在这里插入图片描述
如果一台机器能够与人类展开对话(通过电传设备),且不能被参与测试的 30% 以上的人类裁判辨别出其机器身份,那么则称这台机器具有人类智能。

2、NLP发展。

NLP 是 自然语言处理(Natural Language Processing) 的缩写,是人工智能(AI)和计算机科学的一个重要分支,专注于让计算机理解、解释和生成人类语言。NLP 结合了语言学、计算机科学和机器学习的技术,旨在实现人机之间的自然语言交互。

2.1、NLP核心任务。
  1. 自然语言理解(NLU, Natural Language Understanding)
    • 让计算机理解人类语言的含义。
    • 包括词法分析、句法分析、语义分析等。
    • 例如:理解用户输入的问题或命令。
  2. 自然语言生成(NLG, Natural Language Generation)
    • 让计算机生成符合语法和语义的自然语言文本。
    • 例如:自动生成新闻报道、对话回复或摘要。
  3. 语言翻译
    • 将一种语言自动翻译成另一种语言。
    • 例如:谷歌翻译、DeepL 等工具。
  4. 文本分类
    • 对文本进行分类或打标签。
    • 例如:垃圾邮件过滤、情感分析(判断文本是正面还是负面)。
  5. 信息抽取
    • 从文本中提取结构化信息。
    • 例如:从新闻中提取人名、地点、时间等。
  6. 问答系统
    • 根据用户的问题提供准确的答案。
    • 例如:智能客服、搜索引擎中的问答功能。
  7. 语音识别与合成
    • 将语音转换为文本(语音识别),或将文本转换为语音(语音合成)。
    • 例如:语音助手(如 Siri、Alexa)。
  8. 文本摘要
    • 从长文本中提取关键信息,生成简短的摘要。
    • 例如:新闻摘要、论文摘要。
  9. 对话系统
    • 实现人机对话。
    • 例如:聊天机器人、虚拟助手。
2.2、NLP 的关键技术。
  1. 分词(Tokenization)
    • 将文本分割成单词或词组。
    • 例如:中文分词工具(如 Jieba)。
  2. 词性标注(POS Tagging)
    • 为每个单词标注词性(如名词、动词、形容词等)。
  3. 句法分析(Parsing)
    • 分析句子的语法结构。
  4. 语义分析(Semantic Analysis)
    • 理解文本的含义,包括词义消歧、实体识别等。
  5. 机器学习与深度学习
    • 使用机器学习算法(如 SVM、随机森林)和深度学习模型(如 RNN、LSTM、Transformer)来处理语言数据。
  6. 预训练语言模型
    • 如 BERT、GPT 等,通过大规模数据预训练,提升 NLP 任务的效果。
2.3、NLP 发展。
  1. 基于规则模型
    ​ 早期研究主要依赖规则定义的模型,这些规则需要大量人力精心设计,且随着规则增多,可能引发冲突。此外,模型无法回答规则库之外的问题。然而,由于规则由专业人士定义,在特定领域表现高效,能以20%的投入实现80%的效果。这类模型适用于解决重复性任务,如电商客服、电话机器人等。
  2. 基于统计方法的模型
    在1980-1990这个年代,人们开始利用基于统计概率的模型。
    基于马尔可夫假设,一个词语出现的概率,只和前面的n个词语有关 而与更早的词语或者往后的词语都无关。
    因此自然就产生了二元模型(一个词语出现的概率只和它前面的一次词语有关) 和 n元模型(一个词语出现的概率跟它前n-1个词语有关),但是随着n的增大你所需要记录的概率分布就会呈现指数倍的增加,这导致了n不可能无限放大;放到模型上,就是说不能有一个很长的上下文,这个就是典型的长距离依赖问题;
    在这里插入图片描述
  3. 基于神经网络的模型
    基于神经网络的NLP模型,比如我们熟知的CNN(卷积神经网络) RNN(循环神经网络),神经网络启发于我们人脑的工作逻辑,其中著名的hebbian理论阐述了人脑神经元的形态。
    在这里插入图片描述
    RNN(循环神经网络)
    ​ 一个神经元的输出信号可能是另一个神经元的输入信号,得易于这种结构,人脑在处理序列化和结构化 数据时非常高效,RNN受这种结构的启发,在序列化的数据处理方面获得了很大的成就,一定程度上缓解了n 元模型长距离依赖的问题,但是并没有从根本上解决,同时它也带来了自己新的问题,那就是梯度消失-爆炸。
    在这里插入图片描述
  • 什么是梯度消失-爆炸?
    梯度消失:误差信号在反向传播时越来越弱,导致模型学不会长期规律。简单来说,RNN的梯度消失就像“传话游戏越传越错”。

  • 反向传播
    反向传播(英语:Backpropagation,缩写为BP)是“误差反向传播”的简称,是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。
    举个例子:
    正向传播:三个人在玩你画我猜游戏,第一个人描述物品信息传给第二个人,再由第二个人描述给第三个人,第三个人说出画的是什么?

    反向传播:第三个人得知自己说和正确答案之间的误差,发现他们在传递时的问题差在哪里,向前面一个人说下次描述时可以怎么样更准确的传递信息,就这样一直向前一个人告知。

    权重更新:在反向传播的过程中,三个人的默契一直在磨合,然后描述的更加准确。

  • 关键原因:RNN记忆链条太长

    RNN(循环神经网络)像一条不断延长的锁链,每个时间步(时刻)都在链子上加一节。比如处理句子 :
    我昨天 吃了 一个 苹果,RNN会把每个词依次连起来分析。
    问题出在反向传播:
    当计算梯度时,RNN需要从最后一个词(苹果)一路回传到第一个词(我)。这个过程就像传话游戏:
    - 第5个人说:“苹果”(目标词)
    - 第4个人告诉第3个人:“误差要调整0.1”
    - 第3个人告诉第2个人:“误差变成0.1×0.9=0.09”
    - 第2个人告诉第1个人:“误差变成0.09×0.9=0.081”
    - …

如果每一步传递的误差都在衰减(比如乘以0.9),经过多步后,开头的词(如“我”)收到的误差几乎为0,导致它无法被正确调整。

LSTM(长短期记忆网络)

简单说就是 LSTM是给关键信息开了个绿色通道。现有的翻译软件和语音助手很多也是使用了这个技术。

LSTM结构是专门为解决RNN在学习长的的上下文信息出现的梯度消失、爆炸问题而设计的,结构中加入了内存块。这些模块可以看作是计算机中的内存芯片——每个模块包含几个循环连接的内存单元和三个门(输入、输出和遗忘,相当于写入、读取和重置)。信息的输入只能通过每个门与神经元进行互动,因此这些门学会智能地打开和关闭,以防止梯度爆炸或消失。
在这里插入图片描述
但是基于RNN的变种都会存在一个问题,由于模型在学习训练过程中,依赖文本的输入顺序,必须按时间步顺序计算,无法并行处理序列。

3、LLM成功背后。

  1. 算法的创新: Transformer架构: 大型语言模型的成功在很大程度上归功于Transformer架构的引入。这种架构通过自注意力机制(self-attention mechanism)能够有效地处理长距离依赖问题,使得模型能够更好地理解文本中的上下文关系。
  2. 预训练与微调: 大型语言模型通常采用预训练(pre-training)与微调(fine-tuning)的两阶段学习方法。预训练阶段在大规模语料库上进行,使得模型能够学习到广泛的语言知识;微调阶段则在特定任务上进行,使得模型能够针对特定任务进行优化。
  3. 多任务学习: 大型语言模型通常在多个任务上进行训练,这使得模型能够学习到更通用的语言表示,从而在多个任务上都能够取得较好的性能。
  4. 计算能力的提升: GPU与TPU: 大型语言模型的训练需要大量的计算资源,而GPU和TPU等高性能计算设备的出现和普及使得训练大规模模型成为可能。 分布式训练: 随着模型规模的不断增大,单机的计算资源已经无法满足需求,因此分布式训练成为了必要的手段。分布式训练通过将计算任务分散到多个计算节点上,大大提高了训练的效率。
  5. 数据的可用性与规模性: 大规模语料库: 大型语言模型的训练需要大量的文本数据,而互联网上海量的文本数据为模型的训练提供了丰富的资源。 数据质量: 数据的质量对于模型的性能至关重要。因此,在训练模型之前,需要对数据进行清理、预处理等操作,以提高数据的质量。
  6. 软件与工具的进步: 深度学习框架: TensorFlow、PyTorch等深度学习框架的出现和普及,为大型语言模型的研发提供了便利。这些框架提供了丰富的API和工具,使得模型的构建、训练和部署变得更加容易。
  7. 开源社区: 开源社区的发展为大型语言模型的研发提供了丰富的资源和协作平台。许多研究者和开发者通过开源社区共享自己的研究成果和代码,推动了大型语言模型技术的快速发展。

二、Transformer介绍。

1、引言。

Transformer由Google团队开发。
​ 是一种深度学习模型架构,它是一种基于注意力机制的模型,用于处理序列到序列的任务,如机器翻译、语言建模等。Transformer模型的核心思想是完全基于自注意力机制(self-attention mechanism),它能够在输入序列中捕捉各个位置之间的依赖关系,从而在处理长序列时具有更好的性能。Transformer通过堆叠多个编码器和解码器层来构建整个模型,每个层都包含多头注意力机制和前馈神经网络。
​ 于2017年6月发布论文《Attention is All You Need》在NIPS 发表,标志着NLP领域的重大进展。该架构不仅提升了机器翻译性能,还催生了BERT、GPT等预训练模型,推动了NLP领域的快速发展。Transformer架构的出现对于自然语言处理领域有着革命性的影响,成为了许多任务的标准模型。

2、为什么用Transformer?

在Transformer未出现以前,NLP领域应用基本都是以**RNN(循环神经网络)LSTM(长短期记忆网络)**循环处理完成,一个token一个token输入到模型中。模型本身是一种顺序结构, 包含token在序列中的位置信息。但是存在了一些问题:

  • 会出现梯度消失现象,无法支持长时间序列。越靠后的token对结果的影响越大。
  • 只能利用上文信息,无法获取下文信息。
  • 循环网络逐个token输入,也就是句子有多长就要循环多少遍,计算的效率低。
3、大模型基本处理单元。

Token,是大模型中最基本的处理单元。
Token可以是一个单词(大约0.75个word)、一个词组、一个标点符号、一个字符等。

一条语句由诸多单词(Word)所组成,大模型在进行处理前需要先将语句拆解成一个个的基础单元,但这个基础单元并非单词,而被称为Token。不同模型可能有自己的切分方法,字符数目和Token数目不一定一一对应,例如在AI搜索开放平台中:
​ “苹果”对应1个Token
​ “测试用例”对应3个Token
​ “OpenSearch”对应2个Token

4、词嵌入(Word Embedding)。

就是把自然语言进行单词向量化,映射为高维向量,使得单词之间的语义关系,可以在向量空间中得以体现。同一语境下的词语往往拥有相近的语义。
简单来说:利用计算机方式逻辑;把自然语言进行单词向量化,得到向量化数据。这些向量化数据映射在(欧式空间)中形成距离概念。直线距离越近拥有相近的语义。

4.1、语意词语理解。
  1. 两个词经常在一起出现。
  2. 语义相关性——把这两个词的位置互换,相应的句子仍然是自然语言。
    在这里插入图片描述
4.2、欧几里得空间。

欧几里得空间(欧式空间)是数学中的基本概念,尤其在几何学和线性代数中占据核心地位。
发明来源于古希腊数学家欧几里得(Euclid);
词嵌入(Word Embedding),即把一个个word(词),embed(嵌入)高维的欧氏空间中。
在这里插入图片描述

4.3、词嵌入理论原理。

​ 词嵌入就是要通过大量的文本数据学习,找到每一个词汇与高维空间的映射关系,表示该词汇在抽象空间中的位置,即它的坐标。所有的相对距离是保持不变的。这说明抽象空间中词汇的位置不可识别。
例如:酒店,宾馆,旅店
在这里插入图片描述

4.4、词与词之间存在不同关系。

人类通过学习和阅读掌握词语的含义,大模型同样是通过“阅读”大量的训练语料来学习和理解每个单词该如何使用。大模型逐条“阅读”所有的训练语料后,就能针对每一个单词建立一个“信息库”,知道哪些单词“彼此相熟”,哪些则“形同陌路”,模型在学习和理解一个单词的含义时有一个非常重要的视角,就是看看它周围常常出现的单词都有哪些。
单词之前的“远近亲疏”关系,是自然语言处理过程中非常重要的信息。
这并不难理解,人类的语言虽然看起来非常灵活,但这种关系也存在一定的统计规律:
有些字词的使用频率非常高, 中文如“的/是/不/能/知道/可以”,英文如“the/to/and/of/in/for/”。
某些个字词经常一同出现从而具有特定的意义,如词组、成语、短语、谚语、俗语。
不过,字词之间的远近亲疏并不是固定的,一些场景下会显得“亲密”,一些场景下则变得“疏远”。
换句话说,同一个字词,当它周围出现的“小伙伴”不同的时候,可能就会具备不同的含义。如“鲜花”和“花钱”中的“花”,“朝廷”和“朝阳”中的“朝”,再比如“interest”同时有“兴趣”和“利息”的意思。这里说的场景就是“上下文(Context)”。

例如:猫坐在垫子上 The cat sat on the mat
在这里插入图片描述

4.5、词义的载体和表现特征。

这种字词间的远近亲疏关系,在大模型是如何进行表示的呢?这涉及两个非常重要的概念:
词向量(Word Vector)词嵌入(Word Embedding)
从语言学角度,一个词可以从多个维度进行表示,比如:

  • 音系维度,即词的发音,如音素、音调、音重等
  • 形态维度,即词的形式,如词根、词缀、词形等
  • 语义维度,即词的含义,如概念、意义、情感等
  • 语法维度,即词的语法结构,如主语、谓语、宾语等

苹果:水果、味道甜、水分充足、含维生素C [0.8 0.2 0.65 0.31]
词向量可以有多种表现形式,具体会因为采用不同的词向量模型、训练数据集和算法而有所不同。

在自然语言处理中广泛使用的是词嵌入向量(Word Embedding),简称词嵌入。学术点的解释是“通过将离散空间向连续空间映射后得到的词向量”。每个单词都可以被映射成一个向量,在映射的过程中,词嵌入向量可以捕捉和记录单词的语义信息,使得语义上相近的单词在向量空间中的距离也相近。 这种方法能够帮助模型更好的理解和处理自然语言数据。
在这里插入图片描述

可以说,词嵌入向量就是通过某种“最佳实践算法”得到的一种词向量。Word2Vec 是很多大模型都在使用的一种词嵌入向量,它由 Google 在 2013 年开源的 Word2Vec 就是一种流行的词嵌入向量,同时包含了生成词向量相关的工程工具。它利用大规模的语料库进行训练,学习单词之间的语义关系,然后生成每个单词的词向量,然后被用于文本分类、情感分析、机器翻译等各种自然语言处理任务。除了 Word2Vec,FastText、n-gram、GloVe 等也都是常见的词嵌入模型,它们的核心原理是类似的。

注意点: 词嵌入向量并不直接表示语义,而是词与词之间语义的相似度。因此,不必去纠结每个向量值到底代表什么意思。

5、自注意力(Self-Attention)。

Transformer的核心机制:自注意力(Self-Attention)
它不依赖额外输入的信息,即它只统计单词和其他单词之间的注意力(相关性)。可以让模型在处理序列数据时,动态关注不同位置的信息。

举个例子:
​ 那只动物没有过马路,因为它太累了。
​ 这个句子中的 “它” 指的是什么?是指 “动物” 还是 “马路”? 对人来说,这是一个简单的问题,但是算法来说却不那么简单。当模型在处理“它”时,Self-Attention 机制使其能够将 “它” 和 “动物” 关联起来。
在这里插入图片描述

  1. 对每个输入词生成Q(query)、K(key)、V(value)向量。
    在这里插入图片描述

2.计算每个Q与所有K的转置,缩放后得到注意力分数。
在这里插入图片描述

3.用softmax归一化分数,,即每一行的和都变为 1,得到权重。
在这里插入图片描述

4.用权重对V加权求和,得到每个词的输出。
在这里插入图片描述

6、多头注意力(Multi-Head Attention)。

Multi-Head Attention 是由多个 Self-Attention 组合形成的,下图是论文中 Multi-Head Attention 的结构图。
在这里插入图片描述
从上图可以看到 Multi-Head Attention 包含多个 Self-Attention 层,首先将输入X分别传递到 h 个不同的 Self-Attention 中,计算得到 h 个输出矩阵Z。下图是 h=8 时候的情况,此时会得到 8 个输出矩阵Z。换成人话来说就是我们矩阵图中的Wq,Wk和Wv分别初始化了多个进行训练;
在这里插入图片描述
得到 8 个输出矩阵 Z1 到 Z8 之后,Multi-Head Attention 将它们拼接在一起 (Concat),然后传入一个Linear层,得到 Multi-Head Attention 最终的输出Z。
在这里插入图片描述
举例:
在这里插入图片描述
在一句话中注意力往往要从多个角度进行分析,比如 “大学生“是考研这个单词的主体,”除了“表示考研在这个句子中的角色,”上班、创业“都是考研这个词替代;因此我们需要从不同的角度去进行学习,防止它们过度的相似。

我们可以给不同的注意力头选择不同的训练任务,比如一些注意力头去做完形填空,一些注意力头去预测下一个句子,不同的注意力头之间的训练是并行的,基于Transformer架构可以高效的训练超大规模的模型。

  • Add & Norm 层的作用
    1.残差连接: 缓解梯度消失问题,保留原始信息。
    2.层归一化: 加速训练,提高模型稳定性和泛化能力。在Transformer中,Add & Norm 层是模型能够高效训练和表现优异的关键组件之一。

  • Feed Forward的作用是
    Feed Forward 层(也称为前馈神经网络)的作用是对自注意力机制输出的特征进行进一步的非线性变换和特征提取;
    1.**非线性特征变换:**引入非线性激活函数,增强模型的表达能力。
    2.**特征增强:**对自注意力机制的输出进行进一步处理,提取更丰富的特征。
    3.**独立处理每个位置:**专注于每个位置的特征优化。
    4.**增加模型容量:**通过额外的参数提高模型的拟合能力。

  • Encoder加码器
    Encoder block 接收输入矩阵 X(n×d) ,并输出一个矩阵 O(n×d) 。通过多个 Encoder block 叠加就可以组成 Encoder。

  • Decoder解码器
    在这里插入图片描述

  • 包含两个 Multi-Head Attention 层。

  • 第一个 Multi-Head Attention 层采用了 Masked 操作。通过 Masked 操作可以防止第 i 个单词知道 i+1 个单词之后的信息。

  • 第二个 Multi-Head Attention 层的K, V矩阵使用 Encoder 的编码信息矩阵C进行计算,而Q使用上一Decoder block 的输出计算。这样做的好处是在 Decoder 的时候,每一位单词都可以利用到 Encoder 所有单词的信息 (这些信息无需 Mask)。

  • 最后有一个 Softmax 层计算下一个翻译单词的概率。

三、Transformer核心。

1、宏观介绍。

Transformer可以看成是一个黑箱操作的序列到序列(seq2seq)模型,输入是单词/字母/图像特征序列,输出是另外一个序列。一个训练好的Transformer模型如下图所示:
在这里插入图片描述
在机器翻译中,就是输入一种语言(一连串单词),经Transformer输出另一种语言(一连串单词)。
在这里插入图片描述

2、Transformer编码器与解码器。

在Transformer 的整体结构,左图Encoder和右图Decoder。
在这里插入图片描述

Transformer 由 Encoder 和 Decoder 两个部分组成,Encoder 和 Decoder 都包含 6 个 块。
Transformer 的工作流程大体如下:

**第一步:**获取输入句子的每一个单词的表示向量 X,X由单词的 Embedding(Embedding就是从原始数据提取出来的Feature) 和单词位置的 Embedding 相加得到。即Transformer 中单词的输入表示的x由单词 Embedding 和位置 Embedding (Positional Encoding)相加得到。
在这里插入图片描述
第二步: 将得到的单词表示向量矩阵 (如上图所示,每一行是一个单词的表示 x) 传入 Encoder 中,经过 6 个 Encoder block 后可以得到句子所有单词的编码信息矩阵 C,如下图。。每一个 Encoder block 输出的矩阵维度与输入完全一致。
在这里插入图片描述

第三步: 将 Encoder 输出的编码信息矩阵 C传递到 Decoder(解码器) 中,Decoder 依次会根据当前翻译过的单词 1~ i 翻译下一个单词 i+1,如下图所示。在使用的过程中,翻译到单词 i+1 的时候需要通过 Mask (掩盖) 操作遮盖住 i+1 之后的单词。
在这里插入图片描述

上图 Decoder 接收了 Encoder 的编码矩阵 C,然后首先输入一个翻译开始符 “”,预测第一个单词 “I”;然后输入翻译开始符 “” 和单词 “I”,预测单词 “have”,以此类推。这是 Transformer 使用时候的大致流程。

3、Transformer架构。

在这里插入图片描述
Decoder解码器内部

在这里插入图片描述

相关技术论贴:https://mp.weixin.qq.com/s/XHKwcLPZv-P__alu6d_vOg?scene=25#wechat_redirect

4、DeepSeek架构的特点。

DeepSeek-V3、V2.5 版本都用了MoE (Mixture of Experts:MoE)架构,即混合专家模型。 与Transformer 架构有很明显的区别。DeepSeek-V3 版本总参数量高达 6710 亿(671B),可每次计算激活的参数量,也就是真正参与到计算里的参数,只有 370 亿,是总参数量的5.5%。但Transformer的模型就不一样了,它们每次计算激活的参数量,就是整个模型的参数量,没有 “打折”。
在这里插入图片描述
在 MoE 系统中,传统 Transformer 模型中的每个前馈网络 (FFN) 层替换为 MoE 层,其中 MoE 层由两个核心部分组成: 一个门控网络和若干数量的专家网络。

门控网络(Gating Network):
门控网络负责决定在每次输入时哪些专家将被激活(即哪些专家会参与计算)。它通过一个类似于分类的机制,根据输入的特征向量为不同的专家分配权重。

专家网络(Experts):
MoE 模型包含多个“专家”(专家网络),每个专家通常是一个子模型,可以是神经网络的一个子模块。每个专家可能有不同的能力或专长,能够处理不同类型的输入数据。

5、Transformer 和 MoE 区别。

在这里插入图片描述

MoE 模型与Transformer大模型的典型区别:

MoE 模型: 每次输入时,只会激活一小部分专家(例如,10% 的专家),而其他专家不参与计算。这意味着,MoE 模型可以在保持模型参数量很大的情况下,大幅度减少计算量,提高了计算效率和资源利用。

Transformer大模型: 所有层和所有节点在每次前向传播时都会参与计算。虽然这些模型参数也可能非常庞大,但每次输入都需要对所有的参数进行计算,即使部分参数的贡献很小,因此也会浪费计算资源。

6、MoE 模型有什么优势和挑战?

  1. 计算更高效: MoE 只激活部分专家,而不是整个 FFN 层,使得推理时计算量更小,减少算力消耗。
  2. 可扩展性更强: 通过增加专家数量,而不增加计算量,就能增强模型能力。
  3. 泛化能力强: MoE 的门控网络可以根据不同的输入选择合适的专家,从而让模型在处理不同任务时具备更强的适应能力。

7、MoE 模型也存在一些挑战?

1、训练困难: 由于大部分专家在每个输入上都不被激活,模型的训练效率可能受到影响。此外,门控网络的设计和优化也可能较为复杂。

2、专家不平衡问题: 在训练过程中,某些专家可能会被频繁激活,而其他专家则很少被激活,这会导致一些专家在训练过程中难以学习到有用的表示。

3、负载均衡问题: 为了确保不同专家都能有效学习和推理,可能需要对专家进行负载均衡,即确保每个专家的计算资源得到均衡分配

同时在 MoE 上,DeepSeek 进行了一些关键优化:

1、门控网络优化: 通过改进门控机制,DeepSeek 能够更加智能地选择合适的专家,避免了部分专家被过度调用而导致的专家不平衡问题。

2、专家平衡控制: 在训练过程中,通过更精细的调度策略,确保专家的负载更加均衡,避免了某些专家被“冷启动”或长时间闲置的问题。

3、动态计算资源分配: DeepSeek 能够根据不同的任务和输入数据动态调整计算资源,使得系统在不同场景下都能达到最佳性能和成本效益平衡。

相关文章:

AI大模型核心原理(二)

一、人工智能的兴起。 1、前序。 艾伦麦席森图灵; 是计算机科学之父。 著名英国数学家、计算机科学家、逻辑学家和密码分析学家,被誉为计算机科学与人工智能之父。 阿兰・图灵(Alan Turing) 是译名(简称&#xff09…...

数据结构篇——线索二叉树

一、引入 遍历二叉树是按一定规则将二叉树结点排成线性序列,得到先序、中序或后序序列,本质是对非线性结构线性化,使结点(除首尾)在线性序列中有唯一前驱和后继;但以二叉链表作存储结构时,只能获…...

【蓝桥杯】742合唱队形(DP LIS)

思路 借这题复习一下LIS,实际上是LIS的升级版,求一个\/形或者/\行,用两次最长上升子串即可。 先从前往后求递增,再从后往前求递减。 先把满足要求的最长队形求出来,总人数减去队形人数就是要出列的数目。 code impo…...

MySQL二进制日志格式有哪几种

目录 一、二进制日志格式类型1. **STATEMENT 格式(SBR: Statement-Based Replication)**2. **ROW 格式(RBR: Row-Based Replication)**3. **MIXED 格式(混合模式)**二、二进制日志事件详解三、如何选择二进制日志格式?四、配置与查看二进制日志格式五、注意事项在 MySQL…...

VUE管理后台开发-vue-element-admin

# 克隆项目 git clone https://github.com/PanJiaChen/vue-element-admin.git # 进入项目目录 cd vue-element-admin # 安装依赖 npm install # 速度过慢可以使用下面方法进行指定下载镜像原 # 也可以使用nrm选择下载镜像原 # 建议不要用 cnpm 安装 会有各种诡异的bug 可以通…...

计算机网络原理

网络发展史 起初,计算机之间是相互独立的,分别完成不同的工作,效率较为低下.随着时代的发展,计算机开始协同完成任务,就有了网络互连.网络互连是指将多台计算机连接在一起,完成数据共享.根据网络互联的规模不同,可以划分为局域网和广域网.局域网,简称LAN.局域网内的主机可以互相…...

速盾:如何利用CDN静态加速匹配尾缀提升网站性能?

在当前数字化时代,网站性能对于用户体验至关重要。尤其是对于包含大量静态资源(如图片、CSS、JavaScript文件等)的网站来说,如何高效地管理和加速这些资源成为了一个重要课题。本文将介绍如何利用CDN静态加速匹配尾缀的方法来提升…...

【H2O2 | 软件开发】前端深拷贝的实现

目录 前言 开篇语 准备工作 正文 概述 JSON方法 递归 其他 结束语 前言 开篇语 本系列为短篇,每次讲述少量知识点,无需一次性灌输太多的新知识点。该主题文章主要是围绕前端、全栈开发相关面试常见问题撰写的,希望对诸位有所帮助。…...

C#语法基础总结

输入和输出 输入 Console.Read(); 从屏幕读取一个字符,并返回该字符所对应的整型数字 Console.ReadLine(); 从屏幕读取一串字符,并返回该字符串 输出 Console.WriteLine(); 输出内容,并换行 Console.Write(); 输出内容,不换行…...

《深度学习》—— 模型部署

文章目录 模型部署模型准备选择部署平台部署配置与服务化测试与验证优化与维护常用工具与框架Flask本地部署模型 模型部署 模型部署是将训练好的机器学习或深度学习模型投入实际生产环境,使其能够处理实时数据并提供预测或推理服务的过程。 模型准备 模型格式转换…...

E902基于bash与VCS的仿真环境建立

网上看见很多E902仿真的文章,但用到的编译器是类似于这种Xuantie-900-gcc-elf-newlib-x86_64-V3.0.1-20241120,而我按照相应的步骤与对应的编译器,仿真总会报错。后面将编译器换成riscv64-elf-x86_64-20210512,反而成功了。现在开…...

挖矿------获取以太坊测试币

文章目录 挖矿------获取以太坊测试币通过水龙头获取以太坊测试币了解Sepolia是什么?水龙头(Faucet)是什么?Gitcoin Passport是什么? 操作1.MetaMask钱包2.将MetaMask切换到Sepolia测试网络3.用MetaMask连接Gitcoin Pa…...

MySQL事务详解:从理论到实践,保障数据一致性

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、为什么需要事务?二、事务的四大特性(ACID)三、MySQL事务的使用方法1. 基本语法2. 自动提交的设置3. 保存点(…...

在家用台式机上部署 DeepSeek-R1:低成本高性能的 CPU 推理方案---不到 4 万元

近年来,随着大模型技术的飞速发展,开源模型如 DeepSeek-R1 的出现为技术爱好者提供了更多探索人工智能的机会。然而,这类模型动辄数百亿参数,传统意义上需要昂贵的 GPU 集群才能运行,让许多个人开发者望而却步。最近,腾讯玄武实验室基于 CPU 的硬件方案优化,成功将 Deep…...

神经网络量化3-全连接层实现量化

本节,我们模拟下全连接层实现量化,原理上为了方便计算,全连接矩阵采用动态量化的方法,而输入由于不断在变化,我们采用静态量化的方法,直接给出代码: import torch import numpy as np import m…...

12 File文件对象:创建、获取基本信息、遍历文件夹、查找文件;字符集的编解码 (黑马Java视频笔记)

文章目录 File >> 存储数据的方案1. 认识File2. File操作2.1 创建File对象2.2 File操作1)对文件对象的信息的操作2)文件/文件夹的创建/删除3)⭐⭐对文件夹的遍历 3. 方法递归3.1 认识递归3.2 递归算法及其执行流程1) 案例:2…...

【软件工程】03_软件需求分析

3.1 系统分析 1. 系统分析概述 系统分析是一组统称为计算机系统工程的活动。它着眼于所有的系统元素,而非仅仅局限于软件。系统分析主要探索软件项目的目标、市场预期、主要的技术指标等,其目的在于帮助决策者做出是否进行软件项目立项的决定。 2. 可行性分析(Feasibility …...

词向量+位置编码=语义+语序?Transformer如何让相加操作不丢失原意?

在Transformer模型中,词向量(Token Embedding)和位置编码(Position Encoding)通过相加的方式结合,而模型能够同时保留词本身的语义信息和位置信息,这主要得益于以下机制: 为什么相加…...

Spring(7)——MyBatis入门(1)

一、MyBatis入门 1.1 什么是MyBatis MyBatis是一款优秀的持久层框架,用于简化JDBC的开发。 1.2 如何操作MyBatis 在application.properties进行配置 #驱动类名称 spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver #数据库连接的url spring.datasou…...

C语言文件操作入门

本节重点 理解文件的形式与基本概念二进制文件与文本文件文件的打开与关闭文件读写函数、文件缓冲区 正文开始--------------------------------------------------------------------------------------------------------------------- 一、为什么使用文件 程序运行时数据存…...

Java返回多个参数的方法

背景 在写代码的过程中,因有一些复杂的业务逻辑,需要返回多个结果。比如:需要增加一个true或者false,另外在加一个真正的结果值这样的类型。可能会有人用到数组以及Map等作为结果返回,当然这样确实是可以完成这样的功…...

微软开源神器OmniParser V2.0 介绍

微软开源的OmniParser V2.0是一款基于纯视觉技术的GUI智能体解析工具,旨在将用户界面(UI)截图转换为结构化数据,从而实现对计算机屏幕上的可交互元素的高效识别和操控。这一工具通过结合先进的视觉解析技术和大型语言模型&#xf…...

Java基础关键_023_IO流(一)

目 录 一、概述 二、分类 1.根据数据流向 2.根据读写数据形式 3.根据流在 IO 操作中的作用和实现方式 三、FileInputStream 1.说明 2.常用方法 (1)read() (2)read(byte[] b) (3)read(byte[] b, …...

Lora 中 怎么 实现 矩阵压缩

Lora 中 怎么 实现 矩阵压缩 1. 导入必要的库 import torch import re from datasets import Dataset from transformers import AutoTokenizer, AutoModelForCausalLM, TrainingArguments, Trainer, \get_cosine_schedule_with_warmup, EarlyStoppingCallback from peft...

lombok不起作用

xml <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.32</version> <scope>provided</scope> </dependency> - **作用**&#xff1a;引入 L…...

【实战ES】实战 Elasticsearch:快速上手与深度实践-附录-1-常用命令速查表-集群健康检查、索引生命周期管理、故障诊断命令

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 附录-常用命令速查表 1-Elasticsearch 运维命令速查表&#xff08;集群健康检查、ILM管理、故障诊断&#xff09;一、集群健康检查与监控1.1 集群健康状态核心命令1.2 节点级健康诊断…...

探讨Deveco Studio常见问题及解决方案,分享快速排障方法

以下是针对 DevEco Studio 开发工具的常见问题、解决方案及快速排障方法&#xff0c;覆盖环境配置、编译运行、调试等多个环节&#xff0c;助您高效解决开发中的“拦路虎”。 一、环境配置问题 1. 安装失败或卡顿 现象&#xff1a; 安装时进度条卡住&#xff0c;或提示“Faile…...

Spring设计模式 八股速记 高层模块底层模块 依赖倒置原则 开闭原则 接口隔离原则

目录 高层模块底层模块 一、定义与核心思想 二、实现方式 三、优点与价值 四、典型应用场景 五、与其他原则的关系 示例说明 依赖倒置原则 一、定义与核心思想 二、实现方式 三、优点与价值 四、典型应用场景 五、与其他原则的关系 示例说明 自己理解 开闭原则 …...

RISCV虚拟化环境搭建

概要 本文记搭建 RISCV 虚拟化环境的流程。 整体架构 我们使用 QEMU 来模拟 RISCV 的各种硬件扩展环境&#xff0c;通过 QEMU 启动 Ubuntu 作为我们的 Host 来在 Host 之中通过 KVMTOOL 来运行 Guest&#xff0c;学习 RISCV 的虚拟化。 目前我的 X86_64 主机使用的是 Ubunt…...

数据结构——串、数组和广义表

串、数组和广义表 1. 串 1.1 串的定义 串(string)是由零个或多个字符组成的有限序列。一般记为 S a 1 a 2 . . . a n ( n ≥ 0 ) Sa_1a_2...a_n(n\geq0) Sa1​a2​...an​(n≥0) 其中&#xff0c;S是串名&#xff0c;单引号括起来的字符序列是串的值&#xff0c; a i a_i a…...

vue3 elementUi table自由渲染组件

文章目录 前言CustomTable如何使用tableColumn 属性h函数创建原生元素创建组件动态生成 前言 elementui中的table组件&#xff0c;表格中想要自由地渲染内容&#xff0c;是一种比较麻烦的事情&#xff0c;比如你表格中想要某一列插入一个button按钮&#xff0c;是不是要用插槽…...

Centos离线安装gcc

文章目录 Centos离线安装gcc1. gcc是什么&#xff1f;2. gcc下载地址3. gcc的安装4. 安装结果验证 Centos离线安装gcc 1. gcc是什么&#xff1f; GCC&#xff08;GNU Compiler Collection&#xff09;是 GNU 项目下的开源编译器套件&#xff0c;主要用于将 C、C 等编程语言的源…...

odbus TCP转Modbus RTU网关快速配置案例

Modbus TCP 转Modbus RTU网关快速配置案例 在工业自动化领域&#xff0c;Modbus 协议以其简洁和高效而著称&#xff0c;成为众多设备通信的首选。 随着技术的发展和应用场景的变化&#xff0c;Modbus 协议也发展出了不同的版本&#xff0c;其中 Modbus TCP 和 Modbus RTU 是两种…...

Unity3D开发AI桌面精灵/宠物系列 【一】 窗口透明化 背景剔除 、去边框、去Logo动画UI正常显示

Unity3D 交互式AI桌面宠物开发系列【一】 文章主要介绍怎么制作AI桌面宠物的流程&#xff0c;我会从项目开始创建初期到最终可以和AI宠物进行交互为止&#xff0c;项目已经开发完成&#xff0c;我会仔细梳理一下流程&#xff0c;分步讲解。 这篇文章主要讲初期一些设置和部署。…...

Vue 自定义指令深度解析与应用实践

文章目录 1. 自定义指令概述1.1 核心概念1.2 指令生命周期 2. 自定义指令基础2.1 指令注册2.2 指令使用 3. 指令钩子函数详解3.1 钩子函数参数3.2 钩子函数示例 4. 自定义指令应用场景4.1 表单自动聚焦4.2 权限控制4.3 图片懒加载 5. 高级应用技巧5.1 动态指令参数5.2 指令修饰…...

基于SpringBoot+Vue的幼儿园管理系统+LW示例参考

1.项目介绍 系统角色&#xff1a;管理员、教师、普通用户功能模块&#xff1a;用户管理、教师管理、班级管理、幼儿信息管理、会议记录管理、待办事项、职工考核、请假信息、缴费信息、体检管理、资源管理、原料管理、菜品信息管理等技术选型&#xff1a;SpringBoot&#xff0…...

超级课程表项目结尾

L3-17-05-main.py def __init__(self):app QApplication([])self.window QMainWindow()self.window.setWindowTitle("超级课程表")cusWidget CourseWidget()self.window.setCentralWidget(cusWidget)self.showCourse()self.showNotes()# 1. 创建菜单栏self.menuba…...

Spring Retry

1. Spring Retry 的工作原理 内部机制 Spring Retry 主要通过 AOP&#xff08;面向切面编程&#xff09;实现重试逻辑。以下是 Spring Retry 的内部工作流程&#xff1a; AOP 拦截器&#xff1a;当一个方法被标记为需要重试&#xff0c;并且该方法抛出了指定类型的异常时&am…...

16.使用读写包操作Excel文件:XlsxWriter 包

一 XlsxWriter 的介绍 XlsxWriter 只能写入 Excel 文件。 OpenPyXL 和 XlsxWriter 的区别在笔记 15 。 二 如何使用 XlsxWriter 1.导包 import datetime as dtimport xlsxwriterimport excel 2.实例化工作簿 book xlsxwriter.Workbook("xlxswriter.xlsx") book.clo…...

【最新版】智慧小区物业管理小程序源码+uniapp全开源

一.系统介绍 智慧小区物业管理小程序,包含小区物业缴费、房产管理、在线报修、业主活动报名、在线商城等功能。为物业量身打造的智慧小区运营管理系统,贴合物业工作场景,轻松提高物业费用收缴率,更有功能模块个性化组合,助力物业节约成本高效运营。 二.搭建环境 系统环…...

音视频入门基础:RTP专题(18)——FFmpeg源码中,获取RTP的音频信息的实现(上)

由于本文篇幅较长&#xff0c;分为上、下两篇。 一、引言 通过FFmpeg命令可以获取到SDP描述的RTP流的的音频压缩编码格式、音频压缩编码格式的profile、音频采样率、通道数信息&#xff1a; ffmpeg -protocol_whitelist "file,rtp,udp" -i XXX.sdp 而由《音视频入门…...

基于SpringBoot+Vue的驾校预约管理系统+LW示例参考

1.项目介绍 系统角色&#xff1a;管理员、普通用户、教练功能模块&#xff1a;用户管理、管理员管理、教练管理、教练预约管理、车辆管理、车辆预约管理、论坛管理、基础数据管理等技术选型&#xff1a;SpringBoot&#xff0c;Vue等测试环境&#xff1a;idea2024&#xff0c;j…...

基于k3s部署Nginx、MySQL、PHP和Redis的详细教程

先决条件 一台Linux服务器&#xff08;或本地虚拟机&#xff09;&#xff0c;建议Ubuntu/CentOS基础命令行操作能力确保服务器有至少2GB内存和10GB磁盘空间 1. 安装k3s&#xff08;极简Kubernetes&#xff09; 1.1 一键安装 # 用root用户或sudo权限执行以下命令 curl -sfL h…...

21.多态

一、多态概念 多种形态。 静态多态&#xff1a;编译时多态。&#xff08;函数重载&#xff09; 动态多态&#xff1a;运行时多态。&#xff08;继承关系下&#xff0c;调用父类指针或引用&#xff0c;对于不同的对象有不同的行为&#xff09; 二、多态的定义及实现 1&#xff…...

无再暴露源站!群联AI云防护IP隐匿方案+防绕过实战

一、IP隐藏的核心原理 群联AI云防护通过三层架构实现源站IP深度隐藏&#xff1a; 流量入口层&#xff1a;用户访问域名解析至高防CNAME节点&#xff08;如ai-protect.example.com&#xff09;智能调度层&#xff1a;基于AI模型动态分配清洗节点&#xff0c;实时更新节点IP池回…...

新版AndroidStudio / IDEA上传项目到Gitee

目录 1.Gitee创建仓库 2.填写仓库的信息 3.创建成功后复制仓库的地址 4.检查AndroidStudio是否配置Git 5.点击测试 6.之后Create Git Repository 7.添加到本地仓库 8.提交项目 9.添加上传仓库的地址 10.上传成功 11.去Gitee上刷新检查 1.Gitee创建仓库 2.填写仓库的…...

学习threejs,使用MeshFaceMaterial面材质容器

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.MeshFaceMaterial 二…...

python微分方程求解,分别用显式欧拉方法、梯形法、改进欧拉方法、二阶龙格库塔方法、四阶龙格库塔方法求解微分方程

微分方程在自然科学、工程技术、社会科学等多个领域都有着广泛而重要的应用。而求解微分方程是数学与应用数据领域一大难题&#xff0c;对于一些复杂的微分方程无法通过计算推导计算其精确的方程表达式与 结果&#xff0c;因此&#xff0c;我们通过数学理论。迭代&#xff0c;微…...

【ubuntu】——wsl中使用windows中的adb

一、引言 在 Windows Subsystem for Linux&#xff08;WSL&#xff09;环境下工作时&#xff0c;有时需要使用 Android Debug Bridge&#xff08;ADB&#xff09;工具与 Android 设备进行交互。通过特定设置&#xff0c;能够在 WSL 中便捷地调用 Windows 系统中已安装的 ADB&a…...

Git 常用命令完全指南:从入门到高效协作

文章需要结构清晰&#xff0c;涵盖从入门到进阶的常用命令&#xff0c;结合实例和注意事项&#xff0c;帮助用户快速掌握Git的核心功能&#xff0c;并应用到实际项目中 一、仓库初始化与基础操作 1. 创建与克隆仓库 # 初始化本地仓库 git init# 克隆远程仓库&#xff08;SSH方…...