自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Bert重大創(chuàng)新,RAG突破512長(zhǎng)度限制

發(fā)布于 2024-12-31 13:03
瀏覽
0收藏

當(dāng)前RAG的檢索、召回模塊,受到了傳統(tǒng)BERT模型只支持512長(zhǎng)度的極大限制。導(dǎo)致文檔切分后的chunksize,極大影響RAG的性能。

本文介紹的ModernBERT,在BERT的基礎(chǔ)上進(jìn)行了重大改進(jìn),以提高下游任務(wù)的性能和效率,尤其是在更長(zhǎng)序列長(zhǎng)度上的表現(xiàn)。

ModernBERT在2萬(wàn)億個(gè)token上進(jìn)行訓(xùn)練,原生支持8192序列長(zhǎng)度,展現(xiàn)了在多樣化分類(lèi)任務(wù)和單向、多向檢索任務(wù)上的卓越性能。

ModernBERT解決的問(wèn)題 

  • 問(wèn)題1:傳統(tǒng)Bert序列長(zhǎng)度512的限制

ModernBERT通過(guò)增加序列長(zhǎng)度到8192個(gè)token,顯著提高了模型處理長(zhǎng)文本的能力。

  • 問(wèn)題2:傳統(tǒng)BERT注意力機(jī)制效率低下

為了提高模型的運(yùn)行速度和內(nèi)存效率,ModernBERT引入了一系列現(xiàn)代模型優(yōu)化技術(shù),包括交替的全局和局部注意力機(jī)制、無(wú)填充(unpadding)策略以及Flash Attention技術(shù)。

  • 問(wèn)題3:傳統(tǒng)Bert架構(gòu)陳舊

ModernBERT采用了最新的模型架構(gòu)改進(jìn),例如GeGLU激活函數(shù)、RoPE位置編碼和預(yù)標(biāo)準(zhǔn)化(pre-normalization)技術(shù)

突破性能的關(guān)鍵技術(shù) 

  • 在相同的參數(shù)數(shù)量下,具有更多窄層的模型(深而窄)與具有較少寬層的模型(淺而寬)具有不同的學(xué)習(xí)模式。
  • 深而窄的語(yǔ)言模型比其較淺的對(duì)應(yīng)模型具有更好的下游性能,但代價(jià)是推理速度較慢。
  • 為了獲得更好的下游性能,ModernBERT設(shè)計(jì)的目標(biāo)是盡可能深而窄。
  • ModernBERT的基礎(chǔ)模型和大型模型分別具有22層和28層,參數(shù)總數(shù)分別為1.49億和3.95億,在后續(xù)性能和硬件效率之間取得了平衡。
  • ModernBERT基礎(chǔ)模型的隱藏層大小為768,GLU擴(kuò)展為2304;大型模型的隱藏層大小為1024a,GLU擴(kuò)展為5248。 這些比例允許跨張量核心的最佳平鋪。

transformer架構(gòu)的改進(jìn)

  1. GeGLU激活函數(shù):替代原有的GeLU激活函數(shù),提供更好的非線性表達(dá)能力。
  2. RoPE位置編碼:使用旋轉(zhuǎn)位置編碼(RoPE)代替絕對(duì)位置編碼,以提高模型對(duì)序列順序的理解能力。
  3. 預(yù)標(biāo)準(zhǔn)化(pre-normalization):在每個(gè)Transfaormer塊中使用預(yù)標(biāo)準(zhǔn)化技術(shù),有助于穩(wěn)定訓(xùn)練過(guò)程。
  • 在嵌入層之后添加了一個(gè)層歸一化。 為避免重復(fù),去除了第一個(gè)注意力層中的第一個(gè)層歸一化。
  1. 交替注意力機(jī)制:在模型中交替使用全局和局部注意力,以平衡計(jì)算效率和性能。
  • 全局注意力:序列中的每個(gè)token都關(guān)注其他每個(gè)token
  • 局部注意力:token僅關(guān)注一個(gè)小滑動(dòng)窗口內(nèi)的token。
  • 在ModernBERT中,每三層使用RoPE theta為160,000的全局注意力,其余層使用具有128個(gè)token、RoPE theta為10,000的局部滑動(dòng)窗口注意力。

模型訓(xùn)練的改進(jìn)

  1. 在2萬(wàn)億個(gè)token上進(jìn)行訓(xùn)練,數(shù)據(jù)來(lái)源包括網(wǎng)頁(yè)文檔、代碼和科學(xué)文獻(xiàn)。模型采用了現(xiàn)代的BPE分詞器,并設(shè)置了50,368的詞匯量,以?xún)?yōu)化GPU利用率。
  2. 訓(xùn)練采用了Masked Language Modeling(MLM),并去除了Next-Sentence Prediction(NSP)目標(biāo),因?yàn)楹笳卟⑽磶?lái)性能上的提升。
  3. 模型使用了StableAdamW優(yōu)化器,并采用了改進(jìn)的梯形學(xué)習(xí)率計(jì)劃
  4. 采用去除填充策略,去除填充token,減少計(jì)算資源的浪費(fèi)
  • encoder-only語(yǔ)言模型通常使用填充符元來(lái)確保批次中統(tǒng)一的序列長(zhǎng)度,從而浪費(fèi)在語(yǔ)義上為空的符元上的計(jì)算資源。
  • 去除填充通過(guò)移除填充token、將小批量中的所有序列連接成單個(gè)序列并將其作為單個(gè)批次進(jìn)行處理來(lái)避免這種低效。
  • 之前的去除填充實(shí)現(xiàn)會(huì)在不同的模型層內(nèi)部去除填充并重新填充序列,從而浪費(fèi)計(jì)算資源和內(nèi)存帶寬。
  • 使用Flash Attention的可變長(zhǎng)度注意力和RoPE實(shí)現(xiàn),允許在單個(gè)未填充序列上使用不規(guī)則的注意力掩碼和RoPE應(yīng)用。
  • ModernBERT在嵌入層之前去除輸入的填充,并可以選擇性地重新填充模型輸出,這使得其性能比其他去除填充方法提高了10%到20%。
  1. 使用Flash Attention技術(shù),提高了注意力計(jì)算的內(nèi)存和計(jì)算效率。
  • ModernBERT結(jié)合使用Flash Attention 3進(jìn)行全局注意力層
  • 使用Flash Attention 2進(jìn)行局部注意力
  1. 利用PyTorch的torch.compile編譯功能,提高了訓(xùn)練的吞吐量10%。
  2. 通過(guò)增加全局注意力層的RoPE theta值,將原生上下文長(zhǎng)度512擴(kuò)展到8192個(gè)token,并在額外的3000億個(gè)token上進(jìn)行訓(xùn)練,以?xún)?yōu)化長(zhǎng)文本處理能力。

訓(xùn)練參數(shù)的配置 

  • MLM:

a.使用30%的掩碼率,原始的15%掩碼率再次被證明是次優(yōu)的

  • StableAdamW優(yōu)化器:

a.StableAdamW的學(xué)習(xí)率裁剪在下游任務(wù)中優(yōu)于標(biāo)準(zhǔn)梯度裁剪,并導(dǎo)致更穩(wěn)定的訓(xùn)練。

  • 梯形學(xué)習(xí)率 (LR) :

a.在預(yù)訓(xùn)練期間,我們使用改進(jìn)的梯形學(xué)習(xí)率 (LR) schedule,也稱(chēng)為預(yù)熱-穩(wěn)定-衰減 (WSD)。

b.在短暫的LR預(yù)熱之后,梯形schedule在大部分訓(xùn)練中保持LR不變,然后進(jìn)行短暫的LR衰減。

c.此schedule已被證明可以匹配余弦schedule的性能。

d.并且可以對(duì)任何檢查點(diǎn)進(jìn)行持續(xù)訓(xùn)練而不會(huì)出現(xiàn)冷啟動(dòng)問(wèn)題。

e.使用1-sqrt的LR衰減,要優(yōu)于線性衰減和余弦衰減

f.ModernBERT-base 以8e-4的恒定LR訓(xùn)練了1.7萬(wàn)億個(gè)token,預(yù)熱了30億個(gè)token

g.預(yù)熱20億個(gè)token后,以5e-4的LR訓(xùn)練了ModernBERT-large,訓(xùn)練了9000億個(gè)符元。

h.在large的損失在5e-4下保持穩(wěn)定了幾百億個(gè)token后,將學(xué)習(xí)率回滾到5e-5,并重新訓(xùn)練剩余的8000億個(gè)token。

  • 批量大小調(diào)度:

a.批量大小調(diào)度從較小的梯度累積批量開(kāi)始,隨著時(shí)間的推移逐漸增加到完整的批量大小,能加快訓(xùn)練進(jìn)度

b.ModernBERT-base和-large的批量大小分別在500億個(gè)token內(nèi)從768增加到4608,在100億個(gè)token內(nèi)從448增加到4928,采用不均勻的token調(diào)度,以便每個(gè)批量大小具有相同數(shù)量的更新步驟。

  • 權(quán)重初始化和平鋪:

a.使用中心平鋪和Gopher層縮放,直接從ModernBERT-base的預(yù)訓(xùn)練權(quán)重初始化ModernBERT-large

b.由于Base的權(quán)重矩陣小于Large的權(quán)重矩陣,對(duì)Base的權(quán)重進(jìn)行了中心化處理,考慮了每個(gè)token嵌入和注意力頭,然后使用環(huán)繞填充其余權(quán)重。

  • 上下文長(zhǎng)度擴(kuò)展:

a.以1024個(gè)序列長(zhǎng)度和10,000的RoPE theta對(duì)1.7萬(wàn)億個(gè)token進(jìn)行訓(xùn)練后,通過(guò)將全局注意力層的RoPE theta增加到160,000并將額外訓(xùn)練3000億個(gè)token來(lái)擴(kuò)展ModernBERT的原生上下文長(zhǎng)度到8192個(gè)token。

b.首先,以3e-4的恒定較低學(xué)習(xí)率對(duì)8192個(gè)token的原始預(yù)訓(xùn)練數(shù)據(jù)集混合體進(jìn)行2500億個(gè)token的訓(xùn)練

c.接下來(lái),對(duì)更高質(zhì)量的來(lái)源進(jìn)行上采樣,并在500億個(gè)token上進(jìn)行具有1-sqrt學(xué)習(xí)率調(diào)度的衰減階段。

??https://github.com/AnswerDotAI/ModernBERT??

??https://arxiv.org/pdf/2412.13663??

本文轉(zhuǎn)載自??CourseAI??,作者: CourseAI 

已于2024-12-31 14:27:13修改
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦