深入探究ChatGPT的工作原理
這篇文章主要探討了ChatGPT的工作原理。ChatGPT是基于OpenAI開發(fā)的GPT-4架構(gòu)的大型語言模型。首先,文章介紹了GPT的基本概念,即生成預(yù)測性網(wǎng)絡(luò)模型。GPT模型利用大量的文本數(shù)據(jù)進行訓(xùn)練,從而學(xué)會在各種情境中生成連貫的文本。
接著,文章詳細(xì)闡述了訓(xùn)練過程,分為預(yù)訓(xùn)練和微調(diào)兩個階段。在預(yù)訓(xùn)練階段,模型學(xué)習(xí)理解文本數(shù)據(jù),包括詞匯、語法、事實等;在微調(diào)階段,模型使用具有限制性任務(wù)的數(shù)據(jù)集來調(diào)整,以獲得更準(zhǔn)確的輸出。作者還提到了訓(xùn)練數(shù)據(jù)的來源,強調(diào)了在大量網(wǎng)絡(luò)文本數(shù)據(jù)中獲取知識的重要性。
在解釋輸出生成時,文章提到了一個關(guān)鍵技術(shù):集束搜索(Beam Search)。這是一種啟發(fā)式搜索策略,用于選擇最優(yōu)文本序列。此外,作者強調(diào)了解決生成內(nèi)容問題的策略,包括設(shè)置過濾器和調(diào)整溫度參數(shù)。
最后,文章討論了ChatGPT的局限性,例如處理輸入數(shù)據(jù)時可能會產(chǎn)生偏見,或無法回答一些問題。盡管如此,作者指出ChatGPT是一個強大的工具,能夠在各種任務(wù)中提供有價值的幫助。
像ChatGPT這樣的大型語言模型實際上是如何工作的?嗯,它們既非常簡單又極其復(fù)雜。
你可以將模型視為根據(jù)某些輸入計算輸出概率的工具。在語言模型中,這意味著給定一系列單詞,它們會計算出序列中下一個單詞的概率,就像高級自動完成一樣。
要理解這些概率的來源,我們需要談?wù)撘恍┙凶?strong>神經(jīng)網(wǎng)絡(luò)的東西。這是一個類似網(wǎng)絡(luò)的結(jié)構(gòu),數(shù)字被輸入到一側(cè),概率被輸出到另一側(cè)。它們比你想象的要簡單。
想象一下,我們想要訓(xùn)練一臺計算機來解決在3x3
像素顯示器上識別符號的簡單問題。我們需要像這樣的神經(jīng)網(wǎng)絡(luò):
- 一個輸入層
- 兩個隱藏層
- 一個輸出層。
我們的輸入層由9個稱為神經(jīng)元的節(jié)點組成,每個像素一個。每個神經(jīng)元將保存從1(白色)到-1(黑色)的數(shù)字。我們的輸出層由4個神經(jīng)元組成,每個神經(jīng)元代表可能的符號之一。它們的值最終將是0到1之間的概率。
在這些之間,我們有一些神經(jīng)元的排列,稱為**“隱藏”層**。對于我們簡單的用例,我們只需要兩個。每個神經(jīng)元都通過一個權(quán)重與相鄰層中的神經(jīng)元相連,該權(quán)重的值可以在-
1和1
之間。
當(dāng)一個值從輸入神經(jīng)元傳遞到下一層時,它會乘以權(quán)重。然后,該神經(jīng)元簡單地將其接收到的所有值相加,將該值壓縮在-1和1之間,并將其傳遞給下一層中的每個神經(jīng)元。
最后一個隱藏層中的神經(jīng)元執(zhí)行相同的操作,但將值壓縮在0和1之間,并將其傳遞到輸出層。輸出層中的每個神經(jīng)元都保存一個概率,最高的數(shù)字是最可能的結(jié)果。
當(dāng)我們訓(xùn)練這個網(wǎng)絡(luò)時,我們向它提供一個我們知道答案的圖像,并計算答案與網(wǎng)絡(luò)計算的概率之間的差異。然后我們調(diào)整權(quán)重以接近預(yù)期結(jié)果。但是我們?nèi)绾沃廊绾握{(diào)整權(quán)重呢?
我們使用稱為梯度下降和反向傳播的巧妙數(shù)學(xué)技術(shù)來確定每個權(quán)重的哪個值會給我們最低的誤差。我們不斷重復(fù)這個過程,直到我們對模型的準(zhǔn)確性感到滿意。
這被稱為前饋神經(jīng)網(wǎng)絡(luò) - 但這種簡單的結(jié)構(gòu)不足以解決自然語言處理的問題。相反,LLM傾向于使用一種稱為Transformer
的結(jié)構(gòu),它具有一些關(guān)鍵概念,可以釋放出很多潛力。
首先,讓我們談?wù)剢卧~。我們可以將單詞分解為 token
,這些 token
可以是單詞、子單詞、字符或符號,而不是將每個單詞作為輸入。請注意,它們甚至包括空格。
就像我們的模型中將像素值表示為0到1之間的數(shù)字一樣,這些token
也需要表示為數(shù)字。我們可以為每個標(biāo)記分配一個唯一的數(shù)字并稱之為一天,但還有另一種表示它們的方式,可以添加更多上下文。
我們可以將每個 token 存儲在一個多維向量中,指示它與其他標(biāo)記的關(guān)系。為簡單起見,想象一下在二維平面上繪制單詞位置。我們希望具有相似含義的單詞彼此靠近。這被稱為 embedding 嵌入。
embedding 有助于創(chuàng)建相似單詞之間的關(guān)系,但它們也捕捉類比。例如,單詞“dog”和“puppy”之間的距離應(yīng)該與“cat”和“kitten”之間的距離相同。我們還可以為整個句子創(chuàng)建 embedding 。
transformer
的第一部分是將我們的輸入單詞編碼為這些 embedding
。然后將這些嵌入饋送到下一個過程,稱為 attention ,它為 embedding 添加了更多的上下文。attention 在自然語言處理中非常重要。
Embedding 難以捕捉具有多重含義的單詞??紤] bank
這個詞的兩個含義。人類根據(jù)句子的上下文推斷出正確的含義。Money
和 River
在每個句子中都是與 bank
相關(guān)的重要上下文。
attention 的過程會回顧整個句子,尋找提供詞匯背景的單詞。然后重新調(diào)整 embedding 權(quán)重,使得單詞“river”或“money”在語義上更接近于“word bank”。
這個 attention
過程會多次發(fā)生,以捕捉句子在多個維度上的上下文。在所有這些過程之后,上下文 embedding 最終被傳遞到神經(jīng)網(wǎng)絡(luò)中,就像我們之前提到的簡單神經(jīng)網(wǎng)絡(luò)一樣,產(chǎn)生概率。
這是一個大大簡化了的LLM(像ChatGPT這樣的語言模型)工作原理的版本。為了簡潔起見,本文省略或略過了很多內(nèi)容。
編輯中可能存在的bug沒法實時知道,事后為了解決這些bug,花了大量的時間進行l(wèi)og 調(diào)試,這邊順便給大家推薦一個好用的BUG監(jiān)控工具 Fundebug。
以上就是深入探究ChatGPT的工作原理的詳細(xì)內(nèi)容,更多關(guān)于ChatGPT工作原理的資料請關(guān)注腳本之家其它相關(guān)文章!
- macbook安裝環(huán)境chatglm2-6b的詳細(xì)過程
- ChatGPT平替-?ChatGLM多用戶并行訪問部署過程
- ChatGPT平替-ChatGLM環(huán)境搭建與部署運行效果
- ChatGLM?集成LangChain工具詳解
- 基于prompt?tuning?v2訓(xùn)練好一個垂直領(lǐng)域的chatglm-6b
- ChatGPT將批量文檔翻譯成中文的方法
- 一文帶你快速梳理ChatGPT、GPT4 和OpenAPI的關(guān)系
- 在小程序中實現(xiàn)ChatGPT?聊天打字兼自動滾動效果
- linux環(huán)境部署清華大學(xué)大模型最新版 chatglm2-6b 圖文教程
相關(guān)文章
UUencode 編碼,UU編碼介紹、UUencode編碼轉(zhuǎn)換原理與算法
這篇文章主要介紹了UUencode 編碼,UU編碼介紹、UUencode編碼轉(zhuǎn)換原理與算法,需要的朋友可以參考下2016-06-06Typora配置PicGo時提示Failed?to?fetch的問題解決(typora圖像問題)
這篇文章主要介紹了Typora配置PicGo時提示Failed?to?fetch的問題解決(typora圖像問題),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04大數(shù)據(jù)HelloWorld-Flink實現(xiàn)WordCount
這篇文章主要介紹了大數(shù)據(jù)HelloWorld-Flink實現(xiàn)WordCount的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08本地化部署 DeepSeek 全攻略(linux、windows、mac系統(tǒng)部署)
本文詳細(xì)介紹了在Linux、Windows和Mac系統(tǒng)上本地部署DeepSeek模型的步驟,包括硬件要求、軟件環(huán)境、模型下載和部署步驟、以及優(yōu)化與注意事項,感興趣的朋友一起看看吧2025-02-02使用selenium自動控制瀏覽器找不到Chromedriver問題
這篇文章主要介紹了ChromeDriver安裝與配置問題的解決方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02學(xué)編程選什么語言好?是PHP、Python還是Ruby?
這篇文章主要介紹了學(xué)編程選什么語言好?是PHP、Python還是Ruby?需要的朋友可以參考下2014-06-06JetBrains 學(xué)生認(rèn)證教程(Pycharm,IDEA… 等學(xué)生認(rèn)證教程)
這篇文章主要介紹了JetBrains 學(xué)生認(rèn)證教程(Pycharm,IDEA… 等學(xué)生認(rèn)證教程)文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09