【人工智能99問】BERT的訓練過程和推理過程是怎么樣的?(24/99)

文章目錄

  • BERT的訓練過程與推理過程
    • 一、預訓練過程:學習通用語言表示
      • 1. 數據準備
      • 2. MLM任務訓練(核心)
      • 3. NSP任務訓練
      • 4. 預訓練優化
    • 二、微調過程:適配下游任務
      • 1. 任務定義與數據
      • 2. 輸入處理
      • 3. 模型結構調整
      • 4. 微調訓練
    • 三、推理過程:對新數據預測
      • 1. 推理輸入預處理
      • 2. 模型前向傳播
      • 3. 輸出預測結果
    • 四、訓練與推理的核心區別
    • 五、總結

BERT的訓練過程與推理過程

BERT的核心流程分為預訓練(無監督學習通用語言知識)和微調(監督學習適配下游任務),而推理則是基于微調后的模型對新數據進行預測。以下結合具體實例詳細說明。

一、預訓練過程:學習通用語言表示

預訓練是BERT的“筑基階段”,通過無標注文本學習語言規律,核心任務為Masked Language Model(MLM)Next Sentence Prediction(NSP)

1. 數據準備

  • 語料來源:大規模無標注文本(如BooksCorpus、Wikipedia),示例文本片段:
    “自然語言處理是人工智能的重要分支。它研究計算機與人類語言的交互。”
  • 預處理步驟
    1. 分詞:用WordPiece分詞工具拆分文本為子詞(Subword)。例如“人工智能”→“人工”+“智能”;“交互”→“交”+“互”。
    2. 構造輸入序列:對單句或句子對添加特殊符號,最長長度限制為512 Token。
      • 單句格式:[CLS] 自然 語言 處理 是 人工 智能 的 重要 分支 。 [SEP]
      • 句子對格式:[CLS] 自然 語言 處理 是 人工智能 的 重要 分支 。 [SEP] 它 研究 計算機 與 人類 語言 的 交互 。 [SEP]

2. MLM任務訓練(核心)

目標:隨機掩蓋部分Token,讓模型預測被掩蓋的Token,強制學習雙向上下文。

  • 具體操作
    從輸入序列中隨機選擇15%的Token進行處理:
    • 80%概率替換為[MASK]
      原序列:[CLS] 自然 語言 處理 是 人工 智能 的 重要 分支 。 [SEP]
      處理后:[CLS] 自然 [MASK] 處理 是 人工 智能 的 [MASK] 分支 。 [SEP]
      (需預測被掩蓋的“語言”和“重要”)
    • 10%概率替換為隨機Token:
      處理后:[CLS] 自然 圖像 處理 是 人工 智能 的 重要 分支 。 [SEP]
      (“語言”被隨機替換為“圖像”,模型需識別錯誤并預測正確Token)
    • 10%概率不替換(保持原Token):
      處理后:[CLS] 自然 語言 處理 是 人工 智能 的 重要 分支 。 [SEP]
      (模型需“假裝”不知道哪些Token被掩蓋,避免依賴[MASK]符號)
  • 損失計算:對被掩蓋的Token,通過輸出層的Softmax計算預測概率,用交叉熵損失優化模型,讓預測值接近真實Token。

3. NSP任務訓練

目標:讓模型學習句子間的邏輯關系,判斷句子對是否連續。

  • 具體操作
    構造句子對(A, B),50%為真實連續句(正例),50%為隨機拼接句(負例):
    • 正例:A=“自然語言處理是人工智能的重要分支。”,B=“它研究計算機與人類語言的交互。”(B是A的下一句)。
    • 負例:A=“自然語言處理是人工智能的重要分支。”,B=“貓是一種常見的家養寵物。”(B與A無關)。
      輸入序列格式:[CLS] A [SEP] B [SEP],并添加Segment Embedding(A部分為0,B部分為1)。
  • 損失計算:通過[CLS]Token的輸出向量接二分類層,用交叉熵損失優化模型,區分正例(標簽1)和負例(標簽0)。

4. 預訓練優化

  • 訓練配置:BERT-Base使用12層Transformer,批量大小256,訓練步數100萬,優化器為Adam(學習率5e-5,β1=0.9,β2=0.999)。
  • 正則化:每層加入Dropout(概率0.1),防止過擬合;使用層歸一化穩定訓練。
  • 硬件支持:需大規模GPU集群(如16塊TPU,訓練約4天),通過梯度累積處理大批次數據。

二、微調過程:適配下游任務

預訓練完成后,模型已具備通用語言理解能力,微調階段需針對具體任務(如情感分析、問答)調整輸出層并優化參數。以下以情感分析任務(判斷文本為“正面”或“負面”)為例說明。

1. 任務定義與數據

  • 任務目標:輸入文本(如“這部電影劇情緊湊,演員演技出色!”),輸出情感標簽(正面/負面)。
  • 微調數據:帶標簽的情感語料,示例:
    文本標簽
    “這部電影劇情緊湊,演員演技出色!”正面
    “畫面模糊,音效刺耳,不推薦觀看。”負面

2. 輸入處理

  • 單句輸入格式:[CLS] 這 部 電影 劇情 緊湊 , 演員 演技 出色 ! [SEP]
  • 嵌入向量構造:同預訓練,包含Token Embedding(子詞向量)、Segment Embedding(全為0,因單句)、Position Embedding(位置編碼)。

3. 模型結構調整

  • 復用預訓練的Transformer編碼器,僅在輸出層添加分類頭
    [CLS]Token經過12層Transformer后的輸出向量(768維),接入全連接層+Softmax,輸出“正面”“負面”的概率。
    即:P(正面/負面)=Softmax(W?H[CLS]+b)P(正面/負面) = Softmax(W \cdot H_{[CLS]} + b)P(正面/負面)=Softmax(W?H[CLS]?+b),其中H[CLS]H_{[CLS]}H[CLS]?[CLS]的最終向量,WWWbbb是微調階段待學習的參數。

4. 微調訓練

  • 參數設置:凍結部分底層Transformer參數(或微調所有參數),學習率設為2e-5(低于預訓練,避免破壞預訓練知識),批量大小32,訓練輪次3-5輪。
  • 損失計算:對每個樣本,用交叉熵損失計算預測概率與真實標簽的差異,通過反向傳播更新分類頭和少量Transformer參數。
  • 早停策略:用驗證集監控性能,若連續多輪無提升則停止訓練,防止過擬合。

三、推理過程:對新數據預測

微調完成后,模型可對未標注的新文本進行情感預測,推理過程即模型的前向傳播計算。

1. 推理輸入預處理

  • 輸入新文本:“這部電影的特效震撼,劇情感人至深。”
  • 分詞與格式轉換:
    分詞后:[CLS] 這 部 電影 的 特效 震撼 , 劇情 感人 至 深 。 [SEP]
    轉換為嵌入向量:Token Embedding + Segment Embedding(全0) + Position Embedding。

2. 模型前向傳播

  • 嵌入向量輸入12層Transformer編碼器:
    每層通過多頭自注意力捕捉Token間關聯(如“特效”與“震撼”、“劇情”與“感人”的語義強化),前饋網絡進行非線性變換,最終輸出每個Token的上下文向量。
  • 提取[CLS]向量:H_{[CLS]}(768維)聚合了整個句子的情感語義。

3. 輸出預測結果

  • H_{[CLS]}輸入分類頭,計算概率:
    P(正面)=0.92P(正面) = 0.92P(正面)=0.92P(負面)=0.08P(負面) = 0.08P(負面)=0.08
  • 決策:取概率最高的標簽,輸出“正面”。

四、訓練與推理的核心區別

維度預訓練過程微調過程推理過程
數據類型無標注文本(大規模)有標注任務數據(小規模)無標注新文本(單條/批量)
目標學習通用語言規律(MLM+NSP)適配具體任務(如情感分類)輸出新數據的預測結果
參數更新全量參數優化(數百萬步)少量參數微調(數輪)無參數更新(僅前向傳播)
計算復雜度極高(需大規模算力)中等(單GPU可完成)低(實時響應)

五、總結

BERT的訓練過程通過“預訓練筑基+微調適配”實現知識遷移:預訓練用無監督任務從海量文本中學習語言本質,微調則用少量標注數據將通用知識轉化為任務能力;而推理則是微調后模型對新數據的高效預測。這種模式大幅降低了NLP任務的落地門檻,成為現代自然語言處理的核心范式。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/95370.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/95370.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/95370.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[TryHackMe]Challenges---Game Zone游戲區

這個房間將涵蓋 SQLi(手動利用此漏洞和通過 SQLMap),破解用戶的哈希密碼,使用 SSH 隧道揭示隱藏服務,以及使用 metasploit payload 獲取 root 權限。 1.通過SQL注入獲得訪問權限 手工注入 輸入用戶名 嘗試使用SQL注入…

北京JAVA基礎面試30天打卡09

1.MySQL存儲引擎及區別特性MyISAMMemoryInnoDBB 樹索引? Yes? Yes? Yes備份 / 按時間點恢復? Yes? Yes? Yes集群數據庫支持? No? No? No聚簇索引? No? No? Yes壓縮數據? Yes? No? Yes數據緩存? NoN/A? Yes加密數據? Yes? Yes? Yes外鍵支持? No? No? Yes…

AI時代的SD-WAN異地組網如何落地?

在全球化運營與數字化轉型浪潮下,企業分支機構、數據中心與云服務的跨地域互聯需求激增。傳統專線因成本高昂、部署緩慢、靈活性差等問題日益凸顯不足。SD-WAN以其智能化調度、顯著降本、敏捷部署和云網融合的核心優勢,成為實現高效、可靠、安全異地組網…

css中的color-mix()函數

color-mix() 是 CSS 顏色模塊(CSS Color Module Level 5)中引入的一個強大的顏色混合函數,用于在指定的顏色空間中混合兩種或多種顏色,生成新的顏色值。它解決了傳統顏色混合(如通過透明度疊加)在視覺一致性…

Github desktop介紹(GitHub官方推出的一款圖形化桌面工具,旨在簡化Git和GitHub的使用流程)

文章目錄**1. 簡化 Git 操作****2. 代碼版本控制****3. 團隊協作****4. 代碼托管與共享****5. 集成與擴展****6. 跨平臺支持****7. 適合的使用場景****總結**GitHub Desktop 是 GitHub 官方推出的一款圖形化桌面工具,旨在簡化 Git 和 GitHub 的使用流程,…

整數規劃-分支定界

內容來自:b站數學建模老哥 如:3.4,先找小于3的,再找大于4的 逐個

JetPack系列教程(六):Paging——讓分頁加載不再“禿”然

前言 在Android開發的世界里,分頁加載就像是一場永無止境的馬拉松,每次滾動到底部,都仿佛在提醒你:“嘿,朋友,還有更多數據等著你呢!”但別擔心,Google大佬們早就看透了我們的煩惱&a…

扎實基礎!深入理解Spring框架,解鎖Java開發新境界

大家好,今天想和大家聊聊Java開發路上繞不開的一個重要基石——Spring框架。很多朋友在接觸SpringBoot、SpringCloud這些現代化開發工具時,常常會感到吃力。究其原因,往往是對其底層的Spring核心機制理解不夠透徹。Spring是構建這些高效框架的…

Heterophily-aware Representation Learning on Heterogeneous Graphs

Heterophily-Aware Representation Learning on Heterogeneous Graphs (TPAMI 2025) 計算機科學 1區 I:18.6 top期刊 ?? 摘要 現實世界中的圖結構通常非常復雜,不僅具有全局結構上的異質性,還表現出局部鄰域內的強異質相似性(heterophily)。雖然越來越多的研究揭示了圖…

計算機視覺(7)-純視覺方案實現端到端軌跡規劃(思路梳理)

基于純視覺方案實現端到端軌跡規劃,需融合開源模型、自有數據及系統工程優化。以下提供一套從模型選型到部署落地的完整方案,結合前沿開源技術與工業實踐: 一、開源模型選型與組合策略 1. 感知-預測一體化模型 ViP3D(清華&#…

Nginx 屏蔽服務器名稱與版本信息(源碼級修改)

Nginx 屏蔽服務器名稱與版本信息(源碼級修改) 一、背景與目的 在生產環境部署 Nginx 時,默認配置會在 Server 響應頭中暴露服務類型(如 nginx)和版本號(如 nginx/1.25.4)。這些信息可能被攻擊者…

從鋼板內部應力視角,重新認識護欄板矯平機

一、為什么鋼板會“自帶波浪”? 鋼卷在熱軋后冷卻、卷取、長途運輸、多次吊運時,不同部位受到的溫度、張力、碰撞并不一致,內部會產生不均勻的殘余應力。應力大的區域想“伸長”,應力小的區域想“縮短”,宏觀上就表現為…

C++中的`auto`與`std::any`:功能、區別與選擇建議

引言 在C編程中,auto和std::any是兩個功能強大但用途不同的工具。理解它們的區別和適用場景對于編寫高效、可維護的代碼至關重要。本文將詳細介紹auto和std::any的基本概念、使用方法、適用場景以及它們之間的區別,并提供選擇建議,幫助開發者…

【Linux】進程(Process)

一、什么是進程二、進程的創建三、進程的狀態四、僵尸進程五、孤兒進程六、進程的優先級 以及 并發/并行七、進程的切換一、什么是進程?什么是進程呢(一)?官方話來說:進程是一個執行實例、正在執行的程序、是系統資源分配的基本單位按課本官方話可能有一…

銷售管理系統哪個好?14款軟件深度對比

本文將深入對比14款銷售管理系統:1.紛享銷客; 2.Zoho CRM; 3.神州云動 CRM; 4.勵銷云 CRM; 5.Microsoft Dynamics?365 CRM; 6.悟空 CRM; 7.泛微 CRM; 8.HubSpot CRM; 9.…

如何從 0 到 1 開發企業級 AI 應用:步驟、框架與技巧

本文來自作者 莫爾索 的 企業級 AI 應用開發與最佳實踐指南, 歡迎閱讀原文。 大家好,我之前出版的《LangChain 編程:從入門到實踐》一書獲得了良好的市場反響和讀者認可。近期推出了第二版,我對內容進行了大幅更新:近 …

【LLM】Openai之gpt-oss模型和GPT5模型

note gpt-oss模型代理能力:使用模型的原生功能進行函數調用、網頁瀏覽(https://github.com/openai/gpt-oss/tree/main?tabreadme-ov-file#browser)、Python 代碼執行(https://github.com/openai/gpt-oss/tree/main?tabreadme-o…

Ubuntu 20.04 虛擬機安裝完整教程:從 VMware 到 VMware Tools

目錄 一、VMware的安裝 1. 資源獲取 1. 網盤提取 2. VMware官網,選擇自己合適的版本,我下載的是16.2版本 2.安裝步驟 二、Ubuntu的安裝 1. Ubuntu 鏡像文件官網下載 2. Ubuntu的安裝步驟 第一步:打開剛剛安裝好的VMware16.2.0&#…

【DL】最優化理論和深度學習

最優化理論是計算機科學中一個重要的概念,它用于幫助我們找到最優解(即最小或最大值)的算法。在深度學習中,最優化理論用于幫助深度學習模型找到最優解。訓練誤差(Training Error):指模型在訓練…

商品分類拖拽排序設計

商品分類、菜單項以及其他需要排序的元素常常會用到拖拽排序功能。這個看似簡單的交互背后,其實涉及到一系列復雜的后端邏輯處理,尤其是在如何高效地更新數據庫記錄方面。本文將探討兩種常見的實現方案,并分析各自的優缺點,幫助你…