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


