bert,transformer架构图及面试题

这篇具有很好参考价值的文章主要介绍了bert,transformer架构图及面试题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Transformer详解 - mathor

bert,transformer架构图及面试题,bert,人工智能,深度学习

atten之后经过一个全连接层+残差+层归一化


class BertSelfOutput(nn.Module):
    def __init__(self, config):
        super().__init__()
        self.dense = nn.Linear(config.hidden_size, config.hidden_size)
        self.LayerNorm = nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps)
        self.dropout = nn.Dropout(config.hidden_dropout_prob)

    def forward(self, hidden_states: torch.Tensor, input_tensor: torch.Tensor) -> torch.Tensor:
        hidden_states = self.dense(hidden_states)  # 全连接 768->768
        hidden_states = self.dropout(hidden_states)
        hidden_states = self.LayerNorm(hidden_states + input_tensor) # 残差和层归一化
        return hidden_states

残差的作用:避免梯度消失

归一化的作用:避免梯度消失和爆炸,加速收敛

然后再送入一个两层的前馈神经网络


class BertIntermediate(nn.Module):
    def __init__(self, config):
        super().__init__()
        self.dense = nn.Linear(config.hidden_size, config.intermediate_size)
        if isinstance(config.hidden_act, str):
            self.intermediate_act_fn = ACT2FN[config.hidden_act]
        else:
            self.intermediate_act_fn = config.hidden_act

    def forward(self, hidden_states: torch.Tensor) -> torch.Tensor:
        hidden_states = self.dense(hidden_states)  # [1, 16, 3072] 映射到高维空间:768 -> 3072
        hidden_states = self.intermediate_act_fn(hidden_states)
        return hidden_states

class BertOutput(nn.Module):
    def __init__(self, config):
        super().__init__()
        self.dense = nn.Linear(config.intermediate_size, config.hidden_size)
        self.LayerNorm = nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps)
        self.dropout = nn.Dropout(config.hidden_dropout_prob)

    def forward(self, hidden_states: torch.Tensor, input_tensor: torch.Tensor) -> torch.Tensor:
        hidden_states = self.dense(hidden_states)  # 3072 -> 768
        hidden_states = self.dropout(hidden_states)
        hidden_states = self.LayerNorm(hidden_states + input_tensor)  # 残差和层归一化
        return hidden_states

 文章来源地址https://www.toymoban.com/news/detail-650393.html

面试题:为什么注意力机制中要除以根号dk

答:因为q和k做点积后值会很大,会导致反向传播时softmax函数的梯度很小。除以根号dk是为了保持点积后的值均值为0,方差为1.(q和k都是向量)

证明:已知q和k相互独立,且是均值为0,方差为1。

bert,transformer架构图及面试题,bert,人工智能,深度学习

则D(qi*ki)=D(qi)*D(ki)=1

 除以dk则D((qi*ki)/根号dk)=1/dk,每一项是这个值,但是根据上面红框的公式,一共有dk项求和,值为1

所以(q*k)/dk的方差就等1

 

(背景知识)方差性质:

D(CX)=C^2D(X)   ,其中C是常量

bert,transformer架构图及面试题,bert,人工智能,深度学习

 bert,transformer架构图及面试题,bert,人工智能,深度学习

 bert,transformer架构图及面试题,bert,人工智能,深度学习

 

到了这里,关于bert,transformer架构图及面试题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 人工智能各领域跨界能手——Transformer

    导读: Transformer源自于AI自然语言处理任务;在计算机视觉领域,近年来Transformer逐渐替代CNN成为一个热门的研究方向。此外,Transformer在文本、语音、视频等多模态领域也在崭露头角。本文对Transformer从诞生到逐渐壮大为AI各领域主流模型的发展过程以及目前研究进展进行梳理

    2024年02月07日
    浏览(28)
  • Transformer模型:人工智能技术发展的里程碑

    在当今人工智能领域,Transformer模型已经成为了一种划时代的技术,它不仅在自然语言处理(NLP)领域取得了突破性的进展,也为其他机器学习任务提供了新的思路和方法。我们今天将深入探讨Transformer模型,包括它的工作原理、对人工智能技术发展的影响,以及它在实际应用

    2024年03月25日
    浏览(76)
  • 【人工智能】结合代码通俗讲解 Transformer 推理性能优化技术:KV Cache

    目录 0. 引言 1. KV Cache是啥? 2. 背景 3. 原理 4. 实现细节 5. 总结 在解码器推理加速的时候,由于解码过程是一个token一个token的生成,如果每一次解码都从输入开始拼接好解码的token࿰

    2024年02月16日
    浏览(41)
  • 图解人工智能知识架构(从系统角度告诉你人工智能到底学些啥)

    很多人都想学习人工智能,但是却不知道该学些啥?从宏观的视角搞清楚人工智能到底需要学习哪些领域的知识是至关重要的。这就好比要去逛一座大的商场,非常需要一份商场的楼层导览图,它能够告诉你各个楼层商户的分布;又好比去一个风景区游玩,非常需要一份景区

    2024年02月04日
    浏览(35)
  • 人工智能系统的技术架构

    一、架构图 1.基础层包括: 硬件设施、软件设施、数据资源。其中在硬件设施方面,做深度学习和神经网络训练时候往往会涉及到模型训练是在CPU还是GPU上面,在这个里面GPU就是做计算加速的,第二个是智能芯片,市面上出现的智能语音芯片和图像识别的芯片就是对应这一块

    2024年02月13日
    浏览(35)
  • 常用的19道人工智能面试题,作为人工智能工程师,你知道多少?

    1. 人工智能的定义是什么? 答案:人工智能(Artificial Intelligence,简称AI)是一种模拟人类智能的技术和科学。它涉及到各种领域,包括机器学习、自然语言处理、计算机视觉、语音识别、决策树等。人工智能的目标是让计算机具备类似于人类的智能,能够自主地思考、学习

    2024年02月14日
    浏览(34)
  • 人工智能与底层架构:构建智能引擎的技术支柱

    导言          人工智能与底层架构的交融塑造了智能系统的基石,是推动智能时代发展的关键动力,本文将深入研究人工智能在底层架构中的关键作用,以及它对智能引擎的技术支持,探讨人工智能在计算机底层架构中的作用,以及这一融合如何塑造数字化未来。 1. 人工

    2024年02月03日
    浏览(83)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包