一、提示調整(Prompt Tuning)
Prompt Tuning是一種通過改變輸入提示語(input prompt)以獲得更優模型效果的技術。舉個例子,如果我們想將一條英語句子翻譯成德語,可以采用多種不同的方式向模型提問,如下圖所示:

這個案例采用的是硬提示調優(hard prompt tuning)?方法,因為它直接修改了離散的輸入標記(input tokens),而這些標記是不可再分的。
譯者注:在自然語言處理領域,一般將文本進行分詞處理,將一個句子拆分為一個個離散的單詞或標點符號作為input token。每個token代表一個離散的語義單位,模型可以根據這些token進行語義理解和生成回復。
例如,對于句子 "你好,很高興見到你!",可以將其分解為以下離散的input token:
[ "你", "好", ",", "很", "高興", "見到", "你", "!" ]
這些離散的token可以作為模型的輸入,用于訓練或生成對話回復。注意,在使用離散的input token時需要將其轉換為對應的向量表示(如詞嵌入表示),以便模型能夠對其進行處理和學習。
與硬提示調優(hard prompt tuning)相反,軟提示調優(soft prompt tuning)方法(Lester等人,2021年[1])將輸入標記(input tokens)的嵌入(embeddings)與可通過反向傳播算法(backpropagation)進行優化的可訓練張量(tensor)連接起來,以提高模型在目標任務上的性能。
偽代碼如下所示:

與離散的文本prompt不同,軟提示(soft prompts)是通過反向傳播算法(back-propagation)獲得的,因此可以根據已標注數據集的損失函數反饋(loss feedback)進行調整。
相較于全參數微調(full-finetuning),軟提示調優(soft prompt tuning)具有更高的參數效率(more parameter-efficient),但使用軟提示調優的模型性能可能稍遜一籌,如下圖所示。

二、前綴調優(Prefix Tuning)
目前,有一種特殊的、被獨立開發的prompt tuning方式被稱為前綴調優(prefix tuning)??(Li & Liang 2021[2])。其思想是將可訓練的張量(trainable tensors)添加到每個Transformer塊中,而非像soft prompt tuning中那樣只添加輸入嵌入(input embeddings)。同時,通過全連接層(fully connected layers,兩層并且具有非線性激活函數的小型多層感知機)獲取soft prompt embedding。
譯者注:?在使用深度學習模型進行自然語言處理任務時,input embeddings常作為模型的第一層進行使用,將離散的input token轉換為連續的向量表示,從而實現對文本的有效建模和處理。
前綴調優技術將預定義的prompt嵌入到模型中,以影響模型的生成行為。這項技術可以改變模型對輸入的解釋方式,使得模型能夠更好地根據prompt生成相應的輸出。
下圖說明了常規Transformer塊和經過前綴(prefix)修改的Transformer塊之間的區別。?

請注意,在上圖中,“全連接層”是指一個小型多層感知機(由兩個全連接層和一個非線性激活函數組成)。這些全連接層將soft prompt嵌入到一個與transformer塊輸入具有相同維度的特征空間(feature space)中,以確保兩層連接時的兼容性。
使用Python偽代碼,可以說明常規Transformer塊和經過前綴(prefix)修改的Transformer塊之間的區別:

根據提出prefix tuning的論文,該方法在僅訓練0.1%的參數的情況下,實現了與微調所有層相當的模型性能(該實驗基于GPT-2模型)。此外,在大多數情況下,prefix tuning的表現甚至優于微調所有層,可能是因為該方法涉及的參數較少,有助于減少對較小目標數據集的過擬合問題。
最后,為了澄清推理過程中soft prompts的使用方式,請注意以下幾點:在學習了soft prompts后,在我們針對特定任務對模型進行微調時,我們必須將其(soft prompts)作為前綴(prefix)提供。這樣做可以使模型根據特定任務自定義其回答。此外,我們可以擁有多個soft prompts,每個對應于不同的任務,并且在推理過程能夠提供相應的前綴,以最好地去處理特定任務。
三、兩者區別
在性能方面,soft prompt tuning和prefix tuning孰強孰弱?不幸的是,就性能而言,目前尚無直接比較soft prompt tuning和prefix tuning的研究結果,因為這它們是獨立開發并同時發布的方法,各自的論文中未進行直接的比較。此外,在我查閱參數高效型大語言模型(parameter-efficient LLM)的最新文獻中,并沒有找到同時包含這兩種方法的基準測試(benchmark)?。
在prefix tuning這種方法中,通過向輸入序列(input sequence)插入特定任務的前綴(a task-specific prefix)來修改模型的更多層、,因此需要微調更多的參數。另一方面,soft prompt tuning僅涉及對input prompt embeddings進行微調,因此更新的參數較少。這使得soft prompt tuning可能比prefix tuning更輕量化(parameter-efficient),但也可能限制了其適應更廣泛目標任務的能力。
就性能方面而言,我們可以合理地期望prefix tuning可能表現得更好,因為它能夠調整更多的模型參數以便適應更廣泛的新任務。然而,這可能是以增加計算資源的消耗和提高模型出現過擬合的風險為代價的。另一方面,soft prompt tuning可能具有更高的計算效率,但由于微調的參數較少,可能會導限制模型的性能。
?四、總結
好啦,以上就是Prefix Tuning 和 Prompt Tuning的介紹,結合了偽代碼進行輔助講解,更容易理解這兩者的區別,而不是文縐縐的文本介紹,對于面試者來說增加容易理解。