時(shí)隔6年BERT升級(jí)!僅編碼器架構(gòu)沒被殺死,更快更準(zhǔn)確更長(zhǎng)上下文
時(shí)隔6年,一度被認(rèn)為瀕死的“BERT”殺回來了——
更現(xiàn)代的ModernBERT問世,更快、更準(zhǔn)、上下文更長(zhǎng),發(fā)布即開源!
去年一張“大語言模型進(jìn)化樹”動(dòng)圖在學(xué)術(shù)圈瘋轉(zhuǎn),decoder-only枝繁葉茂,而曾經(jīng)盛極一時(shí)的encoder-only卻似乎走向沒落。
ModernBERT作者Jeremy Howard卻說:
encoder-only被低估了。
他們最新拿出了參數(shù)分別為139M(Base)、395M(Large)的兩個(gè)模型,上下文長(zhǎng)度為8192 token,相較于以BERT為首的大多數(shù)編碼器,其長(zhǎng)度是它們的16倍。
ModernBERT特別適用于信息檢索(RAG)、分類、實(shí)體抽取等任務(wù)。
在檢索、自然語言理解和代碼檢索測(cè)試中性能拿下SOTA:
效率也很高。
ModernBERT速度是DeBERTa的兩倍;在更常見的輸入長(zhǎng)度混合的情況下,速度可達(dá)4倍;長(zhǎng)上下文推理比其它模型快約3倍。
關(guān)鍵它所占的內(nèi)存還不到DeBERTa的五分之一。
Jeremy Howard表示,目前關(guān)于生成式模型的熱議掩蓋了encoder-only模型的作用。
像GPT-4這樣大模型,太大、太慢、私有化、成本高昂,對(duì)許多任務(wù)來說并不適合,還有Llama 3.1,參數(shù)都達(dá)到了405B。
這些模型運(yùn)行緩慢,價(jià)格昂貴,而且不是你可以控制的。
GPT-4這樣的生成模型還有一個(gè)限制:它們不能預(yù)先看到后面的token,只能基于之前已生成的或已知的信息來進(jìn)行預(yù)測(cè),即只能向后看。
而像BERT這樣的僅編碼器模型可以同時(shí)考慮前后文信息,向前向后看都行。
ModernBERT的發(fā)布吸引數(shù)十萬網(wǎng)友在線圍觀點(diǎn)贊。
抱抱臉聯(lián)合創(chuàng)始人兼CEO Clem Delangue都來捧場(chǎng),直呼“愛了?。 ?。
為什么ModernBERT冠以“現(xiàn)代”之名?相較于BERT做了哪些升級(jí)?
殺不死的encoder-only
ModernBERT的現(xiàn)代體現(xiàn)在三個(gè)方面:
- 現(xiàn)代化的Transformer架構(gòu)
- 特別關(guān)注效率
- 現(xiàn)代數(shù)據(jù)規(guī)模與來源
下面逐一來看。
首先,ModernBERT深受Transformer++(由Mamba命名)的啟發(fā),這種架構(gòu)的首次應(yīng)用是在Llama2系列模型上。
ModernBERT團(tuán)隊(duì)用其改進(jìn)后的版本替換了舊的BERT-like構(gòu)建塊,主要包括以下改進(jìn):
- 用旋轉(zhuǎn)位置嵌入(RoPE)替換舊的位置編碼,提升模型理解詞語之間相對(duì)位置關(guān)系的表現(xiàn),也有利于擴(kuò)展到更長(zhǎng)的序列長(zhǎng)度。
- 用GeGLU層替換舊的MLP層,改進(jìn)了原始BERT的GeLU激活函數(shù)。
- 通過移除不必要的偏置項(xiàng)(bias terms)簡(jiǎn)化架構(gòu),由此可以更有效地使用參數(shù)預(yù)算。
- 在嵌入層之后添加一個(gè)額外的歸一化層,有助于穩(wěn)定訓(xùn)練。
接著,在提升速度/效率方面,ModernBERT利用了Flash Attention 2進(jìn)行改進(jìn),依賴于三個(gè)關(guān)鍵組件:
一是使用交替注意力(Alternating Attention),提高處理效率。
二是使用Unpadding和Sequence Packing,減少計(jì)算浪費(fèi)。
三是通過硬件感知模型設(shè)計(jì)(Hardware-Aware Model Design),最大化硬件利用率。
這里就不詳細(xì)展開了,感興趣的童鞋可以自行查閱原論文。
最后來看訓(xùn)練和數(shù)據(jù)方面的改進(jìn)。
團(tuán)隊(duì)認(rèn)為,encoders在訓(xùn)練數(shù)據(jù)方面的落后,實(shí)際問題在于訓(xùn)練數(shù)據(jù)的多樣性,即許多舊模型訓(xùn)練的語料庫有限,通常只包括維基百科和書籍,這些數(shù)據(jù)只有單一的文本模態(tài)。
所以,ModernBERT在訓(xùn)練時(shí)使用了多種數(shù)據(jù),包括網(wǎng)絡(luò)文檔、編程代碼和科學(xué)文章,覆蓋了2萬億token,其中大部分是獨(dú)一無二的,而不是之前encoders中常見的20-40次的重復(fù)數(shù)據(jù)。
訓(xùn)練過程,團(tuán)隊(duì)堅(jiān)持使用原始BERT的訓(xùn)練配方,并做了一些小升級(jí),比如移除了下一句預(yù)測(cè)目標(biāo),因?yàn)橛醒芯勘砻鬟@樣的設(shè)置增加了開銷但沒有明顯的收益,還將掩碼率從15%提高到30%。
具體來說,139M、395M兩個(gè)規(guī)格的模型都通過了三階段訓(xùn)練。
首先第一階段,在序列長(zhǎng)度為1024的情況下訓(xùn)練1.7T tokens。然后是長(zhǎng)上下文適應(yīng)階段,模型處理的序列長(zhǎng)度增加到8192,訓(xùn)練數(shù)據(jù)量為250B tokens,同時(shí)通過降低批量大小保持每批次處理的總tokens量大致相同。最后,模型在500億個(gè)特別采樣的tokens上進(jìn)行退火處理,遵循ProLong強(qiáng)調(diào)的長(zhǎng)上下文擴(kuò)展理想混合。
一番操作下來,模型在長(zhǎng)上下文任務(wù)上表現(xiàn)具有競(jìng)爭(zhēng)力,且處理短上下文的能力不受損。
訓(xùn)練過程團(tuán)隊(duì)還對(duì)學(xué)習(xí)率進(jìn)行了特別處理。在前兩個(gè)階段,模型使用恒定學(xué)習(xí)率,而在最后的500億tokens的退火階段,采用了梯形學(xué)習(xí)率策略(熱身-穩(wěn)定-衰減)。
團(tuán)隊(duì)還使用兩個(gè)技巧,加速模型的訓(xùn)練過程,一個(gè)是常見的batch-size warmup,另一個(gè)是受微軟Phi系列模型啟發(fā),利用現(xiàn)有的性能良好的ModernBERT-base模型權(quán)重,通過將基礎(chǔ)模型的權(quán)重“平鋪”擴(kuò)展到更大的模型,提高權(quán)重初始化的效果。
作者透露將將公開checkpoints,以支持后續(xù)研究。
誰打造的?
前面提到的Jeremy Howard是這項(xiàng)工作的作者之一。
ModernBERT的三位核心作者是:
Benjamin Warner、Antoine Chaffin、Benjamin ClaviéOn。
Jeremy Howard透露,項(xiàng)目最初是由Benjamin Clavié在七個(gè)月前啟動(dòng)的,隨后Benjamin Warner、Antoine Chaffin加入共同成為項(xiàng)目負(fù)責(zé)人。
Benjamin ClaviéOn、Benjamin Warner,同Jeremy Howard一樣,來自Answer.AI。Answer.AI打造了一款能AI解題、概念闡釋、記憶和復(fù)盤測(cè)試的教育應(yīng)用,在北美較為流行。
Antoine Chaffin則來自LightOn,也是一家做生成式AI的公司。
團(tuán)隊(duì)表示BERT雖然看起來大家談?wù)摰纳倭?,但其?shí)至今仍在被廣泛使用:
目前在HuggingFace平臺(tái)上每月下載次數(shù)超6800萬。正是因?yàn)樗膃ncoder-only架構(gòu)非常適合解決日常出現(xiàn)檢索(例如用于RAG)、分類(例如內(nèi)容審核)和實(shí)體提取任務(wù)。
Jeremy Howard表示明年將訓(xùn)練這個(gè)模型的更大版本。
Blog:https://huggingface.co/blog/modernbert
ModernBERT-Base:https://huggingface.co/answerdotai/ModernBERT-base
ModernBERT-Large:https://huggingface.co/answerdotai/ModernBERT-large
論文:https://arxiv.org/pdf/2412.13663