選單

視覺-語言表徵學習新進展:提詞最佳化器“琥珀”帶你用好CLIP

機器之心專欄

作者:MMLab@NTU

你是否還在為設計 CLIP 模型的提詞器(prompt)而煩惱?到底是「a photo of a [class]」還是「a [class] photo」?對於特定任務(例如食物分類或是衛星影象識別),如何新增符合語境的上下文(context)?本文提出的提詞最佳化器 CoOp(中文名:琥珀)能夠給你答案。

視覺-語言表徵學習新進展:提詞最佳化器“琥珀”帶你用好CLIP

結合視覺和語言的預訓練方法(Vision-Language Pretraining)最近成為視覺表徵學習一種有前景的方向。不同於使用影象和離散標籤進行學習的傳統分類器,以 CLIP 為代表的視覺語言預訓練模型利用了兩個獨立的編碼器來對齊影象和原始文字。在這種正規化下,監督來源變得更加靈活多樣且容易獲取(如圖片評論或網路配圖文案都可以做圖片監督)。更重要的是,模型變得十分容易零樣本(zero-shot)遷移到下游任務。這是因為下游任務的類別不必一定屬於訓練中離散標籤的一種。只要提供下游任務的標籤資訊,透過適當提詞器(prompt)生成的文字向量可以直接代替固定的離散標籤。下圖展示了 CLIP 模型的結構。

視覺-語言表徵學習新進展:提詞最佳化器“琥珀”帶你用好CLIP

近日,來自新加坡南洋理工大學的研究者發現在實踐中部署此類模型的主要挑戰是對提詞器的設計,這是因為設計合適的提詞器需要專業領域的知識,尤其是針對專業類別名要設計專門的語境(即上下文,context)。同時,提詞器的設計也需要花費大量時間來調整,因為微小的措辭變化可能會對效能產生巨大影響。例如在下圖(a)中,在「a photo of [CLASS]」中的 [CLASS] 前加個「a」直接漲了將近 6 個點!此外,不同的下游任務需要的不同設計(例如圖 b-d 中的「flower」、「texture」和「satellite」)也進一步阻礙了部署的效率。

視覺-語言表徵學習新進展:提詞最佳化器“琥珀”帶你用好CLIP

為了克服這一挑戰,該研究提出了一種名為上下文最佳化 (Context Optimization,英文名:CoOp,中文名:琥珀) 的新方法。

視覺-語言表徵學習新進展:提詞最佳化器“琥珀”帶你用好CLIP

論文連結:https://arxiv。org/abs/2109。01134

程式碼連結:https://github。com/KaiyangZhou/CoOp

琥珀的主要思想是對提詞器(prompt)中的上下文(context)用連續向量進行建模,而整個訓練過程將僅對這幾個上下文詞向量進行端到端最佳化,而保持預訓練引數不變。該方法完全自動化了提詞器的設計過程,下圖展示了琥珀的模型結構。

視覺-語言表徵學習新進展:提詞最佳化器“琥珀”帶你用好CLIP

該研究在實驗中使用了 11 個視覺資料集來驗證琥珀的有效性:結果表明琥珀是一個十分高效的小樣本學習方法,平均每個類別只需一到兩張圖片就可以擊敗基於手工提詞器的零樣本識別模型。當每個類別的圖片有 16 張時,琥珀比手工提詞器平均高出了大約 17 個百分點(最高可達 50 個百分點)。不僅如此,琥珀還對領域泛化表現出了極強的魯棒性(見下圖,其中 M 指代琥珀的提詞器長度)。

視覺-語言表徵學習新進展:提詞最佳化器“琥珀”帶你用好CLIP

不過,當研究者在詞空間中尋找與最佳化得到的詞向量距離最近的現實詞彙時,很難找到有實際含義的詞,因為研究者發現即便是最臨近的現實詞彙,其距離最佳化得到的詞向量仍然相距甚遠,並且在詞空間中,臨近的詞向量不一定具有相似的含義。下圖展示了 5 個數據集對應的距離最優解最近的 16 詞提詞器。這進一步表明人工設計的提詞器可能始終無法達到琥珀的效果。

視覺-語言表徵學習新進展:提詞最佳化器“琥珀”帶你用好CLIP

鑑於以上提詞器視覺化的結果,研究者大膽的推測,在一些資料集上,一些無厘頭的提詞器,例如「makka pakka akka yakka ikka akka [class]」甚至可能比「a photo of a [class]」在某些資料集上有更好的效果。

視覺-語言表徵學習新進展:提詞最佳化器“琥珀”帶你用好CLIP

使用DTR和混合精度技術訓練更大的模型

9月15日19:00-20:00,曠視研究院演算法研究員肖少然和曠視 MegEngine 架構師陳振寰,為大家詳細解讀 DTR 技術加持下的 MegEngine 如何在大模型訓練領域大展身手。

直播將在機動組影片號進行,歡迎大家預約與進群。