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

關于LLMs 復讀機問題

人工智能
本文關于LLMs復讀機問題進行詳細介紹,主要從定義、出現(xiàn)復讀機問題的原因和怎么解決三個方面來介紹。

今天來看一個關于LLMs復讀機問題的詳細介紹,主要從定義、出現(xiàn)復讀機問題的原因和怎么解決三個方面來介紹:

1、什么是 LLMs 復讀機問題?

LLMs 復讀機問題:

  1. 字符級別重復:指大模型針對一個字或一個詞重復不斷生成。例如在電商翻譯場景上,會出現(xiàn)“steckdose steckdose steckdose steckdose steckdose steckdose steckdose steckdose...”;
  2. 語句級別重復:大模型針對一句話重復不斷生成。例如在多模態(tài)大模型圖片理解上,生成的結果可能會不斷重復圖片的部分內(nèi)容,比如“這是一個杯子,這是一個杯子...”;
  3. 章節(jié)級別重復:多次相同的prompt輸出完全相同或十分近似的內(nèi)容,沒有一點創(chuàng)新性的內(nèi)容。比如讓大模型給你寫一篇關于春天的小作文,結果發(fā)現(xiàn)大模型的生成結果千篇一律,甚至近乎一模一樣。
  4. 大模型針對不同的prompt也可能會生成類似的內(nèi)容,且有效信息很少、信息熵偏低。

2、為什么會出現(xiàn) LLMs 復讀機問題?

  1. 數(shù)據(jù)偏差:大語言模型通常是通過預訓練階段使用大規(guī)模無標簽數(shù)據(jù)進行訓練的。如果訓練數(shù)據(jù)中存在大量的重復文本或者某些特定的句子或短語出現(xiàn)頻率較高,模型在生成文本時可能會傾向于復制這些常見的模式。
  2. 訓練目標的限制:大語言模型的訓練通常是基于自監(jiān)督學習的方法,通過預測下一個詞或掩蓋詞來學習語言模型。這樣的訓練目標可能使得模型更傾向于生成與輸入相似的文本,導致復讀機問題的出現(xiàn)。
  3. 缺乏多樣性的訓練數(shù)據(jù):雖然大語言模型可以處理大規(guī)模的數(shù)據(jù),但如果訓練數(shù)據(jù)中缺乏多樣性的語言表達和語境,模型可能無法學習到足夠的多樣性和創(chuàng)造性,導致復讀機問題的出現(xiàn)。
  4. 模型結構和參數(shù)設置:大語言模型的結構和參數(shù)設置也可能對復讀機問題產(chǎn)生影響。例如,模型的注意力機制和生成策略可能導致模型更傾向于復制輸入的文本。
  5. 從 induction head機制的影響角度:也就是模型會傾向于從前面已經(jīng)預測的word里面挑選最匹配的詞。例如,在翻譯上,由于input和output的天然差異性,會發(fā)現(xiàn)容易出現(xiàn)重復的都是一些復雜度perplexity比較高的文本,也就是說input的句式越不常見,本身重復度越高,翻譯結果重復的可能性也越高。
  6. 從信息熵的角度分析
    信息熵與語言模型生成的關聯(lián)
    在語言模型中,信息熵可以用于衡量文本的多樣性。例如,對于電商標題這類語句連貫性弱、基本是詞序堆疊的文本,其信息熵通常很高,因為每個詞的出現(xiàn)概率較為均勻,難以預測下一個詞。
    當信息熵很高時,模型在預測下一個詞時會面臨較大的不確定性。此時,Softmax函數(shù)輸出的概率分布會趨于平穩(wěn),即每個詞的預測概率接近。這種情況下,模型難以確定下一個詞,因此可能會選擇重復前面出現(xiàn)過的詞,從而導致復讀機現(xiàn)象。
    條件熵與生成策略
    條件熵是指在給定某些條件下的不確定性。在語言模型中,條件熵可以用來衡量在已知前文的情況下,下一個詞的不確定性。如果條件熵很高,說明即使給定前文,下一個詞的預測仍然非常不確定。
    例如,當模型生成文本時,如果前文的信息熵已經(jīng)很高(如電商標題),那么模型在生成下一個詞時會傾向于選擇那些與前文相似的詞,以減少不確定性。這種策略雖然在一定程度上可以降低生成的不確定性,但也容易導致重復。
    TSNE分布與各向異性
    TSNE(t-SNE)是一種用于高維數(shù)據(jù)可視化的技術,可以將復雜的高維數(shù)據(jù)映射到二維或三維空間,以便觀察數(shù)據(jù)的分布。在語言模型中,TSNE分布可以用來觀察詞嵌入的分布情況。
    當模型生成重復詞匯時,如“L”不斷重復,其TSNE分布會沿著前面詞的分布均勻鋪開,形成各向異性。這意味著雖然生成的文本長度增加,但語義并沒有實質(zhì)性變化,仍然集中在相同的分布范圍內(nèi)。
    信息淹沒與模型的應對策略
    信息淹沒是指當輸入文本的信息熵很高時,模型難以從中提取有效信息。在這種情況下,模型可能會選擇“保守”的策略,即重復前面的詞,以避免生成不合理的文本。
    例如,對于復雜度高的文本(如不常見的句式),模型可能無法準確預測下一個詞,因此會選擇重復前面的詞,以保持生成文本的連貫性。

3、如何緩解?

Unlikelihood Training

來自論文《NEURAL TEXT DEGENERATION WITH UNLIKELIHOOD TRAINING》

Unlikelihood Training 是一種改進語言模型訓練的方法,旨在通過調(diào)整損失函數(shù)來減少生成文本中的重復和單調(diào)問題。傳統(tǒng)最大似然估計(MLE)訓練的目標是讓模型生成的序列盡可能接近真實數(shù)據(jù),但這可能導致模型過度依賴高頻詞和重復模式。Unlikelihood Training 在此基礎上引入了一個額外的懲罰項,使得模型在生成過程中盡量避免生成已經(jīng)出現(xiàn)過的或不希望出現(xiàn)的詞。

實現(xiàn):

Unlikelihood Training 的實現(xiàn)主要通過修改模型的損失函數(shù)來完成。具體來說,損失函數(shù)包含兩部分:

  1. Likelihood Loss:這部分與傳統(tǒng)的最大似然估計一致,目的是讓模型學習真實標簽的語言邏輯。
  2. Unlikelihood Loss:這部分用于抑制模型生成某些特定的詞或序列。具體公式如下:

token級:

圖片

sentence級:

圖片

其中,圖片是需要抑制的詞集合,α 是超參數(shù),用于平衡兩部分損失。

實驗結果:

圖片

其中seq-rep-4代表4-gram重復率;uniq-seq代表總共出現(xiàn)的不同詞的個數(shù);ppl代表句子困惑度;acc代表句子準確性;rep代表前詞重復率;wrep代表加權前詞重復率。從這些指標中可以明顯觀察到,unlikelihood training能降低整體生成句子的重復度。

unlikelihood training方法是一種表現(xiàn)不錯的抑制重復方式,但其中集合C的設計比較困難。針對不同的任務,集合C都需要進行精心的設計,才能保證在生成精度基本不降的情況下抑制模型生成重復與單調(diào)的結果。(該方法僅能解決字符和語句重復問題,無法解決輸入多次相同prompt輸出單調(diào)性的問題)

重復率指標檢測

常見重復率監(jiān)測指標

在大語言模型(LLMs)的生成過程中,常用的重復率監(jiān)測指標包括以下幾種:

  • seq-rep-N:表示序列中重復的N-gram(N個連續(xù)詞或字符)的比例。例如,seq-rep-4表示4-gram的重復率。
  • uniq-seq:表示生成序列中不同詞或字符的數(shù)量。
  • rep:前詞重復率,即前一個詞重復出現(xiàn)的概率。
  • wrep:加權前詞重復率,考慮了重復詞的重要性或頻率。

這些指標通過量化重復程度,幫助開發(fā)者監(jiān)測和評估模型生成文本的多樣性。

監(jiān)測與調(diào)整策略

通過融合這些指標,可以在模型生成過程中實時監(jiān)測重復現(xiàn)象。當檢測到異常重復時,可以采取以下措施:

  • 加入特殊字符:在生成的文本中插入特殊字符或標記,打破重復模式。
  • 修改Prompt表達:調(diào)整輸入提示(Prompt),通過改變語義或結構,引導模型生成不同的內(nèi)容。
  • 切分文本:將長文本切分為多個短文本,分別處理后再組合,以降低重復率。

測試結果與潛在風險

測試表明,上述方法能夠在一定程度上恢復正常生成結果。然而,這些方法也可能帶來一些潛在問題:

  • 語序問題:在翻譯或其他生成任務中,強制調(diào)整可能導致語序不合理。
  • 領域適應性:這些方法在不同領域的適用性需要進一步驗證,例如在文學創(chuàng)作、新聞報道等場景中可能需要不同的調(diào)整策略。

引入噪聲

在生成文本時,引入一些隨機性或噪聲,例如通過采樣不同的詞或短語,或者引入隨機的變換操作,以增加生成文本的多樣性。這可以通過在生成過程中對模型的輸出進行采樣或添加隨機性來實現(xiàn)。

Repetition Penalty(重復性處罰)

來自論文《CTRL: A CONDITIONAL TRANSFORMER LANGUAGE MODEL FOR CONTROLLABLE GENERATION》

思路:Repetition Penalty 是一種在模型推理階段用于抑制重復生成的方法。它通過在 Softmax 輸出中引入懲罰因子,降低已經(jīng)生成過的詞(token)被再次選中的概率。這種方法簡單有效,能夠在不改變模型訓練過程的情況下,直接在推理階段減少重復現(xiàn)象。

實現(xiàn):

圖片

其中T代表溫度,溫度越高,生成的句子隨機性越強,模型效果越不顯著;I就代表懲罰項,c通常是一個包含之前生成過的單詞的列表,用于記錄哪些詞需要被懲罰,一般為1-gram之前出現(xiàn)過的單詞,theta值一般設置為1.2,1.0代表沒有懲罰。

重復性懲罰方法是一種簡單有效的重復抑制手段,因為它通過提高I值,有效降低集合c中詞再次被選中的概率。當然,類似與unlikelihood training,本方法也可以通過設置不同的c集合來改變懲罰的方向。(該方法僅能解決字符和語句重復問題,無法解決輸入多次相同prompt輸出單調(diào)性的問題)

Huggingface中,model.generate已經(jīng)包含此參數(shù),僅需設置repetition_penalty=p(p>1.0)即可開啟重復懲罰因子。

Beam Search

貪婪搜索在每個時間步只選擇當前概率最高的輸出,Beam Search是對貪心策略一種改進。思路簡單,就是稍微放寬考察的范圍。在每一個時間步,不再只保留當前分數(shù)最高的1個輸出,而是保留num_beams個。當num_beams=1時集束搜索(Beam Search)就退化成了貪心搜索。Beam Search雖然本質(zhì)上并沒有降低重復率的操作,但是該策略確實在結果上優(yōu)化了部分生成結果,降低了一定的重復率。

下圖是一個實際的例子,每個時間步有ABCDE共5種可能的輸出,圖中的num_beams=2,也就是說每個時間步都會保留到當前步為止條件概率最優(yōu)的2個序列。

圖片

Beam search理論上僅是為了解決貪婪搜索給到的答案僅局部最優(yōu),而全局搜索又在時間復雜度上不可行而提出的折中算法,并不能對大模型中的任何重復問題進行修正,甚至有可能增大重復概率。但從翻譯的測試實驗結果來看,它確實在一定程度上改變了模型Softmax后的分布情況,優(yōu)化了輸出的結果,所以在部分大模型任務上能抑制重復生成問題。

Huggingface中,model.generate中已經(jīng)包含此參數(shù),僅需設置num_beams=2即可開啟集束搜索。

Contrastive Search

來自論文《A Contrastive Framework for Neural Text Generation》

Contrastive Search 是為了解決傳統(tǒng)解碼方法(如 Beam Search)在最大化生成方式解碼時出現(xiàn)的解碼退化問題。這些問題包括生成的文本不自然、重復以及單調(diào)等。Contrastive Search 通過對比損失(Contrastive Loss)和對比搜索(Contrastive Search)兩個創(chuàng)新點,從模型訓練和推理兩個層面緩解了這些問題。

對比損失(Contrastive Loss)

對比損失的核心思想是通過降低生成 token 之間的相似度,減少模型對常見表達的依賴,從而提升生成文本的多樣性和創(chuàng)造性。公式如下:

圖片

其中:圖片就是余弦相似度。通過對比損失,模型在訓練階段會學習到降低不同 token 之間的相似度,從而減少生成重復或單調(diào)內(nèi)容的可能性。

圖片

從圖上可以明顯看出token間相似度降低了,token間相似度降低即不同token在高維空間表征分離能有效降低模型僅生成個別重復詞或字的概率。

對比搜索(Contrastive Search)

對比搜索是在解碼階段對生成 token 的相似度進行限制,進一步降低重復率和單調(diào)性。

公式

圖片

其中:第一項就是原模型的概率,后面一項可以理解成一種懲罰,當前token與歷史token相似度較高時,就降低當前token的概率。

作用:如果當前 token 與歷史生成的 token 相似度較高,其生成概率會被降低。這使得模型更傾向于生成與歷史內(nèi)容不同的新內(nèi)容,從而減少重復和單調(diào)性。

對比loss和對比search在訓練和推理兩個階段限制生成token間的相似度,有效降低了模型對一些特別常見表達的依賴,讓模型嘗試生成不一樣的表達,整體上提升模型的創(chuàng)造性。(該方法僅能解決字符和語句重復問題,無法解決輸入多次相同prompt輸出單調(diào)性的問題)

TopK sampling

TopK Sampling 是一種用于生成文本的隨機采樣方法,旨在通過引入隨機性來增加生成文本的多樣性。它通過從 Softmax 輸出的 logits 中選擇概率最高的 K 個 token,并從中隨機采樣下一個 token,從而避免了貪婪搜索(Greedy Search)可能導致的單調(diào)和重復問題。

實現(xiàn):

  1. Softmax 輸出:模型在每個時間步輸出一個概率分布,表示下一個 token 的可能性。
  2. 選擇 TopK:從 Softmax 輸出中選擇概率最高的 K 個 token。
  3. 隨機采樣:從這 K 個 token 中隨機選擇一個作為下一個 token。
  4. 重復上述過程:直到生成完整的序列。

圖片

TopK采樣是一種行之有效,能簡單暴力的解決所有重復單調(diào)問題的方案之一,但是由于引入了隨機性,生成的文本可能在某些情況下不夠通順或與 Prompt 的相關性較低。

Huggingface中,model.generate中已經(jīng)包含此參數(shù),需設置do_sample=True,開啟采樣模式,同時設置top_k值,top_k值默認為50

Nucleus sampler

Nucleus Sampler(TopP 采樣)是一種改進的隨機采樣方法,旨在解決 TopK 采樣中的一些問題,如生成質(zhì)量不穩(wěn)定和對 K 值選擇的敏感性。TopP 采樣通過限制采樣范圍內(nèi)的累積概率,而不是固定選擇 K 個 token,從而更靈活地控制生成的多樣性和質(zhì)量。

TopP 采樣的具體步驟如下:

  1. Softmax 輸出:模型在每個時間步輸出一個概率分布,表示下一個 token 的可能性。
  2. 累積概率排序:將 Softmax 輸出的概率按從高到低排序。
  3. 選擇累積概率大于 P 的 token:從排序后的 token 中,選擇累積概率大于設定閾值 P 的 token。這些 token 組成一個“核心集合”。
  4. 隨機采樣:從核心集合中按概率分布隨機選擇下一個 token。
  5. 重復上述過程:直到生成完整的序列。

以下圖為例,TopP采樣會不斷選擇logit中最大概率的token,放入一個list中,直到list中計算的總概率大于設置的TopP值,后對list中的token概率進行重新計算,最終根據(jù)計算出來的概率值對list中的token進行采樣。

圖片

Nucleus sampler是對簡單暴力的TopK采樣修改后的方法,相比TopK,該方法生成的句子通順度以及對prompt的忠誠度更佳,一般選擇它,而不選擇TopK。TopP 采樣的效果依賴于累積概率閾值 P 的選擇。如果 P 值過大,生成的隨機性會降低;如果 P 值過小,可能會限制生成的多樣性。

Huggingface中,model.generate中已經(jīng)包含此參數(shù),需設置do_sample=True,開啟采樣模式,同時設置top_p值,top_p值默認為1.0。

Temperature

Temperature是生成模型中用于調(diào)整隨機程度的一個參數(shù)。它通過改變 Softmax 輸出的概率分布,控制生成結果的隨機性和多樣性。

采樣時如何選擇溫度?

較低的 Temperature:較低的溫度意味著較少的隨機性,概率分布更尖銳,溫度為 0 將始終產(chǎn)生相同的輸出,執(zhí)行具有“正確”答案的任務。對于總結類,翻譯類等具有明確答案的任務,較低的溫度(小于1)更合適。如果模型開始自我重復,則表明溫度設置過低。

較高的 Temperature:高溫意味著更多的隨機性,概率分布更平滑,增加隨機性,可以幫助模型給出更有創(chuàng)意的輸出。如果模型開始偏離主題或給出無意義的輸出,則表明溫度過高。溫度調(diào)整公式如下:

圖片

圖片

提高Temperature配合上文兩種采樣算法,可以達到生成更激進創(chuàng)新性回答的需求,但生成句子的穩(wěn)定性不可控。

Huggingface中,model.generate中已經(jīng)包含此參數(shù),僅需設置temperature,默認為1.0。

No repeat ngram size

No Repeat ngram size 是一種用于抑制生成文本中重復 n-gram(連續(xù)的 n 個詞或字符)的方法。其核心思想是通過強制模型避免生成已經(jīng)出現(xiàn)過的 n-gram,從而減少重復內(nèi)容的生成。

實現(xiàn):

在生成過程中,模型會檢查當前生成的文本中是否已經(jīng)包含了某個 n-gram。如果檢測到重復的 n-gram,模型會跳過這些重復的內(nèi)容,選擇概率次高的其他 token。

Huggingface中,model.generate中已經(jīng)包含此參數(shù),僅需設置no_repeat_ngram_size=N即可。

后處理和過濾

對生成的文本進行后處理和過濾,去除重復的句子或短語,以提高生成文本的質(zhì)量和多樣性??梢允褂梦谋鞠嗨贫扔嬎惴椒ɑ蛞?guī)則來檢測和去除重復的文本。

人工干預和控制

對于關鍵任務或敏感場景,可以引入人工干預和控制機制,對生成的文本進行審查和篩選,確保生成結果的準確性和多樣性。

責任編輯:龐桂玉 來源: 小白學AI算法
相關推薦

2024-10-08 13:19:56

2024-05-13 11:46:33

MySQL數(shù)據(jù)庫

2025-04-03 10:17:23

2024-12-20 14:27:09

2018-09-11 14:47:51

面試Java虛擬機

2009-06-25 17:48:24

Java垃圾回收

2010-06-09 13:03:00

Opensuse分區(qū)

2013-08-13 14:39:29

多任務下載

2009-06-17 10:47:36

Hibernate級聯(lián)級聯(lián)刪除

2019-12-24 14:50:01

MySQL可重復讀數(shù)據(jù)庫

2024-09-02 14:37:50

2010-04-26 11:34:13

Aix FTP

2011-08-03 10:24:22

Cocoa Touch 靜態(tài)庫

2010-07-13 15:36:33

2010-05-05 17:53:56

web負載均衡

2024-08-19 00:10:00

C++內(nèi)存

2010-06-07 15:25:06

rsync重啟

2023-11-01 14:13:00

MySQL事務隔離級別

2010-09-30 16:21:40

DB2隔離級別

2025-04-29 08:18:48

點贊
收藏

51CTO技術棧公眾號