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

news2025/1/11 21:45:39

基于 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.coloradmin.cn/o/2237061.html

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

相关文章

Python学习------第四天

Python的判断语句 一、布尔类型和比较运算符 二、 if语句的基本格式 if语句注意空格缩进!!! if else python判断语句的嵌套用法:

uniapp实现H5和微信小程序获取当前位置(腾讯地图)

之前的一个老项目,使用 uniapp 的 uni.getLocation 发现H5端定位不准确,比如余杭区会定位到临平区,根据官方文档初步判断是项目的uniapp的版本太低。 我选择的方式不是区更新uniapp的版本,是直接使用高德地图的api获取定位。 1.首…

测试网空投进行中 — 全面了解 DePIN 赛道潜力项目 ICN Protocol 及其不可错过的早期红利

随着云计算技术的飞速发展,越来越多的企业和个人对云服务的需求变得多样化且复杂化。然而,传统的中心化云服务平台(如AWS、微软Azure等)往往存在着高成本、数据隐私保护不足以及灵活性差等问题。 为了解决这些挑战,Imp…

IntelliJ IDEA 使用心得与常用快捷键

刚开始学习写Java的时候,用的eclipse,正式工作后,主要用的myeclipse,去年初在前辈的推荐下,在2折的时候买了正版的 IntelliJ IDEA 和 Pycharm,12.0版终生使用,一年更新。 使用前早就久闻其名&am…

【rust】rust基础代码案例

文章目录 代码篇HelloWorld斐波那契数列计算表达式(加减乘除)web接口 优化篇target/目录占用一个g,仅仅一个actix的helloWorld demo升级rust版本, 通过rustupcargo换源windows下放弃吧,需要额外安装1g的toolchain并且要…

施工企业为什么要用工程项目管理软件?工程项目管理软件的用处是什么?

施工企业一定会遇到哪些问题?工人怠工、材料浪费、数据造假、工期拖延、质量问题、安全隐患等。这些问题正在悄然侵蚀建施工业的经济效益。每一个环节的失控都可能导致巨大的经济损失,还可能损害企业的声誉。面对日益复杂的工程管理环境,如何…

【C++】详解RAII思想与智能指针

🌈 个人主页:谁在夜里看海. 🔥 个人专栏:《C系列》《Linux系列》 ⛰️ 丢掉幻想,准备斗争 目录 引言 内存泄漏 内存泄漏的危害 内存泄漏的处理 一、RAII思想 二、智能指针 1.auto_ptr 实现原理 模拟实现 弊端…

所谓的情商高,其实就是会说话!

所谓的情商高,其实就是会说话! 1.当遇到不知道的事情时,不要直截了当地说“不知道”。而应委婉地表达为“我想听听你的看法”。 如此既能避免尴尬,又能展现出对对方见解的尊重和期待。 2.不要简单地说“我迟到了”,…

ALB搭建

ALB: 多级分发、消除单点故障提升应用系统的可用性(健康检查)。 海量微服务间的高效API通信。 自带DDoS防护,集成Web应用防火墙 配置: 1.创建ECS实例 2.搭建应用 此处安装的LNMP 3.创建应用型负载均衡ALB实例 需要创建服务关联角…

【spark面试】spark的shuffle过程

概述 所有的shuffle的过程本质上就是一个task将内存中的数据写入磁盘,然后另一个task将磁盘中的数据读入内存的过程。 对于mapreduce来说,我们将内存中的数据写入磁盘成为maptask,将磁盘中的数据读入内存称为reducetask。 而对于spark来说&…

Android 实现一个系统级的悬浮秒表

前言 由于项目需要将手机录屏和时间日志对应起来,一般的手机录屏只能看到分钟,但是APP的日志输出通常都是秒级别的,于是决定自己手撸一个悬浮秒表(有拖拽效果)。 效果如下 具体实现 大致的实现思路: 创…

【科普小白】LLM大语言模型的基本原理

一、要了解LLM大模型的基本原理就要先来了解一下自然语言处理(NLP)。 NLP 是 AI 的一个子领域,专注于使计算机能够处理、解释和生成人类语言,主要任务包括:文本分类、自动翻译、问题回答、生成文本等。到底是NLP促生了…

Go语言开发商城管理后台-GoFly框架商城插件已发布 需要Go开发商城的朋友可以来看看哦!

温馨提示:我们分享的文章是给需要的人,不需要的人请绕过,文明浏览,误恶语伤人! 前言 虽然现在做商城的需求不多,但有很多项目中带有商城功能,如社区医院系统有上服务套餐、理疗产品需求、宠物…

ts 如何配置引入 json 文件

ts 如何配置引入 json 文件 参考文档: https://maxgadget.dev/article/how-to-import-a-json-file-in-typescript-a-comprehensive-guide 项目中有一个 .json 的文件是配置文件,如何引入到 ts 项目中 配置 tsconfig.json 文件,添加这两个 {…

如何让ffmpeg运行时从当前目录加载库,而不是从/lib64

程序在linux下运行时,一般从 /lib64 目录下加载依赖的库文件,如xxx.so. 有时候,系统里没有这些库,也不想从系统目录下加载,怎么办呢? 看下面的调整过程。 使用的源代码是 ffmpeg-6.1.tar.xz 解压后&…

【基于轻量型架构的WEB开发】课程 12.4 页面跳转 Java EE企业级应用开发教程 Spring+SpringMVC+MyBatis

12.4 页面跳转 12.4.1 返回值为void类型的页面跳转 返回值为void类型的页面跳转到默认页面 当Spring MVC方法的返回值为void类型,方法执行后会跳转到默认的页面。默认页面的路径由方法映射路径和视图解析器中的前缀、后缀拼接成,拼接格式为“前缀方法…

订单日记助力“实峰科技”提升业务效率

感谢北京实峰科技有限公司选择使用订单日记! 北京实峰科技有限公司,成立于2022年,位于北京市石景区,是一家以从事生产、销售微特电机、输配电及控制设备等业务为主的企业。 在业务不断壮大的过程中,想使用一种既能提…

【Ubuntu24.04】部署服务(基础)

目录 0 背景1 设置静态IP2 连接服务器3 部署服务3.1 安装JDK3.2 下载并安装MySQL8.43.2.1 从官网下载 APT Repository 配置文件3.2.2 安装 MySQL8.43.2.3 配置远程连接 3.3 下载并配置Redis3.4 上传jar包并部署应用3.5 开放端口 4 总结 0 背景 在成功安装了Ubuntu24.04操作系统…

Docker镜像分成

1. 镜像分层原理 1.1 镜像分层的定义与结构 Docker 镜像的分层存储机制是其核心特性之一,它允许 Docker 镜像由多个只读层组成,这些层叠加在一起形成一个完整的文件系统。每个层代表 Dockerfile 中的一个指令,并且每一层都是不可变的&#…

JavaWeb开发9

ResponseBody 类型:方法注解、类注解 位置:Controller方法上/类上 作用:将方法返回值直接响应,如果返回值类型是实体对象/集合,将会转换为JSON格式响应 说明:RestControllerControllerResponseBody; 统…