ChatGPT 系列文(一): AI,請你成為人類



ChatGPT剛推出時,我們辦公室討論紛紛,我馬上去玩了一下。當時心態很惡搞,詢問GPT什麼是蜥蜴人、女王是不是蜥蜴人註:蜥蜴人是在都市傳說中常被提到的外星生物﹞。他的回答都說蜥蜴人只是一種虛構生物。好吧,我想這大抵符合人類的認知 


隔了幾天,我又去問GPT,什麼是蜥蜴人,他竟然告訴我,他不知道什麼是蜥蜴人。這風向驟變,不禁懷疑他是被重train﹝重新訓練﹞了嗎? 


我想確定他是否有懂我,於是又再問他「祖克伯是誰」,他竟然說,不知道祖克伯是誰。用Mark Zuckerberg取代祖克伯再問,結果亦然。真的很困惑。到底他們拿什麼文本來訓練GPT? 


 

我的入門語言模型 (很弱的那種) 


ChatGPT說,他自己是個語意模型,也就是說,他是一個使用自然語言處理技術﹝Natural Language Processing, 下稱NLP﹞,所訓練出來的模型。這種技術讓電腦可以解譯和操作人類的語言,無疑是個大坑 


但很遺憾,自己不常使用NLP技術,記憶停留在很入門的程度。不過呢,我過年時還是趁著ChatGPT熱潮,手癢玩了一些自然語言的模型。 


當時用n-gram為基的馬可夫鏈 (Markov Chain)生成器,以對字詞進行預測,使其能串字成句,句能成章。馬可夫鏈的統計機制,就足夠我們生成虛構短文。如果學習的語料庫是BBC新聞,那他就能依此生成新聞段落。 


結果如下: 

 


Google給的翻譯是:

開往伊斯肯德倫設施的船隻位於地震上方升起的濃煙西南約 70 英里 112 公里處船運公司 ap moller maersk 稱港口受損 


不管你英文好不好,應該能感覺東西是在瞎扯,而且老實說不太好玩。畢竟我沒有把模型設定的太複雜﹝2-gram﹞,語料也少﹝165字新聞﹞,所以其產出結果跟真正的自然語言、或ChatGPT之間有著巨大落差。 

 
 

GPT,請你像個人類 


不只如此,用以改善語意模型的架構﹝見Transformer架構﹞,在這五六年間有著天翻地覆的突破。ChatGPT也在此基礎上開發進展。 


所幸,不少影片和文章將我引入了GPT的大門。除了訓練用語料,影響輸出結果的因素主要是兩個,一個是機率,一個是人類的喜好/習慣。首先,每個文字的輸出,服從一個從資料中所學來的機率分布。這個字之所以接續前一個字出現,形成字字接龍,背後就根據從該分布進行的隨機取樣。這也是為什麼,他的回答每次可能有些不同。 


再者,人類的語言習性在GPT框架中扮演重要腳色,決定了語意模型能否照著人類預期與能理解方式做回答。這是模型學習的目標,更是定量學習好壞的判準。故模型不能純粹順從語料庫學來的訊息,去生成回應。李宏毅教授的影片說得清楚──當我問世界上最高的山是哪座,模型必須回答真正的答案,不能反問說:那世上最深的海又在哪裡呢? 


也就是說,GPT不單單只是學了一大堆語料,變成優秀的接話仔﹝文字接龍﹞;而是以人類語意與反饋為學習目標,強化自己的應答。這正如他的一個通用名所示:Reinforcement Learning from Human Feedback,意旨其模型框架,加入了一種叫做強化學習﹝Reinforcement Learning﹞的訓練方式。 


在GPT,被獎勵的目標,是作出和人類對語意理解相似的文字/語意生成。這讓機器不純粹依著既有資料的模式,優化並生成預測;反而讓機器有更強的能力,去因應不同環境﹝狀態﹞,作出最優的選擇與回應這大大突破統計方法﹝statistical approaches,如前述n-gram馬可夫鍊﹞的限制。 

 
 

小結尾 


回顧自己跟NLP之間,緣分實在甚淺。我所應用的範疇,大多是量化市場情緒,判別更加即時的市場情緒,以在彌補市場消息面上,量化數據之不足。 


這是說,基於領域專業,以人工的方式針對新聞的情緒做標籤,讓演算法知道新聞語料對應到哪類市場情緒﹝如正向、恐懼或貪婪等﹞,用以預測未來新聞中的隱含情緒。若非微調﹝fine tune﹞自然語言模型,純粹用機器學習模型﹝如SVM或隨機森林﹞,也都有不錯的預測效果。 


而今GPT已歷經GPT-1 ~ GPT3.5,其框架改變似乎不大,明顯差異在參數量巨幅增加。但這也是他被領域專家詬病為不夠創新的一因。可是以一個成為通用語言模型而生的應用,算是一個優異的存在。別說ChatGPT,光是GPT-2,就有人用他寫金庸小說!該作者讓他學習14部金庸小說,最後虛構出了脈絡完整、人物關係沒有混淆的金庸情節。 


不過,雖然無法回答我蜥蜴人的問題,但ChatGPT現在是我的超級戰友。我用他來幫我生成文章段落和寫程式。 

未完,見後續......。 


0 留言