由于 Deep Learning for NLP 这门课的考试有很神秘的代码找错大题,不得不自己动手用 PyTorch 写一遍 encoder-decoder Transformer[1] 的代码来 加深记忆 。虽然写完后好像还是不能顺利做对找错题,但确实第一次在不照抄或复制的情况下写完了整套代码(不含训练)。是的,为了纪念这个开窍的时刻,我甚至开了个名叫 ReinventTheWheel 的仓库,以期将来能往里面多塞一些复现练习。
放眼如今 LLM 深不见底的技术栈,这是一个几乎原始的进步,但这确实是一年半以来离DL最近的一次!因为我甚至开始思考了残差连接和 LayerNorm 顺序对于梯度的具体影响,并且很顺利地得出了错误结论。有些东西在接触到的很长一段时间里都给人“永远都不可能学会”的感觉,直到你动手做出点什么。当然,只是复现一遍也许只能说是在流程和大致的直觉上理解了,却不等于任何数学上的把握,所以目前也只能说是熟悉了一个技术的面相,但现在的感觉确实变成了:也许有一天能学会?
可惜的是,这种想法在我的数学水平方面好像鲜有成功案例。考虑到数学比搭积木困难很多,这也算是情有可原,所以也许能把它变成一种外推 (extrapolation) 的信心。不过在那之前,我可能已经因为无法忍受上一句话的术语滥用而放弃这个想法了。