百面Bert

百面Bert

Q1. Bert與Transformer有什么關系

Bert是基于Transformer架構中的Encoder進行搭建的。
具體來說,Bert的核心組件是幾個Encoder layer的堆疊。Encoder layer中,也是兩個子層,分別是注意力層和intermediate層(Bert中的叫法,實際就是前饋層)。

注意力層中,有一點不同的是,當Q和K計算了相似度之后,要和一個可訓練的position embedding相加。Transformer中的Position embedding是不可訓練的。這也導致Bert處理的序列長度是有限的,不能超過訓練時的最大長度。
在intermediate層中,是一個線性層+激活函數+輸出層。這里的激活函數是GELU激活函數,?斯誤差線性單元激活函數。

Q2. Bert采用了什么預訓練+微調的范式

從2018年的ELMo開始,預訓練+微調的范式開始走入NLP領域。ELMo是基于雙向的LSTM,在訓練數據進行預訓練,在下游任務進行微調。
Bert也采用了該范式,一是將模型結構換為了Transformer,二是采用了新的預訓練任務。 因為傳統的LM預訓練,是在無監督數據上進行,即對一段無標注的文本,采用上文預測下文的方式,這是單向建模。雖然有Position embedding,但是模型仍然不能擬合雙向的語義關系。

  1. MLM(Masked Language Modeling): 隨機對句子中15%的token進行遮蔽,在訓練時預測這些被遮蔽的token,即“完形填空”,這樣模型就可以學習到雙向的語義。
    但是這里有一個問題,Bert在微調時,并沒有Mask過程,因此預訓練和微調的不一致會影響模型的表現。因此15%的token中,每個token有80%進行遮蔽,10%被隨機替換為其他token,10%保持不變。這里保持不變就意味和下游微調任務對齊,隨機替換則是希望模型不只關注被預測的token,也要關注其他token,進而對整個句子進行建模。
  2. NSP(Next Sentence Prediction):下一個句子預測,希望模型在句子級別進行建模,完成問答匹配、自然語言推理等任務。核心任務是判斷一個句子對是否是連續的上下文。這樣的訓練語料可以從文本中摘取,并通過隨機替換的方式獲取負樣本。

Input: “I love you”
“Because you are beauty”
Output:“1”

Q3. 下游任務微調

所謂微調,其實和訓練時更新模型參數的策略?致,只不過在特定的任務、更少的訓練數據、更?。
的 batch_size 上進?訓練,更新參數的幅度更?。

BERT 設計了更通?的輸?和輸出層來適配多任務下的遷移學習。對每?個輸?的?本序列,BERT 會
在其?部加??個特殊 token 。在后續編碼中,該 token 代表的即是整句的狀態,也就是句級的語義表
征。在進? NSP 預訓練時,就使?了該 token 對應的特征向量來作為最后分類器的輸?。

Q4. 預訓練任務都有效嗎

Bert的變體, 由Facebook開發的RoBERTa,對此進行實驗,發現NSP任務并不一定有效,因為其太簡單。甚至會影響模型的性能。因此后續去掉了該任務。
Bert的變體,ALBERT,也認為NSP過于簡單,不過并沒有直接去掉該任務,而是對其進行優化。正樣本為連續的兩個句子,組成一個句子對。負樣本是將正樣本中的兩個句子先后順序顛倒。

輸?:
Sentence A:I love you.
Sentence B: Because you are wonderful.
輸出:
1(正樣本)
輸?:
Sentence A:Because you are wonderful.
Sentence B: I love you.
輸出:
0(負樣本)

Q5. Mask具體是怎么做的

Bert中,是在數據預處理階段進行Mask,也就是在訓練時,Masked的位置已經確定,因為Bert訓練了40epoch,其每10個epoch使用一組masked的結果,這樣可以使訓練數據更豐富。
在后續的變體中,廣泛采用了訓練時Mask的做法,實驗表明,這樣做會帶來微弱的提升,但是因為這樣的工程實驗更簡潔。

Q6. Tokenizer編碼策略

RoBERTa、BERT 和 Transformer ?樣,都使?了 BPE 作為 Tokenizer 的編碼策略。BPE,即 Byte Pair
Encoding,字節對編碼,是指以?詞對作為分詞的單位。例如,對“Hello World”這句話,可能會切分為“Hel,lo,
Wor,ld”四個?詞對。?對于以字為基本單位的中?,?般會按照 字節編碼進?切分。例如,在 UTF-8 編碼中,
“我”會被編碼為“E68891”,那么在 BPE 中可能就會切分成“E68”,“891”兩個字詞對。

一般來說,詞表越大,性能越好,但是這也會帶來embedding參數的增加,因為embedding表的shape為(vocab_size,hidden_size)

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

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

相關文章

Docker Compose與私有倉庫部署

目錄 一. Docker 重啟策略 二. Docker Compose工具的應用 1. 什么是 Docker compose 2. Docker compose 的安裝 3. 編輯文件格式及編寫注意事項 4. docker-compose的基本用法 三. Harbor私有倉庫 1. 什么是Harbor 2. Harbor 的優勢 3. Harbor 的構成 四. 部署Harbor…

數字隔離器,如何扛起現代智能家電的電氣安全“大旗”

隨著現代社會生活節奏的不斷加速,人們對于屬于自己的休閑時間愈發珍視,而智能家居作為提升人類居家幸福感與舒適度的現代化產物,不僅能有效滿足人們對高品質生活的追求,還能推動產業升級與經濟增長,引導智能家電設備從…

mybatis3調用瀚高procedure報錯(APP)

文章目錄 環境文檔用途詳細信息 環境 系統平臺:Linux x86-64 Red Hat Enterprise Linux 7 版本:4.5 文檔用途 mybatis3調用瀚高procedure報錯(錯誤信息:調用過程請使用CALL)的解決方案。 詳細信息 客戶項目中使用…

96道Docker 容器高頻題整理(附答案背誦版)

簡述什么是 Docker 容器? Docker容器是一個開源的應用容器引擎,它讓開發者可以將他們的應用以及依賴包打包到一個可移植的容器中,然后發布到任何安裝了Docker引擎的服務器上,包括流行的Linux機器、Windows機器等。Docker容器利用…

成都芯谷金融中心·文化科技園打造文化科技高地

成都芯谷金融中心正式啟動運營,標志著雙流區集成電路產業生態圈的關鍵拼圖落位。該項目以"文化科技金融"融合發展為核心理念,旨在構筑服務區域實體經濟的創新引擎。 核心戰略定位與區域價值 產業賦能樞紐:深度聚焦集成電路、新型…

IntelliJ IDEA 加速優化指南

IntelliJ IDEA 加速優化指南 IntelliJ IDEA 是一款功能強大的 IDE,但隨著項目規模增大和長期使用,可能會出現性能下降的情況。以下是一些有效的加速優化方法: 1. 基礎配置優化 內存分配調整 修改 idea.vmoptions 文件 (位置:H…

基于YOLO的智能車輛檢測與記錄系統

基于YOLO的智能車輛檢測與記錄系統 摘要 本報告總結了智能車輛檢測系統的開發工作,主要包括車輛數據標注、YOLO模型訓練及QT交互系統搭建三部分。通過使用專業標注工具完成車輛目標數據集的標注與預處理,基于YOLO模型構建車輛檢測算法并優化訓練流程&a…

網絡調試的藝術:利用瀏覽器Network工具優化你的網站

🧭 General(通用信息) General 部分通常包含請求的基本信息,如請求方法、URL、協議版本等 字段名稱描述常見值示例Request URL請求的完整地址(包括協議、域名、路徑、查詢參數)https://example.com/api/d…

Mongodb數據庫應用

目錄 什么是mongodb 主要特點 MongoDB 概念解析 完整術語列表 MongoDB 安裝 MongoDB Shell 安裝 MongoDB Shell 驗證 MongoDB Shell 數據庫管理 查看數據庫列表 創建數據庫 實例 刪除數據庫 實例 默認數據庫 系統內置數據庫 集合管理 查看集合 創建集合 實…

以太網基礎與 VLAN 配置實驗

以太網是一種基于CSMA/CD(Carrier Sense Multiple Access/Collision Detection)的共享通訊介質的數據網絡通訊技術。當主機數目較多時會導致沖突嚴重、廣播泛濫、性能顯著下降甚至造成網絡不可用等問題。通過交換機實現 LAN 互連雖然可以解決沖突嚴重的問題,但仍然不…

開源流程引擎Camunda簡介

目錄 簡單介紹 主要組件與名詞介紹 常見名詞解釋 核心組件介紹 一些思考 與前端的關系 前端邏輯的簡化 后端接口的專注 流程引擎的控制作用 數據和狀態的管理 監控和管理的集中化 參考資料 簡單介紹 Camunda的本質是可以獨立運行的一套流程引擎,流程引擎…

從面試題出發,如何設計消息隊列

一、引言 在 Java 開發面試的戰場上,消息隊列相關問題一直是高頻考點。面試官們常常拋出這樣的問題:“如果讓你設計一個消息隊列,你會怎么做?” 這可不是在故意刁難,背后有著深層次的考察意圖。? 從實際場景來看&am…

卡薩帝發布AI深度科技:實現從守護生活到守護文明的升級

2025年6月25日,以“AI致遠 愛不凡”為主題的卡薩帝思享薈于重慶科學會堂啟幕。活動現場,卡薩帝發布“AI深度科技”。同時,搭載AI深度科技的“AI鑒賞家套系”同步上市。 AI浪潮下,卡薩帝品牌不斷升級,從“高端家電領導…

FastAPI + PyMySQL 報錯:“dict can not be used as parameter”的原因及解決方案

? FastAPI PyMySQL 報錯 “dict can not be used as parameter” 問題及解決方案 最近在開發一個基于 FastAPI 的碳足跡因子智能匹配系統時,后端保存接口數據到 MySQL 時遇到了如下錯誤: ? 解析失敗: dict can not be used as parameter 一、問題背景…

解決 “docker-compose: command not found“ 錯誤

解決 “docker-compose: command not found” 錯誤 在 CentOS 7 上看到這個錯誤,說明系統中未安裝 docker-compose。以下是完整的安裝和配置步驟: 一、安裝 Docker Compose 1. 確保已安裝 Docker # 檢查 Docker 是否安裝 docker --version# 如果未安…

Android11 深休后系統定時喚醒導致網絡請求服務器過載

硬件平臺:QCS6125 軟件平臺:Android11 問題:每天的7:00和22:00 服務器會突然收到批量設備的網絡請求,導致服務器過載。 通過系統的logcat日志發現了系統在休眠后,每天會有22:00、7:00的喚醒,從而導致這個時…

部署網站需求全滿足:Websoft9 多應用托管一站式方案解析

在數字化浪潮中,搭建專業網站已成為企業觸達客戶的核心通道。然而,從服務器選型到軟件環境配置,傳統建站模式往往讓技術門檻成為中小企業的 “攔路虎”。Websoft9 多應用托管平臺通過深度優化的鏡像技術,重新定義了 WordPress 建站…

Spring Boot 啟動優化實踐

本文系統性分析并優化了一個Spring Boot項目啟動耗時高達 280 秒的問題。通過識別瓶頸、優化分庫分表加載邏輯、異步初始化耗時任務等手段,最終將啟動耗時縮短至 159 秒,提升近 50%。文章涵蓋啟動流程分析、性能熱點識別、異步初始化設計等關鍵技術細節&…

Jenkins執行Jenkinsfile報錯

遇到部署的步驟時傳輸文件到其他服務器,文件傳上去了,但是命令都沒有執行成功。 寫法: 報錯了:ERROR:Exception when publishing,exception message [Exec exit status not zero.Status [1]] 原因是因為:cd 引用了環…

Modbus TCP轉Profibus DP網接APM810/MCE安科瑞多功能電表通訊案例

Modbus TCP轉Profibus DP網接APM810/MCE安科瑞多功能電表通訊案例 在工業自動化和電力監控領域,Modbus TCP與Profibus DP是兩種常見的通訊協議,它們各自有著廣泛的應用場景和優勢。而當需要將這兩者進行連接,以實現不同設備間的數據傳輸和信…