Set-of-Mark prompting(編號標記提示)是**在圖片的候選區域上疊加可見的編號或框,讓視覺語言模型以編號回答「是哪一個」**的提示做法。Jianwei Yang、Hao Zhang、Feng Li、Xueyan Zou、Chunyuan Li 與 Jianfeng Gao 在 2023 年的論文 Set-of-Mark Prompting Unleashes Extraordinary Visual Grounding in GPT-4V 提出這個名稱。它把「在圖上定位一個元件」這個開放式問題,轉成「從這幾個編號裡選一個」的封閉選項題,模型不必輸出座標。

概念位置

作答方式模型要輸出的內容適合的用途
自由描述一段文字描述元件的位置人讀的說明,難以自動比對
輸出座標一組像素座標或框需要精確位置;座標精度依模型而異,要在自己的模型上量
Set-of-Mark一個編號自動比對、可以搭配單 token 決策
Set-of-Mark 加 structured output一個編號欄位需要把答案交給程式處理時,以格式約束確保只回編號

候選區域的來源可以是影像分割模型(原論文用 SEEM、SAM 這類互動式分割模型把圖片切成區域,再疊上字母數字、遮罩或框),也可以是產生畫面的程式本身(例如 UI 框架的元件樹提供每個元件的邊界);元件樹給的邊界是精確的,可以省掉分割這一步;元件樹也會列出看不見、被遮住、在畫面外或透明的容器元件,疊編號之前要先把這些元件濾掉,否則編號會標到畫面上看不到的元件。

設計責任

用 Set-of-Mark 設計題目時,編號本身會影響量測的地方:

  1. 編號本身洩漏了元件的位置:框與編號標出了「這裡有一個元件」,模型不用自己找到元件也能答對一部分題目。要量模型能否自己找到某個元件,對照組最好只換掉這一個變數:在不是元件的空白區域也疊上幾個干擾框,編號就不再等於「這裡有元件」,作答格式照樣是編號。完全不疊編號、改用座標或描述作答是另一種對照,它同時換掉了輸出格式。
  2. 編號要每次重新分配:模型對某些代碼有先天的偏好,不論代碼標在什麼內容上都給它較高的機率(見 4.23 System 1 決策模型引用的選項代碼偏好量測)。同一個元件若固定用同一個編號,這個偏好會和模型對元件本身的判斷混在一起,事後分不開。用循環排列重新分配編號並重繪,讓每個元件輪流佔每個編號;隨機分配幾次不保證偏好被平均掉。
  3. 編號放在要判斷的區域之外:要判斷元件有沒有裁切、對齊或顏色問題時,編號放在元件外緣,避免標記蓋住缺陷所在的像素。
  4. 編號代碼要是單一 token:搭配單 token 決策時,編號要用該模型 tokenizer 切成單一 token 的字元,否則第一個 token 的機率分不出是哪一個編號。