大家好,我是喜歡研究AI的一枚產(chǎn)品經(jīng)理
平時主要從事與AI、大模型、智能座艙等相關工作。在這里,我會持續(xù)跟大家分享AI相關的前沿技術、產(chǎn)品體驗、個人心得等有營養(yǎng)有價值的信息
另外,我還超愛自駕游~
導語:
從前年爆火的GPT,到今年過年期間驚嘆世人的DeepSeek,如今,AI、人工智能、大模型這些詞匯對于大家來說不但不陌生,反而從各種各樣的AI應用和產(chǎn)品中,我們已經(jīng)有了切身的體會。
但是,除了用過和會用,有多少人真正了解LLM的本質(zhì)究竟是什么?它的工作原理究竟是怎么運行的?
可能這個問題對于普通人來說,duck不必知其所以然,但對于想要從事ai行業(yè),尤其是ai產(chǎn)品經(jīng)理和ai工程師的伙伴們,這個可是必備知識點!
這篇文章,我想從非純底層技術的角度,而是從整體框架層,從產(chǎn)品經(jīng)理的視角,通過舉例和圖示,盡量言簡意賅的闡述LLM的本質(zhì)。因此我將通過10張圖和三部分內(nèi)容,統(tǒng)計與概率、大模型推理預測機制、temperature(溫度參數(shù))入手,讓不懂技術的你,也能了解LLM的工作原理。
好了,接下來,我們就看圖說話。
一、統(tǒng)計與概率
LLM的本質(zhì)是基于統(tǒng)計模式學習語言的模型,所以理解什么是數(shù)據(jù)總體(海量的文本語料庫)、如何計算基本事件(如某個詞出現(xiàn))的概率,是理解LLM工作原理的第一步。它建立了“概率描述偏好/可能性”的直觀感受。
所以,開篇我會用網(wǎng)球和足球來舉例子,先讓大家理解概率分布和統(tǒng)計的思維。
上圖是一個共14人的運動隊,圖中的Population可以理解為總體、總?cè)藬?shù),即總?cè)藬?shù)是14人。
然后,其中有人喜歡網(wǎng)球、有人喜歡足球,有人同時喜歡兩者,但是也有人兩個都不喜歡。對應到圖中,喜歡網(wǎng)球的人是綠色圈圈,共4人;喜歡足球??的人是藍色圈圈,共5人;既喜歡網(wǎng)球又喜歡足球的是黃色圈圈,共3人;兩者都不喜歡的是粉色圈圈,共2人;一共是4+5+3+2=14人。
繼續(xù)看圖,右上方2x2的表格,用來直觀的進行數(shù)學統(tǒng)計,即:
網(wǎng)球&足球:3人(即A∩B)
網(wǎng)球&?足球:4人
?網(wǎng)球&足球:5人
?網(wǎng)球&?足球:2人
那么基于表格所示,可以統(tǒng)計基本概率:
P(A):喜歡網(wǎng)球的概率=喜歡網(wǎng)球的人數(shù)(7)/總?cè)藬?shù)(14)=7/14
P(B):喜歡足球的概率=喜歡足球的人數(shù)(8)/總?cè)藬?shù)(14)=8/14
上面這張條件概率圖,是建立在第一張基本概率圖的基礎上來的,這里我們引入一個新的,但是非常關鍵的概念——條件概率P(A|B),這直接關系到LLM如何根據(jù)上下文預測下一個詞!
延續(xù)圖1,這張圖2我們先了解一個概念:聯(lián)合概率P(A∩B),意思就是既喜歡網(wǎng)球也喜歡足球的概率=同時喜歡兩者的人數(shù)(3)/總?cè)藬?shù)(14)=3/14。
那緊接著就是條件概率P(A|B),就是在已知某人喜歡足球(事件B發(fā)生)的條件下,ta也喜歡網(wǎng)球(事件A發(fā)生)的概率。
條件概率計算公式:P(A|B)=P(A∩B)/P(B),代入數(shù)值:P(A|B)=(3/14)/(8/14)=3/8,意思是如果你在人群中隨機拉出來一個喜歡足球的人(8人),這其中有3人同時也喜歡網(wǎng)球。所以,在這個“喜歡足球”的小圈子里,喜歡網(wǎng)球的比例是3/8。這就是條件概率的意義——它限定了樣本空間(只在喜歡足球的人里面考慮)。
那么回到LLM,LLM預測下一個詞的核心機制就是計算條件概率!理解了這個概念后,馬上看下圖圖3,給定前面的詞語序列(“Theboywenttothe”),計算下一個詞是“Playground”、“Park”、“School”等的概率P(下一個詞|前面的上下文)。這里LLM對于下一個詞的預測,就跟圖2展示的P(A|B)計算原理一模一樣,即事件B是“前面的上下文”,事件A是“可能的下一個候選詞”。
二、LLM推理預測機制
圖3,這張圖非常形象地說明了LLM在做什么。它接收了一段文字(上下文“theboywenttothe”),然后就像一個極其熟悉語言規(guī)律的“概率預測機”,嘗試推測接下來最應該出現(xiàn)什么詞。(后面出來的這些詞,是通過向量計算得出來的,這個概念,大家也可以翻看我之前的另一篇文章),這就是圖2條件概率在實際語言任務中的直接應用。
具體來拆解分析下圖3,從左到右看。
首先,圖中綠色字體寫明了“Previouswords(Context)”——即已有的、輸入給LLM的文本序列:“Theboywenttothe”。
然后,LLM的任務就是基于這個“上下文”,預測接下來最有可能出現(xiàn)的單詞是什么。圖中展示了幾個可能的下一個詞作為例子:“Cafe”、“Hospital”、“Playground”、“Park”、“School”。
注意:LLM不會只給出一個“最可能”的答案(如“School”),它會為所有可能的單詞(這里方便舉例只寫了幾個,實際可能是成千上萬個!)計算一個概率P(單詞|'Theboywenttothe')。
這張圖圖4,就具體化展示了LLM的預測過程,它如何為每個可能的詞輸出一個概率值,并形成概率分布,以及初始的選擇策略——選概率最高的。
我們分步來看圖4的過程:
輸入:就是圖3的上下文“Theboywenttothe”。
模型:大腦圖標代表模型本身。
輸出:概率分布,這是核心!LLM為詞匯表(所有它學過的詞)里的每個詞計算出一個概率值,數(shù)值在0到1之間,并且所有詞的概率總和為1。
可視化:圖中展示了5個代表性候選詞及其計算出的示例概率:Playground(0.4),School(0.3),Park(0.15),Cafe(0.1),Hospital(0.05)。
初始策略(GreedySearch):圖片右下角底部用紫色小字備注了“wordwithhighestprobabilityischosen(選擇概率最高的單詞)”。這種情況下,會輸出“Playground”(概率0.4是最高的)。這是一種最直接、最確定性的選擇方式。
圖1-圖4,其實已經(jīng)把LLM的工作過程展示完了,但是,那只是最理想化、最簡化的描述。所以圖5,要繼續(xù)給大家說明LLM是如何自我“學習”并改進預測能力的——通過計算預測錯誤并進行反向傳播調(diào)整,可以理解為“強化學習、獎勵機制”這類概念。
圖片標題“Losscalculation”是損失計算的意思,它的作用就是讓模型有自我學習、修正和優(yōu)化的內(nèi)部機制,那對于用戶來說,就是越用這個模型,感覺它越聰明。
所以,這張圖就是跟大家解釋,不是說LLM預測出來下一個詞是什么,就直接輸出了,它還會通過其他的計算,進行進一步的判斷,然后才會輸出最終結(jié)果。并且,在這個“預測->計算損失->微調(diào)內(nèi)部參數(shù)->再預測”的過程中,大模型也完成了“自我提升”。
因此,這張圖里涉及到對數(shù)、交叉熵這些數(shù)學計算,可能很多人不懂,但你只要理解上面的解釋也ok的。
還是分步解釋下上圖里面各種公式計算的過程:
輸入:仍然是上下文“Theboywenttothe”。
預測:“LLM”模型輸出了每個詞的概率分布(與圖4一樣)。
真實值(GroundTruth):在訓練階段,我們知道這個上下文之后實際上出現(xiàn)的詞是什么。圖中假設正確答案是“Playground”,所以“Playground”位置是1,其余詞位置都是0(圖中列出只有這幾個詞,實際詞匯表所有位置都要看)。
計算損失(Loss):我們需要衡量模型的預測值(P(Playground)=0.4)與真實值(Playground=1)之間的差距。
損失函數(shù)公式:Loss=-log(P(正確答案對應的概率))
代入:Loss=-log(P('Playground'|'Theboywenttothe'))=-log(0.4)≈-(-0.916)≈0.916(log是自然對數(shù),log(0.4)≈-0.916)。
損失的意義:預測概率越高(越接近1),損失值越低(越接近0)。預測概率越低(越接近0),損失值急劇升高。模型在訓練中會不斷嘗試最小化整個訓練數(shù)據(jù)的平均損失。通過計算損失并應用反向傳播算法調(diào)整LLM內(nèi)部的參數(shù)(神經(jīng)網(wǎng)絡的權重),模型就能逐漸提高預測的準確性。
三、Temperature溫度調(diào)控LLM的預測隨機性
好了,上面5張圖基本概述完了LLM的工作流程。從圖6開始,再引入一個關鍵詞“Temperature溫度”,它是影響LLM的一個關鍵參數(shù)!換句話說,同樣一個大模型,給它輸入同一個問題,但是Temperature的不同,會導致LLM的輸出結(jié)果天壤之別。
可能有很多實踐過大模型的朋友會了解,就是我們通過扣子或dify這類平臺,去調(diào)試大模型的時候,一般頁面上都會有一個Temperature的可自定義參數(shù),這個參數(shù)你設置的越小,它輸出的結(jié)果就越“中規(guī)中矩和刻板”,你設置的參數(shù)值越大,它輸出的結(jié)果就越“有創(chuàng)意或天馬行空”,這就是Temperature的作用。
上圖6和下圖7,就是一個對比,通過code的形式,跟大家展示低溫和高溫,對于LLM輸出結(jié)果的影響。
上圖6,temperature=0.1**50(這個值極其接近0)
給模型相同的輸入(提示語“Continuethis:In2013,...”)
輸出:連續(xù)運行了兩次,兩次輸出的文本完全一模一樣——“TheworldwascaptivatedbythebirthofPrinceGeorge...”。
結(jié)果說明:圖中黑色粗體字標注“Temperatureclosetozero”和“Identicalresponse”。低溫會極大程度地尖銳化輸出概率分布(放大最高概率項,抑制其他項)。當溫度趨近0時,模型實際上變成了只選擇可能性最大的下一個詞(類似圖4的GreedySearch策略)。這使得生成文本高度確定、一致且相對保守(重復輸入可能稍有波動,但極低溫下波動極?。?。
看完圖6,繼續(xù)看圖7↑顯然,圖7中T的值大于1,那么它的輸出將會是高度隨機的,完全無規(guī)律。
上圖7,與圖6相似的代碼,但設置了一個很高的溫度temperature=2
同樣的輸入(“Continuethis:In2013,...”)
輸出:圖中打印出的內(nèi)容是一長串完全混亂、沒有語義連貫性的字符、無意義詞和符號組合(...infection,-yourPSDsurgicalPYTHON**...)
結(jié)果說明:圖中黑色粗體字標注“Randomoutput”,就是說高溫會平滑化輸出概率分布,讓原本低概率的詞獲得相對更高的機會被選中。當溫度非常高時,所有詞的概率幾乎變得均勻,模型變成了完全隨機的字符生成器,丟失了所有上下文相關性和語義信息。輸出的就是近乎噪聲的亂碼。
這張圖,重點在于sampling,采樣!就是說,LLM在生成文本時(推理階段),是如何利用概率分布進行采樣(Sampling)來獲得隨機但有控制的輸出,而非總是選擇最高概率詞。
這張圖,進一步概述了LLM非常重要的一個工作機制:基于模型的概率分布進行采樣。與圖4只選最高概率詞(Greedy)和圖6低溫(接近Greedy)不同,采樣是文本生成(如聊天、創(chuàng)作)中自然引入隨機性和創(chuàng)造性的方式。
上圖8,從左到右,我們依次來看:
最左側(cè)輸出層(Outputlayer):模型輸出的原始分數(shù),每個可能的下一個詞(Token)對應一個分數(shù)(Logits)。Logits:這些分數(shù)本身數(shù)值范圍沒有限制。Softmax層:將Logits轉(zhuǎn)換成合法的概率分布(所有值在0-1之間,總和為1),每個Token對應的Softmax轉(zhuǎn)換后的概率值(Token1:0.86,Token2:0.00等)。
圖片右側(cè)黃色小字“Samplefromthisdistribution”,是說從該分布中采樣。
采樣:不是簡單地挑選概率最高的Token(Token1:86%),而是根據(jù)每個Token的概率值大小,隨機地選擇下一個Token。例如,一個概率為50%的詞,被選中的可能性就是50%;一個概率為1%的詞,被選中的可能性就是1%。這使得輸出具有多樣性。
圖9,是用數(shù)學公式展示了溫度T是如何改變Softmax計算結(jié)果的。這張圖重在展示圖6、7、8背后的底層數(shù)學原理。溫度,通過一個數(shù)學變換(縮放Logits),控制了Softmax輸出的概率分布的集中度(Sharpness)/均勻度(Uniformity)。
這張圖,以及最后一張圖10,不理解沒關系,也可以不看,只是為了補充背后的數(shù)學原理。
核心:Logits,模型輸出的原始分數(shù)。
傳統(tǒng)Softmax:公式σ(z)_i=e^{z_i}/Σ_je^{z_j}e^{z_i}:某個詞i原始分數(shù)的指數(shù)。Σ_je^{z_j}:所有詞原始分數(shù)指數(shù)的總和。結(jié)果:原始分數(shù)大的詞獲得較高概率。
溫度調(diào)整Softmax:公式σ(z,T)_i=e^{(z_i/T)}/Σ_je^{(z_j/T)}變化點:每個原始分數(shù)z_i在計算前都除以溫度T(z_i/T)。
溫度T的作用:T小(接近0):z_i/T值會被放大。最大值被放大的程度遠大于其他值,導致e^{(最大值/T)}變得極大。最終概率分布變得尖銳(一個詞概率接近1,其余接近0)。這就是圖6(低溫)確定性的數(shù)學來源。T大(>>1):z_i/T值被縮小。所有原始分數(shù)的差距被壓縮。最終概率分布變得平滑、均勻。這就是圖7(高溫)亂碼和圖8中低概率詞有機會被采樣的數(shù)學來源。
最后這張圖,就用具體的數(shù)值計算例子,直觀地驗證圖9理論,同時也形象再現(xiàn)了圖6和圖7的效果。通過它可看到溫度這個單一參數(shù)如何通過在Softmax公式里縮放原始分數(shù),來控制模型輸出的“冒險/保守”程度。
輸入數(shù)組a=[1,2,3,4],這可以看作4個詞的Logits(原始分數(shù))。
計算1:原始Softmax(a),結(jié)果是[0.03,0.09,0.24,0.64]。最大值4對應的概率0.64顯著高于其他值,分布較尖銳。
計算2:低溫(T=0.01)下的Softmax(a/T):a/T=[1/0.01=100,2/0.01=200,3/0.01=300,4/0.01=400]。Softmax結(jié)果:[5.12e-131,1.38e-087,3.72e-044,**1.00e+000**]≈[0,0,0,1]。結(jié)果:概率分布極其尖銳!原始最高值4對應概率幾乎是1,其他詞概率幾乎為0。對應圖6的確定性輸出。
計算3:高溫(T=1e9)下的Softmax(a/T):a/T=[1e-9,2e-9,3e-9,4e-9]。所有值都變得非常小且彼此接近。Softmax結(jié)果:[0.25,0.25,0.25,0.25]。結(jié)果:概率分布幾乎完全均勻!每個詞的概率都是25%,失去了Logits提供的偏好信息。對應圖7的亂碼和高度隨機性。
好了,以上就是本文的全部內(nèi)容了,如果喜歡或者覺得對你有點用處,歡迎點贊分享
??體驗分享AI前沿技術與產(chǎn)品|記錄分享個人學習與心得|情緒價值傳播|鏈接同行者!