我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。
#Example 3
reference = [['the', 'cat', 'likes', 'milk']]
candidate = ['the', 'cat', 'enjoys','milk']
score = sentence_bleu(reference, candidate)
print('Example 3', score)
跑出以下結果:

關鍵問題出在:3-Gram 沒有重疊,它建議的選項出現:SmoothingFunction(),我們來看看 Smoothing 是什麼意思。
Chen 與 Cherry 於 2014 年提出一種 Smoothing 方法,Label Smoothing 是一種非常有效的方法,可以提高 Transformer 模型在訓練階段的表現,舉例來說:
我要預測 [mask] 這個字在句子 The cat [mask] milk 中為何,那我的候選名單可能為:

而 Softmax 可能為:

又 One-Hot 為:

這樣一來,Label Smoothing 的運作方式為:
- 給定一個 Epsilon 參數,假設為 0.25
- 判斷 Softmax 維度,此例子為 K = 4
- One-Hot 中為 0 者,增加為 0 + Epsilon / (K - 1)
- One-Hot 中為 1 者,減少為 1 - Epsilon