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

LLM2CLIP:使用大語言模型提升CLIP的文本處理,提高長文本理解和跨語言能力

人工智能
在人工智能迅速發(fā)展的今天,多模態(tài)系統(tǒng)正成為推動視覺語言任務(wù)前沿發(fā)展的關(guān)鍵。CLIP(對比語言-圖像預(yù)訓(xùn)練)作為其中的典范,通過將文本和視覺表示對齊到共享的特征空間,為圖像-文本檢索、分類和分割等任務(wù)帶來了革命性突破。

在人工智能迅速發(fā)展的今天,多模態(tài)系統(tǒng)正成為推動視覺語言任務(wù)前沿發(fā)展的關(guān)鍵。CLIP(對比語言-圖像預(yù)訓(xùn)練)作為其中的典范,通過將文本和視覺表示對齊到共享的特征空間,為圖像-文本檢索、分類和分割等任務(wù)帶來了革命性突破。然而其文本編碼器的局限性使其在處理復(fù)雜長文本和多語言任務(wù)時顯得力不從心。

大型語言模型(LLM),如 GPT-4 和 LLaMA,則展示了卓越的語言理解和生成能力。這種強大的語言能力能否與 CLIP 結(jié)合,解決其文本編碼器的短板?微軟團隊提出的 LLM2CLIP 框架便是這一創(chuàng)新的成果。

該論文提出了一種創(chuàng)新的方法,通過將 LLM 強大的語言知識與 CLIP 的視覺能力相結(jié)合,顯著提升多模態(tài)任務(wù)的性能。通過整合 LLM 和 CLIP,LLM2CLIP 解決了傳統(tǒng) CLIP 在文本理解、語言支持和任務(wù)泛化方面的瓶頸。

方法創(chuàng)新

字幕對比微調(diào)(Caption Contrastive Fine-tuning)

  • 核心問題:LLM 的原生文本特征缺乏區(qū)分性,難以直接用于多模態(tài)任務(wù)。
  • 創(chuàng)新點:通過監(jiān)督對比損失函數(shù),將同一圖像的字幕作為正樣本,將其他字幕作為負(fù)樣本,從而顯著增強 LLM 的文本編碼能力。

凍結(jié) LLM 梯度

  • 目的:保留 LLM 的開放世界知識,降低計算成本。
  • 方法:僅微調(diào)適配器和投影層,實現(xiàn)多模態(tài)對齊。

高效訓(xùn)練策略

  • 使用 LoRA 技術(shù)進行輕量級訓(xùn)練,在計算資源有限的情況下優(yōu)化模型性能。
  • 預(yù)提取文本特征,減少推理階段的計算負(fù)擔(dān)。

開放世界知識的利用

  • LLM 的廣泛訓(xùn)練語料使其能夠處理復(fù)雜字幕,甚至支持多語言任務(wù)。

LLM2CLIP 的關(guān)鍵特性

  1. 增強文本理解:LLM2CLIP 能夠處理超過 CLIP 原生限制的長文本和復(fù)雜描述。
  2. 跨語言支持:通過 LLM 的知識遷移,即使僅使用英語數(shù)據(jù)訓(xùn)練,仍可在中文等多語言任務(wù)中實現(xiàn)卓越表現(xiàn)。
  3. 高效計算:通過凍結(jié)梯度和輕量級適配器優(yōu)化計算開銷。

詳細改進描述

處理長字幕和復(fù)雜文本: LLM 的更大的上下文窗口和更強的語言理解能力使得 LLM2CLIP 能夠有效地處理長字幕和復(fù)雜文本,而無需像之前的工作那樣進行文本截斷或分段。

融入開放世界知識: LLM 在大規(guī)模文本語料庫上進行預(yù)訓(xùn)練,因此擁有豐富的開放世界知識。LLM2CLIP 將這些知識融入到 CLIP 的視覺表示中,從而提高了其在各種下游任務(wù)中的性能。

跨語言能力: LLM2CLIP 的跨語言能力使其成為構(gòu)建多語言多模態(tài)系統(tǒng)的強大工具,無需為每種語言單獨訓(xùn)練模型。

高效訓(xùn)練: 通過凍結(jié) LLM 的權(quán)重和預(yù)先提取文本特征,LLM2CLIP 的訓(xùn)練成本與微調(diào)原始 CLIP 模型相當(dāng)。

實驗結(jié)果

結(jié)果展示

LLM2CLIP 在多個基準(zhǔn)測試中表現(xiàn)優(yōu)異,在短文本、長文本以及跨語言任務(wù)中的性能顯著提升,尤其在中文任務(wù)中,其表現(xiàn)甚至超越了專用中文數(shù)據(jù)集訓(xùn)練的模型。

  • 圖像-文本檢索 (I2T 和 T2I): 在 Flickr30k、COCO、ShareGPT4V、Urban-1k 和 DOCCI 等數(shù)據(jù)集上進行評估。
  • 跨語言圖像-文本檢索:  在 Flickr30K-CN 和 COCO-CN 數(shù)據(jù)集上進行評估。
  • 視覺問答 (VQA): 使用 LLaVA 1.5 框架進行評估。
  • 字幕檢索準(zhǔn)確率 (CRA):  用于評估文本模型區(qū)分字幕的能力。

如何開始使用 LLM2CLIP

以下是快速上手 LLM2CLIP 的完整代碼教程:

1. 安裝依賴環(huán)境

pip install llm2vec
 git clone https://github.com/microsoft/LLM2CLIP.git && cd LLM2CLIP
 pip install -r requirements.txt

2. 配置 Jupyter Notebook

如果需要交互式環(huán)境:

conda install -c conda-forge --override-channels notebook
 conda install -c conda-forge --override-channels ipywidgets -y jupyter notebook

3. 導(dǎo)入必要庫

from PIL import Image
 from transformers import AutoModel, AutoConfig, AutoTokenizer
 from transformers import CLIPImageProcessor
 import torch
 from llm2vec import LLM2Vec

4. 加載模型

# 圖像處理器
 processor = CLIPImageProcessor.from_pretrained("openai/clip-vit-large-patch14-336")
 
 # 加載 CLIP 模型
 model_name_or_path = "microsoft/LLM2CLIP-Openai-L-14-336"
 model = AutoModel.from_pretrained(
     model_name_or_path,
     torch_dtype=torch.float16,
     trust_remote_code=True
 ).to('cuda').eval()
 
 # 加載微調(diào)后的 LLM 模型
 llm_model_name = 'microsoft/LLM2CLIP-Llama-3-8B-Instruct-CC-Finetuned'
 config = AutoConfig.from_pretrained(llm_model_name, trust_remote_code=True)
 llm_model = AutoModel.from_pretrained(llm_model_name, config=config, trust_remote_code=True)
 tokenizer = AutoTokenizer.from_pretrained(llm_model_name)
 
 # 初始化 LLM2Vec
 l2v = LLM2Vec(llm_model, tokenizer, pooling_mode="mean", max_length=512, doc_max_length=512)

5. 圖像和字幕預(yù)處理

captions = ["a diagram", "a dog", "horses"]
 image_path = "path_to_image/horses.png"
 
 image = Image.open(image_path)
 input_pixels = processor(images=image, return_tensors="pt").pixel_values.to('cuda')

6. 提取特征并匹配字幕

with torch.no_grad(), torch.cuda.amp.autocast():
     image_features = model.get_image_features(input_pixels)
     text_features = l2v.encode(captions, convert_to_tensor=True).to('cuda')
     text_features = model.get_text_features(text_features)
 
     # 歸一化特征
     image_features /= image_features.norm(dim=-1, keepdim=True)
     text_features /= text_features.norm(dim=-1, keepdim=True)
 
     # 計算匹配概率
     text_probs = (100.0 * image_features @ text_features.T).softmax(dim=-1)
 
 print("匹配結(jié)果:", text_probs)

輸入圖像為上面的馬照片時,輸出為:

匹配結(jié)果: tensor([[3.425e-08, 1.0911e-06, 1.000e+00]], device='cuda:0')

這表明模型預(yù)測圖像對應(yīng)的字幕為“horses”,匹配概率為 100%。

再試一張更復(fù)雜的圖片:

captions = ["a sunset over a mountain range", "a group of people hiking on a trail", "a peaceful lake surrounded by trees"]
 image_path = "hiking_trail.jpg"
 
 image = Image.open(image_path)
 input_pixels = processor(images=image, return_tensors="pt").pixel_values.to('cuda')
 
 with torch.no_grad(), torch.cuda.amp.autocast():
    image_features = model.get_image_features(input_pixels)
    text_features = l2v.encode(captions, convert_to_tensor=True).to('cuda')
    text_features = model.get_text_features(text_features)
 
    image_features /= image_features.norm(dim=-1, keepdim=True)
    text_features /= text_features.norm(dim=-1, keepdim=True)
 
    text_probs = (100.0 * image_features @ text_features.T).softmax(dim=-1)
 
 print("Label probs:", text_probs)

輸出為:

匹配結(jié)果:: tensor([[1.122e-06, 9.998e-01, 1.243e-04]], device='cuda:0')

模型可以匹配出更準(zhǔn)確的文字。

總結(jié)

LLM2CLIP 為多模態(tài)學(xué)習(xí)提供了一種新的范式,通過整合 LLM 的強大功能來增強 CLIP 模型。其在圖像-文本檢索、跨語言應(yīng)用和長文本理解方面的出色性能,突顯了其作為構(gòu)建更強大、更通用的多模態(tài)系統(tǒng)的潛力。未來的研究可以進一步探索 LLM2CLIP 在更廣泛的應(yīng)用場景中的潛力,例如視頻理解、多模態(tài)對話和具身智能。

責(zé)任編輯:華軒 來源: DeepHub IMBA
相關(guān)推薦

2024-11-27 14:00:00

模型訓(xùn)練

2024-11-06 17:04:47

AWK編程

2024-09-12 17:39:27

2010-07-21 10:05:13

Perl文本處理模塊

2013-10-30 10:35:29

Linux命令文本處理

2024-12-30 13:13:35

2024-04-01 07:25:00

AI框架

2017-03-02 18:10:20

LinuxShell命令

2021-01-28 08:12:15

Linux命令技巧

2013-08-20 16:14:46

pythonpython文本處理

2023-03-19 17:21:31

CLIP架構(gòu)人工智能

2024-01-11 16:24:12

人工智能RAG

2010-01-06 17:12:26

.Net Framew

2024-04-12 12:14:39

Rust字符串代碼

2023-09-27 07:39:57

大型語言模型MiniGPT-4

2023-01-03 15:42:29

機器學(xué)習(xí)視頻搜索

2025-04-29 09:21:00

2025-04-10 06:30:00

2019-10-29 09:20:48

Python文本正則表達式

2021-09-10 16:30:29

LinuxShell文本
點贊
收藏

51CTO技術(shù)棧公眾號