Prompt Distillation for Efficient LLM-based Recommendation

題目

基于LLM的高效推薦的快速蒸餾

論文地址:https://dl.acm.org/doi/10.1145/3583780.3615017

摘要

????大語言模型(LLM)在各種任務上表現出了無與倫比的建模能力,例如多步推理,但是這些模型的輸入大部分僅限于純文本,這可能很長并且包含嘈雜的信息。長文本可能需要很長時間才能進行處理,因此對于需要立即響應的推薦系統可能還不夠有效。在基于LLM的建議模型中,用戶和項目ID通常填充在模板中(即離散提示),以允許模型理解給定的任務,但是這些模型通常需要大量的微調來橋接用戶/項目ID和模板單詞和模板單詞,并釋放LLM的功能。為了解決問題,我們建議將特定任務的離散提示提取到一組連續的提示向量,以橋接ID和單詞并減少推理時間。我們還設計了一種培訓策略,以提高培訓這些模型的效率。三個現實世界數據集的實驗結果證明了我們迅速蒸餾(POD)方法在順序推薦和頂級建議任務上的有效性。盡管訓練效率可以顯著提高,但推理效率的提高是有限的。這一發現可能會激發社區中的研究人員進一步提高基于LLM的推薦模型的推理效率。

????CCS概念?信息系統→建議系統; ?計算方法→自然語言生成。

????關鍵字推薦系統;大語言模型;生成建議;順序建議;頂級建議;可解釋的建議;迅速蒸餾

引言

????近年來,推薦系統已成功部署在各種在線平臺上,例如電子商務,視頻流和社交媒體。有了建議,用戶可以輕松地找到自己感興趣的東西,而無需經歷大量項目。在早期,建議模型(例如協作過濾[34]和矩陣分解[17])通常是淺層,并且包含有限數量的參數。后來,它們逐漸生長深[5],因為深層神經網絡通常比淺層模型具有更好的表示能力。同時,這些平臺上豐富的用戶生成的數據又引起了與建議相關的任務的開發,包括審查摘要[23],解釋生成[19]等。最近,建議模型進入了一個新階段,單個模型可以執行多個任務[6,9]。這些模型基于大型語言模型(LLM),例如T5 [31],該模型是指經過大量數據訓練的模型,并且可以適應大量的下游任務。

????LLM表明,小型模型不具備的驚人能力,例如,進行算術[3],他們沒有接受過培訓,因此它們在許多領域中受到了很多關注并被采用,例如自然語言處理[3,7],計算機視覺[32] [32]和推薦人系統[9]。由于語言可以表達各種概念,因此與其他領域類似的建議任務也被稱為文本描述,即離散提示[9,26],然后被送入LLM以啟用序列到序列的生成。

????但是,在推薦方案中有兩個問題有兩個問題。一方面,在推薦系統中是重要的標識符,用戶和項目ID與離散提示中的單詞有不同的目的。具體而言,單詞嵌入捕獲單詞之間的上下文關系,而ID嵌入式則編碼用戶對項目以及用戶和項目相似性的偏好。結果,基于LLM的推薦模型通常需要大量的微調來彌合ID和模板單詞之間的差距,并釋放LLM的功能以供推薦。此外,建議模型的關鍵信息是IDS,因此當涉及太多單詞時,離散提示可能會有些嘈雜。另一方面,處理長時間需要很長時間,這可能會導致負面的用戶體驗,尤其是對于需要低延遲推斷的推薦服務。

????為了應對問題,我們提出了一種及時的蒸餾(POD)1方法,在該方法中,我們在離散提示中將知識提煉成連續的提示向量。更具體地說,在訓練每個建議任務時,我們既使用一系列連續提示向量和一組離散的提示模板。作為訓練過程繼續進行,隨機初始化的連續提示向量可以學習離散提示中的表達,如圖1所示。由于連續提示向量不映射到任何具體的單詞,因此它們可以比離散提示更靈活和更具表現力,從而幫助LLM更好地學習不同的推薦任務。經過提示提取后,我們只保留每個任務的連續提示,以減少推理時間。

????由于有幾個推薦任務,訓練效率也是一個關鍵問題。雖然將這些任務的樣本混合在一個批次中是可行的[9],但效率較低。具體來說,不同任務的輸入/輸出可以有不同的長度,因此將它們填充到相同的長度可能會消耗大量內存。因此,批量將會很小,迭代次數將會增加,訓練時間將會大大增加。為了解決這個問題,我們提出了一種稱為任務交替訓練的策略,其中我們用來自同一任務的一批樣本來訓練LLM,然后是另一個任務的樣本,以此類推。由于每個任務的數據通常長度相同,這種訓練策略不會在填充上浪費太多內存,從而提高了訓練效率。

  1. 我們的主要貢獻總結如下:據我們所知,我們的提示提取(POD)是第一種可以提取基于LLM的推薦模型的離散提示到連續提示的知識的方法。它是模型不可知的,可以應用于任何其他LLM。
  2. 我們提出了一種任務交替訓練策略,以提高在LLM上訓練多個推薦任務的效率。這一戰略有可能擴展到其他領域的類似情況。
  3. 大量實驗表明,我們的approach POD在兩個典型的推薦任務(包括順序推薦和top-N推薦)上可以大幅度優于最先進的基線。
  4. 正如我們的實驗所證明的,LLM的訓練效率可以很容易地提高,但提高其推理效率并不那么容易。因此,后者可能成為推薦系統中一個新的研究方向。

????在下文中,我們首先回顧與我們在Sec的工作相關的研究。2,然后詳細介紹我們的方法。3.實驗設置在第二節中描述。第4節提供了對結果的分析。第5節給出了結論和展望。

在這里插入圖片描述
圖1:解釋生成任務的快速提取。

相關工作

????我們從大語言模型(LLM)、提示學習、基于LLM的推薦到提示遷移,經歷了相關的研究。近年來,LLM由于其在多種任務上的有效性,引起了學術界和工業界的廣泛關注。這些模型通常在海量數據上進行訓練,根據其訓練目標可以分為兩大類,包括掩蔽語言建模和自回歸語言建模。對于前一類,文本序列中的一定數量的標記被隨機屏蔽,并且模型需要基于未被屏蔽的標記來預測它們。典型的例子是BERT [7],它更適合于自然語言理解任務,例如問答。對于后者,模型(例如,T5 [31],LLaMA [37],GPT-3 [3])被指示基于其在序列中的在前記號來預測記號。

????使LLM適應下游任務的一種常見方法是在特定于任務的數據集上對它們進行微調。然而,隨著模型比例的驚人增加,微調在計算上也可能是昂貴的。因此,出現了一種新的范式,稱為即時學習[26]。在這個范例中,任務適應LLM,而不是使模型適應任務。例如,可以在預定義的模板中填充用于情感分類的樣本,以形成輸入序列,基于該輸入序列,LLM可以生成一些標記,這些標記可以進一步映射到預測得分。

????這被稱為離散提示學習,因為提示模板由離散的標記組成。還有另一種典型的提示學習方法,稱為連續/軟提示學習,其中提示是一組不映射到任何單詞的向量。有了這兩種類型的提示,LLM可以很容易地執行不同的任務,比如域適應[2]和表到文本的生成[24]。

????個性化推薦LLM是很重要的,因為它可以幫助更好地理解用戶的意圖并滿足他們的個性化需求。然而,采用LLM進行推薦任務的早期嘗試主要集中在一個單一的任務上,例如可解釋的推薦[22]和順序推薦[13]。最近,人們越來越有興趣將幾個推薦任務集成到一個LLM中。例如,在P5 [9]和OpenP5 [42]中設計了一組個性化提示,以同時處理幾個推薦任務,或者像在VIP5 [10]中那樣處理多種形式的數據。在這些模型中,所有的任務都是形式化的源任務的提示,以便更好地學習目標任務的提示。

????PANDA [46]首先測量提示可遷移性,然后將知識從源提示遷移到目標提示。這是通過知識提煉[4,12]實現的,其中大型教師模型的預測用于學習小型但有效的學生模型。類似地,MPT [41]將多個源任務之間的共享知識提取到一個提示中,以便目標任務可以利用它。雖然相關,但我們的工作不同于他們,因為我們執行任務內提示提取,而他們執行交叉任務提示轉移。UP5 [14]將LLM的偏差信息提取到編碼器和解碼器提示中,以便減少偏差并提高基于LLM的推薦模型的公平性。這項工作與我們的知識提煉非常相關,但它的研究重點是偏見和公平問題,而我們關心的是有效性和效率。

方法論

????由于LLM可以處理各種各樣的任務,我們首先給出三個典型推薦任務的概述,我們將用我們的方法來測試這些任務,包括順序推薦、前N名推薦和可解釋的推薦。請注意,其他推薦任務也可以很容易地合并。然后,我們簡單介紹一下推薦場景中的離散提示。之后,我們將詳細介紹我們的快速蒸餾(POD)方法,然后是我們提出的任務交替訓練策略。最后,我們展示了如何用波束搜索算法生成推薦和解釋。

任務表述

????在介紹任務之前,我們提供一些將在整篇文章中使用的基本符號。具體來說,我們用U表示數據集中的用戶集,I表示項目集。U中的特定用戶表示為U,I中的特定項目表示為I。對于順序推薦任務,每個用戶U與其按時間順序排列的交互歷史I u = {i u 1,i u 2,…,i u |I u | }。基于用戶和項目序列,LLM需要預測用戶接下來要與哪個項目交互,即i u |i u |+1 ∈ I/Iu,其中I u是用戶u已經交互過的項目集合。前N名推薦任務是向用戶u推薦一個項目列表,該列表由用戶以前從未交互過的N個項目組成,即來自I/Iu的項目。為了訓練這個任務,我們可以從I u中隨機抽取一個項目I,并將其與從I/Iu中抽取的隨機負面項目配對,以形成候選項目列表。

????至于解釋任務,給定一對用戶u和項目I,LLM需要生成解釋Eu,I,其證明為什么向用戶推薦項目(例如,“價格合理”)。請注意,對于所有任務,除了上面提到的數據之外,沒有提供輔助信息或附加內容。

推薦的離散提示

????在推薦系統中,用戶和項目id是必不可少的,因為它們是將一個用戶/項目與其他用戶/項目區分開的關鍵。然而,id可以不同于單詞。為了使ID適應LLM,大多數以前的工作[6,13]采用ID相關的文本段(如用戶名和項目標題)作為替代,這樣它們可以很容易地填充到預定義的模板中(如,“解釋為什么電影《銀河護衛隊》第3卷被推薦給謝麗爾”)。這種類型的文本輸入正式稱為離散提示[26],因為它由一系列離散的標記組成。

????然而,最近研究[13,15]的實驗結果表明,當ID信息不可用時,LLM的推薦性能可能會受到很大影響,因為ID可以準確識別和區分不同的項目,并傳達重要信息,如項目之間的協作關系[15]。為了解決這個問題,我們的解決方案是保留ID并將它們表示為文本字符串,其中仍然保留原始的ID號。例如,ID為1234的用戶可以表示為“user_1234”,其中前綴“user_”用于區分用戶ID和項目ID(即,后者以“item_”開始)。由于該字符串中的組成單元已經在LLM的標記器中,因此可以很容易地將其標記為一個標記序列(例如,“user”、“12”和“34”)。將ID分成幾個部分后,模型可能無法識別哪些令牌屬于特定的ID。為了連接一個ID的令牌,我們使用了一組額外的全詞嵌入[9]。如圖2所示,每個ID的標記序列共享一個全字嵌入向量,而所有其他非ID標記共享相同的全字嵌入向量。這種方法可以使每個ID成為一個完整的單元,并且ID可以按單詞區分。

在這里插入圖片描述
圖2:我們提出的用于推薦任務的提示提取方法的概述。主干模型遵循編碼器-解碼器架構。連續提示向量是特定于任務的,并且每個任務利用一組離散提示模板。全詞嵌入用于連接每個ID的標記。

提示蒸餾

????雖然看起來很有前景,但離散提示可能無法給LLM一個有效的指示,例如,“總結表格中的內容”[24]。這可能成為推薦系統中的一個嚴重問題,尤其是當兩個不同任務的輸入數據格式非常相似時。例如,順序推薦和前N名推薦的輸入都是一個用戶和一堆項目(如第2 . 3節所討論的)。3.1).如果模型誤解了離散提示,它可能會將一個任務視為另一個任務,無法提供準確的建議。此外,當提示模板很長時,它可能會遮蔽關鍵信息(即,IDs ),并且還會花費很長時間來進行訓練和推斷。為了解決這些問題,我們提出了一種快速蒸餾(POD)方法,其正式定義如下。

在這里插入圖片描述
圖3:不同任務輸入/輸出的不同長度。為了更好地說明,省略了離散提示模板和單詞標記化。

????定義1(快速蒸餾)。如果一種方法能夠在不犧牲LLM在測試任務中的性能的情況下縮短一個長提示,我們稱之為提示提煉。經過提煉的簡短提示可以是自由文本或向量。

????在這項工作中,我們將離散的提示模板提取為多個連續的提示向量。具體來說,我們在一個已經填充在離散提示模板中的輸入樣本的開頭添加一組向量,并允許這些向量被同一推薦任務的樣本所共享。圖2示出了解釋生成任務的示例。對于其他任務,將使用另一組向量。隨著訓練的進行,連續提示向量可以通過損失函數學習離散提示中的表達式。因為它們不映射到任何真實的單詞,所以比離散提示更具表現力和靈活性。蒸餾階段完成后,為了提高推理效率,我們只保留連續提示。

????在技術上,我們采用編碼器-解碼器架構,以便與最近的離散提示工作進行公平的比較[9],但我們的方法可以很容易地擴展到只有解碼器的模型。圖3示出了三個推薦任務的示例輸入和輸出(為了更好地說明,省略了提示模板和單詞標記化)。我們將任一任務的輸入-輸出序列對表示為X = [x1,…,x |X | ]和Y = [y1,…,y|Y |】。在輸入序列X通過嵌入層之后,我們可以獲得它的記號表示[x1,…,x|X | ],它將被附加在K個連續提示向量[p1,…,pK】。

????這種級聯表示[p1,…,pK,x1,…,x|X | ]然后將被添加到全詞表示[w1,…,wK+|X | ],這樣我們就得到S = [s1,…,s|S |】。在S通過LLM的編碼器之后,它將產生一個隱藏向量序列H = [h1,…,h|S | ],基于此,LLM的解碼器可以執行自回歸生成。具體地,在每個時間步長t,解碼器輸出詞匯v上的概率分布 在這里插入圖片描述

任務交替訓練

????與自然語言處理中的預訓練階段不同,在預訓練階段,每批中的所有訓練樣本都具有相同的長度,推薦任務中的輸入和輸出可以具有不同的長度。例如,解釋任務的輸入僅包括兩個id(即用戶和項目),而順序推薦的輸入由于用戶的歷史項目順序可以是百級的(見圖3)。同時,前者的輸出是一個有幾十個單詞的解釋句子,而后者的輸出僅僅是一個條目ID。不同任務的輸入和輸出的不同長度使得用來自不同任務的混合樣本來訓練LLM的效率較低[9],因為將它們填充到相同的長度會消耗大量的存儲器,使得批量大小非常小,從而導致更多的迭代和更長的訓練時間。我們的解決方案是交替地用一個任務的一批樣本更新模型參數,然后是另一個任務的樣本,依此類推。一般來說,每個任務都有相同的數據格式,因此這種策略可以節省大量內存,提高訓練效率。我們稱之為任務交替訓練,并在算法1中提供了訓練過程和實現細節。

使用波束搜索的生成

????由于所有任務都被公式化為序列到序列,輸出序列作為建議(以ID標記的形式)或解釋。在眾多解碼算法中,我們選擇了波束搜索,因為它能有效地找到好的序列。假設我們將波束的數量設置為b,在每個時間步長將有b個候選序列。在下一步中,詞匯表V中的任何單詞都可以附加到候選序列的末尾,這就形成了b × V組合,從中我們可以選擇具有最大對數似然的b序列。LLM可以一直這樣做,直到候選序列達到預定義的最大長度。對于順序推薦和top-N推薦,最佳候選序列形成推薦列表。至于解釋,我們從候選項中選擇具有最大對數似然的一個。

實驗設置

????在這一部分,我們給出了實驗設置的細節,包括數據選擇、基線方法、評估協議和實施。

數據集

????我們在三個廣泛使用的數據集上進行實驗,這些數據集都是從一個電子商務平臺Amazon2上收集的。在亞馬遜數據集3中共有29個不同的產品類別,我們采用運動&戶外、美容和玩具&游戲進行實驗。三個數據集中的每個記錄都由用戶ID、商品ID、評級、文本評論和時間戳組成。

在這里插入圖片描述
表1給出了數據集的統計數據。

????為了獲得解釋生成任務的自然語言解釋,我們遵循[19,20]中的過程,使用sentieres 4[44,45]工具包從用戶評論中提取一些包含項目特征(例如,“價格”)的句子。對于此任務,我們以8:1:1的比例將每個數據集分為訓練集、驗證集和測試集,并且為訓練集中的每個用戶和項目保存至少一條記錄。對于順序推薦任務,我們首先根據時間戳對用戶交互的項目進行時間排序,以獲得項目序列。然后,交互序列中的最后一項用于評估,倒數第二項用于驗證,其余的用于訓練。為了防止數據泄漏,我們也對top-N推薦任務采用這種數據劃分策略。

基線

????為了驗證我們的方法在不同推薦任務上的有效性,我們將其與以下三組代表性基線進行比較。

順序推薦

????給定用戶和他/她的交互項目序列,推薦模型應該預測用戶可能與之交互的下一個項目。CASER:卷積序列嵌入推薦模型[36]。該方法將用戶最近交互的項目視為虛擬圖像,因此卷積神經網絡可以用來捕獲序列模式。HGN:分級門控網絡[29]。它由兩個門控模塊(即特征級和實例級)組成,分別用于建模用戶的長期和短期興趣。GRU4Rec [11]。這是一種基于會話的推薦方法,其中使用GRU來處理項目會話。在這項工作中,我們將用戶的整個項目序列視為一個會話。BERT4Rec [35]。這是一個用伯特式完形填空訓練的雙向轉換模型。具體來說,用戶的歷史項目序列中的一些項目被隨機屏蔽,然后模型需要用序列中的其他上下文項目來預測它們。FDSA:功能層次更深的自我關注網絡[43]。項目特征作為特征序列被合并到模型中,然后與項目序列合并以進行推薦。SASRec:基于自我關注的順序推薦模型[16]。該模型結合了馬爾可夫鏈處理短期語義和遞歸神經網絡處理長期語義的優點。S 3 -Rec:用于順序推薦的自我監督學習[47]。借助互信息最大化原則,設計了四個自我監督學習目標來學習序列數據中項目之間的相關性。P5:預訓練、個性化提示和預測范式[9]。這是一個基于LLM的離散提示推薦模型。在這個模型中,順序推薦被表述為一個序列到序列的生成問題。我們為模型提供一個模板,如“這是用戶_ {用戶id }:{購買歷史}的購買歷史列表。嘗試向用戶推薦下一個項目”來啟用下一個項目預測。

Top-N推薦

基于用戶的項目歷史,推薦模型需要建議用戶從未與之交互但可能符合他/她的興趣的N個項目的列表。MF:矩陣分解[17]。這是一種經典的協同過濾方法,它的預測是由用戶和項目潛在因素的內積做出的。為了更好地學習用戶的偏好,采用貝葉斯個性化排序(BPR) [33]作為損失函數。MLP:多層感知器[5]。用戶和項目嵌入通過一堆非線性層來進行預測。該車型還配備了BPR。P5 [9]。同樣,使用類似“我們想為用戶_{user_id}做推薦”的離散提示。從這些候選項中選出最佳項:{candidate_items}”,該模型可以以自然語言生成的方式進行top-N推薦。

解釋生成

給每個模型一對用戶和項目,讓它們產生一個文本句子,解釋為什么推薦系統向用戶推薦這個項目。Att2Seq:屬性到序列[8]。這是一種評論生成方法,其中編碼器(MLP)將用戶和項目id轉換為隱藏狀態,然后解碼器(LSTM)從隱藏狀態解碼出單詞序列。在這種情況下,我們把地面實況解釋視為審查。NRT:神經評級和提示生成[23]。這是一個提示生成框架。類似地,它使用MLP來編碼用戶和項目id,但是解碼器是GRU。在我們的實驗中,我們將解釋視為提示。PETER:用于可解釋推薦的個性化轉換器[21]。這是一個基于轉換器的模型,它的注意力掩蔽矩陣被稍微修改,以便能夠在用戶和項目id之間進行交互。對于此任務,我們省略了與P5的比較,因為它使用了額外的數據,即項目標題和評級,這對其他模型是不公平的。

評估指標

????為了評估推薦的準確性,我們對順序推薦和前N名推薦都采用了常用的命中率(HR)和歸一化折扣累積收益(NDCG)。人力資源部衡量的是真實項目在推薦列表中的實際出現率,而NDCG則認為那些匹配的項目在列表中排名更高。我們報告HR@1,HR@5和HR@10,NDCG@5和NDCG@10。對于生成的解釋的評估,我們采用兩個眾所周知的度量:BLEU [30]和ROUGE [25]。前者是面向精度的,而后者是面向召回的,但這兩個度量標準都測量生成的句子和地面真相內n元語法的重疊程度。我們報告了BLEU-4以及ROUGE-1、ROUGE-2和ROUGE-L的F1,對于所有這些指標,值越大意味著性能越好。

實施細節

????為了公平比較,基準P5 [9]和我們的進近吊艙都采用T5-small [31]作為主干。在這個LLM中,編碼器和解碼器都有6層,每層都是一個8頭注意層。T5利用SentencePiece [18]將一個句子標記為一系列子詞(參見第。3.2).T5的詞匯V中共有32,100個標記,它們的嵌入維數為512。如算法1中所述,我們從用戶的項目序列中隨機采樣一個片段,用于訓練順序推薦任務;對于訓練和評估,前N名推薦的否定項的數量N被設置為99。我們使用AdamW optimizer [28]在訓練集上訓練我們的POD,并在測試集上報告結果。在對驗證集進行超參數調整后,我們將每個任務的連續提示向量K的數量設置為3,將所有三個任務的訓練批量設置為64,將運動數據集的學習率設置為0.001,美容和玩具數據集的學習率設置為0.0005。我們借用了[9]中不同任務的離散提示模板,因為構造它們不是我們的重點。在訓練階段,如果模型在三個任務上的總驗證損失在當前時期是最低的,則我們保存一個檢查點。如果這種情況沒有發生5次,我們將終止訓練過程,并加載最佳檢查點進行評估。在推理階段,我們將梁b的數量設置為20,用于順序推薦和top-N推薦。

????至于解釋生成,我們應用組波束搜索,并將b設置為21,將波束組的數量設置為3。所有任務的推理批處理大小都設置為32。

結果和分析

????這一部分給出了三個推薦任務的實驗結果、訓練和推理階段的效率比較以及超參數分析。

序貫推薦

????表2給出了不同序貫推薦方法之間的推薦準確度比較。從表中,我們可以看出,我們的方法POD遠遠超過了所有基線,尤其是與我們共享相似架構的P5。我們的方法與P5的唯一區別是,它嚴重依賴人工構建的提示模板來進行預測。然而,單詞標記和ID標記需要大量的微調才能學習到相同的嵌入空間中。

????相反,我們的方法將離散提示提煉為連續提示,這不再局限于固定的單詞,因此可以與IDs更兼容,從而提高推薦性能。在其他基線中,我們還注意到S3 -Rec和薩斯雷克都非常有競爭力,這可能是由于自我注意機制在建模序列數據方面的優勢。然而,它們不如我們的POD和基線P5有效,因為它們不是LLM,并且不能利用大型文本語料庫中的序列模式進行預訓練。

在這里插入圖片描述

前N名推薦

????在表3中,我們將我們方法與前N名推薦的代表性基線進行比較。MF和MLP都是經典的推薦機型,性能都還不錯。一般來說,MF比MLP稍差,可能是因為簡單的內積可能無法充分利用用戶-項目交互中的復雜模式。這可以解釋為什么最近的工作采用可以對推薦數據執行非線性轉換的神經網絡。但是,MLP仍然無法與基于LLM的推薦模型(即P5和POD)相提并論。特別是,后者的top-1推薦準確度比其他基線好得多,因為它們可以直接生成推薦。這證明了基于LLM的推薦模型在準確建模用戶對項目的偏好方面的優勢。最重要的是,我們的方法POD始終比所有基線表現更好,因為連續提示與LLM更兼容,因為神經網絡本質上是連續的[27]。
在這里插入圖片描述

表2:順序推薦的性能比較。
在這里插入圖片描述

表3:前N名建議的性能比較
在這里插入圖片描述

表4:解釋生成的性能比較(%)。
在這里插入圖片描述

表5:兩種訓練策略在運動數據集上的效率比較。在該表中,“h”和“m”分別表示“小時”和“分鐘”。
在這里插入圖片描述

表6:體育數據集上的推理效率比較。在“時間”一欄中,“m”和“s”分別代表分和秒。
在這里插入圖片描述

圖4:連續提示數K對運動數據集上不同任務的影響。為了更好的可視化,一些指標的值被線性縮放。

????我們還注意到,當N變大時,我們的方法相對于基線的性能改善變小。這是由于在第二節中解釋的留一評估協議。4.1、測試集中只有一個基礎事實項目。因此,測試的項目越多(即N越大),基線的命中率就越高。然而,這將無助于我們的方法的準確性,因為它已經可以正確地預測第一位置的項目,即top-1推薦。該屬性具有很大的實用價值,尤其是當推薦數量有限時,例如在系統只能顯示少數(通常只有一個)推薦結果的對話式推薦場景中。

解釋生成不同

????解釋生成方法之間的性能比較如表4所示。三個數據集上的結果不是很一致。我們的方法在運動數據集上獲得了最好的性能,在美容和玩具數據集上獲得了相當的結果。不可否認,它并不總是優于基線,可能是因為評估指標BLEU和ROUGE只從生成的解釋和基本事實中計算重疊部分[40]。這實際上使LLM處于不利地位,因為他們能夠生成多樣化和富有表現力的內容,因為他們在預訓練階段已經學習了世界知識。至于基線,我們可以看到,Att2Seq和NRT的結果通常不如其他兩種基于變壓器的方法有競爭力,這可以通過遞歸神經網絡(即Att2Seq中的LSTM和NRT的GRU)遭受長程依賴性問題的事實來解釋。然而,這對于Transformer [38]來說不是問題,其自關注機制允許未來令牌完全關注序列中的前進令牌。

培訓效率

????多任務培訓LLM的效率是一個關鍵問題。在這項工作中,我們提出了一個有效的訓練策略-任務交替訓練。為了驗證其在幫助提高訓練效率方面的有效性,我們將它與先前工作[9]中使用的訓練方法進行了比較。我們將這種比較方法命名為樣本混合訓練,因為來自不同任務的樣本被混合在一批中。實驗使用NVIDIA Tesla V100S GPU在運動數據集上進行。在測試這兩種訓練策略時,我們將批量大小調至最大值,以便模型可以占用盡可能多的內存來進行公平的比較。對于這兩種方法,我們保持其他設置不變。

????實驗結果在表5中給出。雖然混合樣本訓練需要較少的歷元來訓練,但它的總訓練時間是任務交替訓練的兩倍。關于每個時期的平均訓練時間,我們的方法比比較的方法大約高效五倍。正如我們之前解釋的,在同一批中混合不同任務的樣本會浪費大量的填充內存,因為它們很可能長度不同。在一個具有固定內存量的GPU上,批量大小會很小,迭代次數和訓練時間會增加。我們的訓練策略通過交替向LLM提供來自同一任務的一批樣本來緩解這個問題。

推理效率

????如上所述,我們在推理階段丟棄離散提示,僅使用連續提示,以降低計算成本。作為一項消融研究,我們調查這種策略是否確實有助于提高推理效率。毫無疑問,比較法既要使用連續的提示和離散提示,我們表示為“連續+離散”。同樣,我們使用NVIDIA Tesla V100S GPU在Sports數據集上測試了這兩種方法,并保持它們的設置相同。

????結果如表6所示。從表中可以看出,去除離散提示后,推理效率可以提高,而推薦和解釋性能變化不大。我們還注意到,前N名推薦任務的效率提升不如其他兩個任務顯著。原因如下。該任務總共有101個ID(即,一個用戶ID、一個目標物品ID和99個否定物品ID),這導致大約400個令牌。與它們相比,提示模板要短得多,這使得改進的空間很小。然而,這個實驗表明我們的POD方法確實可以減少推理時間。

連續提示向量的數量

????最后,我們想研究改變連續提示向量的數量K會如何影響不同推薦任務的性能。我們在運動數據集上進行實驗,從[1,3,5,10,20,50]中搜索K。從圖4可以看出,推薦性能和解釋性能的趨勢是不同的。隨著K的增加,順序推薦和top-N推薦的性能通常都在增長,但是當K較小時(即1或3),解釋性能可能已經達到最佳。考慮到大量的提示向量會影響訓練和推理效率,我們更喜歡小K。因此,我們將K設置為3,其中解釋性能最好,推薦性能已經可以擊敗所有基線。

結論

????在本文中,我們提出了一種簡單而有效的提示提取(POD)方法,該方法可以將離散提示模板的知識提取為基于LLM的推薦模型的連續提示向量。在我們的實驗中,我們證明了POD在典型的推薦任務上是有效的,在推理階段也是高效的。我們還提出了一種任務交替訓練策略,該策略可以大大提高基于語義的推薦模型的訓練效率。我們相信,這兩種方法都有可能擴展到任務具有不同數據格式的其他領域。由于簡單地刪除離散提示可以提高推理效率,我們計劃使LLM輕量級,以節省計算成本。此外,我們對跨任務提示轉移[1,39,41,46]感興趣,這可能能夠將LLM推廣到新的推薦任務。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/86647.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/86647.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/86647.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JDBC 工具類:1.0到3.0版本

一、引言 在 Java 開發中,與數據庫的交互是一項常見且重要的任務。JDBC(Java Database Connectivity)作為 Java 語言訪問數據庫的標準 API,為我們提供了統一的接口來操作各種數據庫。然而,每次進行數據庫操作都編寫大…

實驗室建設案例 | 洛陽職業技術學院—人工智能實驗室

院校簡介 洛陽職業技術學院位于千年古都、牡丹花城、絲路起點洛陽,是一所由洛陽市政府舉辦的公辦高職院校,成立于2011年,辦學歷史可追溯到1945年的豫西公學。學校全面貫徹黨的教育方針,圍繞落實立德樹人根本任務,秉承“…

vue2中,修改對象數組中元素對應的屬性,頁面不更新的問題解決

有如下代碼: // 有一個數組 let dataAry [{name: haha, age: 20},{name: hello, age: 21} ] // 這個數組在模板中使用了v-for進行循環 v-for"one of dataAry" :name"one.name" :address"one.address"// 子組件中使用如下&#xff…

代理模式:控制對象訪問的守門員[特殊字符],優雅實現功能增強與訪問控制!

代理模式:控制對象訪問的守門員🔐,優雅實現功能增強與訪問控制! 文章目錄 代理模式:控制對象訪問的守門員🔐,優雅實現功能增強與訪問控制!前言:為什么需要代理&#xff1…

《人間詞話》PPT課件

《人間詞話》簡介 《人間詞話》是王國維所著的一部文學批評著作。《人間詞話》作于1908~1909年,最初發表于《國粹學報》。該作是作者接受了西洋美學思想之洗禮后,以嶄新的眼光對中國舊文學所作的評論。 《人間詞話》PPT課件下載 夸克網盤分享…

解剖智能運維三基石:Metrics/Logs/Traces

3秒知識卡 三基石關系: Metrics(指標)→ 系統脈搏(CPU/錯誤率) Logs(日志)→ 事件日記(錯誤堆棧/用戶行為) Traces(追蹤)→ 血緣地圖(…

從代碼學習深度學習 - 情感分析:使用卷積神經網絡 PyTorch版

文章目錄 前言加載數據集一維卷積最大時間匯聚層textCNN模型定義模型加載預訓練詞向量訓練和評估模型總結前言 在之前的章節中,我們探討了如何使用循環神經網絡(RNN)來處理序列數據。今天,我們將探索另一種強大的模型——卷積神經網絡(CNN)——并將其應用于自然語言處理…

深入解析分布式訓練基石:ps-lite源碼實現原理

分布式機器學習框架是現代推薦、廣告和搜索系統的核心支撐。面對海量訓練數據和高維稀疏特征,參數服務器(Parameter Server, PS) 架構應運而生。作為早期經典實現的ps-lite因其簡潔性和完整性,成為理解PS原理的絕佳切入點。本文將…

IDEA 插件開發:Internal Actions 與 UI Inspector 快速定位 PSI

在開發 IntelliJ 平臺插件的過程中,你常常需要搞清楚 某個 IDE 彈框背后是如何操作 PSI(Program Structure Interface) 的。下面這篇筆記將介紹如何通過 Internal Actions、UI Inspector 以及調試技巧快速定位 PSI 調用鏈。 1. 啟用 Internal…

26考研|數學分析:多元函數微分學

前言 本章我們將進行多元函數微分學的學習,多元函數微分學與一元函數微分學相對應,涉及到可微性、中值定理、泰勒公式等諸多問題的探討與研究,本章難度較大,在學習過程中需要進行深度思考與分析,才能真正掌握這一章的…

數星星--二分

https://www.matiji.net/exam/brushquestion/17/4498/F16DA07A4D99E21DFFEF46BD18FF68AD 二分思路不難&#xff0c;關鍵的區間內個數的確定 #include<bits/stdc.h> using namespace std; #define N 100011 #define inf 0x3f3f3f3f typedef long long ll; typedef pair&…

Oracle/PostgreSQL/MSSQL/MySQL函數實現對照表

函數列表清單 函數作用OraclePOSTGRESQLMSSQLMYSQL求字符串長度LENGTH(str)LENGTH(str)LEN(str)LENGTH(str)字符切割SUBSTR(str,index,length)SUBSTR(str,index,length)SUBSTRING(str,index,length)SUBSTRING(str,index,length)字符串連接str1||str2||str3...strNstr1||str2||…

pycharm客戶端安裝教程

二、 pycharm客戶端安裝 打開pycharm官網&#xff1a;https://www.jetbrains.com/pycharm/download/?sectionwindows 選擇其他版本 選擇2018社區版本&#xff0c;點擊下載 雙擊下載的安裝程序(第一個彈框允許)&#xff0c;選擇下一步 更改安裝路徑&#xff0c;在pycah…

博圖SCL語言中用戶自定義數據類型(UDT)使用詳解

博圖SCL語言中用戶自定義數據類型&#xff08;UDT&#xff09;使用詳解 一、UDT概述 用戶自定義數據類型&#xff08;UDT&#xff09;是TIA Portal中強大的結構化工具&#xff0c;允許將多個相關變量組合成單一數據結構。UDT本質是可重用的數據模板&#xff0c;具有以下核心優…

Vscode自定義代碼快捷方式

首選項>配置代碼片段 >新建全局代碼片段 (也可以選擇你的語言 為了避免有的時候不生效 選擇全局代碼) {"console.log": { //名字"prefix": "log",//prefix 快捷鍵 &#xff1a; log"body": ["console.log($1);", //b…

ESP32 008 MicroPython Web框架庫 Microdot 實現的網絡文件服務器

以下是整合了所有功能的完整 main.py(在ESP32 007 MicroPython 適用于 Python 和 MicroPython 的小型 Web 框架庫 Microdot基礎上)&#xff0c;實現了&#xff1a; Wi?Fi 自動連接&#xff08;支持靜態 IP&#xff09;&#xff1b;SD 卡掛載&#xff1b;從 /sd/www/ 讀取 HTML…

Mcp-git-ingest Quickstart

目錄 配置例子 文檔github鏈接&#xff1a;git_ingest.md 配置 {"mcpServers": {"mcp-git-ingest": {"command": "uvx","args": ["--from", "githttps://github.com/adhikasp/mcp-git-ingest", "…

(LeetCode 面試經典 150 題) 27.移除元素

目錄 題目&#xff1a; 題目描述&#xff1a; 題目鏈接&#xff1a; 思路&#xff1a; 核心思路&#xff1a; 思路詳解&#xff1a; 樣例模擬&#xff1a; 代碼&#xff1a; C代碼&#xff1a; Java代碼&#xff1a; 題目&#xff1a; 題目描述&#xff1a; 題目鏈接…

MySQL之事務原理深度解析

MySQL之事務原理深度解析 一、事務基礎&#xff1a;ACID特性的本質1.1 事務的定義與核心作用1.2 ACID特性的內在聯系 二、原子性與持久性的基石&#xff1a;日志系統2.1 Undo Log&#xff1a;原子性的實現核心2.2 Redo Log&#xff1a;持久性的保障2.3 雙寫緩沖&#xff08;Dou…

JUC:5.start()與run()

這兩個方法都可以使線程進行運行&#xff0c;但是start只能用于第一次運行線程&#xff0c;后續要繼續運行該線程需要使用run()方法。如果多次運行start()方法&#xff0c;會出現報錯。 初次調用線程使用run()方法&#xff0c;無法使線程運行。 如果你對一個 Thread 實例直接調…