LLM面经(持续更新中)

news2024/9/28 21:27:20

Tokenizer

Norm

在这里插入图在这里插入图片描述
片描述

Batch Norm

好处

  • 使得模型训练收敛的速度更快
    • 每层的数据分布都不一样的话(解决Internal Covariance Shift),将会导致网络非常难收敛和训练,而如果把每层的数据都在转换在均值为零,方差为1的状态下,这样每层数据的分布都是一样的训练会比较容易收敛。
  • 防止梯度消失
    • 使得数据不落入饱和性激活函数(如sigmoid,tanh等)饱和区间,避免梯度消失的问题
  • 防止过拟合
    • 在网络的训练中,BN的使用使得一个minibatch中所有样本都被关联在了一起,因此网络不会从某一个训练样本中生成确定的结果,即同样一个样本的输出不再仅仅取决于样本的本身,也取决于跟这个样本同属一个batch的其他样本,而每次网络都是随机取batch,这样就会使得整个网络不会朝这一个方向使劲学习。一定程度上避免了过拟合。

但其实MIT在2019年说好处不是解决了ICS, 而是能让loss曲线更平滑

BN为什么训练时用batch的mean, 而推理时用全局的mean

在这里插入图片描述

因为用全量训练集的均值和方差容易过拟合,对于BN,其实就是对每一批数据进行归一化到一个相同的分布,而每一批数据的均值和方差会有一定的差别,而不是用固定的值,这个差别实际上能够增加模型的鲁棒性,也会在一定程度上减少过拟合。
也正是因此,BN一般要求将训练集完全打乱,并用一个较大的batch值,否则,一个batch的数据无法较好得代表训练集的分布,会影响模型训练的效果。

Layer Norm

为什么LLM用LN而不是BN

  • 句子长短不同
  • 没有道理, 在身高这个维度做normalization是有道理的, 这改变了分布之后并没有改变相对大小的意义, 比如高个子仍然是高个子. 但是如果在NLP中做这种归一化是没有道理的, 第一句话的"We", 第二句话的"I"之间是不存在这样的关系的
  • 假设我们有一个向量是[身高, 体重], 做了BN之后, 身高和体重之间没有直接的关系了, 他们都有各自自己的分布, 但是如果在句子上用BN, 不同维度之间的信息丧失之后, 何谈用注意力机制呢

Instance Norm

对一个channel内进行归一化, 多见于CV中的迁移学习

Group Norm

将多个channel组合到一起, 所以也是在NLP没多大用

Activation Function

sigmoid

σ ( x ) = 1 1 + e − x σ(x) = \frac{1}{1 + e^{-x}} σ(x)=1+ex1
缺点: 1. 均值不为0
2.导数小, 梯度消失
3. 计算复杂

tanh

tanh ⁡ ( x ) = e x − e − x e x + e − x \tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} tanh(x)=ex+exexex, 导数为 d d x tanh ⁡ ( x ) = 1 − tanh ⁡ 2 ( x ) \frac{d}{dx}\tanh(x) = 1 - \tanh^2(x) dxdtanh(x)=1tanh2(x)
解决了均值不为0, 但是仍然梯度小, 计算复杂

sigmoid和tanh这种bounded反而很适合概率门, 比如LSTM中各种门

ReLU

f ( x ) = { x if  x > 0 0 if  x ≤ 0 f(x) = \begin{cases} x &\text{if } x > 0 \\ 0 &\text{if } x \leq 0 \end{cases} f(x)={x0if x>0if x0

  • 好处
    • 计算简单
    • 不会梯度消失
    • 实验证明收敛更快
    • 缓解过拟合: ReLu会使一部分神经元的输出为0,这样就造成了 网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生。网络的稀疏性可以理解为让不同的神经元各司其职
  • 缺点:
    • “死亡ReLU"问题:如果学习率设置不当,可能导致某些神经元永远不会被激活,使得相应的参数无法得到更新。这种现象被称为"死亡ReLU”。
    • 均值不为0

Leaky ReLU

解决坏死

PReLU

f ( x ) = { x if  x > 0 α x if  x ≤ 0 f(x) = \begin{cases} x &\text{if } x > 0 \\ αx &\text{if } x \leq 0 \end{cases} f(x)={xαxif x>0if x0

ELU

f ( x ) = { x if  x > 0 α ( e x − 1 ) if  x ≤ 0 f(x) = \begin{cases} x &\text{if } x > 0 \\ α(e^x - 1) &\text{if } x \leq 0 \end{cases} f(x)={xα(ex1)if x>0if x0

α \alpha α是学习的参数,

  1. 缓解"死亡ReLU"问题:
    ELU在负值区间有非零输出,这意味着即使对于负输入,梯度也能够流过。这有助于减少"死亡神经元"的问题,使得网络中的更多单元能够持续学习和更新。
  2. 输出均值更接近零:
    由于ELU在负值区间的非线性特性,它能够将激活的平均值推向零。这有助于缓解Internal Covariate Shift问题,可能会加速学习过程。
  3. 平滑的梯度:
    ELU在整个定义域内都是平滑的,包括在零点附近。这种平滑性可以带来更稳定的梯度流,有利于优化过程。
  4. 负值饱和:
    与Leaky ReLU不同,ELU在负值区间会逐渐饱和到-α。这种特性可以增强对噪声和异常值的鲁棒性。

GeLU (Gaussian Error Linear Unit)

f ( x ) = x ∗ Φ ( x ) f(x) = x * Φ(x) f(x)=xΦ(x)
BERT, GPT2, Roberta都在用
motivation是对于较大x, 进行恒等映射, 对于很小的x, 直接map为0, 对于之间的得有梯度进行更新
在这里插入图片描述

Swish

f ( x ) = x ∗ s i g m o i d ( β x ) f(x) = x * sigmoid(βx) f(x)=xsigmoid(βx)
在这里插入图片描述

LLM参数量计算

  • seq_length: L — 序列中的token数量
  • d_model: D — Transformer模型的隐藏层维度
  • d_head: d — 每个注意力头处理的维度
  • n_tokens: V— 词表数量
  1. embedding matrix
    • V * D
  2. 多头注意力的参数主要来源于四个矩阵:W^Q, W^K, W^V, 和 W^O
    • 每个矩阵的维度为 [D, d]
    • 因为有 H 个头,所以每个头有一组独立的参数。
    • 总参数量为:3 * D * d * H = 3 * D * D
  • W^O:
    • 输出矩阵的维度为 [D, D]
    • 总参数量为:D * D

每个block总计4 * D* D, 总计4 * D * D * n_layers

  1. FFN参数量
    FNN先投射到4 * D, 再投射回来, 所以有两个矩阵: [D, 4 * D][4 * D, D]

  2. 其他
    LN: 一个 γ \gamma γ一个 β \beta β, 共计2 * D * n_layers
    Bias: D * n_layers
    positional_encoding: 固定, 可忽略

Attention Mechanism

Encoder, Decoder, Both

KV Cache

PEFT

Alignment

Loss(及代码)

link

正则化

link

为什么L1假设前验是拉普拉斯, L2是高斯 (to be done)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第一个golang项目

第一个golang项目 开发环境安装golangVisual Studio Code安装golang语言插件初始化项目创建目录初始化golang配置 开始开发安装所需依赖创建main.go创建配置文件创建命令版本命令查看指定目录指定后缀文件并将指定内容替换为新内容 打包并运行 前因后果:因为工作需要…

不可错过的10款电脑监控软件推荐,电脑监控软件哪个好?宝藏安利

电脑监控软件已成为企业管理和家庭安全的重要工具。 无论是为了提升工作效率、保障信息安全,还是为了监督孩子的学习情况,一款优秀的电脑监控软件都能发挥巨大作用。 本文将为您推荐10款不可错过的电脑监控软件,并详细分析它们的优势与特点&…

Elastic Stack(三):Logstash介绍及安装

目录 1 Logstash介绍1.1 组件介绍1.2 Logstash 工作原理 2 Logstash安装2.1 logstash-源码包安装8.1.01、logstash安装2、创建配置文件3、启动4、配置快速启动文件 1 Logstash介绍 1.1 组件介绍 Logstash是一个开源数据收集引擎,具有实时管道功能。Logstash可以动…

财富趋势金融大模型已通过备案

财富趋势金融大模型已通过备案 8月28日晚,国内领先的证券软件与信息服务提供商——财富趋势,公布了其2024年上半年财务报告: 今年上半年,财富趋势营收1.48亿元,同比增长0.14%;实现归母净利润为1亿元&#x…

适用于 Windows 的文件恢复软件

我很遗憾我在 Windows中从 PC 中删除了数据并再次移动了它们。当我检查时,什么都没有。是否有任何 Windows 数据恢复软件,或者是否可以想象?我会看到任何援助的价值。 文档、图像、音频等数据文件可能会因意外删除、感染攻击、系统崩溃等不良…

mac os系统

各种各样的系统优缺点-CSDN博客 目录 一:mac os是什么系统?图形用户界面的革命性操作系统 二:mac os是什么系统:高性能和无缝衔接,功能丰富、安全可靠 三:mac os是什么系统:全新界面设计和卓…

Tomcat 环境配置及部署Web项目

一.环境 Java Tomcat 二.Java环境 1.下载安装JDK 2.修改及新建环境变量 3.查看Java 版本 三.Tomcat 环境 1.下载及解压Tomcat 2.配置环境变量 3.验证安装,运行startup.bat 访问:http://localhost:8080/ 三.Web项目 1.修改Tomcat配置文件 2.拷贝W…

Python将Latex公式插入到Word中

推荐一个库,可以使用python将Latex公式插入到Word中显示 使用pip进行安装: pip install latex2word 示例将如下公式插入到word 公式1: f(x) \int_{-\infty}^\infty \hat f(x)\xi\,e^{2 \pi i \xi x} \,\mathrm{d}\xi 公式2: \int x^{\mu}…

重生奇迹MU 小清新职业智弓MM

游戏中有一种令人迷醉的职业——智弓MM,她们以高超的射箭技能闻名于世。本文将为您介绍这个悠闲的小清新职业,在游戏中的特点以及如何成为一名出色的智弓MM。跟随我们一起探索这个奇妙而神秘的职业吧! 悠闲的游戏节奏是游戏的初衷之一&#…

Dataease1.8.23 local本地安装

1、安装视频 手把手带你安装DataEase(一)Local模式部署 DataEase 免费开源BI工具 开源数据可视化分析工具 2、图文 安装模式 - DataEase 文档 注意点: 1、数据库:mysql 1)my.cnf 新增配置: #忽略大小…

35岁以上程序员转行AI绘画领域:以Stablediffusion和Midjourney为舟,扬帆起航

前言 在技术浪潮的推动下,35岁的程序员面临职业转型的十字路口。AI绘画领域,以其独特的艺术创新和技术融合,为中年程序员提供了一个全新的舞台。利用AI工具如Stablediffusion和Midjourney,35岁以上的程序员可以在这个领域实现自我…

第二证券:三折折叠屏手机呼之欲出,14股业绩暴涨超200%

智能制作龙头大手笔投建机器人超级工厂 8月29日晚间,埃夫特发布公告称,公司拟运用自有或自筹资金在安徽省芜湖市经过购买土地用于出资制作埃夫特机器人超级工厂暨全球总部项目,根据初步测算,项目出资金额约人民币18.93亿元&#…

CAD二次开发IFoxCAD框架系列(25)- 自动加载和初始化的使用

自动加载,意思就是我们不需要每次重启都得要去输入netload加载软件,这个我们该怎么解决,CAD给我们提供了注册表的方式来进行加载,IFoxCAD给我们提供了非常便捷的操作注册表的方法。 namespace ifoxgse.Core.System;public static…

【算法】带你快速搞懂 二分查找算法问题(图解+练习)

目录 ❤️一:二分查找分析简介❤️ ❤️二:二分查找代码实现❤️ ​编辑 ❤️三:二分查找代码分析图解❤️ ❤️四:解决二分查找相关题型❤️ 💕4.1:二分查找题型一💕 💕4.2&a…

java文件操作和IO流(详解)(๑•́ ₃ •̀๑)エー

目录 😄一.认识文件 1.1文件的概念与组成: 1.2树形结构组织与目录: 1.3文件路径: 😚二.文件系统操作 2.1File类概述: 2.2案例演示: 案例演示一: 演示案例二: 🤪…

【Python系列】signal信号处理

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Unix 系统

各种各样的系统优缺点-CSDN博客 目录 █ 操作系统的诞生 █ UNIX的诞生 █ Linux的诞生 █ Linux和Unix的关系 █ Linux的发行版 说到操作系统,大家都不会陌生。我们天天都在接触操作系统——用台式机或笔记本电脑,使用的是windows和macOS系统&…

Docker续2:docker部署前端项目

一、部署前端页面 [rootlocalhost ~]# ls //导入dist项目 anaconda-ks.cfg centos_httpd.tar centos_nginx centos.tar centos_yum.tar dist [rootlocalhost ~]# docker pull mysql //下载mysql [rootlocalhost ~]# docke…

深入垃圾回收:理解GC的核心算法与实现

垃圾回收(Garbage Collection,GC)是现代编程语言中一项关键技术。它不仅解决了内存管理中的诸多问题,还为开发者提供了一个更高效、更安全的编程环境。本文将深入探讨GC的起源、主要算法以及这些算法在不同编程语言中的具体实现。…

你好GPT-4o,程序员如何通过GPT-4o提升自己的编码能力

目录 round 1:图片识别能力ChatGPT4oClaude3.5 Sonnet图片识别能力小结:图片识别能力,ChatGPT4o完胜。 round 2:代码能力ChatGPT4oClaude3.5 Sonnet代码能力小结:代码能力,Claude3.5 Sonnet小胜。 round 3&…