原作始發(fā)于 廣東科學(xué)中心 官方微信公眾號
最近,ChatGPT是熱門的話題。
人們都說它是個人工智能聊天軟件,能夠回答各種問題,還能編故事、寫詩,并且通曉多種語言。其實,計算機只是個能快速運算的機器。要指令它進行運算還必須要用它能夠懂得的語言來進行編程。
計算機語言是與計算機一起發(fā)展起來的。
艾達·勒芙蕾絲伯爵夫人
最早為計算機開發(fā)語言的是艾達·勒芙蕾絲伯爵夫人(Ada Lovelace,1815—1852)。艾達的父親是著名英國詩人喬治·拜倫(George Byron,1788—1824)。拜倫激情謳歌人性、自由和愛情的詩歌是西方文學(xué)的豐碑。不過他的婚姻卻不和諧。艾達出生不久,她的母親就與拜倫分手,帶著她離開了倫敦。所幸的是艾達從小受到了很好的教育。
1832年
艾達結(jié)識了查爾斯·巴貝奇(Charles Babbage,1791—1871)。巴貝奇是英國皇家學(xué)會院士,曾任劍橋大學(xué)教授并創(chuàng)建了英國科學(xué)促進會。艾達把巴貝奇當(dāng)作導(dǎo)師,對他設(shè)計的機械式計算機特別感興趣,并和他一起研究如何使用計算機。
1835年
艾達與勒芙蕾絲伯爵結(jié)婚,因此獲得了伯爵夫人的頭銜(圖1)。艾達生下三個子女,但一直沒有放棄與巴貝奇的合作。她仿照當(dāng)時的提花織布機設(shè)計了一個表格式的計算機語言,卻一直沒有發(fā)表。
1852年
艾達病逝,終年37歲。
1953年
艾達的文章被發(fā)現(xiàn)并發(fā)表。此時艾達已經(jīng)離世100年。
圖1,艾達·勒芙蕾絲伯爵夫人
阿隆佐·邱奇
艾倫·圖靈
1936年,美國數(shù)學(xué)家阿隆佐·邱奇(Alonzo Church,1903—1995)和他的研究生艾倫·圖靈(Alan Turning, 1912—1954)提出了邱奇-圖靈可計算理論(Church-Turning thesis):所有有限的數(shù)學(xué)問題(如解方程、微分、積分等等)均能用有限的數(shù)學(xué)公式通過有限的步驟計算出來(圖2)。
圖靈首先想到了這個理論,他還發(fā)明了“算法”(Algorithm)這個詞。這一工作開創(chuàng)了計算數(shù)學(xué)這個新的研究領(lǐng)域。
邱奇是普林斯頓大學(xué)的教授,晚年轉(zhuǎn)到加州大學(xué)洛杉磯分校執(zhí)教,退休后安享晚年,活到了92歲。
圖靈博士畢業(yè)后回到英國,不久第二次世界大戰(zhàn)爆發(fā),他加入英國情報部門,為破解納粹德國的密碼做出了重大貢獻,獲得了英國的最高榮譽“不列顛帝國勛章”(參見廣東科學(xué)中心「院士說」 | 人工智能算法之一:貝葉斯算法)。
戰(zhàn)后,他先是在英國國家物理實驗室工作,后來又到了曼徹斯特大學(xué)執(zhí)教。他繼續(xù)研究計算機與人工智能,極有建樹。他的文章《計算機和智能》(Computing machinery and intelligence)為他贏得了人工智能之父的美名。不過,他卻因同性戀備受歧視與打壓,最后服毒自盡,終年42歲。
后來美國計算機學(xué)會設(shè)立了以他命名的圖靈獎,這個獎是計算機領(lǐng)域的最高榮譽。另外蘋果公司那個缺了一塊的蘋果logo也是為紀(jì)念他而設(shè)計的。
圖2,阿隆佐·邱奇(左)與艾倫·圖靈(右)
1940年代,真空管電子計算機誕生。計算機語言也應(yīng)運而生。
最早的計算機語言叫做匯編語言(Assembly language)。當(dāng)時的計算機只用于計算,因此匯編語言只是指令計算機如何讀取數(shù)據(jù),做加法(減法是加負數(shù),乘法可以化作一系列加法,除法是乘上倒數(shù)),保存數(shù)據(jù)等等。
匯編語言的詞匯不多,每一個詞匯對應(yīng)于一個計算機所使用的“0101…”式編碼。數(shù)據(jù)也要轉(zhuǎn)化成“0101…”式的二進制數(shù)值。1980年我在華南理工大學(xué)讀碩士研究生時還學(xué)過這種語言。
1950年代,晶體管計算機誕生,“高級”語言也隨之出現(xiàn)。
IBM公司開發(fā)一套叫做“FORTRAN”的語言。這套語言有好幾個版本,一直沿用至今。用它寫好程序后需要編譯成“0101…”式的計算機編碼,然后執(zhí)行。如果錯了,就要重新編寫、編譯。我用它寫過不少程序,編寫、編譯、運行、查錯、再編寫、再編譯......在計算機前度過了不知多少時間。
1960年代出現(xiàn)了以邏輯學(xué)為基礎(chǔ)的人工智能語言“LISP”(后來又變成“Common LISP”)。但更加成功的是“BASIC”。后來微軟公司改進了這個語言并把它作為主要工具。它的特點是可以一邊編寫一邊編譯,錯了馬上就能發(fā)現(xiàn)。
丹尼斯·里奇
1972年美國計算機學(xué)家丹尼斯·里奇(Dennis Ritchie,1945—2011)發(fā)明了“C”語言。里奇出生于紐約,父親是貝爾實驗室的工程師。他從小聰明過人,學(xué)習(xí)成績非常優(yōu)秀。他在哈佛大學(xué)獲得學(xué)士和博士學(xué)位后加入貝爾實驗室。先是開發(fā)出“UNIX”計算機操作系統(tǒng),接著又開發(fā)出了C語言。
這一語言具有結(jié)構(gòu)清晰、擴展性強等特點。蘋果計算機用的就是這個語言。后來的許多計算機語言(如“C++”、“Java”、“Javascript”、“Python”等)都是從它衍生出來的。
1983年里奇榮獲“圖靈獎”,1988年入選美國工程院院士,1999年榮獲美國國家獎(圖3)。
圖3,1999年美國總統(tǒng)克林頓為里奇頒獎
在1970年代時還有許多專用的語言面世,例如專用于數(shù)據(jù)分析的SQL(Structured query language),專用于科學(xué)計算的MATLAB等等。
1980年代誕生了“C++”語言,它在“C”的基礎(chǔ)上增加了圍繞對象(Object-Oriented)的功能,許多游戲軟件、出版軟件及工業(yè)控制軟件都是用這個語言編寫的。蘋果計算機與蘋果手機用的也是這個語言。
另外,美國國防部也投入重金開發(fā)出了“Ada”語言。這個以艾達·勒芙蕾絲伯爵夫人命名的軟件著重于系統(tǒng)的穩(wěn)定性、擬人性和高效率。
史蒂芬·沃爾弗拉姆
還值得一提的是計算軟件“Mathematica”。這個軟件是著名的數(shù)學(xué)家、計算機學(xué)家、物理學(xué)家、工業(yè)家史蒂芬·沃爾弗拉姆(Stephen Wolfram,1959—)及其公司研發(fā)出來的。
沃爾弗拉姆出生于英國,14歲進牛津大學(xué)學(xué)習(xí),20歲在加州理工學(xué)院獲得博士學(xué)位。他先是學(xué)習(xí)物理,接著研究計算數(shù)學(xué)、數(shù)學(xué)與計算機。他提出了智能計算機語言。他的軟件不但能進行數(shù)值計算,還能進行符號運算、知識融合,而且使用十分方便。
讀者也許記得中學(xué)時數(shù)學(xué)老師說一元三次的方程很難解。我們打開這個軟件的網(wǎng)頁版本“WolframAlpha”(軟件的正式版要付錢),然后輸入“solve x^3+x^2+x+1=0”,瞬間即可得到結(jié)果(圖4)。讀者還可以試試輸入一個化學(xué)問題:“hydrogen + oxygen”看看得到什么結(jié)果。
圖4,用“WolframAlpha”求解數(shù)學(xué)方程
1990年代,計算機網(wǎng)絡(luò)開始全面推廣。因此有了針對網(wǎng)絡(luò)開發(fā)的編程語言:“Java”、“HTML”和“Javascript”。
此外,開源軟件也開始出現(xiàn)。當(dāng)時軟件開發(fā)的需求不斷增加,另一方面,各大學(xué)、研究所及非盈利結(jié)構(gòu)已開發(fā)出許多可供免費使用的軟件。一些公司為了增加影響力也愿意把軟件公開。
1998年,網(wǎng)頁公司Netscape把其軟件的代碼公開。
接著,一批計算機學(xué)家們在硅谷開會,成立了開源軟件組織(Open Source Organization)。組織厘定了開源軟件的標(biāo)準(zhǔn)、規(guī)范、使用權(quán)限等要點。許多開源軟件隨之推出,為軟件行業(yè)注入了巨大動力。其中包括專用于數(shù)據(jù)分析的R語言。
到了2000年代,計算機已經(jīng)深入人們生活的每一個角落。以計算機編程為職業(yè)的工程師數(shù)以百萬計。各大軟件公司都推出了自己的語言:
微軟用的是“C#”;
蘋果用的是“Swift”;
谷歌用的是“Go”和“Dart”;
有人為安卓系統(tǒng)開發(fā)了“Scala”。
不過,一個名不經(jīng)傳的語言“Python”脫穎而出,成為最常用的語言。
吉多·范·羅蘇姆
這個語言是荷蘭工程師吉多·范·羅蘇姆(Guido Van Rossum,1956—)創(chuàng)造的(圖5)。羅蘇姆在阿姆斯特丹大學(xué)獲得數(shù)學(xué)與計算機學(xué)碩士學(xué)位后加入了一家開源軟件公司工作。
1989年開始設(shè)計這個開源的語言。Python的英文意思是蟒蛇,不過羅蘇姆把他的語言其命名為“Python”卻是因為他喜歡英國的喜劇團“Monty Python”。他為人低調(diào),不為名利,只是因為愛好而去努力。開始時知道Python的沒有幾個人。但是桃李不言,下自成蹊,到了2010年來它已成為最常用的計算機語言之一。
這個語言有幾個特點,一是簡單,語法與英文十分相似,易學(xué)易用,小學(xué)生也能學(xué)會。二是結(jié)構(gòu)清晰,不容易出錯。三是可以兼容各種其他語言的子程序。最后,它是開源免費的。近年來網(wǎng)上已有無數(shù)Python程序,給計算機編程帶來了許多方便。
圖5,Python的作者羅蘇姆
常用的計算機語言都有自己的格式、詞匯、語法和規(guī)范,編程畢竟不是易事。能不能用人類的語言來直接指令計算機呢?這就要靠人工智能了。Chat-GPT做的就是這個事情。
要讓人工智能算法理解我們的語言并做出應(yīng)答不是易事。Chat-GPT的做法分兩步:首先它設(shè)定了一系列語言模型。
其中最重要的一個模型叫做“Next-token-prediction”,這一模型用于預(yù)測一個句子中的賓語。例如從“貓坐在X上”這句子,可以預(yù)測X可能是“地毯”、“凳子”或“地板”等,而用哪一個詞的概率則根據(jù)上個一句子的內(nèi)容來確定。
另一個重要的模型叫做“Masked-language-modeling”。這個模型用于預(yù)測一個句子中的主語,例如根據(jù)“X坐在地上”,可以預(yù)測X是“貓”、“狗”或“兔子”等。
接著Chat-GPT調(diào)用海量的網(wǎng)上數(shù)據(jù)(如維基百科、美國國會圖書館等)來進行學(xué)習(xí)。不過,語言模型常常不能區(qū)分用詞的對錯,例如根據(jù)“羅馬帝國X于奧古斯都”,無法準(zhǔn)確地判斷X是“興起”還是“衰落”。
因此,Chat-GPT用了人工加強學(xué)習(xí)的方法(Reinforcement learning)。這個方法分三步:
第一步
監(jiān)督微調(diào)(Supervised Fine Tuning,SFT)。對上述的語言模型用人工對部分?jǐn)?shù)據(jù)進行微調(diào),把微調(diào)好的模型作為范例模型(SFT Model),同時也整理出監(jiān)督策略,以便做出更多的范例模型。
第二步
擬人微調(diào)(Mimic human preferences)。用人工對大量范例模型的輸出進行投票,由此創(chuàng)建一個新的數(shù)據(jù)集。并用這個新的數(shù)據(jù)集訓(xùn)練一個新的語言模型。新的模型稱之為獎勵模型(Reward Model)。
第三步
近端策略優(yōu)化(Proximal Policy Optimization)。利用獎勵模型進一步對范例模型進行微調(diào)和優(yōu)化,從而生成政策模型(policy model)。
為了提高精度,可以把政策模型作為范例模型,反復(fù)使用第二和第三步,直到得出滿意的結(jié)果。
Open AI公司創(chuàng)始人
山姆·阿爾特曼
Chat-GPT是美國Open AI公司開發(fā)出來。
這個公司的創(chuàng)始人是山姆·阿爾特曼(Sam Altman,1985—)。他出生于芝加哥一個普通家庭,在斯坦福大學(xué)學(xué)習(xí)了兩年多后就停學(xué)出來創(chuàng)業(yè)(圖6)。
2015年他說服埃隆·馬斯克(Elon Musk,1971—)投資10億美元創(chuàng)立了Open AI,公司創(chuàng)立時推出了Chat-GPT 1。
2018年馬斯克因故撤離。
2019年公司推出了Chat-GPT 2,但其表現(xiàn)只是一般。這一年,微軟為Open AI注資10億美元。此外還特意建造一個擁有285萬個CPU,10萬個GPU的超級計算機(全球排名第5)供其使用。因此Open AI得以運行那個具有1750億個參數(shù)的深度學(xué)習(xí)網(wǎng)絡(luò)(參見廣東科學(xué)中心「院士說」 | 人工智能之三:神經(jīng)元網(wǎng)絡(luò))。
2022年11月,Chat-GPT 3問世,人們可以通過微軟的云計算網(wǎng)絡(luò)直接使用。2個月間用戶已達1億人。
圖6,山姆·阿爾特曼
Chat-GPT 3是新一代的計算機語言。
它改變了人與計算機連接的方法。它會聊天、做作業(yè)、翻譯、下棋、編程序…...據(jù)人們的測試,它的語文、數(shù)學(xué)和計算機都已達到了大學(xué)生水平。人們與它對話時難以分辨識自己是在與機器打交道。當(dāng)年圖靈所說的人工智能已經(jīng)實現(xiàn)。
微軟公司將把Chat-GPT植入其上網(wǎng)軟件“必應(yīng)”(Bing)。目前試用版已經(jīng)推出。
不過這只是剛剛開始。據(jù)說Open AI將在2023年推出Chat-GPT 4。這個軟件用的是一個1百萬億個參數(shù)的模型,比ChatGPT 3強大數(shù)百倍。它寫作一本6萬字的書只需要一瞬間。
可以預(yù)料,許多人的工作與生活將因此改變。