LLama的激活函数SwiGLU 解释

news2024/11/17 1:51:26

目录

Swish激活函数

1. Swish函数公式

LLaMA模型中的激活函数

1. SwiGLU激活函数

2. SwiGLU激活函数的表达式

3. SwiGLU激活函数的优势


Swish激活函数

Swish是一种激活函数,其计算公式如下:

1. Swish函数公式

Swish(x) = x * sigmoid(x)

其中,sigmoid(x)是sigmoid函数,计算公式为:

sigmoid(x) = 1 / (1 + exp(-x))

Swish函数结合了线性函数和非线性函数的特点,能够自适应地调整激活函数的形状,因此在某些深度学习模型中,Swish函数的表现优于常见的ReLU函数。

LLaMA模型中的激活函数

在LLaMA模型中,使用的激活函数是SwiGLU[1][2][3]。

1. SwiGLU激活函数

SwiGLU是LLaMA模型在前馈神经网络(FFN)阶段使用的激活函数[2:1]。它取代了ReLU非线性函数,以提高模型的性能[3:1]。

2. SwiGLU激活函数的表达式

SwiGLU是Gated Linear Units(GLU)激活函数的一种变体,其公式为:

SwiGLU(x,W, V, b, c) = Swish_1(xW + b) ⊗ (xV + c)

其中,Swish_β(x) = x σ(β x),σ为sigmoid函数,⊗为逐元素乘[1][2][3]。

3. SwiGLU激活函数的优势

SwiGLU的优势主要体现在以下几个方面:

3.1 提升性能:SwiGLU被应用于Transformer架构中的前馈神经网络(FFN)层,用于增强性能[1:1][2:1][3:1]。

3.2 可微性:SwiGLU是处处可微的非线性函数[1:2]。

3.3 自适应性:GLU是一种类似于长短期记忆网络(LSTM)带有门机制的网络结构,通过门机制控制信息通过的比例,来让模型自适应地选择哪些单词和特征对预测下一个词有帮助[3:2]。

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm

def gelu(x):
   return x * norm.cdf(x)

def relu(x):
   return np.maximum(0, x)

def swish(x, beta=1):
   return x * (1 / (1 + np.exp(-beta * x)))

def swiglu(x, W, V, b, c):
   return swish(x*W + b) * (x*V + c)

x_values = np.linspace(-5, 5, 500)
gelu_values = gelu(x_values)
relu_values = relu(x_values)
swish_values = swish(x_values)
swish_values2 = swish(x_values, beta=0.5)
swiglu_values = swiglu(x_values, 1, 1, 0, 0) # Here you need to set the parameters W, V, b, and c according to your needs

plt.plot(x_values, gelu_values, label='GELU')
plt.plot(x_values, relu_values, label='ReLU')
plt.plot(x_values, swish_values, label='Swish')
plt.plot(x_values, swish_values2, label='Swish (beta=0.5)')
plt.plot(x_values, swiglu_values, label='SwiGLU')
plt.title("GELU, ReLU, Swish, and SwiGLU Activation Functions")
plt.xlabel("x")
plt.ylabel("Activation")
plt.grid()
plt.legend()
plt.show()

  1. 大模型基础|激活函数|从ReLU 到SwiGLU - 知乎

  2. 为什么大型语言模型都在使用 SwiGLU 作为激活函数? - 腾讯云

  3. 大模型系列:SwiGLU激活函数与GLU门控线性单元原理解析


  1. LLaMA:Open and Efficient Foundation Models

  2. llama2介绍(模型结构+参数计算)

  3. LLaMA Explained | Papers With Code

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

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

相关文章

开源协议的对比和商业上的安全使用

开源协议的对比和商业上的安全使用 开源组件是:“任何人都可以自由使用、更改和共享(以修改或未修改的形式)的软件”。当今企业依靠开源来加速开发、降低成本和推动创新。对开放源码的糟糕管理可能会使组织面临安全、法律和操作风险。 使用…

【Python】爬虫-基础入门

目录 一、什么是爬虫 二、爬虫的主要用途 三、学会爬虫需要掌握的技能 四、爬虫使用的语言 五、编写爬虫需要的库,以python为例 六、爬虫示例-python 示例一 示例二 示例三 一、什么是爬虫 爬虫,又称网络爬虫或网页爬虫,是一种用来自…

解读DreamFusion:一个引人注目的AI生成内容领域的项目

什么是DreamFusion? DreamFusion使用2D扩散模型来实现文本到3D生成的任务。这项技术在ICLR 2023上获得了杰出论文奖,并成为了许多科研工作的基准。 简而言之,DreamFusion的目标是在没有3D数据监督的情况下,利用已有的2D生成模型根…

11 JavaScript学习:事件

Html事件 HTML 中有很多事件可以用来与用户交互&#xff0c;以下是一些常见的 HTML 事件及其详细解释和举例&#xff1a; click 事件&#xff1a;当用户点击元素时触发。 <button onclick"myFunction()">点击我</button>dblclick 事件&#xff1a;当用…

【二】ECharts----【异步加载数据】

目录 零.前言 一.异步加载数据 1.1简介 1.1.1一个使用$.get()获取json数据并加载的例子 1.2数据的动态更新【重要】 1.2.1一个使用random随机生成的动态更新 完整代码如下&#xff1a; 二.加载中动画 零.前言 【一】ECharts----【基本概念、基本实例】-CSDN博客 一.…

锐捷网络闪耀高博会:智慧教育数字基座引领教育数字化新浪潮

4月15日,第61届中国高等教育博览会(简称“高博会”)在福州盛大开幕,在这次教育高端装备展示、教学改革成果交流、校企云集的行业盛会上,围绕构建智慧教育数字基座,锐捷网络携全场景智慧教育方案亮相,极简以太全光网、高校桌面云、5G多网融合等创新方案纷纷登场,吸引了众多观众驻…

护眼台灯什么牌子好一点?护眼灯合格的品牌分享

护眼台灯作为对抗视力挑战的一种方法&#xff0c;逐渐赢得了众多家长的青睐。这些台灯利用尖端光学技术&#xff0c;发出柔和且无刺激的照明&#xff0c;有助于保护眼睛不受伤害。它们不但可以调节亮度和色温&#xff0c;打造一个舒适且自然的阅读环境&#xff0c;还有利于提升…

PHP命令执行漏洞CVE-2024-1874复现

CVE-2024-1874 PHP命令执行漏洞 影响版本 Affected versions < 8.1.28 < 8.2.18 < 8.3.5 Patched versions 8.1.28 8.2.18 8.3.6 POC 创建一个文件test.php <?php $descriptorspec [STDIN, STDOUT, STDOUT]; $proc proc_open(["test.bat", "\&…

zabbix监控内容

一、自定义监控内容 1.1 在客户端自定义key 1.1.1 查看当前用户 1.1.2 创建zabbix监控项配置文件&#xff0c;启动服务 1.1.3 服务端验证测试 1.2 在Web界面创建自定义监控模板 1.2.1 创建模板 1.2.2 创建应用集&#xff08;用于管理监控项&#xff09; 1.2.3 创建监控项 1.2.4…

C++|模板进阶(非类型模板参数+特化)

目录 一、非类型模板参数 二、模板特化 2.1函数模板特化 2.2类模板特化 2.2.1全特化 2.2.2偏特化 三、模板不支持分离编译 四、模板优缺点 一、非类型模板参数 在模板初阶中&#xff0c;所学习的模板的参数是类型形参&#xff0c;但其实还有非类型形参。 类型形参&am…

电子温度计不准需要怎么处理?

电子温度计不准需要怎么处理&#xff1f; 首选将温度计完全浸入温度为0℃左右的水中&#xff0c;使温度计指示值与0℃相等&#xff0c;拿出测量待测物的温度。其次将温度计完全浸入温度为100℃左右的水中&#xff0c;使温度计指示值与100℃相等&#xff0c;拿出测量待测物的温…

【算法学习】线段树基础版

一 线段树 1.概念 线段树可以理解为一个二叉树&#xff0c;如果是利用线段树求区间的和&#xff0c;那么每个结点的权值维护的是结点所维护区间的和&#xff0c;再将该区间一分为二&#xff0c;分别交由左右儿子维护。 拿区间1 - 4的和来举例子&#xff0c; 根结点维护的是区…

BRC铭文NFT铸造质押挖矿系统开发运营

区块链技术的不断演进与应用拓展&#xff0c;为数字资产领域带来了更多可能性。BRC铭文NFT铸造质押挖矿系统的开发与运营&#xff0c;将为用户提供一种全新的数字资产体验&#xff0c;下文将介绍其版/需求方案/逻辑项目。 1. 系统概述 BRC铭文NFT铸造质押挖矿系统旨在结合区块…

【GEE】分块处理以降低内存压力

代码链接 https://code.earthengine.google.com/6f3876f55be5280369750c9e38c8ffce?noloadtrue 函数介绍 2.1 vecSplitByRowCol(table.geometry(), Row, Col)函数 2.2 getSmallVec(featureCollection, i, table.geometry())函数 3. 完整代码 Map.centerObject(table, 5);…

拼多多面试题——力扣版测试用例纠错

最近我看到力扣上这个题目&#xff0c;用了三种方法&#xff0c;结果没有一种正确&#xff0c;我就纳闷儿了&#xff0c;为何总有一个测试用例过不了&#xff0c;结果我发现这个测试用例确实有问题啊。。。。。 题目&#xff1a; 表&#xff1a;Logs ----------------------…

图片hover放大效果

实现效果&#xff1a;一张图片&#xff0c;鼠标放上去时&#xff0c;出现放大效果 非常简单&#xff0c;两个关键词&#xff1a;hover和transform 对应的代码结构如下图 框架背景&#xff1a; Tips: transform结合不同的参数可以实现元素的位移、旋转、缩放 如果有任何疑问或…

ELK日志系统的搭建

文章目录 简介软件准备安装JDK下载Elasticsearch软件修改配置信息创建ElasticSearch运行用户、启动服务添加防火墙策略ElasticSearch-Head插件安装 安装Kibana下载软件包修改配置启动服务 安装Logstash安装包下载安装服务配置修改配置pipeline流水线服务配置文件 启动服务 全流…

HttpMessageConverter

一、HttpMessageConverter HttpMessageConverter是Spring MVC中非常重要的一个接口。翻译为&#xff1a;HTTP消息转换器。该接口下提供了很多实现类&#xff0c;不同的实现类有不同的转换方式。 1.1 什么是HTTP消息 HTTP消息其实就是HTTP协议。HTTP协议包括请求协议和响应协议。…

opencv android 使用笔记

目录 获取app路径&#xff1a; 下载&#xff1a;OpenCV-android-sdk cmakelist配置&#xff1a; 头文件路径&#xff1a; 编译报错&#xff1a;clang: error: linker command failed with exit code 1 (use -v to see invocation) 读取图片例子 保存mp4 获取app路径&am…

这个禁止打字,只能发语音的AI Native产品,成了硅谷最火的社交软件

最近&#xff0c;一款AI驱动的社交应用AirChat在硅谷引发了热切关注&#xff0c;这款产品背后的AI技术可以实时将语音转录为文字&#xff0c;并支持多语言翻译。综合来看&#xff0c;AirChat的火可以持续多久呢&#xff1f; 过去一周&#xff0c;硅谷线上到处充斥着求链接的声音…