NLP语言模型训练里的特殊向量

1. CLS 向量和 DEC 向量的区别及训练方式

(1) CLS 向量与 DEC 向量是否都是特殊 token?

CLS 向量([CLS] token)和 DEC 向量(Decoder Input token)都是特殊的 token,但它们出现在不同类型的 NLP 模型中,并承担不同的功能。

  1. CLS 向量([CLS] token)

    • 主要出现在 BERT 类的双向 Transformer 编码器模型中,比如 BERT、RoBERTa、ALBERT 等。
    • 用于表示整个输入序列的全局信息,常用于分类任务(如情感分析、文本匹配)。
    • 具体机制:
      • 在 BERT 预训练阶段,[CLS] token 被加在输入文本的最前面。
      • 经过 Transformer 编码层后,输出的 CLS 向量聚合了整个文本的信息,最终送入分类头进行任务训练。
      • 例如,在情感分类任务中,CLS 向量会经过全连接层和 softmax 变换,输出正负类别概率。
  2. DEC 向量(Decoder Input token)

    • 主要出现在 Encoder-Decoder 结构的模型中,比如 Transformer(用于机器翻译)、T5(用于文本生成)等。
    • 充当解码器的初始输入,通常由 <bos>(begin-of-sequence) 或者 <s>(start token)表示。
    • 具体机制:
      • 训练时,Decoder 需要一个起始 token(例如 <bos>),然后依赖 Encoder 的输出和已生成的部分自回归地预测下一个 token。
      • 生成过程中,每个时间步的 DEC 向量都会影响下一个 token 的生成。

(2) CLS 向量和 DEC 向量如何初始化?

  • CLS 向量初始化
    在 BERT 预训练时,[CLS] token 的初始向量与普通词向量一样,随机初始化,并在训练过程中通过梯度下降不断优化。

  • DEC 向量初始化
    在 Transformer 类模型中,DEC token 也通常是随机初始化的,但是不同的模型可能采用不同的方法:

    • 在 T5 这种预训练模型中,Decoder 的输入采用的是预训练时学习到的 <s> token 。
    • 在机器翻译任务中,Decoder 可能使用源语言的 <bos> 作为起点。

(3) CLS 向量和 DEC 向量如何参与训练?

  • CLS 向量的训练方式:

    • 在 BERT 预训练任务(如 Masked Language Model 和 Next Sentence Prediction)中,CLS 向量是计算句子级别任务损失的关键部分。
    • 在下游任务中(如文本分类),CLS 向量会经过额外的线性层,用于预测类别标签。
  • DEC 向量的训练方式:

    • 参与自回归训练,即在训练时,Decoder 只能够看到之前的词,而预测当前时间步的目标词(Teacher Forcing 机制)。
    • 目标是最大化正确序列的似然,使得 DEC 向量能够学习如何有效指导解码器生成合理的输出。

(4) CLS 向量和 DEC 向量本质上是否相同?

从数学本质上看,它们都是高维向量(embedding),但在模型设计上:

  • CLS 向量用于编码文本全局语义,属于 Encoder 端的产物。
  • DEC 向量用于自回归地指导序列生成,属于 Decoder 端的输入。
  • 区别主要体现在训练方式、任务目标和语义作用上。

2. 分类损失(如交叉熵) vs. 语言模型损失(如负对数似然)

这两种损失都用于 NLP 任务,但应用场景不同。

(1) 分类损失(Cross Entropy, CE)

  • 适用任务: 用于文本分类、命名实体识别(NER)、情感分析等任务。

  • 计算方式:

    • 先计算模型输出的类别概率分布:
      p i = softmax ( z i ) p_i = \text{softmax}(z_i) pi=softmax(zi)
    • 再计算真实类别 ( y ) 与预测类别 ( p ) 之间的交叉熵:
      L = − ∑ i y i log ⁡ p i L = -\sum_{i} y_i \log p_i L=iyilogpi
  • 特点:

    • 仅在整个输入上计算一个类别概率,而不涉及逐 token 预测。

(2) 语言模型损失(Negative Log Likelihood, NLL)

  • 适用任务: 用于文本生成、机器翻译、问答任务(如 GPT、T5)。

  • 计算方式:

    • 语言模型在训练时,目标是最大化正确序列的似然概率,其损失形式为:
      L = − ∑ t log ⁡ p ( y t ∣ y < t , x ) L = -\sum_{t} \log p(y_t | y_{<t}, x) L=tlogp(yty<t,x)
    • 这里,( y_t ) 是第 ( t ) 个时间步的目标词,( y_{<t} ) 代表已生成的部分,( x ) 是输入序列(如果是 Encoder-Decoder)。
  • 特点:

    • 逐 token 计算损失,关注序列的生成概率。
    • 在自回归(Auto-regressive)任务中,每个 token 预测结果依赖前面已生成的部分。

(3) 两者的主要区别

分类损失(CE)语言模型损失(NLL)
任务类型句子级别任务(分类)逐 token 预测任务(生成)
计算方式计算整个文本的类别概率计算每个 token 的预测概率
是否自回归

3. 自回归(Autoregressive, AR)

(1) 自回归的定义

自回归(Autoregressive)是一种序列建模方法,当前时间步的预测依赖于过去的输出

(2) 为什么叫“自回归”?

  • “回归” 这个术语在统计学中表示根据历史数据预测未来值。
  • “自” 指的是模型的输入来自于自己之前的预测。
  • 因此,自回归 = “使用自身过去的信息来预测未来”

(3) NLP 中的自回归模型

  • GPT(Generative Pre-trained Transformer)

    • 在第 ( t ) 个时间步,只能看到 ( y_1, y_2, \ldots, y_{t-1} ) 这些前面的 token,不能看到未来的信息。

    • 预测方式:
      p ( y t ∣ y < t ) p(y_t | y_{<t}) p(yty<t)

    • 依赖“过去的输出”来预测下一个词,典型的自回归结构。

  • BERT 不是自回归模型

    • BERT 是 双向 Transformer,训练时可以看到整个输入,因此它不是自回归模型。

(4) 自回归的应用

  • 语言模型(GPT、XLNet)
  • 机器翻译(Transformer Decoder)
  • 语音生成(WaveNet)

总结

  1. CLS 向量和 DEC 向量本质上都是向量,但用途不同

    • CLS 向量用于文本分类、全局表征;
    • DEC 向量用于解码器输入,引导文本生成。
  2. 分类损失 vs. 语言模型损失

    • 交叉熵用于整体分类;
    • 负对数似然用于逐 token 预测。
  3. 自回归(Auto-regressive)是指依赖自身过去输出进行预测,GPT 等生成模型采用这一机制。


在 NLP 任务中,<s><bos> 都是 特殊 token,但它们的使用方式略有不同,取决于具体的模型和任务。

1. <s>(Start-of-Sequence Token)

<s> 代表 序列的起始 token,在不同的模型中用途不同:

  • 在 T5 模型(Text-to-Text Transfer Transformer)中:

    • T5 是一个 Encoder-Decoder 结构的 Transformer,所有任务都被转换成文本生成任务。
    • 在 T5 的 Decoder 中,解码输入(Decoder Input)以 <s> 作为起始 token,然后逐步生成后续 token。
    • 训练时:
      输入 (Encoder Input) = "Translate English to French: I love NLP"
      目标输出 (Decoder Target) = "<s> J'aime le NLP </s>"
      
    • 预测时:
      • <s> 提供解码起点,模型基于 Encoder 的输出和 <s> 生成下一个 token。
  • 在 BART(Bidirectional and Auto-Regressive Transformer)模型中:

    • BART 也是 Encoder-Decoder 结构,用于文本填充、摘要等任务
    • <s> 用于标识句子开始,在 BART 预训练阶段,模型可能会恢复丢失的 <s> token
  • 在一些 NLP 任务中

    • <s> 也可以作为整个句子或段落的起点,类似于 [CLS](BERT 中用于分类任务的 token)。

2. <bos>(Beginning-of-Sequence Token)

<bos> 代表 序列的开始,用于 自回归(Auto-regressive)解码

  • 在机器翻译(MT)任务中

    • Transformer 结构的 Decoder 需要一个起始 token,通常用 <bos> 作为 Decoder 的输入。
    • 例如:
      源语言输入 (Encoder Input): "I love NLP"
      目标输出 (Decoder Target): "<bos> J'aime le NLP <eos>"
      
    • 在训练时,Decoder 会在 <bos> 之后一个个预测目标语言的 token,直到遇到 <eos>(end-of-sequence)。
  • 在 GPT 这样的自回归模型中

    • GPT 主要用于文本生成任务,如对话、摘要。
    • <bos> 告诉模型“文本从这里开始”,然后 GPT 依次预测下一个 token。

3. <s><bos> 的区别

Token常见用途典型模型
<s> (Start-of-Sequence)句子/段落的起点,用于 Encoder-Decoder 任务T5、BART
<bos> (Beginning-of-Sequence)自回归生成的起始 token,特别用于解码GPT、Transformer Decoder
  • 如果是 Encoder-Decoder 结构(如 T5、BART),一般使用 <s> 作为起始 token。
  • 如果是 仅 Decoder 结构(如 GPT),则使用 <bos> 作为文本生成的起始 token。

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

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

相关文章

字节跳动 UI-TARS 汇总整理报告

1. 摘要 UI-TARS 是字节跳动开发的一种原生图形用户界面&#xff08;GUI&#xff09;代理模型 。它将感知、行动、推理和记忆整合到一个统一的视觉语言模型&#xff08;VLM&#xff09;中 。UI-TARS 旨在跨桌面、移动和 Web 平台实现与 GUI 的无缝交互 。实验结果表明&#xf…

基于Python深度学习的鲨鱼识别分类系统

摘要&#xff1a;鲨鱼是海洋环境健康的指标&#xff0c;但受到过度捕捞和数据缺乏的挑战。传统的观察方法成本高昂且难以收集数据&#xff0c;特别是对于具有较大活动范围的物种。论文讨论了如何利用基于媒体的远程监测方法&#xff0c;结合机器学习和自动化技术&#xff0c;来…

【漫话机器学习系列】168.最大最小值缩放(Min-Max Scaling)

在机器学习和数据预处理中&#xff0c;特征缩放&#xff08;Feature Scaling&#xff09; 是一个至关重要的步骤&#xff0c;它可以使模型更稳定&#xff0c;提高训练速度&#xff0c;并优化收敛效果。最大最小值缩放&#xff08;Min-Max Scaling&#xff09; 是其中最常见的方…

开源测试用例管理平台

不可错过的10个开源测试用例管理平台&#xff1a; PingCode、TestLink、Kiwi TCMS、Squash TM、FitNesse、Tuleap、Robot Framework、SpecFlow、TestMaster、Nitrate。 开源测试用例管理工具提供了一种透明、灵活的解决方案&#xff0c;使团队能够在不受限的情况下适应具体的测…

鸿蒙阔折叠Pura X外屏开发适配

首先看下鸿蒙中断点分类 内外屏开合规则 Pura X开合连续规则: 外屏切换到内屏,界面可以直接接续。内屏(锁屏或非锁屏状态)切换到外屏,默认都显示为锁屏的亮屏状态。用户解锁后:对于应用已适配外屏的情况下,应用界面可以接续到外屏。折叠外屏显示展开内屏显示折叠状态…

DRM_CLIENT_CAP_UNIVERSAL_PLANES和DRM_CLIENT_CAP_ATOMIC

drmSetClientCap(fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1); drmSetClientCap(fd, DRM_CLIENT_CAP_ATOMIC, 1); 这两行代码用于启用 Linux DRM&#xff08;Direct Rendering Manager&#xff09;客户端的两个关键特性&#xff0c;具体作用如下&#xff1a; 1. drmSetClientCap…

敏捷开发10:精益软件开发和看板kanban开发方法的区别是什么

简介 精益生产起源于丰田生产系统&#xff0c;核心是消除浪费&#xff0c;而看板最初是由丰田用于物料管理的信号卡片&#xff0c;后来被引入软件开发。 Kanban 后来引入到敏捷开发中&#xff0c;强调持续交付和流程可视化。 精益软件开发原则是基于精益生产的原则&#xff0…

用matlab探索卷积神经网络(Convolutional Neural Networks)-3

5.GoogLeNet中的Filters 这里我们探索GoogLeNet中的Filters&#xff0c;首先你需要安装GoogLeNet.在Matlab的APPS里找到Deep Network Designer,然后找到GoogLeNet&#xff0c;安装后的网络是没有右下角的黄色感叹号的&#xff0c;没有安装的神经网络都有黄色感叹号。 一个层&a…

Verilog中X态的危险:仿真漏掉的bug

由于Verilog中X态的微妙语义,RTL仿真可能PASS,而网表仿真却会fail。 目前进行的网表仿真越来越少,这个问题尤其严重,主要是网表仿真比RTL仿真慢得多,因此对整个回归测试而言成本效益不高。 上面的例子中,用Verilog RTL中的case语句描述了一个简单的AND函数,它被综合成AN…

PyTorch中知识蒸馏浅讲

知识蒸馏 在 PyTorch 中,使用 teacher_model.eval() 和冻结教师模型参数是知识蒸馏(Knowledge Distillation)中的关键步骤。 ​1. teacher_model.eval() 的作用 目的: 将教师模型切换到评估模式,影响某些特定层(如 Dropout、BatchNorm)的行为。 ​具体影响: ​Dropo…

Odoo/OpenERP 和 psql 命令行的快速参考总结

Odoo/OpenERP 和 psql 命令行的快速参考总结 psql 命令行选项 选项意义-a从脚本中响应所有输入-A取消表数据输出的对齐模式-c <查询>仅运行一个简单的查询&#xff0c;然后退出-d <数据库名>指定连接的数据库名&#xff08;默认为当前登录用户名&#xff09;-e回显…

ChatGPT 迎来 4o模型:更强大的图像生成能力与潜在风险

OpenAI 对 ChatGPT 进行重大升级&#xff0c;图像生成功能即将迎来新的 4o 模型&#xff0c;并取代原本的 DALLE。此次更新不仅提升了图像生成质量&#xff0c;还增强了对话内容和上传文件的融合能力&#xff0c;使 AI 生成的图像更加智能化和精准化。 4o 模型带来的革新 Ope…

Python 实现的运筹优化系统代码详解(整数规划问题)

一、引言 在数学建模的广袤领域里&#xff0c;整数规划问题占据着极为重要的地位。它广泛应用于工业生产、资源分配、项目管理等诸多实际场景&#xff0c;旨在寻求在一系列约束条件下&#xff0c;使目标函数达到最优&#xff08;最大或最小&#xff09;且决策变量取整数值的解决…

Visual Studio Code配置自动规范代码格式

目录 前言1. 插件安装2. 配置个性化设置2.1 在左下角点击设置按钮 &#xff0c;点击命令面板&#xff08;或者也可以之间按快捷键CtrlShiftP&#xff09;2.2 在弹出的搜索框输入 settings.json&#xff0c;打开首选项&#xff1a;打开工作区设置&#xff1b;2.3 在settings.jso…

【分布式】Hystrix 的核心概念与工作原理​

熔断机制​ Hystrix 的熔断机制就像是电路中的保险丝。当某个服务的失败请求达到一定比例&#xff08;例如 50%&#xff09;或者在一定时间内&#xff08;如 20 秒&#xff09;失败请求数量超过一定阈值&#xff08;如 20 个&#xff09;时&#xff0c;熔断开关就会打开。此时…

TypeScript 中 await 的详解

TypeScript 中 await 的详解 1. 基本概念2. 语法要求3. 工作原理4. 与 Promise 的比较5. 实践中的注意事项总结 本文详细介绍了 TypeScript 中 await 的工作原理、语法要求、与 Promise 的关系以及实践中需要注意的问题&#xff0c;同时针对代码示例进行了优化和补充说明。 1.…

ThreadLocal 深度解析

一、引言 在多线程编程的复杂世界中&#xff0c;数据共享与隔离是一个核心且具有挑战性的问题。ThreadLocal 作为 Java 并发包中的重要工具&#xff0c;为我们提供了一种独特的线程局部变量管理方式&#xff0c;使得每个线程都能拥有自己独立的变量副本&#xff0c;避免了多线…

VMware安装Ubuntu实战分享

在日常开发和学习过程中&#xff0c;很多人都会选择在VMware虚拟机上安装Ubuntu&#xff0c;以便进行Linux环境的体验和开发调试。本文将详细分享在VMware Workstation上安装Ubuntu的全过程&#xff0c;并结合个人经验&#xff0c;提供一些实用的小技巧&#xff0c;帮助大家顺利…

阻止上传可执行程序

点击工具中的文件服务器资源管理器 、然后点击文件屏蔽管理中的文件屏蔽&#xff0c;然后导入目标文件选择要限制的属性即可

微服务面试题:配置中心

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…