国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

百度工程師淺析解碼策略

這篇具有很好參考價(jià)值的文章主要介紹了百度工程師淺析解碼策略。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

百度工程師淺析解碼策略,視頻編解碼,語言模型,百度

作者 | Jane

導(dǎo)讀

生成式模型的解碼方法主要有2類:確定性方法(如貪心搜索和波束搜索)和隨機(jī)方法。確定性方法生成的文本通常會(huì)不夠自然,可能存在重復(fù)或過于簡單的表達(dá)。而隨機(jī)方法在解碼過程中引入了隨機(jī)性,以便生成更多樣化、更自然的文本。兩種常見的隨機(jī)方法是:

1、Top-k 采樣:在每個(gè)解碼步驟中,模型會(huì)選擇可能性排名在前的前 k 個(gè)單詞,然后從這些單詞中隨機(jī)選擇一個(gè)作為下一個(gè)生成的單詞。這樣可以增加文本的多樣性,但仍然保持一定的可控性。

2、核采樣(Top-p 采樣):在這種方法中,模型會(huì)根據(jù)累積概率從詞匯表中選擇下一個(gè)單詞。累積概率是指按照概率從高到低排列的單詞概率之和。這可以減少重復(fù)性,并且相對(duì)于固定的 k 值,它可以自適應(yīng)地選擇更少或更多的候選詞。

雖然核采樣可以生成(緩解)沒有重復(fù)的文本,但生成文本的語義一致性并不是很好,這種語義不一致的問題可以通過降低溫度 (temperature) 來部分解決。降低溫度是一個(gè)可以影響隨機(jī)性的參數(shù)。較高的溫度會(huì)導(dǎo)致更均勻的分布,使得生成的文本更多樣化,而較低的溫度會(huì)使分布更集中,更接近于確定性。這就引入了一個(gè)權(quán)衡,因?yàn)檩^高的溫度可能會(huì)導(dǎo)致文本語義不一致,而較低的溫度可能會(huì)失去一些多樣性。

在實(shí)際應(yīng)用中,要根據(jù)任務(wù)和期望的文本輸出特性來選擇合適的解碼方法、隨機(jī)性參數(shù)和溫度值。不同的方法和參數(shù)組合可能適用于不同的情況,以平衡生成文本的多樣性、準(zhǔn)確性和一致性。

全文3646字,預(yù)計(jì)閱讀時(shí)間10分鐘。

01 對(duì)比搜索(contrastive_search)

對(duì)比搜索給定前綴文本 x < t x_{< t} x<t?,按如下公式輸出token x t x_{t} xt?:

百度工程師淺析解碼策略,視頻編解碼,語言模型,百度

語言模型輸出的概率分布 p θ ( v ∣ x < t ) p_{\theta}(v|x_{< t}) pθ?(vx<t?)表示下一個(gè)可能的token的預(yù)測概率,上式中 V ( k ) V^{(k)} V(k)表示概率分布中 k 個(gè)概率最大的候選token的集合。

  • 第一項(xiàng),即 模型置信度 (model confidence),是語言模型預(yù)測的每個(gè)候選詞元 v 的概率。

  • 第二項(xiàng), 退化懲罰 (degeneration penalty),用于度量候選token v 與上文 x < t x{< t} x<t中每個(gè)token的相似性, v 的向量表征 h v h_{v} hv?與其上文 x < t x {< t} x<t中每個(gè)token的向量表征計(jì)算余弦相似度,相似度最大值被用作退化懲罰。直觀上理解,如果 v 的退化懲罰較大意味著它與上文更相似 (在表示空間中),因此更有可能導(dǎo)致模型退化問題。超參數(shù) α \alpha α用于在這兩項(xiàng)中折衷。當(dāng)時(shí) α = 0 \alpha=0 α=0,對(duì)比搜索退化為純貪心搜索。

總結(jié)來說,對(duì)比搜索在生成輸出時(shí)會(huì)同時(shí)考慮:

  • 語言模型預(yù)測的概率,以保持生成文本和前綴文本之間的語義連貫性。

  • 與上文的相似性以避免模型退化。

# generate the result with contrastive search
output = model.generate(
    input_ids, 
    penalty_alpha=0.6,  # 對(duì)比搜索中的超參 $\alpha$
    top_k=4,  # 對(duì)比搜索中的超參 $k$。
    max_length=512
 )

02 貪心搜索(greedy_search)**

貪心搜索在每個(gè)時(shí)間步 都簡單地選擇概率最高的詞作為當(dāng)前輸出詞: w t = a r g m a x w P ( w ∣ w 1 : t ? 1 ) w_t = argmax_{w}P(w | w_{1:t-1}) wt?=argmaxw?P(ww1:t?1?)

百度工程師淺析解碼策略,視頻編解碼,語言模型,百度

△貪心搜索

問題:

  • 容易輸出重復(fù)的文本,這在語言生成中是一個(gè)非常普遍的問題,在貪心搜索和波束搜索中似乎更是如此

  • 主要缺點(diǎn)是它錯(cuò)過了隱藏在低概率詞后面的高概率詞:The -> dog -> has (0.4*0.9=0.36),The -> nice -> wman (0.5*0.4=0.20),波束搜索可以緩解此類問題

03 波束搜索(beam_search)

波束搜索整個(gè)過程可以總結(jié)為: 分叉、排序、剪枝,如此往復(fù)。波束搜索通過在每個(gè)時(shí)間步保留最可能的 num_beams 個(gè)詞,并從中最終選擇出概率最高的序列來降低丟失潛在的高概率序列的風(fēng)險(xiǎn)。

下圖示例 num_beams=2:

百度工程師淺析解碼策略,視頻編解碼,語言模型,百度

△波束搜索 num_beams=2

波束搜索一般都會(huì)找到比貪心搜索概率更高的輸出序列,但仍不保證找到全局最優(yōu)解。

雖然結(jié)果比貪心搜索更流暢,但輸出中仍然包含重復(fù)。一個(gè)簡單的補(bǔ)救措施是引入 n-grams (即連續(xù) n 個(gè)詞的詞序列) 懲罰:最常見的 n-grams 懲罰是確保每個(gè) n-gram 都只出現(xiàn)一次,方法是如果看到當(dāng)前候選詞與其上文所組成的 n-gram 已經(jīng)出現(xiàn)過了,就將該候選詞的概率設(shè)置為 0。通過設(shè)置 ?no_repeat_ngram_size=2? 來試試,這樣任意 2-gram 不會(huì)出現(xiàn)兩次:

beam_output = model.generate(
    input_ids, 
    max_length=50, 
    num_beams=5, 
    no_repeat_ngram_size=2, # n-grams
    early_stopping=True
)

?但是,n-gram 懲罰使用時(shí)必須謹(jǐn)慎,如一篇關(guān)于紐約這個(gè)城市的文章就不應(yīng)使用 2-gram 懲罰,否則,城市名稱在整個(gè)文本中將只出現(xiàn)一次!

波束搜索已被證明依然會(huì)存在重復(fù)生成的問題。在『故事生成』這樣的場景中,很難用 n-gram 或其他懲罰來控制,因?yàn)樵凇安恢貜?fù)”和最大可重復(fù) n-grams 之間找到一個(gè)好的折衷需要大量的微調(diào)。正如 Ari Holtzman 等人 (2019) (https://arxiv.org/abs/1904.09751) 所論證的那樣,高質(zhì)量的人類語言并不遵循最大概率法則。這是因?yàn)槿祟愓Z言具有創(chuàng)造性和驚喜性,而不僅僅是簡單的預(yù)測性。

因此,引入隨機(jī)性和創(chuàng)造性元素是生成更有趣和多樣性文本的關(guān)鍵。?

04 采樣(sampling)

4.1 采樣

使用采樣方法時(shí)文本生成本身不再是確定性的(do_sample=True)。

# activate sampling and deactivate top_k by setting top_k sampling to 0
sample_output = model.generate(
    input_ids, 
    do_sample=True, 
    max_length=50, 
    top_k=0
)

對(duì)單詞序列進(jìn)行采樣時(shí)的問題:模型通常會(huì)產(chǎn)生不連貫的亂碼,緩解這一問題的一個(gè)技巧是通過降低 softmax的“溫度”使分布 P ( w ∣ w 1 : t ? 1 ) P(w|w_{1:t-1}) P(ww1:t?1?)更陡峭。而降低“溫度”,本質(zhì)上是增加高概率單詞的似然并降低低概率單詞的似然。

sample_output = model.generate(
    input_ids, 
    do_sample=True, 
    max_length=50, 
    top_k=0, 
    temperature=0.7
)

雖然溫度可以使分布的隨機(jī)性降低,但極限條件下,當(dāng)“溫度”設(shè)置為 0 時(shí),溫度縮放采樣就退化成貪心解碼了,因此會(huì)遇到與貪心解碼相同的問題。

4.2 Top-k 采樣

在 Top-K 采樣中,概率最大的 K 個(gè)詞會(huì)被選出,然后這 K 個(gè)詞的概率會(huì)被重新歸一化,最后就在這重新被歸一化概率后的 K 個(gè)詞中采樣。GPT2 采用了這種采樣方案,這也是它在故事生成這樣的任務(wù)上取得成功的原因之一。

百度工程師淺析解碼策略,視頻編解碼,語言模型,百度

假設(shè) p=0.92,Top-p 采樣對(duì)單詞概率進(jìn)行降序排列并累加,然后選擇概率和首次超過 p=92% 的單詞集作為采樣池,定義為 V top-p V_{\text{top-p}} Vtop-p?。在 t=1 時(shí) V top-p V_{\text{top-p}} Vtop-p?有 9 個(gè)詞,而在 t=2 時(shí)它只需要選擇前 3 個(gè)詞就超過了 92%。

可以看出,在單詞比較不可預(yù)測時(shí)(例如更平坦的左圖),它保留了更多的候選詞,如 P ( w ∣ “The” ) P(w | \text{“The”}) P(w“The”),而當(dāng)單詞似乎更容易預(yù)測時(shí)(例如更尖銳的右圖),只保留了幾個(gè)候選詞,如 P ( w ∣ “The” , “car” ) P(w | \text{“The”}, \text{“car”}) P(w“The”,“car”)。

# deactivate top_k sampling and sample only from 92% most likely words
sample_output = model.generate(
    input_ids, 
    do_sample=True, 
    max_length=50, 
    top_p=0.92, 
    top_k=0
)

雖然從理論上講, Top-p 似乎比 Top-K 更優(yōu)雅,但這兩種方法在實(shí)踐中都很有效。Top-p 也可以與 Top-K 結(jié)合使用,這樣可以避免排名非常低的詞,同時(shí)允許進(jìn)行一些動(dòng)態(tài)選擇。如果 k 和 p 都啟用,則 p 在 k 之后起作用。

# 配置 top_k = 50 、 top_p = 0.95 、 num_return_sequences = 3
sample_outputs = model.generate(
    input_ids,
    do_sample=True, 
    max_length=50, 
    top_k=50, 
    top_p=0.95, 
    num_return_sequences=3
)

——END——

參考資料:

[1]一種簡單有效的解碼策略:Contrastive Search

[2]HF:如何生成文本: 通過 Transformers 用不同的解碼方法生成文本

[3]https://docs.cohere.ai/docs/controlling-generation-with-top-k-top-p

[4]https://docs.cohere.ai/docs/temperature

推薦閱讀:

百度工程師淺析強(qiáng)化學(xué)習(xí)

淺談統(tǒng)一權(quán)限管理服務(wù)的設(shè)計(jì)與開發(fā)

百度APP iOS端包體積50M優(yōu)化實(shí)踐(五) HEIC圖片和無用類優(yōu)化實(shí)踐

百度知道上云與架構(gòu)演進(jìn)

百度APP iOS端包體積50M優(yōu)化實(shí)踐(四)代碼優(yōu)化

百度App啟動(dòng)性能優(yōu)化實(shí)踐篇文章來源地址http://www.zghlxwxcb.cn/news/detail-665520.html

到了這里,關(guān)于百度工程師淺析解碼策略的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包