NLP 主要语言模型分类

news2024/12/25 12:56:30

文章目录

    • ngram
    • 自回归语言模型
    • Transformer
    • GPT
    • BERT(2018年提出)
      • 基于 Transformer 架构的预训练模型
      • 特点
      • 应用
      • 基于 transformer(2017年提出,attention is all you need)
        • 堆叠层数
        • 与原transformer 的差异
        • bert transformer 层
      • 输出形状

ngram

在这里插入图片描述

  • N一般取 3-5
  • 马尔可夫假设
    • 假设第 n 个词出现的概率,仅收前面有限个词影响
    • 处理未出现语料的概率
      • 平滑方法:回退
        • 谷歌给出的回退建议值:0.4
        • 试用二元组代替三元组,做惩罚
        • P(c | ab) = P(c | b) * Bow(ab)

自回归语言模型

  • RNN

    • 循环神经网络
      自带激活函数 tanh
      在这里插入图片描述
      在这里插入图片描述
    • 特点
      • 一种经典的序列模型,能够处理变长输入序列。
      • 对输入内容串行处理,处理后面的内容,必须要等前面内容顺序先处理完毕,有效率问题。
    • 应用
      语言建模、机器翻译和情感分析。
    • 变体
      1. LSTM
        • 长短期记忆网络
          • 神经语言模型
          • 选择性遗忘
            通过多个 RNN 来实现
          • 三个门
            在这里插入图片描述 - Gate 机制(门限机制)
            • ft、it、ot 中用的是 sigmod 做激活函数
              Sigmod 输出的结果范围(0, 1),无限接近 0 的结果会被忽略
            • 通过数据筛选,做记忆更新
            • 生成候选记忆时用tanh
        • 特点
          • RNN 的一种扩展,通过引入门控机制来解决传统 RNN 中的梯度消失问题。
          • 双向 LSTM
            文本分别正向和反向输入得到两个 LSTM 输出
            • LSTM 是时序模型
            • 双倍参数得到更好的训练效果
        • 输出形状
          • batch_first=True
            [batch_size, sentence_length, hidden_size], [sentence_length, hidden_size]
          • batch_first=False
            [sentence_length, batch_size,, hidden_size], [sentence_length, hidden_size]
        • 应用
          • 处理长序列任务
          • 语言建模、机器翻译和情感分析
      2. GRU
        门控循环单元
        • 神经语言模型
        • 和 LSTM 相比,只有两个门
          1. 重置门
          2. 更新门
            • 控制信息的保留和更新
            • 将短期和长期记忆信息融合在一个隐藏状态中
        • 特点
          也是一种带有门控机制的 RNN 变体,但它拥有更简单的结构。在某些情况下,GRU 的性能与 LSTM 相当。
        • 应用
          • 处理长序列任务。
          • 语言建模、机器翻译和情感分析。
  • CNN
    卷积神经网络
    在这里插入图片描述
    按照文本长度卷积,需要先转置,卷积结束再转置回原形状。

    • 特点

      • 可以捕获局部特征并将它们组合成全局特征。
      • 有语序信息
      • 可以并行计算
    • 应用
      文本分类和文本表示学习

    • 变体
      Gated-CNN
      在这里插入图片描述
      卷积 A 与卷积 B 对位相乘,过滤 AB 相乘后为 0 部分,放缩 B 中在 0-1 的部分。

Transformer

  • 预训练语言模型
    基于自注意力机制 self attention。
  • 特点
    完全摒弃了 RNN 和 CNN,取得了在各种 NLP 任务上的显著性能提升。

GPT

  • 基于Transformer架构的生成式模型
    能够生成与训练数据类似的新样本的模型
  • 应用
    生成文本
    回答问题
    完成对话
    文本摘要
    语言翻译

BERT(2018年提出)

基于 Transformer 架构的预训练模型

  • 下载预训练模型
    hugging face
  • 预训练方式
    • 完形填空 MLM(mask language model)
    • 句子关系预测 NSP(next sentence pretraining)
      判断两句话是不是挨着的

特点

1. 通过大规模无监督预训练学习出通用的语言表示,通过微调(fine-tuning)在各种 NLP 任务上取得了令人瞩目的性能。
	- 预训练方法 pre-train + fine-tune
		- fine-tune
			可以理解为通过反向传播中对 bert 参数的再训练
		- Pre-train
			- 预训练会提前收集海量无标注文本数据
			- 进行预训练,在任务模型中使用
			- 预训练方式
				- 完形填空
					mask Language model `(预测 mask 对应字符)`
				- 句子关系预测
					两句话同时送入模型判断上下文关系`(二分类任务)`				
	- 在预训练过程中,BERT 被训练来预测给定句子中的缺失单词,这种预测任务被称为掩码语言模型(MLM)。
2. 是一种动态的,词义结合语境判断
3. 通过预训练利用了海量无标注文本数据
4. 相比词向量,bert 的文本标识结合了语境
	- 本质是一种文本表征
	- 词义是动态的,可以结合语境判断
5. Transformer 模型结构有很强的拟合能力,词与词之间的距离不会造成关系计算上的损失
6. 训练的效果得到大幅提升
  • 核心思想
    • 本质是一种动态的文本表征
    • 通过双向(bidirectional)的训练方式,在预训练阶段学习出语言的上下文相关表示,从而在下游任务中更好地理解语言。

应用

  • 常用于各种自然语言处理的判别式任务
  • 具体分类
    文本分类
    命名实体识别
    文本相似度计算
    语义理解

基于 transformer(2017年提出,attention is all you need)

堆叠层数
  • base 版本
    共堆叠 12 层 transformer encoder 层
  • large 版本
    共堆叠 24 层 transformer encoder 层
与原transformer 的差异
  1. 仅使用了transformer 的encoder 层
    通用 transformer 层
  2. position encoding
    位置编码最多512个
    原先是正余弦位置编码,是固定的,不可训练
  3. feed forward 两个线性层之间的激活函数
    使用了 Gelu
    原先是 Relu
bert transformer 层

在这里插入图片描述

  • 前提
    • embedding
      Embedding 层由三部分加和组成
      在这里插入图片描述

        		1. 每个词对应的矩阵 token embeddings
        		2. 每句话对应的矩阵 segment embeddings
        			判断来源语句
        		3. 每个词位置矩阵 position embeddings
        			带入语序信息
        		4. 加入 [CLS] [SEP] 标记文本起始位置
      
    • 矩阵维度 embedding_dim

      • 768
        bert base 版本
        多头机制切分12份64维度矩阵
      • 1024
        bert large 版本
    • embedding 层加和后会做 layer normalization
      做一次归一化操作(提高模型稳定性)
      在这里插入图片描述

        		公式注解:减均值,除以标准差,乘以可训练系数。其中:
        			U 是均值
        			σ 是标准差
      
    • 总参数量
      vocab * embedding_dim + max_sequence_length * embedding_dim + n * embedding_dim + embedding_dim + embedding_dim

      • 词表embedding 参数
        vocab * embedding_dim
      • 句子参数
        n * embedding_dim
      • layer_norm层参数
        embedding_dim + embedding_dim
      • 位置参数
        max_sequence_length * embedding_dim
        允许最大长度 * embedding_size
    • 最终形状
      [seq_len, embedding_dim]

  1. multi-head self attention
    • 结构梳理在这里插入图片描述

      1. embedding 的输出,作为 self attention 的输入
        Q、K、V 是三个形状相同的矩阵
        • 三个线性层权重不同
        • 实现对 X 的不同变化
        • 线性层不改变 x 的形状
      2. 公式解释与作用
      • Q * K的转置
        • 得到 文本长度 * 文本长度的矩阵
          会得到每个字和整句话中任何一个字的相关性
      • Softmax 对矩阵中每个向量做归一化(逐行softmax)
        • 得到每个字对整句话的注意力
          可以很好的捕捉长距离的关系。
        • 分值越高,注意力越高,相关性越强,字之间相关性与注意力成正比
      • 根号 dk
        • 根号下(神经元个数(768) / 总头数)
        • 除以根号 dk
          可以拉低矩阵数值分布,提高 softmax 计算后每个维度数值在 0-1 的分布情况
      1. 最终形状
        • X * Q 、X * K、X * V
          [seq_len * embedding_dim]
        • Z
          [seq_len * embedding_dim]
    • 多头自注意力机制

      • 多头机制 muti-head
        • 每一份都执行一次 2 的计算流程
          最后把所有的计算结果拼起来
        • 相当于模型集成
          • 可以认为在同时训练相同大小的多个模型
          • 可以提升模型拟合效果
            集成模型比单模型效果好
    • self attention 最终输出
      经过 QKV 计算之后的结果,再经过一层线性层

    • 总参数量
      self_attention_parameters = embedding_dim * embedding_dim + embedding_dim + embedding_dim + embedding_dim

      • self_attention_out
        embedding_dim * embedding_dim + embedding_dim
      • 残差机制
        • embedding_dim + embedding_dim
          layerNorm(原始信息 x + self attention 输出)
        • 深层次网络结构下,保留更多的原始信息
  • feedforward
    𝑜𝑢𝑡𝑝𝑢𝑡=𝐿𝑖𝑛𝑒𝑟(𝑔𝑒𝑙𝑢(𝐿𝑖𝑛𝑒𝑟(𝑥)))
    结构
    1. 线性映射到原来矩阵的 4 倍矩阵
    2. 4倍矩阵先经过 gelu
    3. 从 4 倍矩阵再映射回原矩阵大小
    为了增加高维数据的数据表征
    • 总参数量
      ([1, embedding_dim] * [embedding_dim, hide_size] + hide_size) + ([1, hide_size]* [hide_size, embedding_dim] + embedding_dim) + embedding_dim + embedding_dim
      • 第一个线性层
        [1, embedding_dim] * [embedding_dim, hide_size]
      • 第二个线性层
        [1, hide_size] * [hide_size, embedding_dim] + embedding_dim
      • 残差机制
        embedding_dim + embedding_dim
        layerNorm(原始信息 z + feed forward 输出)
  • pooler层
    • 将[CLS]这个token过一下全连接层,再过一下 tanh 激活函数,作为该句子的特征向量:在这里插入图片描述
    • 这里的 pooler 层是一个线性变换,得到一个固定维度的池化表示,不是传统的池化
    • 参数总量
      embedding_dim * embedding_dim + embedding_dim

输出形状

[batch_size, sentence_length, hidden_size], [sentence_length, hidden_size]

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

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

相关文章

SpringBoot 项目如何使用 pageHelper 做分页处理 (含两种依赖方式)

分页是常见大型项目都需要的一个功能,PageHelper是一个非常流行的MyBatis分页插件,它支持多数据库分页,无需修改SQL语句即可实现分页功能。 本文在最后展示了两种依赖验证的结果。 文章目录 一、第一种依赖方式二、第二种依赖方式三、创建数…

低空经济刚需篇:各种道路不畅地区无人机吊装详解

低空经济作为近年来备受关注的新兴经济形态,其核心在于利用3000米以下的低空空域进行各种飞行活动,以无人机、电动垂直起降飞行器(eVTOL)等为载体,推动交通、物流、巡检、农林植保、应急救援等多领域的变革。在道路不畅的地区,无人…

信息安全数学基础(20)中国剩余定理

前言 信息安全数学基础中的中国剩余定理(Chinese Remainder Theorem,简称CRT),又称孙子定理,是数论中一个重要的定理,主要用于求解一次同余式组。 一、背景与起源 中国剩余定理最早见于我国南北朝时期的数学…

存储 NFS

目录 1.存储的应用场景 2.存储分类 3.NFS服务组成 4.环境说明 ​编辑 5.服务端部署 6.NFS服务端的配置 7.NFS服务端本地进行测试 1.存储的应用场景 存储一般用于上传网站数据(内容),一般用于在网站集群中。使用存储的话用户上传的…

推荐系统-电商直播 多目标排序算法探秘

前言: 电商直播已经成为电商平台流量的主要入口,今天我们一起探讨推荐算法在直播中所面临的核心问题和解决方案。以下内容参考阿里1688的技术方案整理完成。 一、核心问题介绍 在电商网站中,用户的主要行为是在商品上的行为,直播…

Java8四大函数接口

一、说明 1.函数式接口的使用说明说明: 函数式接口是Java8的一个新特性。如果一个接口中,只声明了一个抽象方法,则此接口就称为函数式接口。我们可以在一个接口上使用 FunctionalInterface 注解,这样做可以检查它是否是一个函数…

【数据结构】排序算法---基数排序

文章目录 1. 定义2. 算法步骤2.1 MSD基数排序2.2 LSD基数排序 3. LSD 基数排序动图演示4. 性质5. 算法分析6. 代码实现C语言PythonJavaCGo 结语 ⚠本节要介绍的不是计数排序 1. 定义 基数排序(英语:Radix sort)是一种非比较型的排序算法&…

基于ExtendSim的 电子制造 仿真模型

说明: 此模型表示电路板制造设施。该过程有4个步骤: *焊料制备 *组件放置 *烤箱 *检查 详情: *烤箱的容量为10张卡,但如果烤箱循环开始时仅能处理5张卡,则最多只能处理5张。 *如果检查员发现问题,他们将修理…

C++——map和set的使用以及map系列

目录 map和set的使用 1. 序列式容器和关联式容器 2. set系列的使⽤ 2.1 set和multiset参考⽂档 2.2 set类的介绍 2.3 set的构造和迭代器 2.4 set的增删查 set的增删查关注以下⼏个接⼝即可: 2.6 find和erase使⽤样例: lower_bound(); upper_bo…

Css_动态渐变圆圈旋转效果

1、效果图 2、实现代码 <template><div class"box"><div class"line"></div><div class"lineNew"></div></div> </template><script lang"ts" setup></script><styl…

MySQL篇(存储引擎 - InnoDB存储引擎架构)(持续更新迭代)

目录 一、逻辑存储结构 1. 表空间 2. 段 3. 区 4. 页 5. 行 二、架构 1. 简介 2. 内存结构&#xff08;四部分&#xff09; Buffer Pool Change Buffer Adaptive Hash Index Log Buffer 3. 磁盘结构&#xff08;七部分&#xff09; System Tablespace File-Per-…

pdf文件怎么直接翻译?使用这些工具让翻译变得简单

在全球化日益加深的职场环境中&#xff0c;处理外语PDF文件成为了许多职场人士面临的共同挑战。 面对这些“加密”的信息宝库&#xff0c;如何高效、准确地将英文pdf翻译成对应语言&#xff0c;成为了提升工作效率的关键。 以下是几款在PDF翻译领域表现出色的软件&#xff0c…

化繁为简:中介者模式如何管理复杂对象交互

化繁为简&#xff1a;中介者模式如何管理复杂对象交互 中介者模式 是一种行为型设计模式&#xff0c;定义了一个中介者对象&#xff0c;来封装一组对象之间的交互。中介者模式通过将对象之间的交互行为从多个对象中抽离出来&#xff0c;集中封装在一个中介者对象中&#xff0c;…

智能除螨仪——NV040D-SOP8语音芯片方案引领除螨仪新时代

随着物联网技术的快速发展&#xff0c;除螨仪作为家庭清洁的重要工具&#xff0c;其智能化、人性化的设计成为提升市场竞争力的关键。置入语音芯片的除螨仪&#xff0c;通过开机提示、工作状态反馈、操作指引、故障提醒等内容。用户可以更加直观地了解除螨仪的工作状态&#xf…

开发谷歌插件之GA埋点

目录 一、背景 二、踩坑 三、谷歌插件开发的GA埋点的实现方式 一、背景 开发了一个谷歌插件&#xff0c;领导需要对用户的一些行为进行分析&#xff0c;于是让我在代码里面加上GA埋点。由于我们的PC端的项目一直都有进行GA埋点&#xff0c;当时就想着&#xff0c;这不就是把…

Spring Cloud Alibaba-(4)Sentinel【流控和降级】

Spring Cloud Alibaba-&#xff08;1&#xff09;搭建项目环境 Spring Cloud Alibaba-&#xff08;2&#xff09;Nacos【服务注册与发现、配置管理】 Spring Cloud Alibaba-&#xff08;3&#xff09;OpenFeign【服务调用】 Spring Cloud Alibaba-&#xff08;4&#xff09;Sen…

界面控件Telerik UI for WinForms 2024 Q3概览 - 支持合并单元格等

Telerik UI for WinForms拥有适用Windows Forms的110多个令人惊叹的UI控件。所有的UI for WinForms控件都具有完整的主题支持&#xff0c;可以轻松地帮助开发人员在桌面和平板电脑应用程序提供一致美观的下一代用户体验。 本文将介绍界面组件Telerik UI for WinForms在今年第一…

Java语言程序设计基础篇_编程练习题***18.32 (游戏:骑士的旅途)

目录 题目&#xff1a;***18.32 (游戏:骑士的旅途) 习题思路 代码示例 输出结果 题目&#xff1a;***18.32 (游戏:骑士的旅途) 骑士的旅途是一个古老的谜题&#xff0c;它的目的是使骑从棋盘上的任意一个正方 形开始移动&#xff0c;经过其他的每个正方形一次&#xff0c;如…

R18 5G网络中 AI/ML技术特性及其在5GS和NG-RAN中的应用

随着5G技术的发展&#xff0c;人工智能&#xff08;AI&#xff09;和机器学习&#xff08;ML&#xff09;在网络中的应用越来越广泛。本文将介绍R18 5G网络中AI/ML的新特性&#xff0c;包括在5G系统&#xff08;5GS&#xff09;中的应用、在新一代无线接入网&#xff08;NG-RAN…

AD中PCB元器件常用的对齐用法

1.shift 选中要对齐的元器件 2.按右键&#xff0c;选择对齐&#xff0c;或者按A&#xff0c;弹出对齐对菜单&#xff1b;&#xff08;切记不要选择多余的元器件或者线条&#xff0c;要不然也会根据它的位置来做对齐&#xff0c;按shift一个一个元器件选择&#xff09; 常用如下…