Transformer 是怎麼訓練的:手算一層注意力的梯度下降
訓練時螢幕上打出來的 loss 0.615、0.594、0.572……每一個數背後發生了什麼?我們先用一個只有一個旋鈕的機器,把損失、導數、梯度下降和學習率講清楚;再開啟一個只有 10 個引數的 Transformer,任務是“說出兩個字裡的第一個字”,把一步訓練裡的每個數都攤開算:前向怎樣從輸入算到損失,反向傳播怎樣從損失往回算出 10 個偏導數,更新之後為什麼有的樣本變好、有的變差,幾十步裡注意力怎樣轉向正確的位置,學習率太大時模型為什麼會卡死;最後看真實的大模型多了什麼,以及現實中找最優解那麼難,為什麼在 Transformer 裡卻這麼順。