論文閱讀:BLIPv1 2022.2

文章目錄

    • 一、研究背景與問題
      • 現有方法的局限性
      • 研究目標
    • 二、核心方法與創新點
      • 多模態編碼器 - 解碼器混合架構(MED)
      • 標題生成與過濾(CapFilt)數據自舉方法
    • 三、實驗與結果
      • 數據集與訓練配置
      • 關鍵實驗發現
      • 與 state-of-the-art 方法的對比
    • 四、結論與未來方向
      • 主要貢獻
      • 未來方向
    • 五、資源與代碼

論文題目:BLIP: Bootstrapping Language-Image Pre-training for
Unified Vision-Language Understanding and Generation
論文鏈接:https://arxiv.org/pdf/2201.12086

一、研究背景與問題

本文主要針對現有多模態的來個兩個缺點展開。

現有方法的局限性

  • 模型層面:大多數視覺 - 語言預訓練(VLP)模型要么基于編碼器(如 CLIP),適合理解任務但難以直接用于文本生成;要么基于編碼器 - 解碼器架構,在圖像 - 文本檢索等理解任務上表現不佳。
  • 數據層面:現有方法依賴從網絡收集的圖像 - 文本對,這些數據含有大量噪聲,影響模型學習視覺 - 語言對齊的效率。

研究目標

提出一個能同時處理理解與生成任務的統一 VLP 框架,并有效利用噪聲網絡數據。

二、核心方法與創新點

多模態編碼器 - 解碼器混合架構(MED)

Multimodal mixture of Encoder-Decoder

  • 三種功能模式
    • 單模態編碼器(unimodal encoder):分別編碼圖像和文本,通過圖像 - 文本對比損失(ITC)對齊特征空間。
    • 基于圖像的文本編碼器(image-grounded text encoder):插入交叉注意力層建模視覺 - 語言交互,通過圖像 - 文本匹配損失(ITM)區分正負樣本。
    • 基于圖像的文本解碼器(image-grounded text decoder):將雙向自注意力替換為因果自注意力,通過語言建模損失(LM)生成圖像描述。

該模型與三個視覺語言目標共同進行預訓練,即圖像-文本對比學習(image-text contrastive learning), 圖像-文本匹配(image-text learning), 圖像-條件語言建模(image-conditional language modeling)。

  • 參數共享策略:文本編碼器與解碼器共享嵌入層、交叉注意力層和前饋網絡,僅自注意力層獨立,提升訓練效率。

三個任務相關的算法模型框架圖:
在這里插入圖片描述

標題生成與過濾(CapFilt)數據自舉方法

一種新的數據集 bootstrapping 的方法。可以用于從噪聲圖像-文本對中學習。將預訓練的 MED 微調為兩個模塊:一個是給定網絡圖像產生合成標題的 captioner, 另一個是去除原始網絡文本和合成文本中噪聲標題的 Filter.

  • 流程
    • 標題生成器(Captioner):基于 MED 解碼器,為網絡圖像生成合成標題。
    • 過濾器(Filter):基于 MED 編碼器,移除原始網絡文本和合成標題中的噪聲樣本。
  • 優勢:通過自舉提升數據質量,生成更多樣化的標題,增強模型對視覺 - 語言對齊的學習。

數據清洗框架圖:
在這里插入圖片描述

三、實驗與結果

數據集與訓練配置

  • 預訓練數據:包含 COCO、Visual Genome 等人工標注數據集,以及 Conceptual Captions、LAION 等網絡數據集,總計 14M 至 129M 圖像。
  • 模型配置:基于 ViT-B/16 和 ViT-L/16 視覺編碼器,文本編碼器基于 BERT。

關鍵實驗發現

  • CapFilt 的有效性:同時使用標題生成器和過濾器可顯著提升下游任務性能。例如,在 COCO 圖像 - 文本檢索中,平均召回率 @1 提升 2.7%,圖像標題生成的 CIDEr 分數提升 2.8%。
  • 合成標題的多樣性:采用核采樣(nucleus sampling)生成的多樣化標題比波束搜索更有效,盡管噪聲率更高,但引入了更多新信息。
  • 參數共享的影響:文本編碼器與解碼器共享非自注意力層可優化性能,而標題生成器與過濾器共享參數會因確認偏差降低效果。

與 state-of-the-art 方法的對比

  • 圖像 - 文本檢索:在 COCO 和 Flickr30K 上,BLIP 以更少的預訓練數據(14M)超越 ALBEF、CLIP 等方法,零樣本遷移至視頻 - 文本檢索時性能顯著優于現有模型。
  • 圖像標題生成:在 NoCaps 和 COCO 上,BLIP 的 CIDEr 和 SPICE 分數超過 VinVL、LEMON 等方法,且無需預訓練目標檢測器。
  • 視覺問答(VQA)與自然語言視覺推理(NLVR2):BLIP 在 VQA 測試集上比 ALBEF 提升 1.6%,在 NLVR2 上接近最優性能。
  • 零樣本視頻 - 語言任務遷移:直接將圖像訓練的模型應用于視頻 - 文本檢索和視頻問答,性能超越專門針對視頻設計的模型。

四、結論與未來方向

主要貢獻

BLIP 通過統一的 MED 架構和 CapFilt 數據自舉方法,實現了視覺 - 語言理解與生成任務的高性能統一,在多個下游任務上達到 state-of-the-art。

未來方向

  • 多輪數據自舉。
  • 單圖像多合成標題生成。
  • 模型集成等,進一步提升模型性能。

五、資源與代碼

論文提供了預訓練模型、代碼和自舉數據集,支持后續研究。

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

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

相關文章

630,百度文心大模型4.5系列開源!真香

2025年被普遍認為是AI Agent商業化的關鍵之年,而大模型正是Agent能力的核心支撐。 當開發成本大幅降低,我們很可能看到各種垂直領域的Agent應用如雨后春筍般涌現。 技術普惠的現實意義對于廣大AI創業者和開發者來說,這無疑是個好消息。 之…

數據結構:遞歸:斐波那契數列(Fibonacci Sequence)

目錄 什么是斐波那契數列? 用遞歸推導Fibonacci 復雜度分析 用迭代推導Fibonacci 復雜度分析 遞歸優化:記憶化遞歸(Memoized Recursion) 復雜度分析 什么是斐波那契數列? 斐波那契數列(Fibonacci Seq…

ArcGIS Pro利用擦除工具,矢量要素消除另一矢量部分區域

選擇“System Toolboxes”→“Analysis Tools.tbx”→“Overlay”→“Erase(擦除)”。 原始 擦除后

Linux: network: 性能 pause

最近看到一個問題,是關于網卡的throughput的性能問題,后來在ethtool-S里看到有pause的counter,這個也是網絡性能問題的一個分析方向。算是學到了新的知識點。 $ grep -i -e 2025- -e pause ethtool*ens2f1np1 | grep -v -e ": 0\$" | headtail 4====

目標檢測系列(五)已標注數據集(yolo格式)導入labelstudio繼續標注

目錄 1、labelstudio安裝 2、yolo(txt)轉json 3、COCO轉yolo(僅針對coco格式標注信息) 4、設置環境變量并啟動labelstudio 5、進入label studio創建工程并設置任務標簽 6、安裝http-server并啟動文件映射服務 7、進入label studio導入json文件即可 1、labelstudio安裝 …

pytorch底層原理學習--Libtorch

libtorch libtorch 是 PyTorch 的 C 實現版本,可以認為所有的pytorch底層都是由c實現,而pytorch的所有C實現就叫libtorch,也就是我們在pytorch官網getstart頁面下載的cpytorch版本。我們用python寫的pytorch神經網絡代碼都會通過pybind11將p…

TCP 三次握手協商 MSS 前,如何確定 MSS 值(附 Linux 內核源碼)

文章目錄 一、SYN總結影響 SYN MSS 的因素 二、SYNACK總結影響 SYNACK MSS 的因素 結合 Linux 內核源碼 一、SYN 總結影響 SYN MSS 的因素 套接字選項 TCP_MAXSEG路由選項 advmss出口 MTU 減去 40(TCP 和 IP 的固定首部大小)IPV4_MAX_PMTU - 40(同上) 二、SYNACK 總結影響 SY…

掃描電子顯微鏡(SEM)夏令營面試基礎題及答案

第二期表征問題SEM,后續會陸續更新其他表征 SEM和XRD一樣,都是表征里面很常見的手段,基本上看論文這兩個都是必不可少的 對于這部分內容,理解記憶>死記硬背,到時會問起來回答個大概就行, 像上…

Leetcode力扣解題記錄--第49題(map)

題目鏈接:49. 字母異位詞分組 - 力扣(LeetCode) 題目描述 給你一個字符串數組,請你將 字母異位詞 組合在一起。可以按任意順序返回結果列表。 示例 1: 輸入: strs ["eat", "tea", "tan", &quo…

AI賦能智慧餐飲:Spring Boot+大模型實戰指南

? 餐飲行業三大痛點 高峰期點餐擁堵:300人餐廳,15個服務員仍排長隊 后廚浪費嚴重:食材損耗率高達25%,成本失控 顧客體驗同質化:復購率不足30% 🚀 智慧餐飲解決方案架構 🔥 核心模塊代碼實現…

用鴻蒙打造真正的跨設備數據庫:從零實現分布式存儲

網羅開發 (小紅書、快手、視頻號同名) 大家好,我是 展菲,目前在上市企業從事人工智能項目研發管理工作,平時熱衷于分享各種編程領域的軟硬技能知識以及前沿技術,包括iOS、前端、Harmony OS、Java、Python等…

【Docker基礎】Docker數據卷:數據卷的作用與使用場景

目錄 1 Docker數據卷概述 1.1 什么是數據卷 1.2 數據卷的核心特性 3 數據卷與綁定掛載的對比 2.1 技術對比 2.2 選擇建議 3 數據卷的核心作用 3.1 數據持久化 3.2 數據共享 3.3 備份與遷移 4 數據卷使用場景詳解 4.1 數據庫應用 4.2 日志集中管理 5 數據卷操作全…

安裝GPU版本的Pytorch

前言 Pytorch是深度學習框架,在工作中我們一般是使用GPU版本的Pytorch,提高運行效率 安裝GPU版本的Pytorch需要先安裝CUDA和CUANN這兩個GPU環境 如果準備安裝GPU版本的Pytorch安裝同志沒有安裝CUDA和CUANN,請看我上一篇文章 RTX5070顯卡安裝CUDA和CUDNN-CSDN博客 目錄 安裝…

微信小程序學習筆記

微信小程序學習筆記 一、文件和目錄結構介紹 小程序包括:主體文件、頁面文件 主體文件: app.js:小程序入口文件app.json:小程序的全局配置文件app.wxss:小程序的全局樣式 頁面文件:是每個頁面所需的文…

抓包之通過wireshark抓ping包

寫在前面 本文看下如何抓ping包。 1:正文 因為ping使用的是icmp協議,所以這里我們可以通過過濾icmp協議來進行抓包: 其中對于icmp請求報文狀態碼是8,如下: 響應狀態碼是0: 如下圖是一個局域網環境中…

大文件分片上傳 — nodejs

上傳文件路由: var express require(express); var router express.Router(); const multer require(multer); const fs require(fs); const path require(path);// 確保上傳目錄存在 const uploadDir path.join(__dirname, ../backend/uploads); const temp…

HarmonyOS File和base64字符串轉換

1. HarmonyOS File和base64字符串轉換 1.1. Base64 1.1.1. Base64認知 Base64 是一種基于64個 ASCII 字符來表示二進制數據的表示方法,這個64個不同的字符為: ??(1)大、小寫字母(A– Z、a–z)。52個 ?…

【NodeJs】【npm】npm安裝electron報錯

解決問題 npm安裝electron報錯一般來說是鏡像源的問題。 electron的鏡像源與一般的 vue 之類的鏡像源地址不一樣需要單獨配置。 npm讀取的全局配置一般是在 C:\Users\{用戶}\.npmrc 這個配置文件中。 如果你找不到你的配置文件可以執行如下命令, # 執行后會直接用txt打開你的…

植物small RNA靶基因預測軟件,psRobot

psRoto軟件安裝 網址 http://omicslab.genetics.ac.cn/psRobot/downloads.php下載和安裝 wget http://omicslab.genetics.ac.cn/psRobot/program/WebServer/psRobot_v1.2.tar.gz # tar -zxvf psRobot_v1.2.tar.gz # cd psRobot_v1.2 ## ./configure make make installpsRot…

翻譯服務器

基于UDP編程博客里的回顯服務器代碼,翻譯服務只需要改process方法即可 所以我們可以創建一個UdpDictServer直接繼承UdpEchoServer然后重寫process方法 在重寫的方法中完成翻譯的過程 代碼: package network;import java.io.IOException; import java.net.SocketException; …