查詢Token如何橋接視覺(jué)與語(yǔ)言)
【免費(fèi)下載鏈接】InternVL-14B-FlickrCN-FT-364px項(xiàng)目地址https://ai.gitcode.com/OpenGVLab/InternVL-14B-FlickrCN-FT-364px點(diǎn)擊查看免費(fèi)下載InternVL-14B-FlickrCN-FT-364px是 OpenGVLab 開(kāi)源的 InternVL 系列在中文數(shù)據(jù)集FlickrCN上微調(diào)而來(lái)的14B 參數(shù)圖文檢索模型輸入 364×364 圖像和中文/多語(yǔ)言文本輸出圖文匹配分?jǐn)?shù)支持以圖搜文與以文搜圖雙向檢索。它的核心設(shè)計(jì)是用96 個(gè)可學(xué)習(xí)的查詢 Tokenquery tokens作為視覺(jué)特征與語(yǔ)言模型之間的橋梁本文將帶你用通俗的方式看懂這套機(jī)制。 這個(gè)模型是什么一句話概括這是一個(gè)懂中文的圖搜模型。模型類型微調(diào)后的檢索模型fine-tuned retrieval model支持任務(wù)圖-文檢索Image-to-Text / Text-to-Image Retrieval模型規(guī)模14B 參數(shù)圖像尺寸 364×364微調(diào)數(shù)據(jù)FlickrCNFlickr30k 的中文翻譯語(yǔ)料底座模型OpenGVLab/InternVL-14B-224pxInternVL 本身是當(dāng)時(shí)最大的開(kāi)源視覺(jué)/視覺(jué)-語(yǔ)言基礎(chǔ)模型14B將 ViT 擴(kuò)展到 6B 參數(shù)并與 LLM 對(duì)齊在視覺(jué)感知、跨模態(tài)檢索、多模態(tài)對(duì)話等 32 項(xiàng)任務(wù)上刷新了 SOTA。本模型就是它面向中文圖文檢索場(chǎng)景的精調(diào)版本。? 架構(gòu)總覽InternViT QLLaMA 的組合拳整個(gè)模型由一個(gè)凍結(jié)的視覺(jué)塔 一個(gè)凍結(jié)的語(yǔ)言塔 少量可訓(xùn)練組件拼成組件作用是否可訓(xùn)練InternVisionModelInternViT-6B視覺(jué)編碼器把圖像切成 14×14 patch 提特征? 凍結(jié)qllamaLlama 結(jié)構(gòu)32 層語(yǔ)言骨干負(fù)責(zé)文本編碼與圖像特征的深層加工? 凍結(jié)query_tokens96 個(gè)查詢探針讀取圖像內(nèi)容? 可訓(xùn)練clip_projector/clip_projector2注意力池化把長(zhǎng)特征序列壓成 768 維向量部分可訓(xùn)練logit_scale、itm_head溫度系數(shù)與圖文匹配頭? 可訓(xùn)練配置項(xiàng)都可以在 config.json 中找到例如num_query_token: 96—— 查詢 Token 數(shù)量本文主角clip_embed_dim: 768—— 對(duì)齊后的向量維度cross_attention_frequency: 2—— 每 2 層插入一次跨模態(tài)注意力force_image_size: 364—— 強(qiáng)制輸入分辨率max_txt_len: 32—— 文本最大長(zhǎng)度 這種凍結(jié)大底座 訓(xùn)練小模塊的方式代碼中甚至預(yù)留了 LoRA 開(kāi)關(guān)use_backbone_lora/use_qllama_lora讓微調(diào)成本大幅降低同時(shí)保留了 14B 底座的強(qiáng)大表示能力。 96 個(gè)查詢 Token 如何橋接視覺(jué)與語(yǔ)言這是整個(gè)模型最巧妙的部分。傳統(tǒng) CLIP 里圖像特征通常靠平均池化或 CLS token 壓縮成一個(gè)向量信息容易丟失。InternVL 換了一個(gè)思路第 1 步放探針。模型定義了一組 96 個(gè)、每個(gè) 4096 維的可學(xué)習(xí)向量query_tokens它們?cè)谛蛄凶钋懊嫦?96 個(gè)探針一樣等待被填充圖像信息self.query_tokens nn.Parameter( torch.zeros(1, config.num_query_token, text_hidden_size) )見(jiàn) modeling_internvl.py第 2 步讀圖。在 QLLaMA 的每一第 2 層cross_attention_frequency2這 96 個(gè) Token 會(huì)通過(guò)跨模態(tài)注意力LlamaCrossAttention去注視InternViT 輸出的整張 patch 特征圖364px 下約 26×26 個(gè) patch把圖像中最相關(guān)的信息聚合到自己身上query_feats hidden_states[:, :self.num_query_token, :] query_feats, _, _ self.cross_attn( hidden_statesquery_feats, vision_hidden_statesvision_hidden_states, ...)見(jiàn) modeling_qllama.py第 3 步壓縮。經(jīng)過(guò) 32 層反復(fù)讀取后的 96 個(gè) Token再用 16 頭注意力池化clip_projector2壓成1 個(gè) 768 維向量——這就是圖像在統(tǒng)一向量空間里的最終表示。用一個(gè)比喻96 個(gè) Token 就像 96 位看圖記者每 2 層采訪一輪圖像特征最后由編輯attention pooling把它們的消息匯總成一句話768 維向量。文本側(cè)則相對(duì)簡(jiǎn)單文本經(jīng) QLLaMA 編碼后取最后一個(gè)有效 Token的隱藏狀態(tài)再線性投影到 768 維見(jiàn) encode_text。第 4 步算匹配分。兩邊向量歸一化后做余弦相似度乘上可學(xué)習(xí)的溫度系數(shù)logit_scale初始值 1/0.07沿用 CLIP 經(jīng)典設(shè)定就得到匹配 logitslogits_per_image logit_scale * image_features text_features.t()見(jiàn) modeling_internvl.py?? InternVL-C 與 InternVL-G雙模式檢索調(diào)用model(..., mode...)時(shí)可以選擇兩種模式見(jiàn) encode_imageInternVL-CCLIP 式只走視覺(jué)塔 clip_projector池化鏈路短、速度快適合對(duì)延遲敏感的檢索服務(wù)InternVL-GGeneric 通用式在 CLIP 分支之外疊加上述96 查詢 Token QLLaMA分支兩路向量歸一化后相加ensemble。多模態(tài)理解更強(qiáng)對(duì)復(fù)雜語(yǔ)義的區(qū)分更準(zhǔn)。可以理解為C 模式是快問(wèn)快答G 模式是深思熟慮——檢索精度優(yōu)先時(shí)選 G吞吐優(yōu)先時(shí)選 C。 快速上手3 個(gè)關(guān)鍵步驟與 1 個(gè)易踩的坑加載模型用AutoModel.from_pretrained(OpenGVLab/InternVL-14B-FlickrCN-FT-364px, torch_dtypetorch.bfloat16, trust_remote_codeTrue)建議放在 GPU 上并eval()預(yù)處理圖像用倉(cāng)庫(kù)自帶的CLIPImageProcessor會(huì)自動(dòng)縮放到 364×364參數(shù)見(jiàn) preprocessor_config.json文本用AutoTokenizeruse_fastFalse, add_eos_tokenTrue打分傳入image與text設(shè)置modeInternVL-G或InternVL-C對(duì)返回的logits_per_image做 softmax 即得匹配概率按分?jǐn)?shù)排序就是檢索結(jié)果。??最容易踩的坑README 特別強(qiáng)調(diào)文本前必須加summarize:前綴必須手動(dòng)設(shè)置tokenizer.pad_token_id 0。缺了這兩步結(jié)果會(huì)異常。中文、英文、日文文本都可以直接輸入模型支持多語(yǔ)言查詢。完整示例見(jiàn) README.md 的 Model Usage 部分。 關(guān)鍵文件導(dǎo)覽文件說(shuō)明config.json模型配置96 查詢 Token、768 維對(duì)齊、364px 分辨率等modeling_internvl.py主模型query_tokens定義、雙模式編碼、相似度打分modeling_qllama.pyQLLaMA 語(yǔ)言骨干LlamaCrossAttention、跨模態(tài)注意力插入邏輯modeling_intern_vit.pyInternViT-6B 視覺(jué)編碼器configuration_internvl.py配置類InternVLConfig含各超參默認(rèn)值preprocessor_config.json圖像預(yù)處理參數(shù)364×364、歸一化均值/方差README.md使用示例、性能說(shuō)明與引用格式 小結(jié)InternVL-14B-FlickrCN-FT-364px 展示了大模型時(shí)代圖文檢索的新范式凍結(jié) 14B 大底座只訓(xùn)練 96 個(gè)查詢 Token 和少量投影頭微調(diào)成本極低96 查詢 Token 通過(guò)每 2 層一次的跨模態(tài)注意力把整張圖的語(yǔ)義采訪進(jìn)語(yǔ)言模型空間比簡(jiǎn)單池化保留更多細(xì)節(jié)C/G 雙模式兼顧速度與精度可按業(yè)務(wù)場(chǎng)景切換面向中文檢索場(chǎng)景在 FlickrCN 上精調(diào)多語(yǔ)言文本 中文圖像的檢索開(kāi)箱即用。如果你的業(yè)務(wù)需要做中文圖搜、電商以文搜圖、多模態(tài)內(nèi)容審核等場(chǎng)景這個(gè)模型是一個(gè)值得評(píng)估的起點(diǎn)。贊分享【免費(fèi)下載鏈接】InternVL-14B-FlickrCN-FT-364px項(xiàng)目地址https://ai.gitcode.com/OpenGVLab/InternVL-14B-FlickrCN-FT-364px點(diǎn)擊查看免費(fèi)下載相關(guān)推薦InternVL-14B-FlickrCN-FT-364px性能實(shí)測(cè)Flickr30K榜單SOTA表現(xiàn)深度解析InternVL 14B FlickrCN FT 364px性能實(shí)測(cè)Flickr30K榜單SOTA表現(xiàn)深度解析 本文實(shí)測(cè) InternVL 14B Flick拆解InternVL-14B-FlickrCN-FT-364px視覺(jué)編碼器6B參數(shù)InternViT的架構(gòu)奧秘拆解InternVL 14B FlickrCN FT 364px視覺(jué)編碼器6B參數(shù)InternViT的架構(gòu)奧秘 本文帶你快速讀懂 InternVL 145分鐘上手InternVL-14B-FlickrCN-FT-364px圖文檢索快速入門(mén)教程5分鐘上手InternVL 14B FlickrCN FT 364px圖文檢索快速入門(mén)教程 InternVL 14B FlickrCN FT 364px 是一創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考