ChatGPT 中,G、P、T 分別是什麼意思?

流行的技術名詞按發音難度排序,ChatGPT 肯定排在前面。

到底它爲什麼叫做 ChatGPT 呢?‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

先說 GPT:Generative Pre-Training Transformer

Generative 生成式

雖然我們已經習慣了話嘮的機器人絮絮叨叨的說個不停,但這只是衆多的人工智能模型的一種方式。比如還有識別類的(Congnition):人臉識別,車牌識別這些,還有語音識別,文字識別各種識別任務。(在提到模型的時候,也常常被叫做判別模型,discriminative)。Generative 這個大的種類裏面有幾個小分支,DALLE 的畫圖的用的是對抗網絡方式 GAN (這個晚些可以分析),現在最火的 Stable Diffusion, MidJourney 走向了另外一個分支,叫做 Difusion,而 ChatGPT 又是一個分支,就是轉換器 Transformer。

而 Transformer Generative 的語言模型的核心,通俗的說就是「順口溜」。

當看了足夠多的文本以後,發現有一些語言模式是反覆出現的。它之所以可以準確的填補「鋤禾日當__ 」的空格,不是因爲它在自己的大腦子裏面重構了一副農民勞動的場景,僅僅是不過腦子,順口溜出來的。

你問它: 3457 * 43216 = ,它回答 149575912 (這是錯的。正確結果是 149397712)。之所以結果的 2 是對的,僅僅因爲它讀了太多的文字資料以後,隱約感覺到

7 結尾的文字,乘號,6 結尾的文字,和 2 結尾的文字比較「押韻」

從語感上比較像一首詩,所以它就學會了這樣的文字,而不是學會了計算。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

生成式模型努力解決的問題,就是給定一些字,預測如果是人類會寫什麼字。

在 BERT 那個年代,爲了訓練,大家常常把一句話中隨機幾個單詞遮起來,讓計算機用現有的模型預測那幾個單詞,如果預測準了,就繼續加強,如果預測錯了,就調整模型,直到上百萬上億次訓練之後越來越準。只不過 ChatGPT 的 Generative 的部分,不僅僅把文字,還把上下文、intention(意圖)也放進去做訓練和預測。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

Pre-Training 預訓練

以前很多的人工智能模型都是爲了一個目標訓練的。比如給我 1000 張貓的照片,我就很容易的可以訓練出來一個模型,判斷一個圖片是有貓還是沒有貓。這些都是專用的模型。

而 Pre-Training 模型不是爲了特定的目標訓練,而是預先訓練一個通用的模型。如果我有特定的需求,我可以在這個基礎上進行第二次訓練,基於原來已經預訓練的模型,進行微調(Fine- Tuning)。

這事兒就像家裏請了個阿姨,她已經被勞務公司預訓練了整理家務的知識,在此之前已經被小學老師預訓練了中文對話,到了我家裏面我只要稍微 fine tune 一些我家裏特定的要求就好了,而不需要給我一個「空白」的人,讓我從教漢語開始把她徹底教一遍才能讓她幹活。

ChatGPT 的預訓練就是給了我們所有人(尤其是創業者,程序員)一個預先訓練好的模型。這個模型裏面語言是強項,它提供的內容無論多麼的胡說八道,至少我們必須承認它的行文通暢程度無可挑剔。這就是他 pre-training 的部分,而回答的內容部分,正是我們需要 fine tuning 的。我們不能買了個 Apache 服務器回來,不灌內容,就說他輸出的內容不夠呀。‍‍‍‍‍‍‍

Transformer 轉換器

變電器就是一種 transformer:220 伏電進,12 伏出。

語言的轉換器就是把語言的序列作爲輸入,然後用一個叫做編碼器 encoder 的東西變成數字的表現(比如 GPT 就用 1536 個浮點數(也叫 1536 維向量)表示任何的單詞,或者句子,段落,篇章等),然後經過轉化,變成一串新的序列,最後再用 decoder 把它輸出。這個轉換器,是這個自然語言處理的核心。

比如如果給 ChatGPT 輸入「Apple」這個詞,它給你返回

[
 0.0077999732,
 -0.02301609,
 -0.007416143,
 -0.027813964,
 -0.0045648348,
 0.012954261,
.....
0.021905724,
 -0.012022103,
 -0.013550568,
 -0.01565478,
 0.006107009]

這 1536 個浮點數字來表示 Apple(其中一個或着多個維度的組合表達了「甜」的含義,另外一堆表達了「圓」的含義,還有一大堆共同表達了「紅」等等屬性組合,至於具體哪些表達了這些,不得而知)‍‍‍‍‍‍‍‍‍‍‍

然後這堆數字,再交給 decoder,並且限定中文的話,它會解碼成爲「蘋果」,限定西班牙語的話,它會解碼成「manzana」,限定爲 emoji 的話,就輸出「🍎」。總之,通過編碼,轉換,解碼,它就完成了從 Apple 到目標輸出語言的轉化。‍‍‍‍‍‍‍‍‍

ChatGPT 所做的事情遠遠多於翻譯。但核心上,它就是把一個語言序列,轉換爲了另外一堆語言序列,這個任務完成得如此的好,以至於讓人產生了它有思想的錯覺。‍‍‍‍

GPT 生成式預訓練轉化器

把上面三段話加在一起,GPT 就是

一個預先訓練好的,用生成的方式,把輸入文字轉化成輸出文字的翻譯‍‍‍

除了這個以外的各種能力和各種定義,大多數是這個翻譯官的應用場景而不是它本身。‍‍

ChatGPT 是啥?

剛纔解釋了 GPT,那 ChatGPT 呢?

OpenAI 用這個名字描述他們正在做的這個模型,歷史的版本包括 GPT-1, GPT-2(這個模型是開源的),GPT-3(這個就是傳說中 175B 參數的大模型)。而這些都是生成式的,也就是給的 prompt(提示詞),它負責補全(completion)。但是這個東西用於聊天不是很好用,因爲本來就不是爲聊天這個場景準備的。‍‍‍‍‍‍‍‍‍‍‍‍

所以在 GPT-3 基礎上發展出了下一代模型 InstructGPT,專注於讓這個模型可以聽懂指令。在上面繼續發展出了 ChatGPT,就是對於對話場景,比如多輪對話,還有一些安全邊界設定等,進行了加強。但這個模型是基於 GPT-3 上面的,可以說嚴格意義是 GPT-3 模型上面的一個微調(Fine Tuning)的產物。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

希望這樣梳理可以幫助大家瞭解這個奇怪的名字背後的思考。從這個角度來說,這是少有的幾個準確的描述了它是什麼的一個名字(和 Web3 這個名字產生鮮明對比)‍‍‍‍‍‍

歡迎轉發給對 ChatGPT 感興趣的朋友。歡迎專業人士指正(我其實不懂自然語言處理裏面的細節)‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/vXoYeA7w6l_WiKmDHogdTA