一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

以transformers框架實(shí)現(xiàn)中文OFA模型的訓(xùn)練和推理

深度學(xué)習(xí)自然語(yǔ)言處理 ? 來(lái)源:YeungNLP ? 2023-02-15 17:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

OFA是阿里巴巴發(fā)布的多模態(tài)統(tǒng)一預(yù)訓(xùn)練模型,基于官方的開(kāi)源項(xiàng)目,筆者對(duì)OFA在中文任務(wù)上進(jìn)行了更好的適配以及簡(jiǎn)化,并且在中文的Image Caption任務(wù)上進(jìn)行了實(shí)踐驗(yàn)證,取得了非常不錯(cuò)的效果。本文將對(duì)上述工作進(jìn)行分享。

01

模型簡(jiǎn)介

OFA是由阿里達(dá)摩院發(fā)布的多模態(tài)預(yù)訓(xùn)練模型,OFA將各種模態(tài)任務(wù)統(tǒng)一于Seq2Seq框架中。如下圖所示,OFA支持的下游任務(wù)包括但不限于Image Caption、Image Classification、 Image genaration、Language Understanding等等。

cde33874-ad14-11ed-bfe3-dac502259ad0.png

02

項(xiàng)目介紹

項(xiàng)目動(dòng)機(jī) & 主要工作

本項(xiàng)目旨在以HuggingFace的transformers框架,實(shí)現(xiàn)中文OFA模型的訓(xùn)練和推理。并且希望將官方開(kāi)源的fairseq版本的中文預(yù)訓(xùn)練權(quán)重,轉(zhuǎn)化為transformers版本,以便用于下游任務(wù)進(jìn)行finetune。

在OFA官方項(xiàng)目中,同時(shí)實(shí)現(xiàn)了fairseq和transformers兩套框架的模型結(jié)構(gòu),并且分別開(kāi)源了中文和英文的模型權(quán)重?;谙铝性颍P者開(kāi)發(fā)了本項(xiàng)目:

由于筆者對(duì)transformers框架更熟悉,所以希望基于transformers框架,使用域內(nèi)中文數(shù)據(jù)對(duì)OFA模型進(jìn)行finetune,但OFA的中文預(yù)訓(xùn)練權(quán)重只有fairseq版本,沒(méi)有transformers版本。

如何將fairseq版本的OFA預(yù)訓(xùn)練權(quán)重轉(zhuǎn)換為transformers版本,從而便于下游任務(wù)進(jìn)行finetune。

官方代碼庫(kù)中,由于需要兼容各種實(shí)驗(yàn)配置,所以代碼也比較復(fù)雜冗余。筆者希望能夠?qū)⒑诵倪壿媱冸x出來(lái),簡(jiǎn)化使用方式。

基于上述動(dòng)機(jī),筆者的主要工作如下:

閱讀分析OFA官方代碼庫(kù),剝離出核心邏輯,包括訓(xùn)練邏輯、model、tokenizer等,以transformers框架進(jìn)行下游任務(wù)的訓(xùn)練和推理,簡(jiǎn)化使用方式。

將官方的fairseq版本的中文預(yù)訓(xùn)練權(quán)重,轉(zhuǎn)化為transformers版本,用于下游任務(wù)進(jìn)行finetune。

基于本項(xiàng)目,使用中文多模態(tài)MUGE數(shù)據(jù)集中的Image Caption數(shù)據(jù)集,以LiT-tuning的方式對(duì)模型進(jìn)行finetune,驗(yàn)證了本項(xiàng)目的有效性。

開(kāi)源五個(gè)transformers版本的中文OFA模型權(quán)重,包括由官方權(quán)重轉(zhuǎn)化而來(lái)的四個(gè)權(quán)重,以及筆者使用MUGE數(shù)據(jù)集finetune得到的權(quán)重。

訓(xùn)練細(xì)節(jié)

筆者使用MUGE數(shù)據(jù)集中的Image Caption數(shù)據(jù),將其中的訓(xùn)練集與驗(yàn)證集進(jìn)行合并,作為本項(xiàng)目的訓(xùn)練集。其中圖片共5.5w張,每張圖片包含10個(gè)caption,最終構(gòu)成55w個(gè)圖文對(duì)訓(xùn)練數(shù)據(jù)。關(guān)于MUGE數(shù)據(jù)集的說(shuō)明詳見(jiàn)官方網(wǎng)站。

caption數(shù)據(jù),jsonl格式:

{"image_id": "007c720f1d8c04104096aeece425b2d5", "text": ["性感名媛蕾絲裙,盡顯優(yōu)雅撩人氣質(zhì)", "衣千億,時(shí)尚氣質(zhì)名媛范", "80后穿唯美蕾絲裙,綻放優(yōu)雅與性感", "修身連衣裙,女人就該如此優(yōu)雅和美麗", "千億包臀連衣裙,顯出曼妙身姿", "衣千億包臀連衣裙,穿的像仙女一樣美", "衣千億連衣裙,令人奪目光彩", "奔四女人穿氣質(zhì)連衣裙,高雅名媛范", "V領(lǐng)包臀連衣裙,青春少女感", "衣千億包臀連衣裙,穿出曼妙身姿提升氣質(zhì)"]}
{"image_id": "00809abd7059eeb94888fa48d9b0a9d8", "text": ["藕粉色的顏色搭配柔軟舒適的冰絲面料,滿滿的時(shí)尚感,大領(lǐng)設(shè)計(jì)也超級(jí)好看,露出性感鎖骨線條,搭配寬腰帶設(shè)計(jì),優(yōu)雅溫柔又有氣質(zhì)", "傳承歐洲文化精品女鞋,引領(lǐng)風(fēng)尚潮流設(shè)計(jì)", "歐洲站風(fēng)格女鞋,演繹個(gè)性時(shí)尚裝扮", "高品質(zhì)原創(chuàng)涼鞋,氣質(zhì)與華麗引領(lǐng)春夏", "歐洲風(fēng)格站艾莎女鞋經(jīng)典款式重新演繹打造新一輪原創(chuàng)單品優(yōu)雅鞋型盡顯女人的柔美,十分知性大方。隨意休閑很顯瘦,不僅顯高挑還展現(xiàn)纖細(xì)修長(zhǎng)的腿型,休閑又非常潮流有范。上腳舒適又百搭。", "陽(yáng)春顯高穿搭,氣質(zhì)單鞋不可缺少", "冰絲連衣裙,通勤優(yōu)雅范", "一身粉色穿搭,夢(mèng)幻迷人", "艾莎女性,浪漫摩登,演繹角色轉(zhuǎn)換", "超時(shí)尚夏季涼鞋,一直“走”在時(shí)尚的前沿"]}

圖片數(shù)據(jù),tsv格式(img_id, ' ', img_content)(base64編碼):

007c720f1d8c04104096aeece425b2d5 /9j/4AAQSkZJRgABAgAAAQA...
00809abd7059eeb94888fa48d9b0a9d8 /9j/2wCEAAEBAQEBAQEBAQE...

訓(xùn)練時(shí),筆者使用LiT-tuning(Locked-image Text tuning)策略,也就是將encoder的權(quán)重進(jìn)行凍結(jié),僅對(duì)decoder的權(quán)重進(jìn)行訓(xùn)練。加載ofa-cn-base預(yù)訓(xùn)練權(quán)重,使用55w的中文圖文對(duì), batch size=128,開(kāi)啟混合精度訓(xùn)練,warmup step為3000步,學(xué)習(xí)率為5e-5,使用cosine衰減策略,訓(xùn)練10個(gè)epoch,大約42500個(gè)step,最終訓(xùn)練loss降到0.47左右。

由于encoder與decoder共享詞向量權(quán)重,筆者還分別嘗試了凍結(jié)與不凍結(jié)詞向量?jī)煞N訓(xùn)練方式,兩者的訓(xùn)練loss的變化趨勢(shì)如下圖所示??梢钥吹?,訓(xùn)練時(shí)不凍結(jié)詞向量權(quán)重,模型的收斂速度提升非常顯著, 但相應(yīng)地也需要更多顯存。在訓(xùn)練時(shí)凍結(jié)詞向量權(quán)重,可以節(jié)省顯存并加快訓(xùn)練速度,將freeze_word_embed設(shè)為true即可。

ce0f0f26-ad14-11ed-bfe3-dac502259ad0.png

使用方法

模型的使用方法非常簡(jiǎn)單,首先將項(xiàng)目clone到本地機(jī)器上,并且安裝相關(guān)依賴包。

gitclonehttps://github.com/yangjianxin1/OFA-Chinese.git
pip install -r requirements.txt

使用如下代碼,即可加載筆者分享的模型權(quán)重(代碼會(huì)將模型權(quán)重自動(dòng)下載到本地),根據(jù)圖片生成對(duì)應(yīng)的文本描述。

from component.ofa.modeling_ofa import OFAModelForCaption
from torchvision import transforms
from PIL import Image
from transformers import BertTokenizerFast


model_name_or_path = 'YeungNLP/ofa-cn-base-muge-v2'
image_file = './images/test/lipstick.jpg'
# 加載預(yù)訓(xùn)練模型權(quán)重
model = OFAModelForCaption.from_pretrained(model_name_or_path)
tokenizer = BertTokenizerFast.from_pretrained(model_name_or_path)


# 定義圖片預(yù)處理邏輯
mean, std = [0.5, 0.5, 0.5], [0.5, 0.5, 0.5]
resolution = 256
patch_resize_transform = transforms.Compose([
        lambda image: image.convert("RGB"),
        transforms.Resize((resolution, resolution), interpolation=Image.BICUBIC),
        transforms.ToTensor(),
        transforms.Normalize(mean=mean, std=std)
    ])


txt = '圖片描述了什么?'
inputs = tokenizer([txt], return_tensors="pt").input_ids
# 加載圖片,并且預(yù)處理
img = Image.open(image_file)
patch_img = patch_resize_transform(img).unsqueeze(0)


# 生成caption
gen = model.generate(inputs, patch_images=patch_img, num_beams=5, no_repeat_ngram_size=3)
print(tokenizer.batch_decode(gen, skip_special_tokens=True))

在項(xiàng)目中,筆者還上傳了模型訓(xùn)練、推理、權(quán)重轉(zhuǎn)化等腳本,更多細(xì)節(jié)可參考項(xiàng)目代碼。

03

效果展示

下列測(cè)試圖片均為從電商網(wǎng)站中隨機(jī)下載的,并且測(cè)試了不同模型權(quán)重的生成效果。

從生成效果來(lái)看,總結(jié)如下:

ofa-cn-base-muge是筆者將由官方fairseq版本的OFA-CN-Base-MUGE權(quán)重轉(zhuǎn)換而來(lái)的,其生成效果非常不錯(cuò)。證明了fairseq權(quán)重轉(zhuǎn)換為transformers權(quán)重的邏輯的有效性。

ofa-cn-base-muge-v2是筆者使用ofa-cn-base進(jìn)行finetune得到的,其效果遠(yuǎn)遠(yuǎn)優(yōu)于ofa-cn-base,并且與ofa-cn-base-muge旗鼓相當(dāng),證明了本項(xiàng)目的訓(xùn)練邏輯的有效性。

04

結(jié)語(yǔ)

在本文中,筆者分享了關(guān)于中文OFA的項(xiàng)目實(shí)踐,實(shí)現(xiàn)了將fairseq版本的OFA權(quán)重轉(zhuǎn)換為transformers權(quán)重,并且基于MUGE數(shù)據(jù)集進(jìn)行了項(xiàng)目驗(yàn)證,在電商的Image Caption任務(wù)上取得了非常不錯(cuò)的效果。

就Image Caption任務(wù)而言,借助OFA模型強(qiáng)大的預(yù)訓(xùn)練能力,如果有足夠豐富且高質(zhì)量的域內(nèi)圖文對(duì)數(shù)據(jù),例如電商領(lǐng)域的<圖片,商品賣點(diǎn)文本>數(shù)據(jù),能夠訓(xùn)練得到一個(gè)高質(zhì)量的賣點(diǎn)生成模型,在實(shí)際的應(yīng)用場(chǎng)景中發(fā)揮作用。

筆者還分享了5個(gè)transformers版本的中文OFA權(quán)重,讀者可以基于該預(yù)訓(xùn)練權(quán)重,在下游的多模態(tài)任務(wù)中進(jìn)行finetune,相信可以取得非常不錯(cuò)的效果。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • OFAF
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    2081

原文標(biāo)題:OFA-Chinese:中文多模態(tài)統(tǒng)一預(yù)訓(xùn)練模型

文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    使用基于Transformers的API在CPU上實(shí)現(xiàn)LLM高效推理

    英特爾 Extension for Transformers是英特爾推出的一個(gè)創(chuàng)新工具包,可基于英特爾 架構(gòu)平臺(tái),尤其是第四代英特爾 至強(qiáng) 可擴(kuò)展處理器(代號(hào) SapphireRapids,SPR)顯著加速基于Transformers的大語(yǔ)言
    的頭像 發(fā)表于 01-22 11:11 ?3375次閱讀
    使用基于<b class='flag-5'>Transformers</b>的API在CPU上<b class='flag-5'>實(shí)現(xiàn)</b>LLM高效<b class='flag-5'>推理</b>

    Pytorch模型訓(xùn)練實(shí)用PDF教程【中文

    本教程實(shí)際應(yīng)用、工程開(kāi)發(fā)為目的,著重介紹模型訓(xùn)練過(guò)程中遇到的實(shí)際問(wèn)題和方法。在機(jī)器學(xué)習(xí)模型開(kāi)發(fā)中,主要涉及三大部分,分別是數(shù)據(jù)、模型和損失
    發(fā)表于 12-21 09:18

    分詞工具Hanlp基于感知機(jī)的中文分詞框架

    ,構(gòu)成流水線式的系統(tǒng)。本文先介紹中文分詞框架部分內(nèi)容。中文分詞訓(xùn)練只需指定輸入語(yǔ)料的路徑(單文檔時(shí)為文件路徑,多文檔時(shí)為文件夾路徑,靈活處理),以及
    發(fā)表于 04-03 11:28

    Python撰寫(xiě) AI模型框架(Framework)

    看出來(lái),這5項(xiàng)資料都是寫(xiě)在子類里,而框架必須透過(guò)API來(lái)向子類索取這5項(xiàng)資料值。一旦框架取得了這些資料,就能展開(kāi)AI模型訓(xùn)練工作了?,F(xiàn)在,就依據(jù)上圖的思維而繪制出類別圖,如下所示:
    發(fā)表于 11-24 18:06

    用tflite接口調(diào)用tensorflow模型進(jìn)行推理

    摘要本文為系列博客tensorflow模型部署系列的一部分,用于實(shí)現(xiàn)通用模型的部署。本文主要實(shí)現(xiàn)用tflite接口調(diào)用tensorflow模型
    發(fā)表于 12-22 06:51

    EIQ onnx模型轉(zhuǎn)換為tf-lite失敗怎么解決?

    我們正在嘗試將 tflite 框架與 npu 一起使用來(lái)進(jìn)行機(jī)器學(xué)習(xí)。這是我們的步驟:1)用pytorch訓(xùn)練一個(gè)模型2) onnx格式導(dǎo)出模型
    發(fā)表于 03-31 08:03

    如何提高YOLOv4模型推理性能?

    使用 PyTorch 對(duì)具有非方形圖像的 YOLOv4 模型進(jìn)行了訓(xùn)練。 將 權(quán)重轉(zhuǎn)換為 ONNX 文件,然后轉(zhuǎn)換為中間表示 (IR)。 無(wú)法確定如何獲得更好的推理性能。
    發(fā)表于 08-15 06:58

    超大Transformer語(yǔ)言模型的分布式訓(xùn)練框架

    模型的預(yù)訓(xùn)練計(jì)算。 大模型是大勢(shì)所趨 近年來(lái),NLP 模型的發(fā)展十分迅速,模型的大小每年1-
    的頭像 發(fā)表于 10-11 16:46 ?3303次閱讀
    超大Transformer語(yǔ)言<b class='flag-5'>模型</b>的分布式<b class='flag-5'>訓(xùn)練</b><b class='flag-5'>框架</b>

    探究超大Transformer語(yǔ)言模型的分布式訓(xùn)練框架

    NVIDIA Megatron 是一個(gè)基于 PyTorch 的框架,用于訓(xùn)練基于 Transformer 架構(gòu)的巨型語(yǔ)言模型。本系列文章將詳細(xì)介紹Megatron的設(shè)計(jì)和實(shí)踐,探索這一框架
    的頭像 發(fā)表于 10-20 09:25 ?2891次閱讀

    三種主流模型部署框架YOLOv8推理演示

    深度學(xué)習(xí)模型部署有OpenVINO、ONNXRUNTIME、TensorRT三個(gè)主流框架,均支持Python與C++的SDK使用。對(duì)YOLOv5~YOLOv8的系列模型,均可以通過(guò)C++推理
    的頭像 發(fā)表于 08-06 11:39 ?3309次閱讀

    深度學(xué)習(xí)框架區(qū)分訓(xùn)練還是推理

    模型,以便將來(lái)能夠進(jìn)行準(zhǔn)確的預(yù)測(cè)。推理是指在訓(xùn)練完成后,使用已經(jīng)訓(xùn)練好的模型進(jìn)行新的預(yù)測(cè)。然而,深度學(xué)習(xí)
    的頭像 發(fā)表于 08-17 16:03 ?1748次閱讀

    視覺(jué)深度學(xué)習(xí)遷移學(xué)習(xí)訓(xùn)練框架Torchvision介紹

    Torchvision是基于Pytorch的視覺(jué)深度學(xué)習(xí)遷移學(xué)習(xí)訓(xùn)練框架,當(dāng)前支持的圖像分類、對(duì)象檢測(cè)、實(shí)例分割、語(yǔ)義分割、姿態(tài)評(píng)估模型的遷移學(xué)習(xí)訓(xùn)練與評(píng)估。支持對(duì)數(shù)據(jù)集的合成、變換、
    的頭像 發(fā)表于 09-22 09:49 ?1312次閱讀
    視覺(jué)深度學(xué)習(xí)遷移學(xué)習(xí)<b class='flag-5'>訓(xùn)練</b><b class='flag-5'>框架</b>Torchvision介紹

    主流大模型推理框架盤點(diǎn)解析

    vLLM是一個(gè)開(kāi)源的大模型推理加速框架,通過(guò)PagedAttention高效地管理attention中緩存的張量,實(shí)現(xiàn)了比HuggingFace T
    發(fā)表于 10-10 15:09 ?6771次閱讀
    主流大<b class='flag-5'>模型</b><b class='flag-5'>推理</b><b class='flag-5'>框架</b>盤點(diǎn)解析

    摩爾線程和滴普科技完成大模型訓(xùn)練推理適配

    近日,摩爾線程與滴普科技宣布了一項(xiàng)重要合作成果。摩爾線程的夸娥(KUAE)千卡智算集群與滴普科技的企業(yè)大模型Deepexi已完成訓(xùn)練推理適配,共同實(shí)現(xiàn)了700億參數(shù)LLaMA2大語(yǔ)言
    的頭像 發(fā)表于 05-30 10:14 ?853次閱讀

    大語(yǔ)言模型開(kāi)發(fā)框架是什么

    大語(yǔ)言模型開(kāi)發(fā)框架是指用于訓(xùn)練推理和部署大型語(yǔ)言模型的軟件工具和庫(kù)。下面,AI部落小編為您介紹大語(yǔ)言
    的頭像 發(fā)表于 12-06 10:28 ?533次閱讀