我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。
回顧我們在AI說書 - 從0開始 - 4中說Transformer的精髓就是考慮「字與字之間的配對關係」,我們稱其為Attention Layer,再搭配我們在機器學習領域中,常用數學向量來表達一個字 (AI只看得懂數學,看不懂文字),因此如果我定義這個向量的維度是d,而整個Context的長度是n,則Attention Layer的複雜度就是O(n^2 * d)。
那我們來比較,Transformer與其競爭對手 - RNN,這家族裡面,有LSTM、GRU等兩大專門處理自然語言的AI模型,這個RNN家族學習方式是:
透過這樣的精神,可以看出它是一種Recurrent的機制,因此Recurrent Layer的複雜度就是O(d^2 * n)。
用一句話來說Attention Layer和Recurrent Layer的精神就是,Attention Layer learns the dimensions with pairwise relationships而Recurrent Layer learns in a sequence。
也因為這樣的差異,可以想像Recurrent Layer一次要學一個Sequence會比較容易忘記前面的字,而Attention Layer就不會有忘記前面的字的問題,因為它是學習字與字間的配對關係。