想做一個網(wǎng)站平臺怎么做的廣告推廣系統(tǒng)
最近這幾年,自然語言處理和計算機視覺這兩大領(lǐng)域真是突飛猛進,讓機器不僅能看懂文字,還能理解圖片。這兩個領(lǐng)域的結(jié)合,催生了視覺語言模型,也就是Vision language models (VLMs) ,它們能同時處理視覺信息和文字?jǐn)?shù)據(jù)。
VLMs就像是AI界的新寵,能搞定那些既需要看圖又需要讀文的活兒,比如給圖片配文字、回答有關(guān)圖片的問題,或者根據(jù)文字描述生成圖片。以前這些活兒都得靠不同的系統(tǒng)來干,但現(xiàn)在VLMs提供了一個統(tǒng)一的解決方案。咱們得好好研究研究這些視覺語言模型。
那視覺語言模型到底是啥?
簡單來說,視覺語言模型就是把計算機視覺和自然語言處理這兩大技術(shù)合二為一。
計算機視覺就是讓機器能看懂圖像和視頻里的東西,比如認(rèn)出里面有什么物體、圖案之類的。
而自然語言處理呢,就是讓機器能理解和生成人類的語言,這樣機器就能讀得懂、分析得了,還能自己寫東西。
VLMs就是通過構(gòu)建一種能同時處理視覺和文本輸入的模型,把這兩個領(lǐng)域給連接起來了。這背后靠的是深度學(xué)習(xí)的一些高級架構(gòu),尤其是那些變換器(Transformer)模型,它們在像GPT-4o、Llama、Gemini和Gemma這樣的大型語言模型中發(fā)揮了關(guān)鍵作用。
這些基于變換器的架構(gòu)被調(diào)整來處理多種類型的輸入,讓VLMs能捕捉到視覺信息和語言數(shù)據(jù)之間那些復(fù)雜的聯(lián)系。
VLMs到底是怎么個工作法?
你記得那個為了處理自然語言而搞出來的變換器模型嗎?就是那個能處理長距離的依賴關(guān)系,還能抓住數(shù)據(jù)里上下文聯(lián)系的厲害玩意兒。這個模型現(xiàn)在已經(jīng)成了很多高級AI系統(tǒng)的中堅力量。
這個變換器架構(gòu),最早是在2017年的一篇論文《Attention is All You Need》( https://arxiv.org/abs/1706.03762 )里提出來的。
Transformer網(wǎng)絡(luò)架構(gòu)
在VLMs的世界里,變換器被調(diào)整成了能同時處理圖像和文本,讓這兩種不同類型的信息能夠無縫地整合在一起。想要更詳細(xì)了解?Transformer?的話,可以參見之前的文章:《Transformer架構(gòu)的詳解》及《用PyTorch構(gòu)建Transformer模型實戰(zhàn)》
一般來說,一個典型的VLM架構(gòu)包括兩個主要的部分:圖像編碼器和文本解碼器。
-
圖像編碼器:這家伙的職責(zé)是處理視覺數(shù)據(jù),比如圖片,然后提取出里面的關(guān)鍵特征,比如物體、顏色、紋理等等,把它們轉(zhuǎn)換成模型能懂的格式。
-
文本解碼器:這個部件負(fù)責(zé)處理文本數(shù)據(jù),根據(jù)圖像編碼器提供的視覺特征來生成輸出。
Encoder-Decoder 功能
這兩個部件在VLM里頭就像是多模態(tài)融合的大管家。
通過把這兩部分結(jié)合起來,VLMs能干的事兒可多了,比如能給圖片寫出詳細(xì)的描述,回答有關(guān)圖片的問題,甚至根據(jù)文字描述生成全新的圖片呢!VLMs工作的過程大概是這樣的:
-
圖像分析:圖像編碼器先檢查圖片,然后生成一個代碼,這個代碼代表了圖片的關(guān)鍵視覺特征。
-
信息結(jié)合:文本解碼器拿到這個代碼后,會把它和任何文本輸入(比如一個問題)結(jié)合起來,一起處理。
-
生成輸出:文本解碼器用這種結(jié)合后的理解來生成一個回應(yīng),比如給圖片配上字幕,或者回答問題。
大多數(shù)VLMs用的是視覺變換器(Vision Transformer, ViT)作為圖像編碼器,這個編碼器已經(jīng)在大量的圖像數(shù)據(jù)集上預(yù)訓(xùn)練過,確保它能有效地捕捉到多模態(tài)任務(wù)需要的視覺特征。
文本解碼器則是基于語言模型,經(jīng)過微調(diào)后能處理視覺數(shù)據(jù)上下文中的語言生成的復(fù)雜性。這種視覺和語言處理能力的高度結(jié)合,讓VLMs成為了一種非常通用而且強大的模型。
開發(fā)VLMs的一個重大挑戰(zhàn)就是要有大型而且多樣化的數(shù)據(jù)集,里面得包含視覺和文本信息。這些數(shù)據(jù)集對于訓(xùn)練模型理解和生成多模態(tài)內(nèi)容非常關(guān)鍵。
訓(xùn)練VLMs的過程,就是把圖像和它們相應(yīng)的文本描述成對地輸入到模型里,讓模型學(xué)會視覺元素和語言表達(dá)之間的復(fù)雜關(guān)系。
為了處理這些數(shù)據(jù),VLMs通常會用到嵌入層,把視覺和文本輸入都轉(zhuǎn)換成高維空間里的表示,這樣它們就可以在那里被比較和結(jié)合起來。
這種嵌入過程讓模型能夠理解兩種模態(tài)之間的聯(lián)系,并且生成既連貫又符合上下文的輸出。想要了解更多關(guān)于嵌入的細(xì)節(jié),可以參見?《大話LLM之向量嵌入》?及?《LLM向量嵌入知多少》兩篇文章。
那現(xiàn)在有哪些比較主流的開源的視覺語言模型?
這個領(lǐng)域可真是海了去了,Hugging Face Hub上就有不少現(xiàn)成的開源模型。這些模型大小不一,功能各異,許可證也各不相同,給不同需求的用戶提供了豐富的選擇。下面咱們就來看看一些特別出色的開源VLMs,以及它們的關(guān)鍵特點:
最新的VLMs及其關(guān)鍵特點
要找到最適合自己特定需求的VLMs,面對這么多選項確實有點難。不過,有幾個工具和資源能幫上忙:
-
Vision Arena:這是一個動態(tài)排行榜,基于模型輸出的匿名投票。用戶上傳一張圖片和一個提示,然后系統(tǒng)會從兩個不同的模型中隨機抽取輸出,讓用戶選擇他們更喜歡哪個。這個排行榜完全是基于人的喜好來構(gòu)建的,給模型提供了一個公平的排名。
-
Open VLM Leaderboard:這個排行榜會根據(jù)不同的指標(biāo)和平均分?jǐn)?shù)給各種VLMs打分,還提供了篩選器,可以按照模型的大小、許可證和不同指標(biāo)的性能來排序。
-
VLMEvalKit:這是一個工具包,專門設(shè)計用來在VLMs上運行基準(zhǔn)測試,也是Open VLM Leaderboard的技術(shù)支持。還有一個評估套件叫LMMS-Eval,它提供了一個命令行界面,讓用戶可以使用Hugging Face Hub上托管的數(shù)據(jù)集來評估模型。
雖然Vision Arena和Open VLM Leaderboard提供了很多有價值的信息,但它們只能包括那些已經(jīng)被提交的模型,而且需要定期更新,才能加入新模型。
我們怎么評估這些視覺語言模型?
通常得用到幾種專門的基準(zhǔn)測試,下面簡要介紹幾種,詳情可參見:《大型語言模型基準(zhǔn)測試:理解語言模型性能》:
-
MMMU:這個大規(guī)模多學(xué)科多模態(tài)理解和推理的基準(zhǔn)測試,覆蓋了超過11,500個多模態(tài)的挑戰(zhàn),需要用到像藝術(shù)和工程這樣的不同學(xué)科的大學(xué)水平知識。
-
MMBench:這個基準(zhǔn)測試包含了20種不同技能的3000個單選題,比如光學(xué)字符識別(OCR)和目標(biāo)定位。它用CircularEval策略,就是把答案選項隨機打亂,模型得一直能選出正確答案。
-
特定領(lǐng)域的基準(zhǔn)測試:還有一些更專業(yè)的基準(zhǔn)測試,比如MathVista(視覺數(shù)學(xué)推理)、AI2D(圖表理解)、ScienceQA(科學(xué)問題回答)和OCRBench(文檔理解),這些都能提供更專門的評估。
這些測試幫研究人員和開發(fā)者評估和比較不同VLMs的性能,讓他們能更好地理解模型在特定任務(wù)和場景下的效果。通過這些測試,我們能更精確地知道模型處理多模態(tài)數(shù)據(jù)、理解復(fù)雜概念和生成準(zhǔn)確響應(yīng)的能力。
技術(shù)細(xì)節(jié):預(yù)訓(xùn)練VLMs
預(yù)訓(xùn)練VLMs就是要把圖像和文本的信息統(tǒng)一起來,然后輸入到文本解碼器里生成文本。這通常包括一個圖像編碼器、一個用來對齊圖像和文本信息的嵌入投影器,還有一個文本解碼器。不過,不同的模型可能會用不同的預(yù)訓(xùn)練策略。
很多時候,如果你能針對特定用途微調(diào)現(xiàn)有的模型,可能連預(yù)訓(xùn)練VLMs都不需要。像Transformers和SFTTrainer這樣的工具,讓微調(diào)模型變得簡單,即使是資源有限的人也能輕松上手。
實現(xiàn)開源VLMs
下面是一個用HuggingFace的Transformers庫,我們可以在自己的電腦上免費使用開源VLM LlavaNext模型:
from?transformers?import?LlavaNextProcessor,?LlavaNextForConditionalGeneration
import?torch
device?=?torch.device('cuda'?if?torch.cuda.is_available()?else?'cpu')
processor?=?LlavaNextProcessor.from_pretrained("llava-hf/llava-v1.6-mistral-7b-hf"
)
model?=?LlavaNextForConditionalGeneration.from_pretrained("llava-hf/llava-v1.6-mistral-7b-hf",torch_dtype=torch.float16,low_cpu_mem_usage=True
)
model.to(device)
這樣,我們就能在自己的項目中用上這些強大的開源VLMs了。
VLMs 有哪些應(yīng)用場景??
VLMs 本事可不止是給圖片加個字幕那么簡單。這些模型就像是視覺和文本信息之間的超級翻譯官,開啟了一大堆應(yīng)用的大門。咱們一塊兒看看VLMs在各行各業(yè)里頭都有哪些影響力大的應(yīng)用。
-
視覺問題回答(Visual Question Answering, VQA)
想象一下,你給機器看張圖,然后問它問題,比如“這圖里最高的樓是什么顏色的?”或者“這圖里有幾個人?”VQA就是干這個的。這要求模型得能讀懂圖里的視覺信息,還得理解你問話的上下文。在醫(yī)療行業(yè),VQA能幫忙分析醫(yī)學(xué)影像,給診斷和治療計劃提供參考。在零售業(yè),它能讓顧客更直觀地和商品圖片互動,提升購物體驗。
-
文本到圖像生成
VLMs還有一個超酷的能力,就是能根據(jù)文字描述生成圖片。比如你描述一個“山間寧靜的日落,山谷中流淌著一條河流”,VLMs就能給你“畫”出來。這對設(shè)計師和廣告人來說是個寶,他們可以根據(jù)文字提示快速搞出視覺創(chuàng)意,讓創(chuàng)造視覺內(nèi)容的過程更高效。
-
圖像檢索
圖像檢索就是根據(jù)文字描述來找圖片。VLMs能搞懂圖片里有啥,也能搞懂你想找啥,幫你找到最匹配的圖片。這能讓搜索引擎更精準(zhǔn),讓用戶更容易找到他們想要的圖片。無論是在網(wǎng)上購物還是醫(yī)學(xué)圖像分析,這個技能都很有用。
-
視頻理解
VLMs不只能處理圖片,還能處理視頻,幫我們理解視頻內(nèi)容,甚至給視頻加字幕。視頻理解能分析視頻里的視覺信息,然后生成描述性的文本,捕捉視頻要表達(dá)的精髓。這個技能在視頻搜索、視頻摘要和內(nèi)容審核等方面都能派上用場。比如,它能幫助用戶根據(jù)文字找到特定的視頻片段,或者快速生成視頻摘要,讓用戶迅速了解視頻內(nèi)容。在內(nèi)容審核方面,VLMs能幫忙識別視頻中的不當(dāng)內(nèi)容,讓網(wǎng)絡(luò)平臺更安全友好。
總之,視覺語言模型能同時處理視覺和文本數(shù)據(jù),這本事讓各種應(yīng)用都有可能得到加強。隨著這個領(lǐng)域的不斷發(fā)展,我們可以預(yù)見,未來會有更多更復(fù)雜的VLMs出現(xiàn),它們能完成更艱巨的任務(wù),還能給出有價值的見解。