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