HuggingFace教你怎樣做出SOTA視覺(jué)模型
前有OpenAI的GPT-4o,后有谷歌的系列王炸,先進(jìn)的多模態(tài)大模型接連炸場(chǎng)。
其他從業(yè)者在震撼之余,也再次開(kāi)始思考怎么追趕這些超級(jí)模型了。
剛好在這時(shí),HuggingFace和法國(guó)索邦大學(xué)的一篇論文,總結(jié)出了構(gòu)建視覺(jué)大模型的關(guān)鍵經(jīng)驗(yàn),給開(kāi)發(fā)者指明了一條路。
圖片
這些經(jīng)驗(yàn)涵蓋了模型架構(gòu)選擇、訓(xùn)練方法、訓(xùn)練數(shù)據(jù)等多個(gè)方面,作者在多方比較之后給出了詳盡的總結(jié),核心要點(diǎn)包括這些內(nèi)容:
- 想把視覺(jué)大模型搞好,架構(gòu)的選擇很重要。
- 語(yǔ)言模型對(duì)整體表現(xiàn)的影響,比視覺(jué)模塊更大。
- 采用分階段預(yù)訓(xùn)練策略,更有利于構(gòu)建模型能力。
- 訓(xùn)練數(shù)據(jù)應(yīng)包含多種類(lèi)型,并注意之間的比例平衡。
可以說(shuō),HF能夠打造出同規(guī)模SOTA的視覺(jué)模型Idefics2,背后依靠的都是這些經(jīng)驗(yàn)。
Idefics2基于Mistral-7B打造,整體擁有8B的參數(shù)量,可以準(zhǔn)確識(shí)別出手寫(xiě)字體。
圖片
專(zhuān)業(yè)人士評(píng)價(jià)稱(chēng),這是一篇很好的調(diào)查報(bào)告,對(duì)視覺(jué)模型開(kāi)發(fā)者很有幫助,不過(guò)同時(shí)也提醒說(shuō)不要當(dāng)成萬(wàn)金油來(lái)看。
圖片
當(dāng)然也有人打趣說(shuō),什么架構(gòu)數(shù)據(jù)都是浮云,有GPU才是最關(guān)鍵的。
圖片
倒也有些道理,不過(guò)玩笑歸玩笑,還是來(lái)看看HuggingFace都帶給了我們哪些經(jīng)驗(yàn)。
來(lái)自SOTA模型開(kāi)發(fā)實(shí)戰(zhàn)
HuggingFace論文中的這些經(jīng)驗(yàn),來(lái)自于視覺(jué)模型Idefics2的開(kāi)發(fā)過(guò)程。
與前一代Idefics1和Flamingo等同規(guī)模前SOTA相比,Idefics2在多個(gè)數(shù)據(jù)集上表現(xiàn)優(yōu)異,甚至還超過(guò)了更大的13B模型。
同時(shí),和在COCO數(shù)據(jù)集上略勝于Idefics2的MM1相比,Idefics2在每張圖上消耗的token大幅減少。
圖片
從Idefics2的開(kāi)發(fā)實(shí)戰(zhàn)當(dāng)中,HuggingFace給我們帶來(lái)的經(jīng)驗(yàn)至少包含以下幾個(gè)方面:
- backbone和架構(gòu)的選擇
- 訓(xùn)練方法和策略
- 數(shù)據(jù)多樣性和處理策略
語(yǔ)言模型對(duì)整體表現(xiàn)影響更大
當(dāng)前的視覺(jué)大模型主要都采用語(yǔ)言模型+視覺(jué)編碼器的形式進(jìn)行開(kāi)發(fā),作者對(duì)二者給整體表現(xiàn)帶來(lái)的影響分別進(jìn)行了評(píng)估。
結(jié)果顯示,語(yǔ)言模型的質(zhì)量比視覺(jué)模型更重要。
在相同參數(shù)量的情況下,使用更好的語(yǔ)言模型(如將Llama-7B替換為Mistral-7B),能夠顯著提升視覺(jué)大模型在下游任務(wù)上的性能。
而升級(jí)視覺(jué)編碼器帶來(lái)的提升則較為有限,因此在需要權(quán)衡時(shí)最好的做法是優(yōu)先選擇更強(qiáng)的語(yǔ)言模型。
圖片
當(dāng)然這不意味著升級(jí)視覺(jué)編碼器沒(méi)有作用,在條件允許的情況下,選用更好的視覺(jué)編碼器也能帶來(lái)一定的性能提升。
此外還應(yīng)當(dāng)注意選擇要與下游任務(wù)相匹配,例如在文本識(shí)別任務(wù)上,應(yīng)使用支持可變分辨率的視覺(jué)編碼器;如果任務(wù)對(duì)推理速度要求很高,可以選擇更輕量級(jí)的模型。
以及在實(shí)際應(yīng)用中,推理速度和內(nèi)存占用也是需要權(quán)衡的因素,Idefics2選用的SigLIP-SO400M就在性能和效率之間取得了很好的平衡。
根據(jù)需求選擇架構(gòu)類(lèi)型
關(guān)于架構(gòu)的選擇,這篇論文討論了常見(jiàn)的完全自回歸和交叉注意力這兩種。
完全自回歸架構(gòu)通過(guò)自回歸方式生成每個(gè)輸出,考慮了整個(gè)序列的依賴(lài)關(guān)系;
后者則允許模型在處理一種模態(tài)時(shí)動(dòng)態(tài)地關(guān)注另一種模態(tài)的不同部分,實(shí)現(xiàn)更靈活的模態(tài)間交互。
在具體工作中,作者發(fā)現(xiàn)哪種架構(gòu)表現(xiàn)更好取決于預(yù)訓(xùn)練的backbone是否被凍結(jié)。
(簡(jiǎn)單說(shuō),若預(yù)訓(xùn)練backbone參與正式訓(xùn)練過(guò)程則為非凍結(jié),不參與則為凍結(jié))
若未被凍結(jié),則完全自回歸架構(gòu)的表現(xiàn)更優(yōu),反之則是交叉注意力架構(gòu)更好。
圖片
至于是否需要對(duì)backbone進(jìn)行凍結(jié),就要看開(kāi)發(fā)者需求的側(cè)重點(diǎn)了。
在資源有限的條件下,如果需要高性能、對(duì)延遲高度敏感,選擇凍結(jié)更為合適;
如果希望模型具有更高的靈活性和適應(yīng)性,則應(yīng)選擇非凍結(jié)的訓(xùn)練方式。
具體到Idefics2,選擇了不凍結(jié)backbone,因此相應(yīng)地采用了完全自回歸架構(gòu)。
圖片
訓(xùn)練階段的經(jīng)驗(yàn)
選擇好適當(dāng)?shù)募軜?gòu)固然重要,訓(xùn)練過(guò)程同樣也必不可少,在Idefics2的訓(xùn)練過(guò)程之中,作者總結(jié)出了這些經(jīng)驗(yàn)供我們參考:
一是整體上采用分階段的預(yù)訓(xùn)練策略,初始階段使用較低分辨率的圖像,隨后引入更高分辨率的PDF文檔,這種做法可以逐步構(gòu)建模型的多種能力。
二是使用Learned Pooling替代直接將圖像特征送入語(yǔ)言模型,這可以大幅減少圖像token數(shù)量,顯著提升訓(xùn)練和推理效率,并且還帶來(lái)了性能的提升。
三是數(shù)據(jù)增強(qiáng),一種方法是在訓(xùn)練時(shí)將圖像切分成多個(gè)子圖像送入模型,可以在推理時(shí)用計(jì)算時(shí)間換取更強(qiáng)的性能,這在文本識(shí)別等任務(wù)上尤為有效,不過(guò)并非所有圖片都需要這樣處理。
四是在指令微調(diào)階段使用更多元的數(shù)據(jù)和任務(wù),可以提升模型的泛化和魯棒性。
此外為了穩(wěn)定訓(xùn)練,當(dāng)預(yù)訓(xùn)練的單模態(tài)backbone參與訓(xùn)練(非凍結(jié))時(shí),作者還使用了LoRA技術(shù)來(lái)適配預(yù)訓(xùn)練參數(shù)。
數(shù)據(jù)的多樣性和處理策略
除了訓(xùn)練過(guò)程本身,所選用的數(shù)據(jù)也會(huì)對(duì)模型的表現(xiàn)造成重大影響。
從收集階段開(kāi)始,就應(yīng)注意要選擇多種類(lèi)型的數(shù)據(jù),如Idefics2就使用的數(shù)據(jù)就包括三類(lèi)——圖文對(duì)齊的文檔(如網(wǎng)頁(yè))、圖像-文本對(duì)(如圖片標(biāo)題),以及帶OCR標(biāo)注的PDF文檔。
對(duì)于各類(lèi)數(shù)據(jù)所占的比例,也應(yīng)根據(jù)實(shí)際需要進(jìn)行適當(dāng)平衡,而不是簡(jiǎn)單等分。
至于數(shù)據(jù)規(guī)模,則是在條件允許的情況下多多益善,當(dāng)然應(yīng)當(dāng)注意過(guò)濾掉低質(zhì)量數(shù)據(jù)。
當(dāng)然收集只是獲得訓(xùn)練數(shù)據(jù)的一個(gè)步驟,想把模型訓(xùn)練好,還需要進(jìn)行一定的加工處理。
對(duì)不同類(lèi)型的數(shù)據(jù)采用不同的預(yù)處理和增強(qiáng)策略,比如對(duì)于OCR數(shù)據(jù),使用更高分辨率的圖片是必要的,其他數(shù)據(jù)則可以使用較低分辨率。
這其中需要注意的是,處理圖像時(shí)要保留原始的寬高比和分辨率,可以在提高模型適應(yīng)性的同時(shí)大幅節(jié)省訓(xùn)練和推理的計(jì)算開(kāi)銷(xiāo)。
如果你認(rèn)為這些經(jīng)驗(yàn)對(duì)你有所啟發(fā),可以讀讀原論文了解更多詳情,也歡迎在評(píng)論區(qū)交流你的開(kāi)發(fā)經(jīng)驗(yàn)。