【淘汰9成NLP面试者的高频面题】LSTM中的tanh和sigmoid分别用在什么地方?为什么?

devtools/2024/11/26 13:30:35/

博客主页: [青松]

本文专栏: NLP 大模型百面百过


【淘汰9成NLP面试者的高频面题】LSTM中的tanh和sigmoid分别用在什么地方?为什么?

重要性:★★★ 💯

本题主要考察面试者对以下问题的理解:

  • ① 数据特征和模型权重的区别

  • ② 门控机制的软性特征筛选特点

这是我常用的一个面试题。看似简单的基础题,但在面试中能准确回答的不足10% ,常识题的错误反而会让人印象深刻。


【NLP 大模型百面百过】系列文章:

  • 【淘汰9成NLP工程师的常识题】BPE 分词器是如何训练的?

  • 【淘汰9成NLP工程师的常识题】LSTM 如何缓解 RNN 梯度消失的问题?

  • 【淘汰9成NLP工程师的常识题】LSTM的前向计算如何进行加速?

  • 【淘汰9成NLP工程师的常识题】多头注意力相对于单头注意力有什么优势?

  • ......


LSTM 单元的计算图

在大多数情况下,门使用sigmoid函数作为激活函数,而包含实质信息的数据则使用tanh函数作为激活函数。

  • 因为tanh的输出是−1.0 ~ 1.0的实数。我们可以认为这个−1.0 ~ 1.0的数值表示某种被编码的“信息”的强弱(程度)。

  • 而sigmoid 函数的输出是0.0~1.0的实数,表示数据流出的比例。


举一反三

拔高(举一反三):深刻理解门控机制,并且知晓门控机制在LSTM、IA3、SwiGLU等中都有应用。

门机制:控制水闸的门就能阻止或者释放水流。类似的,门机制的作用是控制数据的流动。

如上图所示,门的开合程度由 0.0 ~1.0 的实数表示,通过这个数值控制流出的水量,sigmoid 函数用于求门的开合程度(sigmoid 函数的输出范围在 0.0 ~ 1.0)。

① LSTM 中门控机制的应用:

② PEFT 的 IA3 方法中门控机制的应用:

IA3的思想:抑制和放大内部激活,通过可学习的向量对激活值进行抑制或放大。具体来说,会对K、V、FFN三部分的值进行调整,训练过程中同样冻结原始模型的权重,只更新可学习的部分向量部分。训练完成后,与Lora类似,也可以将学习部分的参数与原始权重合并,没有额外推理开销。

③ LLM 的 SwiGLU 激活函数中门控机制的应用:

SwiGLU在计算中引入了门控机制,门控机制可以使用更软性的权重筛选有用的信息,并且梯度更平滑。ReLU和SwiGLU的可视化对比:


NLP Github 项目:

  • NLP 项目实践:fasterai/nlp-project-practice

    介绍:该仓库围绕着 NLP 任务模型的设计、训练、优化、部署和应用,分享大模型算法工程师的日常工作和实战经验

  • AI 藏经阁:https://gitee.com/fasterai/ai-e-book

    介绍:该仓库主要分享了数百本 AI 领域电子书

  • AI 算法面经:fasterai/nlp-interview-handbook#面经

    介绍:该仓库一网打尽互联网大厂NLP算法面经,算法求职必备神器

  • NLP 剑指Offer:https://gitee.com/fasterai/nlp-interview-handbook

    介绍:该仓库汇总了 NLP 算法工程师高频面题


http://www.ppmy.cn/devtools/137124.html

相关文章

计算机网络socket编程(3)_UDP网络编程实现简单聊天室

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 计算机网络socket编程(3)_UDP网络编程实现简单聊天室 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记,欢迎大家在评论区交流…

GitLab|GitLab报错:Restoring PostgreSQL database gitlabhq_production...

错误信息: Restoring PostgreSQL database gitlabhq_production ... ERROR: must be owner of extension pg_trgm ERROR: must be owner of extension btree_gist ERROR: must be owner of extension btree_gist ERROR: must be owner of extension pg_trgm 解决方案…

10大排序总结

1. 冒泡排序 (Bubble Sort) def bubble_sort(arr):n len(arr)# 遍历数组中的每个元素for i in range(n):# 内层循环,从数组的第一个元素到倒数第 i 1 个元素for j in range(0, n - i - 1):# 如果当前元素比下一个元素大,则交换if arr[j] > arr[j …

CVE-2022-4230

打开什么都没有 使用dirsearch扫描到一个wp-admin 访问wp-admin是一个登陆页面 账号密码都在标题中 登陆后是这个页面 在WP Statistics < 13.2.9 – 经过身份验证的 SQLi |CVE 2022-4230 |插件漏洞 (wpscan.com)中&#xff0c;里边有一段对漏洞的描述。 https://wpscan.com…

活着就好20241126

今天是26号&#xff0c;周二&#xff0c;一个延续新开始并蓄积力量的日子。亲爱的朋友们&#xff0c;大家早上好&#xff01;在度过了一个充满活力与重启的周一后&#xff0c;我们踏入了又一个充满挑战与机遇的工作日。周二&#xff0c;作为新一周的深入阶段&#xff0c;是我们…

spring(四) aop

aop自定义配置 aop利用了spring的自定义标签 http\://www.springframework.org/schema/aoporg.springframework.aop.config.AopNamespaceHandler在bean的配置文件中只要找到了aop命名空间对应的标签&#xff0c;就会通过AopNamespaceHandler进行解析。 Overridepublic void i…

Python双向链表、循环链表、栈

一、双向链表 1.作用 双向链表也叫双面链表。 对于单向链表而言。只能通过头节点或者第一个节点出发&#xff0c;单向的访问后继节点&#xff0c;每个节点只能记录其后继节点的信息&#xff08;位置&#xff09;&#xff0c;不能向前遍历。 所以引入双向链表&#xff0c;双…

浅谈网络 | 传输层之套接字Socket

目录 基于 TCP 协议的 Socket 程序调用过程基于 UDP 协议的 Socket 程序函数调用过程服务器如何接入更多的项目构建高并发服务端&#xff1a;从多进程到 IO 多路复用 在前面&#xff0c;我们已经介绍了 TCP 和 UDP 协议&#xff0c;但还没有实践过。接下来这一节&#xff0c;我…