当前位置: 首页 > article >正文

基于 Encoder-only 架构的大语言模型

基于 Encoder-only 架构的大语言模型

Encoder-only 架构

Encoder-only 架构凭借着其独特的双向编码模型在自然语言处理任务中表现出色,尤其是在各类需要深入理解输入文本的任务中。

核心特点:双向编码模型,能够捕捉全面的上下文信息。

Encoder-only 架构仅选取了 Transformer 中的编码器(Encoder)部分,用于接收输入文本并生成与上下文相关的特征。

具体来说,Encoder-only 架构包含三个部分,分别是输入编码部分,特征编码部分以及任务处理部分,具体的模型结构如图。
在这里插入图片描述

  • 输入编码部分包含分词、向量化以及添加位置编码三个过程。

  • 特征编码部分则是由多个相同的编码模块(Encoder Block)堆叠而成,其中每个编码模块包含自注意力模块(Self-Attention)和全连接前馈模块。

  • 任务处理模块是针对任务需求专门设计的模块,其可以由用户针对任务需求自行设计。

Encoder-only架构模型的预训练阶段和推理阶段在输入编码和特征编码部分是一致的,而任务处理部分则需根据任务的不同特性来进行定制化的设计。

1. 输入编码部分
原始输入文本会被分词器(Tokenizer)拆解为 Token 序列,随后通过词表和词嵌入(Embedding)矩阵映射为向量序列,确保文本信息得以数字化表达。接着为了保留文本中单词的顺序信息,每个向量序列会被赋予位置编码(Positional Encoding)。
2. 特征编码部分
先前得到的向量序列会依次通过一系列编码模块,这些模块通过自注意力机制和前馈网络进一步提取和深化文本特征。
3.任务处理部分
在预训练阶段和下游任务适配阶段一般有所差别。在预训练阶段,模型通常使用全连接层作为输出头,用于完成掩码预测等任务。而在下游任务适配阶段,输出头会根据具体任务需求进行定制

BERT 语言模型

BERT模型结构

BERT基于Transformer的编码器架构,由多个编码器堆叠而成

有BERT-Base和BERT-Large两个版本,参数数量分别为1.1亿和3.4亿

每个编码器包含多头自注意力模块和前馈神经网络模块

BERT预训练方式

  • 提出掩码语言模型(MLM)和下一句预测(NSP)两种预训练任务
  • MLM任务随机掩盖15%的token,让模型预测被掩盖的内容
  • NSP任务判断两个句子是否是原文中的连续句子
  • 这两种任务使BERT能够学习到文本的上下文表示

BERT下游任务

BERT可以应用于文本分类、问答系统、文本匹配、语义相似度计算等任务

  • 使用[CLS]标记提取整个序列的聚合表示,用于分类任务
  • 使用[CLS]标记判断答案是否存在于相关文本中,用于问答任务
  • 使用[CLS]标记计算文本之间的语义相似度

BERT衍生语言模型

RoBERTa
  • 提出机构:Facebook AI (Meta)
  • 目标:解决BERT训练不充分的问题,提升性能。
  • 改进点
    • 更大的数据集。
    • 更长的训练时间。
    • 更细致的超参数调整。
  • 结构
    • 与BERT类似,基于多层Transformer编码器堆叠而成。
  • 预训练任务
    • 使用更大的数据集,包括BookCorpus、英语维基百科、CC-News、OpenWebText和Stories。
    • 移除了BERT的Next Sentence Prediction(NSP)任务。
    • 采用动态掩码语言模型(Dynamic Masked Language Model, DMLM),每次训练时掩码位置会变化。
  • 版本
    • RoBERTa-Base:12层,768隐藏层维度。
    • RoBERTa-Large:24层,1024隐藏层维度。
ALBERT
  • 提出机构:Google Research
  • 目标:减少模型参数量和内存占用,提高效率。
  • 改进点
    • 参数因子分解技术。
    • 跨层参数共享技术。
  • 预训练任务
    • 使用与BERT相同的数据集:BookCorpus和英语维基百科。
    • 引入了Sentence Order Prediction(SOP)任务,用于学习句子间的顺序关系。
  • 结构
    • 与BERT类似,基于多层Transformer编码器堆叠而成。
    • 通过参数因子分解和跨层参数共享技术减少参数量。
  • 版本
    • ALBERT-Base:12层,128嵌入分解维度。
    • ALBERT-Large:24层,1024隐藏层维度。
ELECTRA
  • 提出机构:Google Brain 和斯坦福大学
  • 目标:解决大规模预训练语言模型的效率和可扩展性问题。
  • 改进点
    • 生成器-判别器架构。
    • 生成器负责恢复掩码的文本,判别器负责检测生成器输出的文本中的每个Token是否是原文中的内容。
  • 预训练任务
    • 使用生成器-判别器架构,通过Replaced Token Detection(RTD)任务进行预训练。
  • 结构
    • ELECTRA-Small:12层,256隐藏层维度。
    • ELECTRA-Base:12层,768隐藏层维度。
    • ELECTRA-Large:24层,1024隐藏层维度。
模型发布时间参数量(亿)语料规模预训练任务
BERT2018.101.1, 3.4约 15GBMLM+NSP
RoBERTa2019.071.2, 3.5160GBDynamic MLM
ALBERT2019.090.12, 0.18, 0.6, 2.2约 15GBMLM+SOP
ELECTRA2020.030.28, 2.2, 6.6约 20-200GBRTD

http://www.kler.cn/a/381487.html

相关文章:

  • OpenAI 发布了新的事实性基准——SimpleQA
  • 排序算法详细总结
  • 20241102在荣品PRO-RK3566开发板的预置Android13下适配宸芯的数传模块CX6603N
  • 【工具变量】中国制造2025试点城市数据集(2000-2023年)
  • 苍穹外卖Bug集合
  • Visual Studio | 配置管理
  • 后台管理系统的通用权限解决方案(十二)数据模型、基于SpringCloud和Nacos的后端项目搭建
  • Python数据分析NumPy和pandas(二十三、数据清洗与预处理之五:pandas的分类类型数据)
  • java 中List 的使用
  • Vue:事件
  • MATLAB下的四个模型的IMM例程(CV、CT左转、CT右转、CA四个模型),附下载链接
  • 根据某个字段禁用el-table里的checkbox
  • 纯前端实现在线预览excel文件(插件: LuckyExcel、Luckysheet)
  • 洛谷月赛 11.1题解
  • Android 15 在状态栏时间中显示秒数
  • 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来
  • oracle如何创建两个数据库,以及如何用navicat连接,监听、数据泵
  • 定位new的表达式
  • 数据结构和算法入门
  • 【ORACLE】对Oracle中char类型的研究分析
  • 歌者PPT又添新功能——AI无损排版上线!
  • linux最近常用命令3
  • redis源码系列--(二)--multi/exec/eval命令执行流程
  • 数据库基础(4) . 数据库结构
  • 健康生活的重要性,注重规律作息
  • 打响反对人工智能的第一枪