到今年11月份,ChatGPT就“一歲”了。以ChatGPT為代表的人工智能模型正在以驚人的速度快速迭代,甚至有科技公司宣稱,ChatGPT今后可能取代人類。那么,ChatGPT的原理是什么?它真的有可能取代人類嗎?今天,我用大家都熟悉的例子,讓人們直觀地了解這項看似玄幻的技術。
“套娃”方式讓ChatGPT實現長文本生成
英文縮寫ChatGPT全名是Generative Pre-trained Transformer,翻譯過來就是“生成式預訓練轉換器”。從這個名字我們就能看出,它是一個可以生成內容的預訓練模型。什么叫生成內容呢?成語接龍游戲就是一種生成,根據前面的內容生成后面的內容。如果我說“守株待……”ChatGPT可能會生成“兔”,如果我說“聲東擊……” ChatGPT可能會生成“西”。這就是單字接龍的生成能力。
如果只是一個字一個字地生成,想要生成一段長文本豈不是太慢了?這就需要用到“套娃”的方法,就是每生成一個字,就把它和前面的內容組合起來,作為新的前文再去生成下一個字,如此反復,就可以生成任意長的文章。比如,開始時輸入“守株待”,ChatGPT生成“兔”,然后把“守株待兔”作為新的前文,再生成下一個字。這樣通過大量的單字生成和組合,任何長文本都可以生成出來。
生成內容受兩個因素影響,并非隨機答案
那么,ChatGPT生成出來的內容是不是完全隨機呢?答案是否定的,因為生成內容受兩個因素影響:一是前面的上下文,二是ChatGPT自身的語言模型。簡單來說就是,相同上文不同模型會生成不同內容,相同模型不同上文也會生成不同內容,這就好像每個人腦海中對“守株待兔”后面應該連接什么字都有自己的理解是一樣的。
當然,我們還希望ChatGPT生成我們想要的內容。這就需要給ChatGPT提供大量我們想要的內容,讓它通過學習來改變自身的語言模型,就像重復學習“守株待兔”后面的詞應該是“猛虎”。久而久之,看到“守株待兔”后,我們的腦海中第一個出現的詞就是“猛虎”。ChatGPT也一樣,通過學習就能逐步掌握我們想要的語言規律。
ChatGPT通過學習能自己生成新答案
學習不是簡單的記憶,而是能舉一反三。如果訓練過“守株待兔,猛虎”,看到“守望相助,英雄輩出”也知道下一句應該是“猛虎”,這就是ChatGPT的泛化能力,就是可以應用學習的規律回答沒有見過的問題,這與我們通過學習就會應用道理回答新的問題是一樣的。
ChatGPT回答問題也是這樣的原理,給它提供大量正確的問答范例進行學習,它就掌握了回答這個類型問題的方法,從而可以回答沒有見過的新問題。這點不同于搜索引擎,屬于直接在數據庫里找現成答案。ChatGPT懂得回答問題的方式,然后自己能生成新答案。
不過,ChatGPT的答案不一定正確,因為它可能按照錯誤的規律生成虛假內容,就像我們也可能從錯誤例子中學習到錯誤的知識一樣,產生不符合事實的答案。所以,我們不能盲目相信它的一面之詞,而要通過多次提問來評估它的可靠性。
得益于極大的模型規模和三段訓練法
ChatGPT為何能達到如此驚人的語言生成效果呢?這得益于極大的模型規模和三段訓練法:首先,ChatGPT吸收了上億條互聯網數據進行無監督預訓練,掌握了廣泛的語言知識,然后人工設計語言交互模板規范它的行為,最后通過人工提問,不斷反饋訓練,提升創造力。通過這樣逐步的訓練,ChatGPT才能超越我們的預期,完成很多復雜的語言任務。
作為人造系統,ChatGPT也有局限性,生成的內容不可全部相信,需要人類進行監督與評估。就像任何技術一樣,只能作為輔助工具而不應該也不可能取代人類創造力和意識,它終究需要人來指導運用。讓我們積極而理性地看待這項科技進步,以人為本,造福社會。