在討論這個定錨法以前,我們要先了解AI怎麼解讀文章。126Please respect copyright.PENANApW9owDJRZP
126Please respect copyright.PENANAhq9Mwqb37i
前面說過,目前的AI並不懂文字,AI說穿了依然是一個計算模式,文字對他們來說是沒有意義的。
目前主流的 AI 系統為大型語言模型(Large Language Model, LLM)。
其本質並非「理解語言」,而是對語言進行統計建模的數學模型。
所謂模型(model),是對現象分布的形式化描述,可用於推估與預測。
在 LLM 中,這種預測具體體現為對「下一個 token 出現機率」的估計。
LLM 的結構建立於如 Transformer 等神經網路架構之上,並透過演算法(如梯度下降與反向傳播)對大量參數進行訓練。
因此,其運作本質可視為一個以數學運算為基礎的機率預測系統。
其實要詳細講解模組,就需要列出大量算式。但這個觀念能大致理解就好,算式差異不同LLM有不同算法,那都是商業機密。126Please respect copyright.PENANA8rr2PUFGCI
126Please respect copyright.PENANAZB58YuCaQi
對於會用的人來說,不需要理解為什麼可以這麼用,只要理解他能怎麼用就夠了。就像開車的司機不一定要學會整個汽車引擎傳動的物理化學定律,只要懂怎麼用頂多學會怎麼修就好。
拉回正題,明白前面這段大概就能看懂下面這段,LLM不會讀取語言,而是把文字轉換成可以計算的數字。126Please respect copyright.PENANAtwnUbA2fpz
126Please respect copyright.PENANAA9LbvzYCUM
文字會先被切分為 token(語言片段),每個 token 再對應到一個數字 ID,供模型進行運算。126Please respect copyright.PENANAJLsWUj6gLO
126Please respect copyright.PENANAseGlPWmQjf
比方說一個中文字柳,可能會給予一個數字ID 9453,另一個中文字五給一個數字ID 8441。126Please respect copyright.PENANAu8wHxiTqDs
126Please respect copyright.PENANAe5zy3JaQfc
至於怎麼做的,就是透過分詞器(Tokenizer)去處理。
126Please respect copyright.PENANAzeeQOCqroQ
不同的 LLM 使用不同的 tokenizer,因此同一段文字在不同模型中可能被切成不同的 token,並對應到不同的數字。126Please respect copyright.PENANAFPm9QfIIaA
126Please respect copyright.PENANAK2gJPuDIG4
附帶一提,英文字可以拆得更細,因為他們的字母是固定規格,跟中文字不同,中文字就算同部首在不同字的表現也不同。或許以後會有將中文字拆分的Tokenizer出現,但目前還沒有就是。
舉個例子,我今天輸入「吃飽沒」三個字
AI透過Tokenizer這個分詞器開始掃描字串,並找出在自己詞庫裡最符合的詞作切分,比方說他的詞庫裡有「吃」、「飽」、「沒」、「吃飽」四個字。
現今的主流Byte Pair Encoding(BPE)系的LLM,大多會先採用最長字詞的選擇來切分,也就是「吃飽」,「沒」。
然後切分完後再將其轉換成相對應的字碼,比方說吃飽 = 9453、沒=115114126Please respect copyright.PENANAKQSdhEy4BG
接著將其embedding成向量,例如:
9453 → [0.12, -0.7, 1.3, ...]126Please respect copyright.PENANANaQhd6kg8H
115114 → [0.44, 0.22, -1.1, ...]126Please respect copyright.PENANA7xfGbTcEmE
126Please respect copyright.PENANANuIwdK0NCJ
再透過 Transformer 進行矩陣運算,計算下一個 token 的機率分布。最終根據解碼策略找出下一個Token
再把這個token轉換成我們看得懂的中文。
那麼這跟AI讀了後面忘了前面,或者越寫越歪有甚麼關係?
其實沒有太大關係,主要是要透過這段來跟各位說,AI讀取文字的本質,其實依然是數字,輸入到輸出經歷過的不是人類那種看完文字思考其意義然後回答有意義的文字。126Please respect copyright.PENANAii23z1ZEOg
126Please respect copyright.PENANAqT5UYtWhS5
就像之前說,AI回答的意義是人類給予的。
至於為什麼AI 能夠回答出人類看得懂,甚至覺得有回答到自己的問題的答案,是因為AI本身有著透過龐大的資料庫建立的參數集合,將這些參數透過大數據跟演算法即時演算才辦得到的。
回歸正題,接下來就是我要說的。
在長上下文的即時計算過程中,由於注意力分配與表示壓縮的限制,早期資訊可能逐漸被弱化或重新分配,形成類似資訊稀釋的現象。
現在的即時演算用的大多會用到的其中一種統計演算法是Self-Attension演算法,不過就算用其他統計演算法,也會遇到類似的問題。126Please respect copyright.PENANANfUU7hrIEH
126Please respect copyright.PENANABLwz2GDG1e
就是當文本過長的時候,LLM解讀整個文本會有注意力稀釋問題。126Please respect copyright.PENANA6b7kCUtlD4
126Please respect copyright.PENANArNy2hBzB92
在演算過程中,隨著閱讀的字數越長,LLM分配給所有文字的注意力就越低,這是數學上無法破解的限制。(公式解說太麻煩我只講結論)126Please respect copyright.PENANAYRnjww9Ss0
126Please respect copyright.PENANAOZwYt74C3X
換成人類的觀點來看,就是字太多了,找不到重點。這邊就會發現一個人類跟AI最大的差異點,就是人類看太多字不一定會找不到重點,但一定會有記憶力問題。除非天賦異稟能夠過目不忘,否則要一個人完全記住並寫出個幾千字也是很困難的事。126Please respect copyright.PENANAz2N1kdP1iG
126Please respect copyright.PENANAb2q9J5x2h8
而AI並沒有注意力問題,之所以會在解析或創作長文的時候無法有穩定的邏輯,是因為它們的注意力,也就是對每個Token的權重分配被稀釋了,導致他們沒辦法找到重點,算出正確的答案。並不是因為它們記憶力不足,而是他們記住了但因為權重稀釋,無法將文本中所有的文字解開的Token都算進去。126Please respect copyright.PENANAb5plCSgfOA
126Please respect copyright.PENANAoj7gSi9lJq
當然,不是所有的LLM都會放任所有Token的權重一直被稀釋,有一些統計演算法舊的Token就會被稀釋到幾乎不會被算入的情況,表現出來的就是讀了後面忘了前面。
有些統計演算法只讀首尾,中間全靠猜的。126Please respect copyright.PENANAqYuTJVyqgz
126Please respect copyright.PENANAJRHW8Em0yL
有些統計演算法是後頭的權重給較低,結果就是輸入長文本後,文本後面的內容都沒被算入。
不管怎樣都會影響到長文本的分析或創作,所以我才研究了定錨法這個Prompt概念,用來解決注意力稀釋的問題。
ns216.73.216.37da2


