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

RetroMAE 预训练任务

RetroMAE 预训练任务的具体步骤,围绕 编码(Encoding)、解码(Decoding)、增强解码(Enhanced decoding) 三个核心阶段展开,以下结合图中流程拆解:

一、阶段 A:编码(Encoding)

目标:对输入文本做适度掩码,生成句子级语义嵌入(用于后续重建依据)。
步骤:

  1. 输入处理:原始文本序列(如 [CLS],x1​,x2​,[M],x4​ )中,按一定比例(“适度掩码”,如 15% - 30% )替换部分 token 为掩码标记 [M],得到掩码后序列 Xenc​。
  2. 编码器编码:将 Xenc​ 输入 Transformer 编码器(Encoder),输出包含全局语义的句子嵌入 hX​(绿色矩形,通常用 位置的隐向量表示 ),同时保留可见 token(如 x3​ )的局部语义用于后续任务(如 MLM 辅助学习 )。

二、阶段 B:解码(Decoding)

目标:对输入文本做激进掩码,结合编码阶段的句子嵌入,重建掩码 token,强化模型语义理解。
步骤:

  1. 深度掩码输入:对原始文本序列做更 “激进” 的掩码(如 50% - 70% 比例),得到新的掩码序列(如 [x1​,[M],x3​,[M]] ),并拼接编码阶段的句子嵌入(绿色矩形),形成解码输入 HXdec​​。
  2. 解码器重建:将 HXdec​​ 输入单层 Transformer 解码器(结构简化,聚焦重建),通过掩码语言建模(MLM)任务,学习从句子嵌入和少量可见 token(如 x1​,x3​ )中恢复原始掩码 token(如 x2​,x4​ ),迫使模型理解语义关联。

三、阶段 C:增强解码(Enhanced decoding)

目标:基于句子嵌入和每行可见上下文,对所有输入 token 做精细化重建,进一步挖掘语义依赖。
步骤:

  1. 构建注意力掩码矩阵:定义特殊的注意力掩码规则(Eq. 7 描述):
    • 主对角线位置填充 −∞(灰色):表示 token 无法 “看到自己”(避免自依赖,强制模型从上下文学习 );
    • 可见上下文位置填充 0(蓝色):允许 token 基于这些位置的语义做重建。
  2. 全局语义重建:输入完整 token 序列(如 x1​,x2​,x3​,x4​ ),结合编码阶段的句子嵌入(绿色矩形),通过 Transformer 结构和上述注意力掩码,让每个 token 依据独特的可见上下文重建自身(如 x1​ 参考 x2​/x3​/x4​ 语义,x2​ 参考 x1​/x3​/x4​ 等 ),强化模型对全局语义和局部依赖的捕捉能力。

核心逻辑总结

RetroMAE 通过 “适度编码生成语义底座 → 激进解码强化语义关联 → 增强解码细化语义依赖” 的三阶段流程,让模型在预训练中:

  • 先学会提炼文本全局语义(编码阶段 );
  • 再强制从极少信息中恢复内容(解码阶段,提升语义推理 );
  • 最后精细化学习 token 间复杂依赖(增强解码阶段 )。
    最终目标是让模型生成更优质的文本表示,尤其适配检索任务(如 dense retrieval ),为下游应用(如文本向量检索、问答系统 )打牢预训练基础。

形象的举个例子

咱们用 **“修复破损的故事书”** 来类比 RetroMAE 的预训练流程,把文本理解成故事书的内容,token 是书中的文字 / 段落,模型是 “修复师”,帮你直观看懂三阶段逻辑:

阶段 A:编码(Encoding)—— 提取故事 “核心大纲”

  • 场景:你拿到一本缺了几页(适度掩码) 的旧故事书(原始文本),比如《小红帽》里 “小红帽遇到狼” 的段落被挖掉几句(掩码 token),变成:

    小红帽带着 [M] ,走在 [M] 的路上,遇到了 [M] ……

  • 模型操作
    修复师(编码器)快速翻书,跳过挖掉的部分,先总结出故事的核心大纲(句子嵌入,绿色矩形):“一个女孩带东西去外婆家,路上遇到危险角色” 。
    同时,记住书里没被挖掉的关键句子(如 “小红帽”“路” ),辅助理解故事背景。

阶段 B:解码(Decoding)—— 用大纲猜 “挖掉的内容”

  • 场景:现在修复师拿到一本被挖掉大半内容(激进掩码) 的书,比如《小红帽》只剩:

    小红帽 [M] ,[M] 外婆 [M] ……

  • 模型操作
    修复师拿着阶段 A 总结的核心大纲(“女孩带东西去外婆家遇危险” ),结合仅存的只言片语(如 “小红帽”“外婆” ),开始猜挖掉的内容:

    • 第一处 [M] 可能是 “带着蛋糕”(因为去外婆家常带食物 );
    • 第二处 [M] 可能是 “去”(逻辑补全动作 );
    • 第三处 [M] 可能是 “家”(补全 “外婆家” )。
      这个过程就是用大纲(句子嵌入) + 少量残留文字(可见 token),重建大量缺失内容(掩码 token),强迫修复师(模型)理解 “小红帽→外婆家→带东西” 的语义关联。

阶段 C:增强解码(Enhanced decoding)—— 精细修复每一句话

  • 场景:现在有一本完整但 “每句话都被做了特殊标记” 的书(所有 token 都要重建),规则是:

    • 每句话里,不能参考自己的文字(主对角线填 −∞,灰色,比如 “小红帽” 这句话,不能直接用 “小红帽” 三个字猜,得看上下文 );
    • 只能参考其他句子的信息(可见上下文填 0,蓝色,比如用 “路很长”“太阳很晒” 猜 “小红帽走得很慢” )。
  • 模型操作
    修复师需要逐句修复,但每修一句话时,不能用这句话自己的词,必须看其他句子的内容推理:

    • 修 “小红帽带着蛋糕” 时,得参考 “路很远”→ 推测 “蛋糕用篮子装”(因为路远需要容器 );
    • 修 “狼很狡猾” 时,得参考 “小红帽天真”→ 推测 “狼假装成外婆”(因为角色性格对比 )。
      这个过程就是让模型学习句子间的深层依赖,比如 “人物性格→行为逻辑”“场景描述→物品细节” 的关联,最终精细修复整个故事(重建所有 token )。

类比总结:RetroMAE 预训练像 “分阶段修复故事书”

  • 编码(A):先抓故事核心(全局语义),记住关键碎片(可见 token );
  • 解码(B):用核心 + 碎片,猜大量缺失内容(强化语义推理 );
  • 增强解码(C):精细修复每处细节,但强制参考其他部分(学习复杂依赖 )。

最终,模型(修复师)学会了 “从全局到局部、从碎片到完整” 理解文本的能力,预训练完成后,就能更好处理检索任务(比如找 “小红帽遇狼” 相关的故事片段 ),或者文本生成(比如续写故事 )啦~

相关文章:

RetroMAE 预训练任务

RetroMAE 预训练任务的具体步骤,围绕 编码(Encoding)、解码(Decoding)、增强解码(Enhanced decoding) 三个核心阶段展开,以下结合图中流程拆解: 一、阶段 A:…...

软件工程:如何做好软件产品

1、什么是产品 从项目到产品 产品:满足行业共性需求的标准产品。即要能够做到配置化的开发,用同一款产品最大限度地满足不同客户的需求,同时让产品具有可以快速响应客户需求变化的能力。 好的产品一定吸收了多个项目的共性,一定是…...

蓝桥杯 省赛 2025python(B组)题目(分析)

目录 第一题 为什么答案是103而不是104? 第二题 为什么必须按长度排序? 第三题 易错点总结 第四题 逻辑问题: 可能超过时间复杂度的代码示例 1. 暴力枚举所有可能的子串 2. 递归回溯 第五题 1. 暴力枚举法 2. 优化枚举 3.数…...

React - 组件通信

组件通信 概念:组件通信就是组件之间数据传递,根据组件嵌套关系不同,有不同的通信方法 父传子 —— 基础实现 实现步骤 父组件传递数据 - 在子组件标签上绑定属性子组件接收数据 - 子组件通过props参数接收数据 声明子组件并使用 //声明子…...

《前端面试题:CSS的display属性》

CSS display属性完全指南:深入理解布局核心属性 掌握display属性是CSS布局的基石,也是前端面试必考知识点 一、display属性概述:布局的核心控制 display属性是CSS中最重要、最基础的属性之一,它决定了元素在页面上的渲染方式和布…...

飞牛使用Docker部署Tailscale 内网穿透教程

之前发过使用docker部署Tailscale的教程,不过是一年前的事情了,今天再重新发表一遍,这次使用compose部署更加方便,教程也会更加详细一点,希望对有需要的朋友有所帮助! 对于大部分用户来说,白嫖 …...

《数据挖掘》- 房价数据分析

这里写目录标题 采用的技术1. Python编程语言2. 网络爬虫库技术点对比与区别项目技术栈的协同工作流程 代码解析1. 导入头文件2. 读取原始数据3. 清洗数据4. 数据分割4.1 统计房屋信息的分段数量4.2 将房屋信息拆分为独立列4.3 处理面积字段4.4 删除原始房屋信息列 5. 可视化分…...

centos中的ulimit命令

centos中的ulimit命令 ulimit的作用CENTOS系统文件配置配置文件地址配置格式 配置方法 ulimit的作用 ulimit用于限制shell启动进程所占用的资源,支持以下各种类型的限制:所创建的内核文件的大小、进程数据块的大小、Shell进程创建文件的大小、内存锁住的…...

git提交代码和解决冲突修复bug

提交到分支的步骤如下: 确保你当前在开发分支上,可以使用命令 git branch 来查看当前所在分支,并使用 git checkout 命令切换到开发分支。使用 git add 命令将修改的文件添加到暂存区。使用 git commit 命令提交代码到本地仓库。 解决合并冲…...

华为仓颉语言初识:并发编程之同步机制(上)

前言 线程同步机制是多线程下解决线程对共享资源竞争的主要方式,华为仓颉语言提供了三种常见的同步机制用来保证线程同步安全,分别是原子操作,互斥锁和条件变量。本篇文章详细介绍主要仓颉语言解决同步机制的方法,建议点赞收藏&a…...

php中实现邮件发送功能

要在php项目中实现邮件发送功能,推荐使用phpmailer库通过smtp协议配置。首先安装phpmailer扩展,可通过composer命令composer require phpmailer/phpmailer安装;若未使用composer则手动引入源码。接着配置smtp信息,包括服务器地址&…...

C++之动态数组vector

Vector 一、什么是 std::vector?二、std::vector 的基本特性(一)动态扩展(二)随机访问(三)内存管理 三、std::vector 的基本操作(一)定义和初始化(二&#xf…...

arc3.2语言sort的时候报错:(sort < `(2 9 3 7 5 1)) 需要写成这种:(sort > (pair (list 3 2)))

arc语言sort的时候报错&#xff1a;(sort < (2 9 3 7 5 1)) arc> (sort < (2 9 3 7 5 1)) Error: "set-car!: expected argument of type <pair>; given: 9609216" arc> (sort < (2 9 3 )) Error: "Function call on inappropriate object…...

Android动态广播注册收发原理

一、动态广播的注册流程 1. ​​注册方式​​ 动态广播通过代码调用 Context.registerReceiver() 方法实现&#xff0c;需显式指定 IntentFilter 和接收器实例&#xff1a; // 示例&#xff1a;在 Activity 中注册监听网络变化的广播 IntentFilter filter new IntentFilter…...

Ubuntu 系统通过防火墙管控 Docker 容器

Ubuntu 系统通过防火墙管控 Docker 容器指南 一、基础防火墙配置 # 启用防火墙 sudo ufw enable# 允许 SSH 连接&#xff08;防止配置过程中断联&#xff09; sudo ufw allow 22/tcp二、Docker 配置调整 # 编辑 Docker 配置文件 sudo vim /etc/docker/daemon.json配置文件内…...

AI 模型分类全解:特性与选择指南

人工智能&#xff08;AI&#xff09;技术正以前所未有的速度改变着我们的生活和工作方式。AI 模型作为实现人工智能的核心组件&#xff0c;种类繁多&#xff0c;功能各异。从简单的线性回归模型到复杂的深度学习网络&#xff0c;从文本生成到图像识别&#xff0c;AI 模型的应用…...

【Zephyr 系列 11】使用 NVS 实现 BLE 参数持久化:掉电不丢配置,开机自动加载

🧠关键词:Zephyr、NVS、非易失存储、掉电保持、Flash、AT命令保存、配置管理 📌目标读者:希望在 BLE 模块中实现掉电不丢配置、支持产测参数注入与自动加载功能的开发者 📊文章长度:约 5200 字 🔍 为什么要使用 NVS? 在实际产品中,我们经常面临以下场景: 用户或…...

【Android】Android Studio项目代码异常错乱问题处理(2020.3版本)

问题 项目打开之后&#xff0c;发现项目文件直接乱码&#xff0c; 这样子的 这本来是个Java文件&#xff0c;结果一打开变成了这种情况&#xff0c;跟见鬼一样&#xff0c;而且还不是这一个文件这样&#xff0c;基本上一个项目里面一大半都是这样的问题。 处理方法 此时遇到…...

n皇后问题的 C++ 回溯算法教学攻略

一、问题描述 n皇后问题是经典的回溯算法问题。给定一个 nn 的棋盘&#xff0c;要求在棋盘上放置 n 个皇后&#xff0c;使得任何两个皇后之间不能互相攻击。皇后可以攻击同一行、同一列以及同一对角线上的棋子。我们需要找出所有的合法放置方案并输出方案数。 二、输入输出形…...

一些免费的大A数据接口库

文章目录 一、Python开源库&#xff08;适合开发者&#xff09;1. AkShare2. Tushare3. Baostock 二、公开API接口&#xff08;适合快速调用&#xff09;1. 新浪财经API2. 腾讯证券接口3. 雅虎财经API 三、第三方数据平台&#xff08;含免费额度&#xff09;1. 必盈数据2. 聚合…...

DeepSeek本地部署及WebUI可视化教程

前言 DeepSeek是近年来备受关注的大模型之一,支持多种推理和微调场景。很多开发者希望在本地部署DeepSeek模型,并通过WebUI进行可视化交互。本文将详细介绍如何在本地环境下部署DeepSeek,并实现WebUI可视化,包括Ollama和CherryStudio的使用方法。 一、环境准备 1. 硬件要…...

机器学习算法时间复杂度解析:为什么它如此重要?

时间复杂度的重要性 虽然scikit-learn等库让机器学习算法的实现变得异常简单&#xff08;通常只需2-3行代码&#xff09;&#xff0c;但这种便利性往往导致使用者忽视两个关键方面&#xff1a; 算法核心原理的理解缺失 忽视算法的数据适用条件 典型算法的时间复杂度陷阱 SV…...

SSIM、PSNR、LPIPS、MUSIQ、NRQM、NIQE 六个图像质量评估指标

评价指标 1. SSIM&#xff08;Structural Similarity Index&#xff09; &#x1f4cc; 定义 结构相似性指数&#xff08;Structural Similarality Index&#xff09;是一种衡量两幅图像相似性的指标&#xff0c;考虑了亮度、对比度和结构信息的相似性&#xff0c;比传统的 P…...

【笔记】旧版MSYS2 环境中 Rust 升级问题及解决过程

下面是一份针对在旧版 MSYS2&#xff08;安装在 D 盘&#xff09;中&#xff0c;基于 Python 3.11 的 Poetry 虚拟环境下升级 Rust 的处理过程笔记&#xff08;适用于 WIN 系统 SUNA 人工智能代理开源项目部署要求&#xff09;的记录。 MSYS2 旧版环境中 Rust 升级问题及解决过…...

centos查看开启关闭防火墙状态

执行&#xff1a;systemctl status firewalld &#xff0c;即可查看防火墙状态 防火墙的开启、关闭、禁用命令 &#xff08;1&#xff09;设置开机启用防火墙&#xff1a;systemctl enable firewalld.service &#xff08;2&#xff09;设置开机禁用防火墙&#xff1a;system…...

[论文阅读] 人工智能 | 大语言模型计划生成的新范式:基于过程挖掘的技能学习

#论文阅读# 大语言模型计划生成的新范式&#xff1a;基于过程挖掘的技能学习 论文信息 Skill Learning Using Process Mining for Large Language Model Plan Generation Andrei Cosmin Redis, Mohammadreza Fani Sani, Bahram Zarrin, Andrea Burattin Cite as: arXiv:2410.…...

MS31912TEA 多通道半桥驱动器 氛围灯 照明灯 示宽灯 转向灯驱动 后视镜方向调节 可替代DRV8912

MS31912TEA 多通道半桥驱动器 氛围灯 照明灯 示宽灯 转向灯驱动 后视镜方向调节 可替代DRV8912 产品简述 MS31912 是集成多种高级诊断功能的多通道半桥驱动。 MS31912 具有 12 个半桥&#xff0c;典型工作电压 13.5V 下&#xff0c;每一个半桥支持 1A 电流&#xff0c;典型工…...

软考 系统架构设计师系列知识点之杂项集萃(84)

接前一篇文章&#xff1a;软考 系统架构设计师系列知识点之杂项集萃&#xff08;83&#xff09; 第151题 在软件系统工具中&#xff0c;版本控制工具属于&#xff08;&#xff09;&#xff0c;软件评价工具属于&#xff08;&#xff09;。 第1空 A. 软件开发工具 B. 软件维…...

矩阵QR分解

1 orthonormal 向量与 Orthogonal 矩阵 orthonormal 向量定义为 &#xff0c;任意向量 相互垂直&#xff0c;且模长为1&#xff1b; 如果将 orthonormal 向量按列组织成矩阵&#xff0c;矩阵为 Orthogonal 矩阵&#xff0c;满足如下性质&#xff1a; &#xff1b; 当为方阵时&…...

UDP与TCP的区别是什么?

UDP和TCP是互联网通信中最常用的两种传输层协议&#xff0c;它们在数据传输方式、可靠性、速度和适用场景等方面存在显著差异。本文将围绕UDP与TCP的核心区别展开详细分析&#xff0c;包括连接方式、数据传输机制、传输效率以及各自适合的应用场景&#xff0c;帮助开发者和网络…...