【详细讲解版】史上最全transformer面试题

史上最全transformer面试题答案

    • 1.Transformer为何使用多头注意力机制?(为什么不使用一个头)
    • 2.Transformer为什么Q和K使用不同的权重矩阵生成,为何不能使用同一个值进行自身的点乘?
    • 3.Transformer计算attention的时候为何选择点乘而不是加法?两者计算复杂度和效果上有什么区别?
    • 4.为什么在进行softmax之前需要对attention进行scaled(为什么除以dk的平方根),并使用公式推导进行讲解
    • 5.在计算attention score的时候如何对padding做mask操作?
    • 6.为什么在进行多头注意力的时候需要对每个head进行降维?(可以参考上面一个问题)
    • 7.大概讲一下Transformer的Encoder模块?
    • 8.为何在获取输入词向量之后需要对矩阵乘以embedding size的开方?意义是什么?
    • 9.简单介绍一下Transformer的位置编码?有什么意义和优缺点?
    • 10.你还了解哪些关于位置编码的技术,各自的优缺点是什么?
    • 11.简单讲一下Transformer中的残差结构以及意义。
    • 12.为什么transformer块使用LayerNorm而不是BatchNorm?LayerNorm 在Transformer的位置是哪里?
    • 13.简答讲一下BatchNorm技术,以及它的优缺点。
    • 14.简单描述一下Transformer中的前馈神经网络?使用了什么激活函数?相关优缺点?
    • 15.Encoder端和Decoder端是如何进行交互的?(在这里可以问一下关于seq2seq的attention知识)
    • 16.Decoder阶段的多头自注意力和encoder的多头自注意力有什么区别?(为什么需要decoder自注意力需要进行 sequence mask)
    • 17.Transformer的并行化提现在哪个地方?Decoder端可以做并行化吗?
    • 18.简单描述一下wordpiece model 和 byte pair encoding,有实际应用过吗?
    • 19.Transformer训练的时候学习率是如何设定的?Dropout是如何设定的,位置在哪里?Dropout 在测试的需要有什么需要注意的吗?
    • 20.引申一个关于bert问题,bert的mask为何不学习transformer在attention处进行屏蔽score的技巧?
    • 参考:

注意:重点记忆点加粗表示

1.Transformer为何使用多头注意力机制?(为什么不使用一个头)

(1)Transformer使用多头注意力机制的主要原因

  • 捕捉不同的特征:每个头可以学习和捕捉输入序列中的不同特征或模式。
  • 增强模型的表达能力:多个头的并行计算可以丰富模型的表达能力,使其能够关注到输入的不同方面。
    具体而言,多头注意力机制通过并行计算多个不同的注意力头,每个头有自己的一组权重矩阵,最后将这些头的输出拼接起来,再进行线性变换,从而综合各个头的信息。

(2)并且作者发现这样效果好,如下图:
在这里插入图片描述

2.Transformer为什么Q和K使用不同的权重矩阵生成,为何不能使用同一个值进行自身的点乘?

Q(查询)和K(键)使用不同的权重矩阵生成,是为了在计算注意力得分时能够捕捉到输入序列中不同的特征。如果使用同一个值进行自身的点乘,模型无法有效区分查询向量和键向量的不同特征,导致注意力机制失去灵活性和区分能力。因此,通过不同的权重矩阵生成Q和K,可以增强模型的表达能力,确保注意力机制能够更好地识别和利用输入序列中的信息。

3.Transformer计算attention的时候为何选择点乘而不是加法?两者计算复杂度和效果上有什么区别?

  1. 捕捉相关性:点乘能够更好地捕捉查询(Q)和键(K)之间的相关性。点乘可以视为一种元素级别的加权求和,权重由Q和K的对应元素共同决定,这使得模型能够更精确地衡量它们之间的匹配程度。
  2. 计算效率:虽然点乘和加法在单个元素操作的计算复杂度上相似,但在矩阵运算中,点乘可以利用现代硬件(如GPU)上的并行计算优势,实现高效的大规模运算。
  3. 可扩展性:点乘天然支持扩展到多头注意力(Multi-Head Attention),这是Transformer架构中的一个重要特性。在多头注意力中,模型并行地执行多个点乘操作,然后将结果合并,以捕获不同子空间的信息。
  4. 梯度传播:点乘在反向传播中具有更好的梯度传播特性。在深度学习中,梯度的传播对于模型的训练至关重要,点乘操作的梯度计算相对简单,有助于优化算法的稳定性和收敛速度。
  5. 泛化能力:点乘作为一种通用的操作,可以更容易地泛化到不同的任务和模型架构中。加法虽然简单,但在捕捉复杂模式和关系方面可能不如点乘有效。

4.为什么在进行softmax之前需要对attention进行scaled(为什么除以dk的平方根),并使用公式推导进行讲解

在Transformer模型中,自注意力(Self-Attention)机制的核心是计算一个查询(Query, Q Q Q)与所有键(Key, K K K)的点积,然后通过softmax函数进行归一化,得到注意力分布。公式如下:

Attention ( Q , K , V ) = softmax ( Q K T d k ) V \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V Attention(Q,K,V)=softmax(dk QKT)V

其中, V V V 是值(Value), d k d_k dk 是键(Key)的维度。

为什么需要进行缩放(Scaling)?

  1. 梯度消失/爆炸问题:在深度学习中,当模型很深时,梯度可能会随着层数的增加而变得非常小(梯度消失)或者非常大(梯度爆炸)。在自注意力中,如果不进行缩放,随着 d k d_k dk的增加, Q K T QK^T QKT的结果可能会变得非常大,导致softmax函数的梯度变得非常小,进而导致梯度消失问题。

  2. 稳定性:缩放操作提高了模型的稳定性。通过除以 d k \sqrt{d_k} dk ,我们确保了即使在 d k d_k dk较大的情况下,softmax函数的输入也不会变得过大,从而使得梯度保持在一个合理的范围内。

  3. 概率分布:softmax函数的输出是一个概率分布,其值的范围在0到1之间。如果不进行缩放,当 d k d_k dk较大时, Q K T QK^T QKT的值可能会非常大,导致softmax函数的输出值远离0和1,这会使得模型难以学习到有效的注意力分布。

公式推导

假设我们有一个查询 Q Q Q和一个键 K K K,它们都是维度为 d k d_k dk 的向量。我们计算它们的点积:

score = Q K T \text{score} = QK^T score=QKT

在没有缩放的情况下,softmax函数的计算如下:

Attention ( Q , K , V ) = softmax ( Q K T ) V \text{Attention}(Q, K, V) = \text{softmax}(QK^T)V Attention(Q,K,V)=softmax(QKT)V

其梯度为:

∂ Attention ∂ Q = softmax ( Q K T ) ⊙ ( V T ∂ Loss ∂ V ) \frac{\partial \text{Attention}}{\partial Q} = \text{softmax}(QK^T) \odot \left( V^T \frac{\partial \text{Loss}}{\partial V} \right) QAttention=softmax(QKT)(VTVLoss)

其中, ⊙ \odot 表示Hadamard积(元素乘积), ∂ Loss ∂ V \frac{\partial \text{Loss}}{\partial V} VLoss是损失函数对值 V V V的梯度。

d k d_k dk较大时, Q K T QK^T QKT 的值可能会非常大,导致softmax函数的梯度非常小,因为softmax函数的梯度与输入值的差值成反比。因此,我们通过缩放来控制这个差值的大小:

Attention ( Q , K , V ) = softmax ( Q K T d k ) V \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V Attention(Q,K,V)=softmax(dk QKT)V

这样,即使 d k d_k dk较大, Q K T d k \frac{QK^T}{\sqrt{d_k}} dk QKT 的值也不会过大,从而保持了梯度的稳定性。梯度变为:

∂ Attention ∂ Q = softmax ( Q K T d k ) ⊙ ( V T d k ∂ Loss ∂ V ) \frac{\partial \text{Attention}}{\partial Q} = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) \odot \left( \frac{V^T}{\sqrt{d_k}} \frac{\partial \text{Loss}}{\partial V} \right) QAttention=softmax(dk QKT)(dk VTVLoss)

通过这种方式,我们确保了即使在高维情况下,梯度也能保持在一个合理的范围内,从而有助于模型的训练和收敛。

5.在计算attention score的时候如何对padding做mask操作?

在计算注意力得分时,对padding进行mask操作目的是为了避免模型将注意力集中在填充位置上(因为这些位置不包含实际的有用信息)。具体做法是在计算注意力得分之前,对填充位置对应的得分加上一个非常大的负数(如负无穷),通过softmax后,这些位置的权重接近于零,从而不影响实际有效的序列位置。

注:什么是padding?
在处理自然语言时,输入的序列长度可能不同。为了让所有序列能够在一个批次中进行计算,我们会在较短的序列后面填充特殊的标记,通常是零(0)。这些填充标记就是padding。

注:为什么要对padding做mask操作?
如果不对padding做mask操作,模型可能会误把这些填充位置当作有效信息进行处理,从而影响注意力得分的计算,最终影响模型的性能。因此,需要在注意力计算时忽略这些填充位置。

6.为什么在进行多头注意力的时候需要对每个head进行降维?(可以参考上面一个问题)

回答:在进行多头注意力时,需要对每个头进行降维,以保证每个头的计算复杂度不会过高,同时能够并行计算。将输入的维度分成多个头,可以让每个头处理更小维度的数据,从而降低单头的计算复杂度,减小参数量,提高计算效率。并且通过多个头的组合,增强模型的表达能力和鲁棒性

详细讲解:

  1. 降低计算复杂度
    假设输入的维度是d,每个头的输出维度也是d。如果不进行降维,每个头的输出维度仍然是d,那么在拼接多个头的输出时,最终的维度将是d * num_heads(num_heads表示头的数量)。这样维度会变得非常大,计算复杂度和内存需求都大大增加。
    通过对每个头进行降维,每个头的输出维度变为d / num_heads。这样,即使拼接多个头的输出,最终的维度也仍然是d,保持了与输入相同的维度,避免了计算复杂度和内存需求的急剧增长。

  2. 保持模型的参数数量可控
    模型的参数数量直接影响训练的难度和时间。如果每个头都不进行降维,那么模型的参数数量会大大增加,训练起来会非常困难。而对每个头进行降维,可以控制每个头的参数数量,从而使得整个模型的参数数量保持在一个可控范围内。

  3. 维持信息的多样性
    通过对每个头进行降维,可以确保每个头在一个更小的子空间中进行注意力计算。这意味着每个头可以在不同的子空间中学习到不同的特征,增加了模型的多样性和鲁棒性。最终的拼接结果融合了不同子空间的信息,使得模型能够更全面地理解输入数据。

7.大概讲一下Transformer的Encoder模块?

Transformer的Encoder模块由N层堆叠组成,每层包括两个子层:

  1. 多头自注意力机制(Multi-Head Self-Attention)
  2. 前馈神经网络(Feed-Forward Neural Network)

每个子层后都接一个残差连接(Residual Connection)和层归一化(Layer Normalization)。输入首先通过嵌入层(Embedding),然后通过位置编码(Positional Encoding)加上位置信息,再依次经过各层编码器,最终输出编码后的序列表示。
在这里插入图片描述

8.为何在获取输入词向量之后需要对矩阵乘以embedding size的开方?意义是什么?

在获取输入词向量之后,需要对矩阵乘以embedding size的平方根,是为了保持向量的尺度稳定。Embedding的值通常是随机初始化的,乘以开方后的结果能保证在后续的点乘计算中,值的尺度不会过大或过小从而有利于模型的训练稳定性

9.简单介绍一下Transformer的位置编码?有什么意义和优缺点?

Transformer的位置编码(Positional Encoding)是为了给模型提供序列中各个位置的信息,因为Transformer本身不具备顺序信息。位置编码通过正弦和余弦函数生成,对不同位置生成不同的编码。
优点是能够显式地提供位置信息,易于计算,缺点是位置编码固定,不能根据上下文动态调整。

10.你还了解哪些关于位置编码的技术,各自的优缺点是什么?

除了位置编码,其他位置表示技术还有:

  • 可学习的位置编码(Learnable Positional Encoding):位置编码作为可学习的参数,优点是灵活,能够根据数据调整,缺点是可能需要更多的训练数据。
  • 相对位置编码(Relative Positional Encoding):考虑到相对位置关系,优点是能够捕捉相对位置信息,适用于长序列,缺点是实现复杂度高。
  • 混合位置编码(Hybrid Positional Encoding):结合绝对和相对位置编码,优点是综合两者优点,缺点是实现复杂度增加。

11.简单讲一下Transformer中的残差结构以及意义。

Transformer中的残差结构(Residual Connection)是在每个子层输出后,加入输入的原始信息,通过直接相加实现。这有助于缓解深层网络中的梯度消失问题,保证信息流的顺畅,促进训练过程的稳定和快速收敛。

12.为什么transformer块使用LayerNorm而不是BatchNorm?LayerNorm 在Transformer的位置是哪里?

Transformer块使用LayerNorm而不是BatchNorm,因为LayerNorm在序列模型中表现更好。BatchNorm在处理变长序列和小批量数据时不稳定,而LayerNorm对每个样本独立进行归一化,更适合变长序列数据。LayerNorm通常位于每个子层的残差连接之后。

13.简答讲一下BatchNorm技术,以及它的优缺点。

BatchNorm(批量归一化)是对每个小批量数据进行归一化,减去均值除以标准差,再引入可学习的缩放和平移参数。
优点是加快训练速度,缓解梯度消失和爆炸问题。缺点是在小批量或变长序列中效果不稳定,不适合序列模型。

14.简单描述一下Transformer中的前馈神经网络?使用了什么激活函数?相关优缺点?

Transformer中的前馈神经网络FeedForward由两个线性变换和一个激活函数组成,激活函数通常是ReLU。如下公式:max相当于Relu
优点是增加模型的非线性表达能力,结构简单高效。缺点是ReLU可能导致部分神经元输出恒为零(死神经元),需要慎重选择超参数。
在这里插入图片描述

15.Encoder端和Decoder端是如何进行交互的?(在这里可以问一下关于seq2seq的attention知识)

Encoder端和Decoder端通过注意力机制进行交互。Encoder将输入序列编码成隐藏表示,Decoder通过多头注意力机制,将编码器的输出作为键和值,解码器的输出作为查询,计算注意力得分,从编码器的输出中提取相关信息,生成新的输出序列。

下面用一个更通俗的类比来解释Transformer中编码器(Encoder)和解码器(Decoder)之间的交互。想象一下,编码器和解码器是两个团队,它们要共同完成一个任务:把一种语言翻译成另一种语言。

  1. 编码器团队(Encoder)

    • 编码器团队的任务是仔细阅读原始语言(比如英语)的句子,并理解它的意思。
    • 每个团队成员(编码器层)都会贡献自己对句子的理解,最终形成一个整体的理解(隐藏状态)。
  2. 解码器团队(Decoder)

    • 解码器团队的任务是根据编码器团队的理解,逐字逐句地把句子翻译成目标语言(比如法语)。
  3. 交互的桥梁:注意力机制

    • 当解码器团队开始工作时,他们需要不断地与编码器团队沟通,以确保翻译的准确性。
    • 他们通过一个特殊的“对讲机”(注意力机制)来沟通。解码器团队的每个成员(解码器层)都会问编码器团队:“在这个翻译步骤中,原文中的哪个部分最重要?”
  4. 编码器团队的回答

    • 编码器团队会根据解码器团队的问题,给出一个“重要性评分”(注意力权重),告诉解码器团队在当前翻译步骤中,原文的哪些部分是重要的。
  5. 解码器团队的翻译

    • 根据编码器团队给出的重要性评分,解码器团队会综合考虑这些信息,并决定下一个翻译出的词是什么。
    • 这个过程会一直重复,直到整个句子被翻译完成。
  6. 防止作弊的规则(掩码)

    • 在翻译过程中,有一个规则:解码器团队不能提前看到未来的词(不能作弊)。所以他们会用一个“遮盖布”(掩码)来确保在翻译当前词时,只能看到已经翻译出来的部分。

通过这种方式,Transformer模型中的编码器和解码器可以协同工作,完成复杂的任务,比如语言翻译、文本摘要等。编码器团队深入理解输入信息,而解码器团队则利用这些理解,一步步构建出高质量的输出。

(Seq2seq(序列到序列)模型中,注意力机制用来解决长序列依赖问题。传统的seq2seq模型在解码时只能使用Encoder的最后一个隐状态,这对于长序列可能效果不好。注意力机制通过计算Decoder的每个时间步与Encoder输出的所有时间步之间的相关性,动态地选择信息,提升了翻译效果。)

16.Decoder阶段的多头自注意力和encoder的多头自注意力有什么区别?(为什么需要decoder自注意力需要进行 sequence mask)

Decoder阶段的多头自注意力需要进行sequence mask,以防止模型在训练时看到未来的单词。Encoder的多头自注意力没有这种限制。Sequence mask确保模型只关注已生成的部分,避免信息泄露,提高训练的效果。

17.Transformer的并行化提现在哪个地方?Decoder端可以做并行化吗?

Transformer的并行化体现在注意力机制和前馈神经网络上,因为每个时间步的计算彼此独立。
Decoder端不能完全并行化,因为当前步的输出依赖于前一步的结果,但自注意力机制部分可以并行化。

18.简单描述一下wordpiece model 和 byte pair encoding,有实际应用过吗?

WordPiece Model和Byte Pair Encoding(BPE)都是子词分割技术。
WordPiece将词分割成子词,提高模型的词汇覆盖率。BPE是合并最频繁的字对

  1. WordPiece Model:
    想象一下,你有一个工具箱,里面有各种各样的拼图碎片,每个碎片代表一个语素或词的一部分。WordPiece模型就像这个工具箱,它把单词分解成更小的、有意义的片段。
    这样做的好处是,即使工具箱里没有某个完整的单词,你也可以通过拼凑这些小片段来表达这个单词的意思。在机器学习中,这可以帮助模型理解和生成新的、未见过的词汇。

  2. Byte Pair Encoding(BPE):
    BPE更像是一种编码技巧,它观察文本数据,找出最常见的字节对,然后把这些字节对合并成一个单一的单元。
    比如,“power”和“ful”这样的词,如果它们经常一起出现,BPE就会把它们看作一个单元。这样做可以减少词汇表的大小,同时保持词汇的多样性。
    实际应用:

这两种技术在自然语言处理(NLP)中非常实用,特别是在机器翻译、文本生成等任务中。它们帮助模型处理那些在训练数据中很少见或完全没见过的词汇。

19.Transformer训练的时候学习率是如何设定的?Dropout是如何设定的,位置在哪里?Dropout 在测试的需要有什么需要注意的吗?

(1)预热策略: Transformer通常使用预热(warm-up)策略和学习率衰减相结合的方法。在训练的前一部分迭代中,学习率逐渐增加,然后按照预定的方式逐渐减少。
在这里插入图片描述
其中,d model ​是模型的维度,step_num 是当前训练步数,warmup_steps 是预热步数。

(2)Transformer中使用Dropout层来防止过拟合,具体位置包括:

  • 自注意力机制中的注意力权重计算后。
  • 前馈神经网络的输出。
  • 残差连接后的输出。

设定:通常Dropout概率设定为0.1,但可以根据具体任务和数据进行调整。

(3)测试时:不使用Dropout:在测试或推理阶段,Dropout不再使用,即不会随机丢弃节点,而是使用所有节点参与计算。

20.引申一个关于bert问题,bert的mask为何不学习transformer在attention处进行屏蔽score的技巧?

BERT的掩码设计目的是为了在预训练过程中让模型学习丰富的上下文表示,而不是为了防止信息泄漏,这与Transformer中attention mask的用途不同

BERT中的mask:

  1. 预训练任务:BERT使用掩码语言模型(Masked Language Model, MLM)进行预训练,即在输入序列中随机选择一些单词进行掩码,然后让模型预测这些掩码位置的单词。
  2. 原因:独立于位置的预测:BERT的掩码操作是对输入的特定位置进行掩码,目的是让模型能够学习到每个单词的上下文表示,而不需要关注具体位置。
  3. 不同任务:BERT的设计目标是让模型学习到每个单词的上下文表示,而Transformer的attention掩码(mask)主要用于在序列生成中防止信息泄漏,如自回归模型中防止预测未来的单词。

Transformer的注意力掩码(attention mask):

  1. 屏蔽未来信息:在自回归模型中,如GPT,使用注意力掩码来屏蔽未来的单词,以防止信息泄漏,从而确保模型只能利用当前和过去的信息进行预测。
  2. 序列长度不同:在处理不同长度的序列时,使用掩码来标识实际存在的部分和填充部分(padding),从而保证模型的注意力计算只在有效部分进行。

参考:

1.引用答案解析(1)—史上最全Transformer面试题:
2.建议先看看这篇文章,复习一下,然后再看面试题,这篇写的很全面一文读懂transformer

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/669070.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Excel 将分组头信息填入组内明细行

Excel由多个纵向的分组表组成,组之间由空白行隔开,每组第1、2行的第2格是分组表头,第3行是列头,第1列和第6列数据是空白的: ABCDEF1ATLANTIC SPIRIT2Looe3VesselSpeciesSizeKgDateLocation4POLLACK22.523/04/20245POL…

内网-win1

一、概述 1、工作组:将不同的计算机按功能(或部门)分别列入不同的工作组 (1)、查看(windows) 查看当前系统中所有用户组:打开命令行--》net localgroup查看组中用户:打开命令行 --》net localgroup 后接组名查看用户…

进程与线程(一)

进程与线程(一) 理解什么是并发编程进程的相关概念什么是进程对比进程和程序理解进程是一个独立的可调度的任务理解进程是程序执行和资源管理的最小单位进程状态转换图进程的种类 进程相关命令进程状态标志ps命令-aux:-axj:(可以查看到进程的PPID)pstree…

【通信专题】I2C通信硬件概述

通信协议在组织设备之间通信时扮演着重要角色。它基于系统要求而以不同方式进行设计。此类协议具有明确的、为实现成功通信而协商一致的规则。 I2C历史 I2C,即Inter-Integrated Circuit,是一种常用的串行通信协议。I2C总线创建于1982年,由飞利浦公司设计,旨在利用简单、稳…

APISIX的安装与测试(springboot服务测试)

安装: 1.1安装依赖: curl https://raw.githubusercontent.com/apache/apisix/master/utils/install-dependencies.sh -sL | bash -1.2 安装 OpenResty yum-config-manager --add-repo https://openresty.org/package/centos/openresty.reposudo yum i…

Java关键字详解

文章目录 什么是关键字?数据类型(10个)byte、char、boolean、short、int、float、long、double、void、enum 流程控制(12个)if、else、do、while、for 、switch、case、assertbreak(跳出循环)co…

[有监督学习] 8.详细图解神经网络

神经网络 一直以来,人们都认为神经网络(Neural Network,NN)是模仿生物体的神经网络设计而成的。神经网络既可以用于回归,也可以用于分类,但在实际应用中常用于分类。基于神经网络的深 度学习因在图像识别和…

五分钟“手撕”栈

实现代码放开头,供大家学习与查阅 目录 一、实现代码 二、什么是栈 三、栈的常见操作 底层实现是链表。 入栈 出栈 四、Stack的使用 五、栈的习题 第一题 第二题 第三题 第四题 第五题 第六题 第七题 六、栈、虚拟机栈、栈帧的区别 目录 一、…

Python的第三方库OS库

读者大大们好呀!!!☀️☀️☀️ 🔥 欢迎来到我的博客 👀期待大大的关注哦❗️❗️❗️ 🚀欢迎收看我的主页文章➡️寻至善的主页 文章目录 🔥前言🚀OS/SHUTIL 的方法描述🚀OS/SHUTIL…

Streamsets-JDBC模式使用更新时间字段数据同步

StreamSets的开源地址:https://github.com/streamsets/datacollector-oss Streamsets官网地址:https://streamsets.com/ Streamsets文档地址:https://docs.streamsets.com/portal/datacollector/3.16.x/help/index.html 我又来写Streamsets了…

安全测试扫描利器-Burpsuite

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

全自动打包封箱机:解析其在产品质量与安全保障方面的作用

在当今快节奏的生产环境中,全自动打包封箱机以其高效、精准的特点,正逐渐成为生产线上的得力助手。它不仅提升了生产效率,更在产品质量与安全保障方面发挥着举足轻重的作用。星派将详细解析全自动打包封箱机在产品质量与安全保障方面的作用。…

自监督表示学习和神经音频合成实现语音修复

关键词:语音修复、自监督模型、语音合成、语音增强、神经声码器 语音和/或音频修复的目标是增强局部受损的语音和/或音频信号。早期的工作基于信号处理技术,例如线性预测编码、正弦波建模或图模型。最近,语音/音频修复开始使用深度神经网络&a…

Qt | QSplitter(分离器或分隔符)、QSplitterHandle 类(分界线)

​01、一、QSplitter 类(分离器) 1、QSplitter 类继承自 QFrame 类,也就是说该类是一个带有边框的可视部件。 2、QSplitter 类实现分离器,分离器用于分离两个部件,用户可通过拖动部件之间的分界线来调整子部件的大小。 3、QSplitter 的原理(见上图):QSplitter 的实现原理…

AWS中国峰会2024 半日游

亚马逊云科技中国峰会于2024年5月29-30日在上海举办 今年就去了半天,去年也是去过的,不过今年的活动个人感觉比去年略微凌乱了一点。 今年的峰会方向和去年一致,均是AI方向的各项内容(基础架构、安全、服务、游戏、驾驶、各行各…

浅谈防勒索病毒的关键

主机加固能否做好防勒索病毒的工作,一直是网络安全领域的重要议题。随着信息技术的飞速发展,勒索病毒等网络威胁层出不穷,对企业和个人数据安全构成了严重威胁。因此,如何通过主机加固提升安全防护能力,防止勒索病毒的…

大模型管理工具Ollama搭建及整合springboot

目录 一、Ollama介绍 1.1 什么是Ollama 1.2 Ollama特点与优势 二、Ollama本地部署 2.1 版本选择 2.2 下载安装包 2.3 执行安装 2.4 Ollama常用命令 三、使用Ollama部署千问大模型 3.1 千问大模型介绍 3.2 部署过程 四、springboot接入Ollama 4.1 引入Ollama依赖 4…

音频信号分析与实践

音频信号分析与实践课程,方便理解音频信号原理和过程 1.音频信号采集与播放 两种采样模式和标准的采样流程 人说话的声音一般在2kHz一下: 采样频率的影响:采样率要大于等于信号特征频率的2倍;一般保证信号完整,需要使用10倍以上的…

python找出100~999之间的水仙花数字

水仙花数字:个位,十位,百位的立方之和等于这个数本身 例如:153 1^35^33^3 for i in range(100, 1000):bw i // 100sw i % 100 // 10gw i % 10if bw ** 3 sw ** 3 gw ** 3 i:print(i)

SpringBoot读取json文件

使用SpringBoot读取json文件作为接口&#xff0c;前端Vue可以通过跨域访问接口数据 一、创建SpringBoot 文件 创建一个 SpringBoot 文件&#xff0c;文件结构目录如下&#xff1a; 二、在pom.xml添加依赖 <!--Spring Boot 依赖--> <parent><artifactId>sp…