ChatGPT大流行的思考-解析篇
ChatGPT爆發至今,討論的聲音也有很多。為什么chatGPT的能力能如何強大?乃至于影響我們的生活和工作?本文對此展開分析,分享自己關于這件事情的看法。
背景介紹
目前chatGPT已經被全世界所知,其影響已經滲透到國家、民營企業、國企央企、各大行以及每個個體等,未來可能會更火,并且還會衍生各種商業落地產品。
或許每個人都應該主動擁抱這個大變革,而不是觀望或者無視它。
無疑,chatGPT的出現是可以拔高到PC、移動互聯這個層級,這三個新事物的出現,對我們工作學習,乃至生活方式都會形成巨大影響。
而這也是我對此引發的思考,為什么chatGPT的能力能如此強大?
總結內容大致可分為以下兩個方面:
- 仰望星空(解析)-即簡要剖析chatGPT的技術及解決方案等內容
- 腳踏實地(設想)-設想未來產品可著力點及產品方向思考等內容
chatGPT的解析與說明
1. chatGPT與以往的聊天機器人的區別
當我們詢問ChatGPT和以往的對話機器人(如小冰)我們會有一種強烈的感受,GPT比他們更懂人類的表述與觀念,仿佛是和人在對話,這是為什么?
可以從以下兩個維度來解答:
(1)模型的本質區別
首先我們要了解的是chatGPT是采用了LLM模型構建的對話機器人(large Language Model);
一般的語言模型處理任務的類型大致分為兩種類型:中間任務及最終任務(完成對話);
中間任務指中文分詞、詞性標注、NER、句法分析、指代消解,這類任務不會解決實際問題,但對應最終任務是必需的操作步驟;
以往NLP的部分研究方向及側重點在于中間任務的處理及優化,如如何更好的分詞\指代\句法分析,從而更好的輸出最終任務,如這一代(袋)蘋果多少錢,應該根據上下文進行判斷;
但GPT的出現提供了一個新的研究方向,它的理念是嘗試從端到端進行解析,完全忽視中間任務的處理,我們可以給定大量數據,讓LLM模型自動學習輸出最終任務的結果,而這里面如何學習我們無須了解,如至于優化,我們也無需對中間過程專門建模;
可以說正是因為NLP技術發展未成熟,才會衍生出中間任務的建模及優化,現在有了LLM的出現,我們似乎可以尋求到新的研究方向;
而這種本質區別,就決定了GPT為什么能更好的理解用戶表述及輸出結果,因為GPT現在是給定人類的自然表述,LLM通過大量數據學習語義語法知識及既定事實,最終再用符合人類的表述方法進行反饋,講究的是GPT去適應人,而不是人去適應GPT(這活脫脫是個絕對合格的乙方思路!誰能不愛)
(2)角色定位的區別:從預訓練模型走向通用人工智能
以往的技術鏈路是構建各個專業agents,并提交中控統一管控(DM模塊),組成一個對話機器人;而GPT是通過數據及LLM模型,構建成一個通用性的對話機器人;
沒錯,你可以想象一下,以前是設想給你創建很多個專業人員同時處理服務(N對N),現在是構建一個通用性人才,同時處理多個服務(1對N);
而為什么能這么轉變?得益于LLM模型及海量的數據(以萬億為單位的文本數據);
理論上來講,只要LLM模型足夠大,喂食的數據足夠多,那么GPT完全可以變身成為鋼鐵俠里面的賈維斯(想想就很興奮),而且如果按照這個研究思路,未來很多NLP子研究領域將不再具備研究價值(如如何更好的分詞)
以上兩點,我理解就是與以往主流的對話機器人的本質區別。
2. ChatGPT如何實現知識的獲取、存儲、推理及實時更新
那究竟GPT如何有如此優秀的表現呢?
我們不妨從人類學習思路入手,我們學習一般可分為獲取知識-存儲知識-推理知識-更新知識,而這也是GPT發展及學習的過程,這更加也是GPT適應人類的表現;
(1)獲取知識
首先對于知識的獲取,GPT粗略可以分為語言知識及世界知識的獲取,語言知識指代的就是我們自然的表述,指詞性、語義、語法、分詞等知識;
參考文章-“When Do You Need Billions of Words of Pre-training Data?”,對于Bert類型的語言模型來說,只用1000萬到1億單詞的語料,就能學好句法語義等語言學知識;
而世界知識,指的是在這個世界上發生的一些真實事件(事實型知識,Factual Knowledge),指美國現任總統為拜登,太陽從東邊升起,這類既定事實知識的學習;
而這類知識的獲取學習,對數據的要求及時效性就很高,也是未來GPT的研究重點,即如何從增量知識獲取世界知識;
(2)存取知識
至于GPT如何存儲及提取知識,目前比較可信的思路大體是這樣的,首先我們要知道一個前提,就是LLM模型是以Transformer為基礎的大語言模型,而Transformer我們可以簡單理解為變壓器,對輸入和輸出進行處理的模型。
當LLM模型獲取到知識(輸入)時,會轉化為一對<Key,Value>信息,如<‘北京,is-capital-of,中國>,并且保存在Transformer的FFN結構,也就是說Transformer的FFN可看成存儲大量具體知識的Key-Value存儲器,而每個節點對應的key向量,就是知識節點和輸入層每個節點的權重向量,用來匹配輸入的語言需要獲取什么知識;
舉個例子,簡單通俗點來說,當Transformer的輸入是“中國的首都是[Mask]”的時候,節點從輸入層探測到這個知識模式,會產生較大的響應輸出。如果Key層其它神經元對這個輸入都沒有任何響應,那么對應的Value層的節點,其實只會接收到“北京”,這個Value對應的單詞embedding放大,進而匹配出最終的結果<北京>;
(3)推理能力
首先,我們要知道LLM模型本身就具備推理能力;
保證LLM有推理能力的原因有兩種方法,一種是基于Prompt的方法,核心思想是通過合適的提示語或提示樣本,更好地激發出LLM本身就具備的推理能力;
第二種是是在預訓練過程中引入程序代碼,和文本一起參與預訓練,以此進一步增強LLM的推理能力,這應該是OpenAI實踐出的思路;
首先基于Prompt的方法也分為三種實現方法:
第一種方法是可以簡單的理解為追問式推理,我們在LLM輸出結果時,輸入提示語:“Let’s think step by step”,LLM便會將它思考的思路逐一的反饋出來,而實現的方法就是,我們海量數據里面必定存在“Let’s think step by step\讓我們一步一步來思考”關鍵信息的文本,并且這類文本通常都是攜帶了思考思路,而LLM模型可以通過這些數據進行學習推理;
第二種是基于示例的思維鏈,又稱CoT,(few-shot CoT,Chain of Thought),方法是:為了教會LLM模型學會推理,給出一些人工寫好的推理示例,示例里把得到最終答案前,一步步的具體推理步驟說清楚,而這些人工寫的詳細推理過程,就是思維鏈Prompting,這種方法讓模型學習了一個道理,就是在推理過程中,步子不要邁得太大,否則很容易出錯,改變思維模式,化大為小,逐一擊破;而這也是我們生活學習需要參考的思路;
第三種是問題拆解思路,就是將一個復雜問題逐步拆解到每一個子問題,在完成了子問題的解答后,我們再從子問題的答案推導復雜問題的答案;
以上為實現chatGPT的推理能力的第一種方法-基于Prompt方法的簡單介紹;
而另外一種,在預訓練過程中引入程序代碼,和文本一起參與預訓練構造LLM推理能力的方法,目前還未證實,比較可能的猜想為如下兩個方面:
1)代碼屬于邏輯性很強的內容,可以通過代碼的條理構造LLM推理的思路;
2)代碼中的注釋可以有效幫助到LLM關聯對應的內容進行推理,即這類文本幫助預訓練模型做了<文本,Code>兩種數據的多模態對齊工作;
而這兩個猜想目前來看可能性較高,只是需要等待后續驗證。
(4)實時更新知識
相信很多人都會想到一個問題,既然LLM模型訓練是基于已有的海量數據,那這部分數據的時效性如果不符合現實情況,那chatGPT給的答案不就不可靠了嗎?
如詢問美國的總統是誰?按照已有的數據量來看,肯定是特朗普的數據會多于拜登,那么回答不就不可靠了?
對于這個擔憂,可以說是客觀存在并且是會出現的,畢竟chatGPT才出現了一段時間,但這個問題雖然還未完全解決,似乎已有三種可以處理的技術方法,歸納起來為以下三種:
1)基于基礎數據來修正知識
如同文章“Towards Tracing Factual Knowledge in Language Models Back to the Training Data”描述的從LLM模型逆向追蹤到數據源的可行性;
因此我們可以在識別到錯誤反饋的時候,設計一個修正功能,當用戶反饋說你說的不對時,實時的進行源數據的更新,而這里面需要解決的問題就是什么時候需要進行修正以及如何校驗修正后的答案是符合世界認知的,但是這可以說是后話了。
2)對LLM模型做一次fine-tuning來修正知識
第二種方法的思路就是直接從數據源開始修正,通過修正后的數據源重新訓練;
這個方法最為簡單直觀,同時也存在問題:1)帶來災難遺忘問題,即可能遺忘掉該忘的知識,還會忘掉了不該忘的知識;2)成本高,涉及到LLM模型的重新訓練及驗證,可行性不高;
3)修改LLM模型某些知識的模型參數
第三種方法其實是第二種的衍生,就是修正某一個知識領域的參數;
參考“Locating and Editing Factual Associations in GPT”和“Mass-Editing Memory in a Transformer”這兩篇文章講述了定位及修正FFN對應參數的方法;
但同樣的,我們要解決的問題也就是方法一要面對的兩個問題。
3. 總結歸納
以上就是我在查閱資料后整理的chatGPT的優異點,個人理解有以下三個原因:
(1)顛覆及超越了以往市面主流的對話機器人(無論是交互、體驗還是性能),并且提供了可落地性及可研究性很強的方向
(2)為目前國內或者世界經濟下行及行業內卷,提供了新的產品及生產力發展方向,也提供了新的商業價值
(3)chatGPT里面的思想(如問題拆解\識別修正等思想)及未來研究方向,符合人類的學習及發展之路,適合每個人學習與借鑒
以上內容,便是筆者個人對ChatGPT為什么能力如此強大的解析。
參考內容
由ChatGPT反思大語言模型(LLM)的技術精要
在此特別感謝張老師提供的關于chatGPT研究及說明,對個人的學習及思考起了很大的幫助!
拓展閱讀
- 關于chatGPT的八個技術問題猜想
- chatGPT的數據集之謎
本文由 @SiegZhong 原創發布于人人都是產品經理,未經許可,禁止轉載
題圖來自 Unsplash,基于 CC0 協議
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。
贊~學習了