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=?i?yi?logpi?
  • 特點:

    • 僅在整個輸入上計算一個類別概率,而不涉及逐 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=?t?logp(yt?y<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(yt?y<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.pswp.cn/news/899820.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/899820.shtml
英文地址,請注明出處:http://en.pswp.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編…