一篇不是很枯燥的ChatGPT閑談
ChatGPT中的GPT是什么?GPT3到ChatGPT又經歷了哪些過程呢?本文作者對ChatGPT的發展過程進行了總結分析,并分享了他關于ChatGPT的看法,看完這篇文章,相信你會對ChatGPT有更深度的了解。
這是一篇ChatGPT有關的文章,總共有三部分:先科普一下ChatGPT中的GPT是什么,然后介紹從GPT3到ChatGPT的過程,最后進行一些個ChatGPT閑談。如果不想看技術,可以直接跳到閑談。鑒于已經有非常多的優秀創作者進行總結和分析,本文將會包含非常多的論文原文以及資源鏈接,都是值得一閱的好文,再次感謝這些優秀的創作者們。
一、ChatGPT中的GPT是什么?
在很久很久以前(1982年那么久),深度學習模型中有一個非常經典的模型叫做RNN,即Recurrent Neural Networks(循環神經網絡)[1]。RNN的出現是為了更好地處理序列信息,RNN隱藏層的值不僅受到當前輸入的影響,還取決于上一次隱藏層的值。
比如:“我 愛 你”三個字,“愛”不僅僅是“愛”,還包含了“我”的語義信息。但是對于較長的序列或者句子,RNN的機制會出現梯度消失的問題,簡單說就是當句子是:“我愛你中國,我愛你春天蓬勃的秧苗,我愛你秋日金黃的碩果,我愛你青松氣質,我愛你紅梅品格,我愛你家鄉的甜蔗,好像乳汁滋潤著我的心窩?!弊詈笠粋€“心窩”已經沒有辦法包含太多的第一個“我”的語義信息了。
而后,最早在計算機視覺里應用的Attention機制被拿來用在了自然語言處理。該機制的思想就是把注意力集中在重要的信息上,而忽視不重要的信息(可見Attention圖解[2])。2017年,Google的研究人員發表了《Attention Is All You Need》[3],這篇文章中的Transformer模型是GPT的基石,整個網絡結構是由Attention機制組成[4],并且將序列中的任意兩個位置之間的距離縮小為一個常量,其次Transformer具有好的并行性,符合現有的GPU框架。
這里必須要提一下:Transformer設置了一種“位置編碼”(position encoding)機制,用來向序列數據添加位置信息,進而讓模型學到“順序”。做法簡單巧妙:用正弦、余弦函數生成沿時間軸變化的波形,然后把這種波形疊加到Transformer的輸入中。
那什么是GPT模型呢?是生成式預訓練模型(GPT,Generative Pre-Training),是OpenAI研究人員在2018年提出的模型[5]。GPT其實可以看作是Transformer模型中decoder部分修改后的模型(紅色框如圖1所示)[6]。
圖1:Transformer模型
GPT去掉了Transformer的多頭注意力(Multi-head Attention),然后在進行模型輸出時,利用特定的下游任務進行微調(分類任務、自然語言推理、語義相似度、問答和常識推理)。具體而言,GPT采用了Hinton等人2006年提出的一種經典的神經網絡訓練策略:“預訓練+微調”的二段式訓練策略[7]。在預訓練階段,首先基于龐大的生語料訓練一個生成式語言模型;在微調階段,使用標注數據繼續訓練模型。
圖2:GPT模型
這樣的生成式模型可以給他輸入N個單詞(也稱為Token)的序列,輸出是最有可能在輸入序列末尾放置的單詞的預測。舉個例子:
過了一會兒,大灰狼來了,他想闖進小兔子的→家
當我們想得到一個以上的多個單詞時,就將得到的下一個單詞添加到輸入序列中,就可以得到下一個單詞。
圖3:序列輸入輸出示例
以此發散,GPT可以進行的任務其實有非常多,比如:文本生成、代碼生成、問答等等,如果要扯上其他類型的數據,也不是不行,比如圖像生成、視頻生成等等,誰還不是些個高維向量嘛。
二、從GPT3到ChatGPT
1. 費錢的GPT3
從GPT模型提出以來,OpenAI就在不斷進行模型優化。GPT系列的模型結構秉承了不斷堆疊Transformer的思想,通過不斷的提升訓練語料的規模和質量,提升網絡的參數數量來完成GPT系列的迭代更新[8]。其中,GPT3模型是ChatGPT的基石,該模型擁有1750億的參數,利用45TB的數據進行訓練,其訓練費用高達1200多萬美元,知乎上有個帖子在討論GPT3花了多少錢[9]。不得不說,OpenAI的這些個模型一直搞是真的有錢。在GPT3的文章[10]中,作者自己坦白實驗中的實驗數據是有些問題的,但是由于訓練的花費太高了,再訓練一次也不太合適。
圖4:GPT3論文原話
但是不得不說,GPT3的效果在大語料大參數量的加持下有了一些成績,并展示了三個重要的能力[11]:
- 語言生成:遵循提示詞(prompt),然后生成補全提示詞的句子(completion)。這也是今天人類與語言模型最普遍的交互方式。
- 上下文學習 (in-context learning):遵循給定任務的幾個示例,然后為新的測試用例生成解決方案。很重要的一點是,GPT3雖然是個語言模型,但它的論文幾乎沒有談到“語言建模”(language modeling),作者將他們全部的寫作精力都投入到了對上下文學習的愿景上,這才是 GPT3的真正重點。
- 世界知識 (world knowledge):包括事實性知識 (factual knowledge)和常識(commonsense)。
但是,仍然需要銘記于心的是,GPT3的本質還是通過海量的參數學習海量的數據,然后依賴transformer強大的擬合能力使得模型收斂?;谶@個原因,GPT3學到的模型分布也很難擺脫數據集的分布情況。對于一些明顯不在這個分布或者和這個分布有沖突的任務來說,GPT3還是無能為力的。GPT3的缺點有[12]:
- 對于一些命題沒有意義的問題,GPT3不會判斷命題有效與否,而是擬合一個沒有意義的答案出來;
- 由于40TB海量數據的存在,很難保證GPT3生成的文章不包含一些非常敏感的內容,例如種族歧視,性別歧視,宗教偏見等;
- 受限于transformer的建模能力,GPT3并不能保證生成的一篇長文章或者一本書籍的連貫性,存在下文不停重復上文的問題。
就連OpenAI的首席執行官都說,GPT3會犯愚蠢的錯,GPT3只是人工智能領域非常早期的一瞥。
圖5:Sam Altman的Twitter原話
但是這起碼是一瞥,GPT3對AI領域的影響是深遠的,給AI領域注入了一劑強心劑,告訴各大硬件廠商工作要加油,只要算力足夠強,AI性能還有提升的上界。不過,由于其高昂的計算代價也引發了一些壟斷的討論:中小企業沒錢搞,而形成AI巨頭對算力要求高的算法的技術壟斷。當時知乎上有一個問題“如何評價1700億參數的GPT-3?”[13],復旦大學邱錫鵬老師回答說:英偉達或成最大贏家!邱總給了2019 年 3 月機器學習先驅阿爾伯塔大學教授 Richard S. Sutton 著名的文章《苦澀的教訓》的開篇的一段話,其中一句是“70 年的人工智能研究史告訴我們,利用計算能力的一般方法最終是最有效的方法?!?/p>
圖6:The Bitter Lesson [27]
2. GPT-3 到 ChatGPT的心路歷程
再次,感謝熱心NLP同胞在網上的各種講解,有網友梳理了2020 版 GPT-3 到 2022 版 ChatGPT的心路歷程[11],如圖6所示,并且非常仔細地給出了不同版本模型的演變和差異。
圖7:2020 版 GPT-3 到 2022 版 ChatGPT的心路歷程
可以看到,當GPT3模型出世以后,OpenAI團隊就將其用在了代碼生成[14]和基于指示學習的初代ChatGPT之InstructGPT。其中,微軟的應用市場已經提供了相關的代碼生成服務[15]。其實,代碼生成是一個非常有利可圖的市場。考慮到程序員的高時薪,即使每月節省幾個小時的編碼時間,也足以支付Codex的訂閱費。不過Codex依然還是會犯錯的!OpenAI的研究人員在論文中警告:“安全使用Codex這樣的代碼生成系統需要人類的監督和警惕。”再說InstructGPT,其實這個就是ChatGPT最初始的模型了,而后,模型又加入了RLHF策略,這是啥呢,全稱是Reinforcement Learning from Human Feedback,翻譯過來就是基于人工反饋的強化學習。接下來我們再回顧一下ChatGPT背后的技術路線:
圖8:InstructGPT模型框架
Step1:工程師團隊設計了一個基于 Prompt 訓練方式的數據集,里面有大量的提示文本,并且詳細說明了下游任務是什么。將這個訓練集交給人類標注記錄人類的回答,并拿這個數據集去通過 Prompt的方式微調 GPT3。
當下,人們玩ChatGPT玩的非常666,不過ChatGPT 效果好不好一部分原因取決于你的 Prompt(提示詞),那什么是Prompt呢?其實就是你問ChatGPT的那句話,可以問他今天星期幾,也可以問他牛頓是誰,還可以問很多問題。但是怎么問,問什么是會得到不同效果的答案的。目前已經有很多網友總結出如何撰寫Prompt的指導手冊[16],亞馬遜的網站上都有書賣了,甚至都有網站專門交易Prompt[17]。大家為了賺錢真是努力啊。
圖9:Prompt交易網站
圖10:2022年年底關于Prompt撰寫的指南
寫好Prompt,走遍天下都不怕。根據熱心網友總結出的Prompt撰寫原則,需要盡量follow這么幾點[16]:
- 清晰,切忌復雜或歧義,如果有術語,應定義清楚。
- 具體,描述語言應盡量具體,不要抽象活模棱兩可。
- 聚焦,問題避免太泛或開放。
- 簡潔,避免不必要的描述。
- 相關,主要指主題相關,而且是整個對話期間,不要東一瓢西一瓤。
Step2:微調后的模型姑且稱為 GPT3-1 吧,用 GPT3-1 去預測第一步的數據集的任務得到 N 個結果,并且讓標注人員標注每個選項的好壞并把這個標注后的數據集用來訓練獎勵模型(RM)。
其實,這一步就是基于人類反饋的強化學習,即通過人類的反饋,有針對性地進行優化。如果說深度學習是在學習表征的話,強化學習就是在學習規則。簡單來說,以前,我們針對輸入就只輸出一個結果A,完了不斷優化結果A;現在,我們針對輸入,輸出了結果A、B、C、D,然后我還告訴模型這個A、B、C、D哪個好,哪個不好,模型你要好好學,盡量學出好的那些選項,而不是不好的(reward model的目標是拿高分)。
Step3:使用 PPO 的策略來更新參數,拿 GPT3-1 再預測一次數據集的結果通過第二步的獎勵模型進行打分,計算獎勵(reward)。最后將這個獎勵分數通過 PPO 給到 GPT3-1 進行訓練。
第三步簡而言之就是把獎勵的結果投入到模型的參數更新環節,不斷擬合,得到最后的模型。
這里提到的PPO[18]的全稱是Proximal Policy Optimization,近端策略優化算法,網上現在的解析也很多啦[19],就是用來做策略梯度下降。機器學習中常常舉的一個栗子是,人要下山,那往哪里走,下山穩又速度快。
梯度下降算法有三種類型:批量梯度下降、隨機梯度下降和小批量梯度下降。PPO算法提出了目標函數可以在多個訓練步驟實現小批量的更新,解決了策略梯度算法中步長難以確定的問題。如果步長太小,訓練時間就會過長。如果步長過大,有用信息會被噪音掩蓋(因為每個數據影響都很大),或者令性能災難性的下降,難以收斂[20]。
說到這第三步,現在有很多吃瓜群眾都會問:火出圈的為什么是 OpenAI,而不是國內的一線大廠?我的回答是:就拿這ChatGPT里的PPO策略(用來更新參數的算法)來說, 這個PPO是2017年,OpenAI團隊提出的,對2015年提出的TRPO算法[21]的改進版本,提出TRPO這個算法的人是伯克利的博士生John Schulman等人,包括其導師,他導師是強化學習領域的大神Pieter Abbeel, Abbeel是伯克利的副教授,同時也是OpenAI的研究科學家,是機器人強化學習領域最有影響力的人之一。不得不說,人家現在走的每一步,都是因為之前走的每一步。
三、ChatGPT閑談
1. 為什么ChatGPT出名,而GPT3沒有?
首先回到2019年,Google團隊提出了Bert模型[22],訓練一個 Bert模型租用云算力要花大概 6912 美元,GPT3 需要的算力是 Bert的 1900 多倍, 另外,同等參數規模下,Bert的效果要好于GPT。筆者當時的畢業論文就是用的Bert模型,Bert當時真的成為了各種實驗的基線,維基百科中提到:2020年的一項文獻調查得出結論:“在一年多一點的時間里,BERT已經成為NLP實驗中無處不在的基線”,算上分析和改進模型的研究出版物超過150篇[23]。
Bert勝在易得,我自己感覺GPT的風頭并沒有Bert大,大廠內各種在做的也多是Bert的身影。那為啥ChatGPT出圈了?我覺得很大的一個原因是他的出圈方式,之前很多時候,搞人工智能研究的,但凡有突破性進展都是通過發論文的方式來說明自己的模型有多厲害。就算放開API,也有一定的使用門檻,最多在Twitter上吹一把模型多厲害。
圖11:當年Google研究員的Bert宣傳
但是這次的ChatGPT完全不一樣,直接放開了一個對話框給大家玩,男女老少都能參與,而且效果不差,那可不得一下子就火起來。對于這樣大膽的放開,又不得不提到“那些年被斃掉的Tay”,2016年,Twitter 上發布了一個人工智能聊天機器人 Tay,但在和用戶開放對話后不到一天的時間里,它就“變成”了一個熱愛希特勒、譏諷女權主義的機器人,最終由于不恰當的種族主義言論引發了激烈爭議。所以,接下來想要介紹的是ChatGPT在數據標注上的一些個建樹。他們是有嚴格且規范的標注指南的[24],并且在不能回答的一些個問題上,是絕對就不回答的。
所以目前來看,如果只是簡單的一些Prompt來問,ChatGPT還是可以規避一些不好的問題的。相比于直接拿開放的語料訓練,這種花多點錢,但是數據有一定質量保證的模型還是更加能夠拿出來給公眾耍。據說,OpenAI雇傭了80 位人工標注者生成了6.48萬條數據對模型進行調校,耗資約百萬。
2. 胡說八道的ChatGPT出世后
首先,ChatGPT 并不是一個算法,更像是一套方案,也就是綜合了多種方法的一個有機系統,模型追溯其根本都是在之前的研究上搭建起來的。另外,其在數據質量和多樣性上非常講究。雖然ChatGPT強化學習的數據量并不大,但對數據多樣性、標注體系都有精巧的設計,讓數據發揮出了強大的作用。所以當然目前ChatGPT還有很多問題在爭議中,這里截取了一些聲音(沒能標注來源抱歉?。?/p>
1)數據問題
「ChatGPT 接受公共數據的訓練,這些數據通常是在未經同意的情況下收集的,這會帶來一系列的責任歸屬問題?!?/p>
「我們不允許 AI 被列為我們發表的論文的作者,并且在沒有適當引用的情況下使用 AI 生成的文本可能被視為剽竊?!埂禨cience》系列期刊的主編
「模型的內部知識總是在某個時間被切斷。模型始終需要最新的知識來回答最新的問題。ChatGPT當下一個很大的弊端是無法實時獲取互聯網信息?!?/p>
2)成本問題
「客戶有私有化部署要求,但這些模型非常大,對資源要求高,當前不太可能實現私有化部署。」
「沒有一個老板能接受,NPC回復一句話要花掉幾毛錢,即使它說得再好?!?/p>
但是我看到的最讓我有感觸的其實是這句話:“短期內可能大家會高估這個東西,但長期可能有很多人會低估這個東西?!笔紫?,ChatGPT走到今天的這一步,是在非常多重要的基石上累積起來的。我相信ChatGPT應該也會成為一塊基石,將有更多的能力在此的基礎上進行搭建,這不是一次性的成功,這還是人工智能的一瞥。而背后需要的算力(硬件)、數據(錢、能擁有數據的能力)、算法(一些個真正的科研人員),缺一不可。
2月20日的時候,復旦大學自然語言處理實驗室發布國內第一個“對話式大型語言模型MOSS”的消息,轟動科技圈,大量訪問一度造成服務器過載。21日上午,MOSS研發團隊通過公開信為“體驗不好”致歉,表示愿意在MOSS完成初步驗證之后,將相關經驗、代碼、模型參數開源共享,MOSS是邱錫鵬教授的團隊開發的。感覺是一個“有真正的科研人員+沒有硬件支撐和工程化能力”的例子。
再看最近,有人問:ChatGPT 對多模態領域技術發展方向的影響?那必然是:卷起來了!3月6日,谷歌發布“通才”模型PaLM-E,作為一種多模態具身 VLM,它不僅可以理解圖像,還能理解、生成語言,執行各種復雜的機器人指令而無需重新訓練。它還展示出了強大的涌現能力(模型有不可預測的表現)。然后也沒隔多久,微軟開始拉著OpenAI,N鳴驚人。
3月14日,OpenAI攜手微軟于發布了GPT4[25],也是關注多模態的,實驗效果要比PaLM好,并且可以執行非常多的任務,比如,GPT4 在各種職業和學術考試上表現和人類水平相當。模擬律師考試,GPT4 取得了前 10% 的好成績,做美國高考 SAT 試題,GPT-4 也在閱讀寫作中拿下 710 分高分、數學 700 分(滿分 800)。
圖12:GPT4考試成績一覽
整個GPT4模型的工程由預訓練、視覺、長文本、強化學習與對齊、評估與分析、部署等團隊參與,同時OpenAI也致謝了微軟的合作,特別是微軟Azure在基礎架構設計和管理方面支持模型訓練,以及微軟Bing團隊和微軟安全團隊在安全部署方面的合作(詳見公眾號文章解說[26])。結果再一轉頭,Bing瀏覽器立馬就把模型用了起來。
不得不說,或許這將是谷歌遭到的致命一擊,回想起2023年初谷歌裁員了1.2萬余人,并且有非常多資深的開源大佬。要知道最流行的人工智能機器學習框架如 PyTorch、TensorFlow 和 Rasa 都是開源項目,而當時卻讓優秀和最聰明的開源專家離場,此刻不免有些戲劇。但是說實話人家GPT4論文也說了:咱這模型還是不完全可靠的(它會自己幻想一些事實,并且推理錯誤),用語言模型輸出時應該格外小心,尤其在高風險上下文中,并且需要確切的協議(比如人工審查、附加上下文等等)。
圖13:GPT4論文中的警告,hallucinate這個詞妙
所以大家,還是先適度地醒一醒。結果,微軟拎著GPT4開過光的全家桶走來了,導致大家、我覺得至少大部分人一時半會兒時醒不過來了,GPT4可太上頭了。微軟CEO納德拉表示,今天是一個里程碑,意味著我們與電腦的交互方式邁入了新的階段,從此我們的工作方式將永遠改變,開啟新一輪的生產力大爆發。
說實話,模型還是那個模型,就是應用的場景和方式變了,并且在辦公軟件這樣的落地環境里,至少人們的要求是明確的,相比開放式的ChatGPT,或許全家桶的效果更好。最近吃瓜群眾著急的是自己是不是要被人工智能替代了,人家深度學習巨頭之一LeCun都急了:Calm down,還早呢。
圖14:Yann LeCun在3月20日發的Twitter評論Human-level AI
接下來,看看微軟花的錢能不能通過商業化回來吧,不過,今天ChatGPT出bug[28]了。微軟的股價也跌了一下下。
圖15:微軟近一個月的股價
再次回顧一下,簡直是大模型越燒越旺的一周:
3月13日,斯坦福發布LLaMA模型:https://github.com/tatsu-lab/stanford_alpaca
3月14日,清華發布ChatGLM-6B模型:https://github.com/THUDM/ChatGLM-6B
3月14日,OpenAI發布GPT4模型:https://openai.com/product/gpt-4
3月14日,谷歌給出PaLM API:https://blog.google/technology/ai/ai-developers-google-cloud-workspace/
3月15日,PyTorch2.0發布:https://pytorch.org/blog/pytorch-2.0-release/
3月16日,微軟發布Microsoft 365 Copilot:https://blogs.microsoft.com/blog/2023/03/16/introducing-microsoft-365-copilot-your-copilot-for-work/
3月16日,百度發布文心一言:https://yiyan.baidu.com/welcome
讓子彈再飛一會兒吧。英偉達此刻真的哈哈哈。
閱讀材料
[1] 論文:https://www.pnas.org/doi/pdf/10.1073/pnas.79.8.2554;
[2] 中文:https://zhuanlan.zhihu.com/p/342235515 ;英文:https://towardsdatascience.com/attn-illustrated-attention-5ec4ad276ee3#0458 ;
[3] 論文:https://arxiv.org/abs/1706.03762 ;
[4] 自注意力機制和transformer詳解:https://luweikxy.gitbook.io/machine-learning-notes/self-attention-and-transformer ;
[5] 論文:https://www.cs.ubc.ca/~amuham01/LING530/papers/radford2018improving.pdf;
[6] https://zhuanlan.zhihu.com/p/125139937 ;
[7] 論文:https://www.cs.toronto.edu/~hinton/absps/fastnc.pdf;
[8] https://zhuanlan.zhihu.com/p/350017443 ;
[9] https://www.zhihu.com/question/412295638/answer/1387457462 ;
[10] 論文:https://arxiv.org/pdf/2005.14165.pdf ;
[11] 強推閱讀材料:https://yaofu.notion.site/GPT-3-5-360081d91ec245f29029d37b54573756 ;
[12] https://zhuanlan.zhihu.com/p/350017443;
[13] https://www.zhihu.com/question/398114261
[14] https://openai.com/blog/openai-codex/ ;
[15] https://learn.microsoft.com/en-us/azure/cognitive-services/openai/how-to/work-with-code ;
[16] https://mp.weixin.qq.com/s?__biz=MzIxMzkwNjM2NQ==&mid=2247521130&idx=1&sn=f710af36749e8be0caa7249d913e28d0&chksm=97ad75b8a0dafcaed61ce821c6689ecc478bac836680f59b26473b14a75b00f18bd74aae0c63&mpshare=1&scene=1&srcid=02076gsCDwzP4ENko7r0U66d&sharer_sharetime=1675823385633&sharer_shareid=0a9c66924ea99ca17a8569783429bda1&version=4.1.0.6015&platform=win;
[17] https://promptbase.com/ ;
[18] 論文:https://arxiv.org/abs/1707.06347 ;
[19] https://zhuanlan.zhihu.com/p/479912119 ;
[20] https://blog.csdn.net/weixin_44436360/article/details/107979004 ;
[21] 論文:https://arxiv.org/abs/1502.05477;
[22] 論文:https://arxiv.org/abs/1810.04805 ;
[23] https://zh.wikipedia.org/wiki/BERT ;
[24] 官方標注手冊:https://docs.google.com/document/d/1MJCqDNjzD04UbcnVZ-LmeXJ04-TKEICDAepXyMCBUb8/edit ;
[25] 論文:https://cdn.openai.com/papers/gpt-4.pdf;官網:https://openai.com/research/gpt-4;
[26] https://mp.weixin.qq.com/s?__biz=MjM5ODkzMzMwMQ==&mid=2650436117&idx=2&sn=1ec9ed4876a31de508a0469e15ca804d&chksm=becdf44f89ba7d59beeb526254e68cefd168852c2a3ca6b21540690f9f0007e6d6bd48e474fb&mpshare=1&scene=1&srcid=0315GhUWwI9wEzpYLxj4bZgg&sharer_sharetime=1679312424675&sharer_shareid=0a9c66924ea99ca17a8569783429bda1&version=4.1.0.6015&platform=win#rd
[27] https://www.cs.utexas.edu/~eunsol/courses/data/bitter_lesson.pdf
[28] https://finance.yahoo.com/news/openai-shut-down-chatgpt-fix-060030490.html
作者: shutianma
來源公眾號:騰訊CDC體驗設計(ID:tx_cdc),構建數字時代互聯網生態的用戶價值與體驗創新
本文由人人都是產品經理合作媒體 @CDC 授權發布,未經許可,禁止轉載。
題圖來自Unsplash,基于CC0協議。
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。
- 目前還沒評論,等你發揮!