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

面試官讓我講一下DeepSeek-VL2的細節(jié)

人工智能
為什么要做recaption?因為caption數(shù)據(jù)由來已久,業(yè)界有許多開源的caption數(shù)據(jù)集,這些數(shù)據(jù)集的收集、處理方式各不相同,數(shù)據(jù)內(nèi)容和質(zhì)量參差不齊。直接用這些數(shù)據(jù)訓練會帶入很多我們不想要的噪聲,效果也不太好。

看DeepSeek-VL2細節(jié)之前,先簡單介紹下DeepSeek-VL2提到的recaption方案和visual prompt數(shù)據(jù)。

1.recaption:PixelProse

1.1why recaption

PixelProse是《From Pixels to Prose: A Large Dataset of Dense Image Captions》中提供的一個(合成)caption數(shù)據(jù)集,共有16M條樣本;論文同時也介紹了他們構(gòu)造PixelProse的recaption方案。

為什么要做recaption?因為caption數(shù)據(jù)由來已久,業(yè)界有許多開源的caption數(shù)據(jù)集,這些數(shù)據(jù)集的收集、處理方式各不相同,數(shù)據(jù)內(nèi)容和質(zhì)量參差不齊。直接用這些數(shù)據(jù)訓練會帶入很多我們不想要的噪聲,效果也不太好。

通過具體case的分析,主要有這么些問題:

  • 數(shù)據(jù)里存在一些NSFW和Child Sexual Abuse Material (CSAM)的內(nèi)容,這在很多場景都不合適甚至不合法
  • 很多樣本的圖片和caption關(guān)聯(lián)性太差,比如過于簡短,或者缺乏準確的描述,這導致VL模型沒法很好學習語言和圖像之間的細節(jié)對齊關(guān)系
  • 文字是VL模型和SD模型要學習的一個重點,但是現(xiàn)有的caption數(shù)據(jù)很多都沒有給出圖中文字的詳細內(nèi)容,使得模型很難學習文字

1.2方案

針對分析出來的這些問題,合成高質(zhì)量的caption數(shù)據(jù)的流程設(shè)計成這樣:

圖片圖片

一步一步來看。

1)過濾

source data有三個,CommonPool、CC12M 和 RedCaps。當然如果現(xiàn)在我們要再多,那可以多加點數(shù)據(jù)集進去。首先,這些數(shù)據(jù)集通過NSFW分類模型和commercial Google APIs進行內(nèi)容過濾,僅保留圖片內(nèi)容合適合法的數(shù)據(jù)。

2)選擇prompt

接下來,會從下面5個預定義的prompt中隨機選擇一個,用于讓Gemini生成新的prompt。

圖片圖片

3)加入alt-text

在生成的時候,會隨機加入圖片的alt-text到prompt中。參考《CapsFusion: Rethinking Image-Text Data at Scale》的發(fā)現(xiàn),加入alt-text有機會提升生成結(jié)果細節(jié)的準確性。

4)加入Negative Descriptions

無論是VLM還是diffusion模型,對于negative描述的指令遵循能力總是比較差。比如跟diffusion模型說“畫一幅沒有大象的畫”,最終畫出來的畫就有大象。

為了增強模型對negative instruction的遵循能力,隨機讓Gemini增加一些途中不存在的物體的描述。比如“途中有5個紅色的蘋果”,就會再加上negative description “但是沒有任何梨子出現(xiàn)在途中”。

5)優(yōu)化Text Recognition

文字能力是VLM和diffusion模型都很重要的一個能力,如果沒有文字識別能力,多模態(tài)模型無法識別圖片上的路標、廣告牌、標簽等信息,而diffusion模型在生成包含文字的圖像時也會是一團亂碼。

為了增強模型的文字理解能力,可以看到前面的5個prompt里都包含一個要求:

If any text is present in the image, mention where it is, and the font.Describe the text in detail with quotation marks.

不過生成caption的模型識別文字的準確率不是100%,甚至可能只有七八成的準確率,所以后面還要check一下。

在校驗之前,先用watermark model分類一下,對于不包含watermark,且出現(xiàn)文字的圖片,再用OCR模型進行識別。小于15個pixel的text region會被拋棄。

最終check的結(jié)果表明大概有76%的文字可以被caption模型正確識別:

圖片圖片

圖片

當然OCR模型本身也不是100%正確的,對于樣式復雜的情況,OCR模型也識別不準,不過整體上這個準確率校驗還是可以參考的。

1.3.PixelProse

新合成的PixelProse文本長度相比原caption更長,包含更多細節(jié)信息:

圖片圖片

從文本的分詞結(jié)果上看,PixelProse所包含的名詞多樣性也更豐富:

圖片

2.Visual Prompt

這一part主要是講一下visual prompt。

在純文本的場景,prompt的使用大家都很熟悉的。而在多模態(tài)場景,一般來說用戶指令也是以文本的形式給出,比如“圖上這個人多少歲了”,“這只狗是什么品種”這樣。

假設(shè)現(xiàn)在有一張圖,上面有很多人,你想要針對其中某個人對模型進行詢問。如果用文本進行描述的話,就有點困難:這些人可能沒有很整齊地排列,衣著也沒有鮮明特點;哪怕能夠通過位置或者特征進行文字描述,這也會給模型的理解和識別造成困難。

回想一下,如果是在和人交流,那么要準確定位圖上的一個人,最簡單的方法就是用手指一下,或者拿筆在對應位置畫個圈/箭頭。那跟模型交流的時候也可以這么干:

圖片圖片

這個圈/箭頭就是visual prompt。

如果模型具備和這些圈/箭頭進行交互的能力,那么用戶在交互的時候就會更加自然。

2.1.數(shù)據(jù)

要訓練這樣的能力,首先就要有數(shù)據(jù)?!禫iP-LLaVA: Making Large Multimodal Models Understand Arbitrary Visual Prompts》就搞了一批數(shù)據(jù)。

1)source data

visual prompt的數(shù)據(jù)還是通過數(shù)據(jù)合成獲得。源數(shù)據(jù)就是現(xiàn)有各種物體識別/實體分割的數(shù)據(jù),這些數(shù)據(jù)包含物體的位置和類型/名稱信息,很方便改造成visual prompt數(shù)據(jù)。

2)visual prompt type

研究人員定義了一下巴中visual prompt類型,用于標識圖像中的物體,總共有8種:

圖片

個人認為,這8種其實可以分成3個大類:

(1)外框

橢圓、長方形、三角形、物體的mask都屬于把物體框起來的方式,只是有的框比較粗糙,有的比較精細。

在構(gòu)造這類visual prompt的時候,為了引入一定的隨機性,會對外框的ratio、顏色和大小進行一定的隨機變化,只要保證主要物體還在框里就行。

(2)箭頭

箭頭和把物體圈起來的做法不同,箭頭一般畫在物體附近,而且有方向性。

(3)涂鴉

scribble,contour和point其實都是類似涂鴉的方式,只是涂鴉的精細程度不同,point是最簡陋的,contour是最精細的,而scribble介于兩者之間。scribble是用貝塞爾曲線工具模擬人類軌跡畫的。

3.DeepSeek-VL2

DeepSeek-VL2開源了三個規(guī)模的模型,都是MoE:

  • DeepSeek-VL2-Tiny:總參數(shù)3B,激活參數(shù)0.57B
  • DeepSeek-VL2-Small:總參數(shù)16B,激活參數(shù)2.4B
  • DeepSeek-VL2:總參數(shù)27B,激活參數(shù)4.1B

原文給出的效果對比:

圖片

不過這張圖比的是激活參數(shù)。其實直接看總參數(shù),DeepSeek-VL2的效果也是很不錯的,只是沒有看激活參數(shù)的優(yōu)勢那么大。從另一個角度想,如果DeepSeek通過模型架構(gòu)和計算框架優(yōu)化,可以把MoE+MLA結(jié)構(gòu)做到和同樣激活參數(shù)的dense模型相同效率的話,這么對比也不是不行。

DeepSeek-VL2相比前一代,主要有3個優(yōu)化點:

  • 動態(tài)高分辨率vision encoding
  • LLM架構(gòu)優(yōu)化
  • 數(shù)據(jù)構(gòu)建pipeline優(yōu)化

LLM架構(gòu)優(yōu)化其實就是MoE + MLA,帶來的語言模型效率和效果提升,這部分在《DeepSeek-V3細節(jié)探索》中有細說,此處就不展開。三個開源模型的具體結(jié)構(gòu)參數(shù):

圖片圖片

最小的Tiny模型沒有使用MLA,而是使用MHA,這和我們之前對MLA的認知是一致的:模型每個頭的大小并不需要很多,模型增大更多是增加頭數(shù),而MLA需要在頭數(shù)更多的場景下才能發(fā)揮效率和效果的優(yōu)勢,因此模型越大MLA優(yōu)勢越大,而在小模型上MLA則不容易發(fā)揮優(yōu)勢。

另外,只有最大的DeepSeek-VL2使用了expert correction bias和sigmoid routing function,這倆都跟expert parallelism有關(guān)。

另外有點奇怪的是只有small版本的vocab是102400,其他兩個都是129280

DeepSeek-VL2整體框架還是標準的三件套:

圖片圖片

3.1動態(tài)分辨率:Dynamic Tiling Strategy

使用高分辨率 + 動態(tài)分辨率基本上已經(jīng)是現(xiàn)在的標準做法。

DeepSeek-VL2三個規(guī)模的模型使用的vision encoder都是SigLIP-SO400M-384,這是一個基礎(chǔ)分辨率為384 × 384的模型?;谶@個分辨率,定義了一批候選分辨率,這些候選分辨率的width和height都是384的倍數(shù):

對于每一個原始圖像,會保持ratio進行resize到每個候選分辨率,并選擇使用所需padding最少的候選resolution。

最后還會加上一個原圖的縮略圖,因此總用有(1 + m × n)個tile,每個tile都是384 × 384的大小,由vision encoder來單獨處理。

以上是vision encoder的輸出。接下來是VL Adaptor的處理。

SigLIP-SO400M-384使用的patch size = 14,每個tile會產(chǎn)生27 × 27個visual embedding,會通過pixel unshuffle,把visual embedding的數(shù)量減少到14 × 14個。

另外,為了幫助模型識別visual embedding的位置關(guān)系,在縮略圖和子圖的每行visual embedding最后都會加一個 \n token,標識一下這一行embedding的結(jié)束。

這么一來總的token數(shù)就變成:

14 × (14 + 1) + 14m × (14n + 1)

最終得到的圖像feature按這樣排布:

圖片圖片

動態(tài)分辨率的方案到這里就結(jié)束了。不知道有沒有細心的同學發(fā)現(xiàn),上面的基礎(chǔ)分辨率384并不是patch size 14的整數(shù)倍數(shù)(384 / 14 ≈ 27.4),我也有點奇怪,搜索之下發(fā)現(xiàn)確實有問題:原來SigLIP-SO400M-384的真實分辨率并不是384,而是14 × 27 = 378,384只是由于歷史遺留問題一直保持這么個寫法。原鏈接在 https://huggingface.co/google/siglip-so400m-patch14-384/discussions/4。(這簡直和“2020年東京奧運會在2021舉辦”有異曲同工之妙)。

3.2多階段訓練

DeepSeek-VL2的訓練分三個階段:

  • 對齊:訓練adaptor和vision encoder,凍結(jié)LLM
  • 預訓練:全參訓練
  • SFT:全參訓練

圖片圖片

3.3數(shù)據(jù)

1)對齊

在對齊階段,DeepSeek-VL2只用ShareGPT4v數(shù)據(jù):包含1.2M條caption和conversation樣本。

2)預訓練

預訓練階段使用了70%的VL數(shù)據(jù)和30%純文本數(shù)據(jù)。

(1)Interleaved image-text data

主要來自WIT、WikiHo和OBELICS,它們的混合比例通過在eepSeek-VL2-Tiny上實驗確定;還有一個in-house數(shù)據(jù)集來增強真實世界知識的覆蓋。

(2)Image captioning data

對現(xiàn)有的caption數(shù)據(jù)進行recaption處理,參考PixelProse的做法,在生成新caption的時候加入:

  • OCR hints
  • meta information (e.g., location, camera settings)
  • original captions

recaption之后還是存在一些質(zhì)量問題,因此用DeepSeek Chat對文本質(zhì)量再進行打分和過濾,這樣一來caption效果得到了有效提升

(3)OCR數(shù)據(jù)

包括LaTeX OCR和12M RenderedText數(shù)據(jù)集,和一些in-house數(shù)據(jù)集,主要是中英文的。

(4)VQA數(shù)據(jù)

包括:

  • General VQA
  • Table, chart and document understanding
  • Web-to-code and plot-to-Python generation
  • QA with visual prompt

(5)Visual grounding data

數(shù)據(jù)樣式:

Prompt: Locate <|ref|><query><|/ref|> in the given image.
Response: <|ref|><query><|/ref|><|det|>[[x1, y1, x2, y2],...]<|/det|>

<|ref|>, <|/ref|>, <|det|>, <|/det|> are special tokens. <query> is a place-holder for either the category name (e.g., “car”) or description of the object (e.g., “the leftmost person”). [[x1, y1, x2, y2], ...] is a list of bounding boxes, where each bounding box corresponds to an object’s position. The coordinates x1, y1 and x2, y2 specify the top-left and bottom-right corners respectively, normalized to values between 0 and 999 according to the resolution of the image.

還另外構(gòu)建了負樣本,把一些object從原圖上消去,以增加模型robustness。

(6)Grounded conversation data

數(shù)據(jù)樣式:

Prompt: <|grounding|>Can you describe the content of the image?
Response: Two <|ref|>dogs<|/ref|><|det|>[[x1, y1, x2, y2],...]<|/det|> are running on the grass.

3)SFT

(1)General visual question-answering

現(xiàn)有的VQA數(shù)據(jù)集有一些問題,包括:

  • response太短
  • OCR質(zhì)量差
  • 有幻覺

因此把original question、image和OCR信息放在一起,重生成response,以提升數(shù)據(jù)質(zhì)量。

(2)OCR and document understanding

預訓練后模型的OCR能力已經(jīng)很強了,因此sft階段專注選出低質(zhì)量樣本,提升數(shù)據(jù)質(zhì)量。

(3)Table and chart understanding

同OCR類似

(4)Reasoning, logic, and mathematics

發(fā)現(xiàn)detailed response在小模型上的訓練效果并不好,小模型對簡潔的response的學習能力更好。

(5)Textbook and academic questions

使用了包含跨學科、大學水平的教科書內(nèi)容的內(nèi)部數(shù)據(jù)集。

(6)Web-to-code and plot-to-Python generation

對于開源數(shù)據(jù)也重新生成response提高質(zhì)量。

(7)Visual grounding

把query翻譯成了中文,還加了一個negative sample。

(8)Grounded conversation

使用《Groma: Localized visual tokenization for grounding multimodal large language models》和《Flickr30k entities: Collecting region-to-phrase correspondences for richer image-to-sentence models》數(shù)據(jù)集構(gòu)建對話數(shù)據(jù)。

(9)Text-Only datasets

使用了很多數(shù)據(jù),但是沒有給出比例。

一個總結(jié),在數(shù)據(jù)這塊DeepSeek-VL2在強調(diào)多樣性的同時,也用現(xiàn)有的模型構(gòu)建更強的pipeline重新生成response以提高數(shù)據(jù)質(zhì)量。

3.4.cases

圖片圖片

圖片

4.小結(jié)

  • 現(xiàn)有的多模態(tài)數(shù)據(jù)質(zhì)量有高有低,直接使用可能有很好的效果
  • 數(shù)據(jù)多樣性能夠有效提升模型訓練效果
  • 按這個趨勢MoE有可能再次火起來?如果硬件的優(yōu)化跟上,MoE說不定能成為attention一樣的標準方案。MLA也同樣有這個可能。
責任編輯:武曉燕 來源: Linsight
相關(guān)推薦

2021-07-28 10:08:19

類加載代碼塊面試

2023-09-12 14:56:13

MyBatis緩存機制

2022-06-07 12:03:33

Java內(nèi)存模型

2022-06-06 15:33:20

線程Java釋放鎖

2023-02-18 13:34:14

Nacos健康檢查機制

2025-03-10 07:05:07

2020-12-10 08:43:17

垃圾回收JVM

2023-12-29 13:45:00

2024-01-29 10:08:11

零拷貝Zero-copyCPU 拷貝

2024-02-21 16:42:00

2020-07-30 07:58:36

加密算法

2024-02-27 15:23:48

RedLock算法Redis

2023-02-08 08:32:41

輪詢鎖

2021-08-28 09:06:11

Dubbo架構(gòu)服務

2021-11-08 15:59:01

MyBatis關(guān)聯(lián)開發(fā)

2020-06-02 17:17:43

HTTPS加密算法前端

2023-01-30 15:39:40

GETHTTP

2021-06-02 11:25:18

線程池Java代碼

2023-03-08 07:46:53

面試官優(yōu)化結(jié)構(gòu)體

2020-04-26 09:33:36

三次握手網(wǎng)絡(luò)協(xié)議HTTP
點贊
收藏

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