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