我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。
Transformers for Natural Language Processing and Computer Vision, 2024 這本書中講 Training 的部分不是很底層解析,因此今天內容引自台大 李宏毅教授上課內容。
注意 Decoder 的輸入雖然一次只輸入一個字,但是整體來看仍是將所有輸入資料灌入,而且輸入資料正是貼標資料,亦即 Ground Truth ,這種使用 Ground Truth 為輸入的學習方式稱為 Teacher Forcing。
即便訓練時的目標是最小化 Cross Entropy,但是在評估模型好壞時,是用 BLEU 分數 (Bilingual Evaluation Understudy),這在機器學習中很常見,因為我們真正要最佳化的目標常常是不可微分的。
Transformer 訓練中使用的 Regularization 技巧除了常見的 Dropout之外,還使用了 Label Smoothing,其解釋為:將 Hard Label 轉化為 Soft Label,亦即將 Label 的 One-Hot Encoding 中的 1 轉化為比 1 稍小的數字,而將 0 轉化為比 0 稍大的數字,如此在計算 Cross Entropy 時,損失函數會把原來數值為 0 的標籤也考慮進來,說穿了,就是相當於在 One-Hot Encoding 的每一維度上增加噪音,也可以防止 Overfitting ,具體公式為:Output = (1 - epsilon )* Input + ( epsilon / K ),其中 epsilon 為很小的數,而 Input 為原始 One-Hot Encoding,而 K 為 One-Hot Encoding 向量維度。