從chatGPT的爆火,縱觀自然語言生成式AI的前世今生
來源:Web3天空之城
原標題:從爆火的chatGPT講起: 自然語言生成式AI的前世今生, 你想了解的一切
全文約1.8萬字。
前言,爆火的AIGC
AIGC在這幾個月成了一個大熱的話題。
頗有些風水輪流轉的感覺,如同年初大火特火的web3一樣,AIGC是現在的當紅炸子雞,創業投資討論里如果不帶點AIGC就是妥妥的落伍。
不久之前,備受關注的開源AI繪畫模型Stable Diuffusion推出了2.0版,引起了更多關注和焦慮:"我連1.0的門道都還沒摸清楚,怎么就2.0了啊"。
沒有跟上AIGC的步伐,仿佛就要被世界所拋棄。
有趣的是,作者前面看到一些AIGC文章,基本都是圍繞著最近大熱的AI繪畫來討論的。
當然了,生成式AI繪畫模型的突破是一件值得大書特書的事情,在作者上一篇文章<AI繪畫何以突飛猛進?從歷史到技術突破,一文讀懂火爆的AI繪畫發展史>里也已經做了深入的探討。
但是,必須指出的是,當下在AI繪畫或者AI生成其他形式內容的大模型里,對自然語言的理解是一個首要的關鍵環節,而之所以AI繪畫能火爆出圈,有至少一半的功勞必須歸結于,當下最新的AI繪畫模型可以直接"理解"用戶的語言輸入,以及在模型內部里把語言內容理解和圖像內容理解緊密結合起來。
生成式AI就像人工智能皇冠上的一顆明珠,不是唯一的一顆,但絕對璀璨耀眼。盡管AI在信息分析處理等各個方面都發揮著重要作用,但"生成式AI"的出現無疑影響更深遠:生成即創造,生成式AI的突破,意味著AI開始走向了創造新內容世界的大道。
羅馬不是一天建成的,就讓我們一起回顧和嘗試理解,這激動人心的一切究竟是怎么發生的。
從chatGPT的橫空出世講起
在回顧歷史前,首先要跟風提一下幾天前發布的chatGPT,一個絕對神仙級別的自然語言生成式AI。
chatGPT誕生的重要意義恐怕不亞于Stable Diffusion等AI繪畫生成模型的出現。有興趣的朋友可以感受去chat.openai.com感受一下這個當今最牛逼沒有之一的自然語言問答式AI的巨大威力。
chatGPT是明星人工智能公司OpenAI的GPT自然語言生成式模型的最新衍生品。在這之前,坊間已經傳聞OpenAI的下一代自然語言生成模型GPT4即將出現。而且,有一個讓人震驚的江湖傳言:GPT4據稱通過了圖靈測試!
圖靈測試究竟是什么意思?簡單的說,就是隔著一個小黑屋問各種話題,然后是否能分辨小黑屋里回答問題的究竟是機器還是人類。如果無法辨別,就就說明了機器具有和人一樣等級的智能,通過了圖靈測試。
迄今為止,還沒有AI模型能真正通過圖靈測試??磥砼R界點已經到,筆者都迫不及待的期待GPT4的真正推出了。
誰知道,還沒等來GPT4,衍生自GPT3.5的chatGPT卻先來了。
顧名思義,chatGPT就是"聊天GPT",以對話的方式交互,用戶問問題,它來回答。
咋聽起來,似乎也沒有很新鮮。但情況是,chatGPT的智能化遠遠超出了那些它的聊天AI前輩們。
好比StableDiffusion/Midjourney也就是AI繪畫,但所能生成的AI繪畫質量甩了前輩無數條街。
網上有越來越多的文章開始安利chatGPT,不過多是拿了外網英文問答的截圖,其實chatGPT可以直接上中文!
先隨意上幾個問答大家感受一下:
問中國菜,算是送分題:
問從希格瑪大廈如何去天tian安門,開始有點難度了,回答非常正確!
(要知道,這可不是某個特地為了中文導航優化的AI,chatGPT是從它通用的知識積累里得到的理解)
對龍珠的劇情理解,回答中規中矩,80分+,本來作者期望它能講得更詳細些:
吃貨國家問題,有點刁鉆了:
廣東人真的喜歡吃甜的?這個問題很多中國人都不一定答得上:
美帝問題來一問(看來chatGPT果然經過了特別設置,過濾了敏感問題):
另外,可以直接問chatGPT怎么寫代碼,比如寫一個俄羅斯方塊:
沒有懸念,代碼完全正確。
而更有想象力的,是讓chatGPT來生成AI繪畫的輸入關鍵詞!讓AI自己來指導AI作畫,多美妙的主意。
這僅僅是一個開始,隨著chatGPT在全網的各種自來水安利,相信還有更多古靈精怪的玩法不斷被網友們挖掘出來。
chatGPT的回答給人的感覺是,這是一個特別靠譜的聊天AI,真正的上知天文下知地理,最關鍵的是,它不胡說八道!正因為它回答的準確性,看起來chatGPT有了替代通用搜索引擎Google的可能性。
OpenAI的CEO薩姆?阿爾特曼(Sam Altman)對ChatGPT的未來發展表示很有信心。他在推特上說,語言接口是未來的一個發展方向,OpenAI只是一個先行者,相信很快大家就能用上真正智能的提供建議的AI助手了。
測試版的chatGPT仍有一些缺點,但這都只是戰術級別的;在戰略上,chatGPT的前景已經相當令人期待,特別是OpenAI下一代GPT4加持下的chatGPT,其能力恐怕更加突破天際。
我們也許正在經歷又一個AI突破的時刻,一如2022年初到年中AI繪畫的勢如破竹。而這次,則是人類通用信息生成的突破!
喜歡刨根問底的讀者們會問,AI是如何走到這一步的?
讓我們遠離現實的喧囂,把目光投回到那有點遙遠的過去吧。
人工神經網絡的起源,在那有些遙遠的年代
從某種意義上,語言表達是人類信息和思想交流的窗口。人類并沒有第七感,也沒有腦電波直達的交流(目前沒有),信息溝通都通過口頭語言和書面語言來傳遞。(當然,可以說還有一些手勢和肢體表達,但信息量基本可以忽略不計)
針對語言信息的人工智能處理,或者學術一點,"自然語言處理NLP",是科學家們最早研究,人工智能最早發源的領域。
遠在1956年,美國的達特茅斯學院舉行了一次具有傳奇色彩的學術會議(Dartmouth Conference),計算機專家約翰·麥卡錫提出了“人工智能”一詞。這被廣泛認為是人工智能正式誕生的日子。
1956年的達特茅斯會議,十位參與的科學家,AI之父們。
這個會議很有意思,事后諸葛亮的我們,一起來看看這個會議7個特別有前瞻性的主要議題:
1、Automatic Computer 自動計算機
"如果一臺機器可以完成一項工作,那么就可以對一臺自動計算器進行編程來模擬這臺機器。目前計算機的速度和內存容量可能不足以模擬人腦的許多高級功能,但主要的障礙不是缺乏機器容量,而是我們無法編寫充分利用我們所擁有的機能。"
現代第一臺電子計算機ENIAC的發明日期是1946年2月14日,也就是說,當時距離第一臺電子計算機的誕生僅僅過去了10年。先驅們的遺憾是當時高級程序技術還基本沒有,無法充分發揮計算機的作用。
2、How can a Computer be Programmed to Use a Language 如何對計算機進行編程以使用一種語言
"可以推測,人類思想的很大一部分是根據推理規則和猜想規則來操縱詞語的。從這個觀點來看,形成泛化就是承認一個新詞和一些規則,其中包含這個新詞的句子暗示和被其他句子暗示。這個想法從來沒有被非常精確地表述過,也沒有例子。"
先驅們對語言文字的機器理解充滿了預期,而直到現在,有了GPT這些當超大規模的自然語言AI模型,我們才堪堪敢說,先驅們的期望逐漸在實現,計算機開始真正理解了語言。
3、Neuron Nets 神經網絡
"一組(假設的)神經元如何排列以形成概念。很多當下的計算機科學家等人已經就這個問題做了大量的理論和實驗工作。已經獲得了部分結果,但這個問題還需要更多的理論工作。"
神經網絡!在AI概念誕生之時,先驅們就意識到了,人工神經網絡的概念將要在AI里發揮重要作用。
4、Theory of the Size of a Calculation計算規模理論
"如果給一個很好的問題(一個可以機械地測試所提出的答案是否是有效答案的問題),解決它的一種方法是按順序嘗試所有可能的答案。這種方法是有效的,要排除它,必須有一些計算效率的標準。一些考慮將表明,為了獲得計算的效率的度量,必須手頭有一種測量計算設備復雜性的方法,如果有函數復雜性理論,這反過來也可以做到。香農和麥卡錫已經獲得了關于這個問題的一些部分結果。"
計算機科學里重要的計算復雜性理論,就是這個時間點被提出和發展起來的。
5、Self-improvement 自我改進
"也許真正智能的機器會進行自我改進的活動。已經提出了一些這樣做的方案,值得進一步研究。這個問題似乎也可以抽象地研究。"
這是一個很有挑戰性的問題,用現在的觀點可以換個說法:AI是否能實現自我編程自我提升?或許很快就可以了。
6、Abstractions 抽象
"許多類型的“抽象”可以被清晰地定義,而其他一些類型則不那么清晰。直接嘗試對這些進行分類并描述從感官和其他數據中形成抽象的機器方法似乎是值得的。"
通過機器智能來對各種信息自動加以分類和抽象,這正是當今各種牛逼閃閃的AI大模型正在達成的成就。
7、Randomness and Creativity隨機性和創造性
"一個相當吸引人但顯然是不完整的猜想是,創造性思維和缺乏想象力的有效思維之間的區別在于注入了某種隨機性。隨機性必須由直覺引導才能有效。換句話說,受過教育的猜測或直覺在其他有序的思維中包括了受控的隨機性。"
先驅們非常直觀的理解,是否有隨機性是創造性思維和非創造性的分析思維的重要區別。
而隨機性需要由一些"直覺"引導,或者說真正的AI需要一種"受控的隨機性"。
其實,當前AI繪畫生成機制里很好踐行了這個洞察:在每一幅AI繪畫背后都是一個AI模型(比如Stable Diffusion)+一個確定的輸入(一組關鍵詞)+一個系統生成的隨機數。同樣的"關鍵詞組+隨機數"輸入到AI模型里,必然生成一個完全相同的AI繪畫作品,這不就是"受控的隨機性"嘛。
達特茅斯會議的參會先驅們都是大神,也值得在這里簡單提一下:
約翰·麥卡錫(John McCarthy),率先提出了AI的概念,開發了碼農熟知的程序語言Lisp。有意思的是,Lisp是在1958年發明的,看看會議的第一個議題,抱怨沒有好用的編程語言可用,大牛的態度就是沒有趁手的工具嗎?那我就自己發明一個!
約翰·麥卡錫在1971年獲得了圖靈獎。
馬文·明斯基(Marvin Minsky),在1951年在普林斯頓大學讀博士的時候,建立了第一個神經網絡自學習機器SNARC(Stochastic Neural Analog ReinforcementCalculator 隨機神經模擬強化計算器),這是第一個真正意義上的人工神經網絡硬件,用3000個真空管來模擬了40個神經元的信號傳遞。
明斯基的博士論文也正是神經網絡。有趣的是,明斯基拿的是數學系博士學位。當時有人挑刺說神經網絡的研究能算數學?而當時支持明斯基的正是大名鼎鼎的現代計算機之父馮諾伊曼.馮.諾伊曼說:現在不算,但很快就得算了。
明斯基在1969年獲得了圖靈獎。
克勞德·香農(Claude Shannon),通信科學鼻祖,大名鼎鼎的香農定理是所有通信制式最基本的原理。和計算機鼻祖并駕齊驅的香農同學就不需要圖靈獎了, 因為在通信領域有以他的名字命名的的最高獎香農獎。
赫伯特·西蒙(Herbert Simon)和艾倫·紐厄爾(Allen Newell)在達特茅斯會議上報告了世界上第一個AI項目“邏輯理論家(the Logic Theorist)”。
這個AI證明了<數學原理>第二章52個定理的38個,甚至找到了比原教材更優美的證明。兩人合作提出了搜索式推理的方法,開創了人工智能除神經網絡學派之外的第二條路線:符號主義學派。這兩位在1975年一起拿到了圖靈獎。
題外話是,這兩位牛和當時數學系主任、第一屆圖靈獎獲得者阿蘭.珀里思(AlanPerlis)一起創立了卡內基梅隆大學的計算機系,從此,CMU成為計算機學科的重鎮。
在達特茅斯會議之前,還有一個1955年的小討論會議"學習機討論會",在那次討論會上,主持人也是神經網絡的鼻祖之一的皮茨Pitts做了一個有趣總結:"...一派人企圖模擬神經系統(Neuron Nets),一派人企圖模擬心智(mind,就是上面西蒙的符號派)... 但最終大家的目的一致"。
這句眼光毒辣的話,冥冥之中預示了隨后幾十年間AI研究"結構V.S.功能"的神經網絡派和符號主義派兩條路線之爭。
潮起又潮落
達特茅斯會議之后,AI進入了一個大時代,人們驚奇的發現,計算機居然可以證明數學定理,學習使用語言。在眾多AI研究方向中,搜索式推理,自然語言處理最有影響力。
從1955年到1974年是AI的第一次發展高潮,大量成功的初代AI程序和研究方向不斷出現。AI先驅們非常樂觀的預言:
"十年之內,數字計算機將成為國際象棋世界冠軍。"(1958年,H. A. Simon,Allen Newell)
"二十年內,機器將能完成人能做到的一切工作。"(1965年,H. A. Simon)
"在三到八年的時間里我們將得到一臺具有人類平均智能的機器。"(1970年,Marvin Minsky)
結果呢?事后諸葛亮看回來,當然是被啪啪啪的打臉啦。
到了70年代初,AI科學家們逐漸發現,雖然機器擁有了簡單的邏輯推理能力,但遇到了當時完全無法克服的基礎瓶頸,這些瓶頸基本就是時代的局限:
1、當時計算機的運算能力問題
且不說當時最原始的計算機那點可憐巴巴的算力了,我們知道,一直到了最近十來年,個人計算機組網之后的并行算力才真正達到了可以支持現代AI大模型訓練迭代的要求。
2、推理需要積累大量對世界的認知信息
這就是個大數據的基礎積累問題。而大數據的積累,也是在現代互聯網的迅猛發展之后,才得到了真正的解決。
還有一個神奇的事情是,人工神經網絡這個當下最主流的AI發展路線,在當時陰差陽錯的遭到了巨大打擊一蹶不振。而暴擊了整個神經網絡研究的,正是人工神經網絡的締造者馬文.明斯基本人。
前面說過,明斯基搭建了第一個神經網絡自學習硬件機器。當時有一位明斯基低一屆的高中學弟弗朗克?羅森布拉特(Frank Rosenblatt),從康奈爾大學獲得博士學位后,跟隨師兄的步伐,獲得了美國海軍研究室資助,研制了人工神經網絡“感知機(Perceptron)”。
1957年,第一個版本的感知機以軟件仿真的形式運行在IBM 704上。1962年,羅森布拉特出版《神經動力學原理:感知機和腦機制理論》,引起了全球AI實驗室的大量關注和效仿,并將感知機系統運用于文字識別,語音識別等領域,神經網絡研究達到了第一次高潮。
而這個時候,明斯基自己回到哈佛任教,申請國防項目卻遭到了挫折,讓明斯基特別郁悶的是,自己曾服役的海軍把經費投給了學弟,支持的卻是自己好幾年前就玩過的神經網絡。數學背景深厚的明斯基拿起數學武器對人工神經網絡進行了扎實的理論分析,并在1969年出版了《感知機》,通過數學理論推演指出羅森布拉特的感知機功能有限,甚至不能解決線性不可分問題。(如不能用一個直線或者一個直面把二維或者三維坐標系中的兩類數據很好的劃分。就是線性不可分。)
明斯基在《感知機》書中暗示說:把感知機從一層神經網絡推廣到多層的思路是沒有希望的。
既然連AI先驅和人工神經網絡締造者本人的明斯克都說,神經網絡這個方向沒戲了,所有的研究者都深感氣餒,神經網絡的研究從此走向了低潮。更可惜的是,在2年后,發明感知機的學弟羅森布拉特遭受意外去世,再也沒人出來挑戰明斯克的結論了。
然而,歷史總喜歡和人開玩笑。事實上,是明斯克錯了。
我們現在已經知道,恰恰是只要把感知機從單層網絡變成多層,就可以解決線性不可分問題。其實當時羅森布拉特以及其他研究者也想到過多層感知機。但苦于一直沒有找到訓練多層神經網絡的方法。直到了80年代中期,相關算法才被找到和提出,人工神經網絡的研究再一次走向繁榮。
總而言之,在70年中后期,因為AI完全達不到所預言的完全智能的程度,只能停留在"玩具"階段。原先過高的承諾引發了公眾過高的期望值,轉而變成徹底的失望和針對AI研究的激烈批評,最終大量機構對基于神經網絡的人工智能研究減少甚至停止撥款。AI研究走進了第一次寒冬。
希望越大,失望越大的專家系統
在80年初,一類名為"專家系統"的AI程序開始為全世界公司青睞,人工智能研究又迎來一波高潮。
什么是"專家系統"?百度百科的解釋如下:
專家系統是一個智能計算機程序系統,其內部含有大量的某個領域專家水平的知識與經驗,它能夠應用人工智能技術和計算機技術,根據系統中的知識與經驗,進行推理和判斷,模擬人類專家的決策過程,以便解決那些需要人類專家處理的復雜問題,簡而言之,專家系統是一種模擬人類專家解決領域問題的計算機程序系統。
一句話說,專家系統根據過往的知識經驗積累來模擬人類專家從而進行邏輯推理和判斷。
等一下,這個說法是不是有點熟悉?聽起來似乎有點像AI先驅赫伯特·西蒙(HerbertSimon)和艾倫·紐厄爾(AllenNewell)所做的第一個AI項:“邏輯理論家(the Logic Theorist)”。
事實上,這正是人工智能兩大路線的符號主義派的成果體現。第一條路線神經網絡派在當時被自己的鼻祖明斯克按在地上摩擦,第二條路線則在80年代初恰逢其時的站了出來。
和神經網絡旨在研發通用結構的AI模型不同,專家系統基于符號邏輯的概念。它們通常是由特定領域的專家(比如醫藥,金融或者制造業)開發的,僅限于一個很小的知識領域,依據一組專門知識推演出的邏輯規則來回答特定領域的問題。而隨著專家系統的熱門,"知識處理"也隨之成為了主流AI研究焦點。
專家系統的一個典型項目是專家配置器XCON(eXpert CONfigurer),由卡內基梅隆大學為DEC公司設計開發。該系統可以說是世界上第一個(特定領域的)推薦引擎,通過幾千條規則來對計算機部件的選擇進行最優化。從1980年投入使用以來,它為DEC公司制造VAX系列電腦節省了數千萬的成本。隨著XCON的成功被更多企業所了解,專家系統在80年代中期迎來了它的繁榮,造就了一個數十億美金的市場。
不過,最為普通人所熟知的專家系統應該是后來的IBM超級計算機"深藍"。IBM從1985年開始研發"深藍"計算機,它是一個專門針對國際象棋的專家系統。 1996年,它在六場比賽中的一場中擊敗了國際象棋大師加里·卡斯帕羅夫(Garry Kasparov),名揚天下。
但專家系統在工業界多少有點曇花一現,繁榮之后迎來的是迅速的沒落。這是因為80年代的專家系統存在著基礎性的問題,首先就是專家系統的知識領域過于狹窄難以拓展。
說到這里,筆者讀書時曾經困惑過,為什么"深藍"那么牛逼的系統,贏了國際象棋后好像就泯然眾人矣,并沒有繼續在其他領域發揮光和熱。
而答案就是,看來它只能用來下國際象棋。
此外,在專家系統變得越來越龐大后,為其提供和管理數據,開發和測試都變得越來越復雜。更要命的是,專家系統是不會自己學習的,這意味著必須不斷更新底層邏輯來保持專家系統解決領域新問題的能力。這大大增加了系統維護成本和復雜性。
因此,到了80年代末期,大家都看明白了,專家系統雖然有點用,但領域過于狹窄,更新迭代和維護成本非常高。專家系統開始迅速在業界失寵,很多相關公司破產。
這就是人工智能的第二次繁榮后的又一次寒冬。而導致第二次AI寒冬的原因,除了前面所說的應用范圍的局限性和商業過分追捧導致最后泡沫的破裂,還有那兩個老大難問題:
(1)計算機的算力瓶頸仍然無法突破
(2)仍然缺乏訓練AI的足夠海量數據
有些讀者或許會問,在當下這兩個老大難問題或許可以說初步被解決了,那么專家系統這條路線是否重新有用武之地呢?
答案是肯定的,就在最近,Meta提出的人工智能Cicero成為了AI領域的熱門新聞,Meta做出了這個史上最復雜的多人外交策略AI,和人玩在線版「外交」游戲。在每場比賽中,Cicero可以自己查看比賽情況,了解各個玩家的行動歷史,模擬真人和不同玩家溝通,從而預測其他玩家的行動。它能自行制定計劃,并通過人類語言與其他玩家進行協調執行策略,沒有人察覺出它是AI。
MetaCiceroAI成功的關鍵因素,正是重新引入了和大數據模型結合的專家知識系統。
在當年的專家系統開始走向低谷之時,深度學習的前身人工神經網絡卻取得了革命性的進展,在1986年戴維·魯梅哈特(David Rumelhart),杰弗里·辛頓(Geoffrey Hinton)等人推廣了由保羅·韋爾博斯(Paul Werbos)發明的反向傳播算法(BP算法),使得大規模多層神經網絡訓練終于成為可能。
反向傳播算法使得神經網絡的中間級可以學習到數據輸入的有效表達,這就是神經網絡乃至深度學習的核心思想。困擾AI先驅們的多層神經網絡無法訓練的難題終于被突破了。
不知道曾親自給神經網絡蓋棺定論的明斯基,當時聽到這個消息的心情是什么。
稍作休整,在我們步入當下的第三次浪潮之前,先再來回顧一下人工智能的兩條路線之爭:
符號主義:傳統的研究思路,主張通過功能模擬入手,把智能看做是符號處理的過程,采用形式邏輯來實現人工智能,所以稱之為"符號主義(Symbolism)"或"邏輯主義(Logicism)"
符號主義可以對形式化表達的問題(比如下棋,數學定理證明)有效,但人類很多的常識,以及接收的很多信息都無法用符號表達,比如視覺聽覺等基本感知能力,雖然不像邏輯推理這樣高大上,但符號主義至今都沒有好的辦法處理;而類似想象力,創造力,情感和直覺這些人腦特有的認知能力,目前更是符號主義無法企及的領域。
神經網絡:和符號主義功能模擬這種自上而下的思路相反,神經網絡就是徹底的自底向上的結構仿真路線。直接模仿人腦智能的物質基礎神經網絡,希望通過人工方式構建神經網絡,從而產生智能。從羅森布拉特的感知機,一直到當下大眾所知道的深度學習網絡,這個路線把智能活動看做是大量簡單神經單元通過復雜連接和并行運行之后的結果,所以也被世人稱為“連接主義(connectionism)”。
大算力,大數據,大力出奇跡
2006年,杰弗里·辛頓(Geoffrey Hinton)在science期刊上發表了重要的論文<Reducing the dimensionality of data with neural networks>,提出深度信念網絡(Deep Belief Networks, DBNs),"深度學習"正式誕生,基于人工神經網絡的第三次AI發展浪潮開始了,且一直延續至今。
和前兩次浪潮不同的是,當下計算機性能已經能讓大規模的人工神經網絡模擬得以成為現實。在1957年,羅森布拉特用IBM 704去仿真感知機,每秒完成1.2萬次浮點加法,而如今超級計算機速度是IBM 704的10萬億倍以上。
此外,個人計算機GPU近些年發展迅猛,盡管GPU的初衷是為了加速3D圖形計算,但通用GPU的計算模式正好匹配了神經網絡并行計算的需求特點,從而進一步推動了神經網絡模型的發展。
除了算力之外,限制前兩次AI浪潮發展的另一主要因素就是數據的缺乏。在深度學習理論模型提出之后,最早之一意識到了AI學科發展的數據鉗制并著手去解決的是華人女AI科學家李飛飛。年輕的李飛飛以堅韌不拔的大無畏精神推動完成了一個超大規模的開源圖片標注數據庫,這就是著名的Image Net項目。 在2009年正式發布時,Image Net有超過1000萬數據,兩萬多個類別。
2010年開始,Image Net大規模視覺識別挑戰賽(ILSVCR)開始舉辦,全世界圖像領域深度學習的專家們同臺競技和交流,從此拉開了計算機視覺的新篇章。
額,本文主要是關注自然語言大模型的前世今生的,而Image Net完全是圖像領域的工作。但是,Image Net的出現和發展給了自然語言AI模型研究一個很重要的啟發。這就是圖像領域深度學習的預訓練概念。
大家都知道,"深度學習"顧名思義,就是具有很多層級的神經網絡模型?,F代神經網絡模型的網絡結構層數很深,動則幾百萬上千萬參數量。而這些神經網絡模型在能做特定任務之前,都是需要經過"訓練"的,即根據標注好的特定訓練數據去反復調整模型里的參數,最后所有參數調整到位,模型能匹配訓練數據集的輸入和輸出。
那么,問題來了,要調整深度學習神經網絡模型里那成千萬的參數量,如果訓練數據少了,肯定很難調整到位啊。這就好比一個內部齒輪復雜精密的新機器,如果只稍微動一下,內部能牽扯到的齒輪機構說不定都很少,達不到磨合的目的;只有大規模長時間運轉起來,內部的齒輪才能全速轉起來,互相磨合好。
但是,那些特定的AI任務往往沒有那么多訓練數據啊,這可怎么辦呢?
非常值得慶幸的是,AI科學家研究發現了深度學習網絡一個有趣的特性,對于圖像領域的深度學習神經網絡而言,不同層級的神經元學習到的是不同邏輯層級的圖像特征!
如上圖所示,若將訓練好的網絡每層神經元學習到的特征可視化,會發現,最底層的神經元學習到的是線段等特征,第二層學到的是人臉各個五官的特征, 第三層學到的是人臉輪廓的特征,這三層構成了人臉特征的邏輯層級結構。神經網絡越底層的特征越基礎抽象,比如什么邊角弧線等,而越往上層,就具體和任務相關。是不是很神奇?
一個訓練好的深度學習網絡的內部參數,在底層體現了通用和基礎的特征,而越到高層,越和特定任務相關。這是深度學習神經網絡一個特別棒的特性。
人們開始動腦筋了,既然是這樣,那么是不是可以先用標準的大數據集比如Image Net來做深度學習網絡的"預訓練"呢?反正那么多層的神經網絡里,大多數的層級都和特定任務關系不大,我們只需要把通用大數據預訓練得到的網絡模型結果,再結合任務相關的那點可憐的標注數據去微調(Fine-tuning)高層的網絡參數,使得高層參數輸出更匹配當前領域的任務,不就OK了嗎?
這樣一來,原本因為數據不足而無法訓練的特定任務也能解決了。即便任務的訓練數據不缺,先通過預訓練過程也能極大的加快特定任務訓練的完成速度。 預訓練這種通吃的解決方案人見人愛,很快在圖像處理領域廣泛流行開來。
既然在圖像處理領域的深度學習里預訓練這么管用,搞自然語言處理AI的同學們自然也會在心里想,為什么不在自然語言處理領域里做預訓練這么香的事情呢?
自然語言AI的深度進化
首先呢,自然語言處理的研究里,有個基本概念叫做"語言模型",大致理解起來也簡單,就是想辦法打造一個核心函數P,這個函數通過一個句子里前面的所有單詞來計算下一個單詞的概率大小。一句話里的單詞總是順序出現的,每個單詞都可以通過前面所有單詞計算出這么一個概率,把所有這些單詞的概率乘起來,總概率數值越大,說明這越像是人說出的話。
怎么構造這個神奇的函數P是AI科學家的事情,但讀者們一定可以明白,有了這個牛逼的"語言模型"函數P,計算機就會說人話了。
而從神經網絡學派的同學看來,是不是可以用神經網絡來打造這樣一個語言模型呢?就是說用很多的現成語料,來訓練出一個神經網絡,然后給這個神經網絡模型輸入一句話的前面幾個詞,這個模型就能計算出這句話的下一個單詞。
這就是大名鼎鼎的"神經網絡語言模型"NNLM。
NNLM神經網絡語言模型的想法并不是最近冒出來的,它的歷史要追溯到20年前。NNLM的論文在2003年就被發表出來了,而當時,深度學習的概念還只存在于杰弗里·辛頓(Geoffrey Hinton)的腦袋里。
所以,不幸的是,NNLM當時沒有引起學界多少反響,被埋沒了近10年。事實上,在深度學習大火之前,用神經網絡做自然語言處理甚至會被笑話,之前自然語言處理的主流研究方式還是基于統計學的機器學習方法。神經網絡語言模型NNLM這個概念太超前時代了。
一直到了2013年, 深度學習概念提出來7年之后,深度學習神經網絡模型先是在圖像和語音領域大顯神威,自然語言AI的同學終于想起了這篇十年前的論文。NNLM重出江湖,為世人所知:
在2013年,AI研究人員倒騰了一個自然語言處理的處理模型 Word2Vec。顧名思義,"Word2Vec"就是"word to vector,從詞到向量"。研究人員的目標是把一個單詞變成一個數學向量,這個數學量在NLP里有個專門的名詞,叫做Word Embedding(詞嵌入)
為啥要變成一個向量,出發點也很簡單,如果能將每個單詞都能表示為數學空間里的一個向量,那么是不是理論上,在這個向量空間里比較接近的詞,就是意義接近的單詞呢?這樣計算機不就可以方便的理解單詞之間的聯系了嗎?
Word2Vec翻出了十年前的NNLM。NNLM的初衷只是想構建一個神經網絡語言模型,根據前面的詞,來預測后一個是什么詞。NNLM網絡內部構造了一個隨機初始化的矩陣,通過不斷的訓練,來達成NNLM模型預測單詞的目的。
特別湊巧的是,研究人員發現這個訓練出來的內部矩陣的每一行,正好可以作為每個詞的嵌入向量Word Embedding!這真是得來全不費功夫啊。
NNLM和Word2Vec使用了類似的神經網絡結構,不過因為目的不同,其訓練方法理念是截然不同的。NNLM作為語言模型,是要看到上文預測下文,所以訓練時輸入的是句子上文單詞;而Word2Vec呢?因為它的目標是要找出所有單詞之間意義遠近的數學關系,所以訓練時都使用句子上文和下文作為輸入。
不知道讀者意識到沒,這兩種訓練方式在更高的意義上有著一些本質區別,就好比我們人類說話,都是順序說出來一個個單詞的,說不定呢,人的潛意識或許也是一個類似NNLM的P函數,自覺不自覺地的決定人說話里的下一個詞是什么。因此只從上文預測下文的訓練方式,貌似天然更契合"生成式"的邏輯。
而Word2Vec這種通過上文和下文輸入來訓練的方式,可以比喻成機器來做閱讀理解,就像是我們做語文或英語的閱讀理解,一定是通讀全文,然后根據上下文來理解和判斷問題的答案。這樣的人工智能,就是所謂分析式的AI。
兩種模型訓練的思路,在后續發展里變成了自然語言模型的兩種路線。本文開頭提到的OpenAI生成式模型GPT系列,堅定的只用上文進行訓練,用以追求"純粹"的生成;而Google公司的大語言模型Bert,則采用了上文和下文一起訓練的模式,此乃后話。
前面提到,圖像處理領域里使用大規模通用數據進行"預訓練"所取得的效率和成果實在讓人羨慕,而在自然語言處理領域里,其實也有一點點"預訓練"概念的,這個預訓練就是,每個單詞的Word Embedding可以反過來初始化神經網絡的內部參數。
不去探究數學細節,讀者只要知道,這種"預訓練方式"和前面圖像處理領域的低層級網絡預訓練方式有點類似,但問題是利用Word Embedding只能初始化第一層網絡參數,和圖像處理領域的預訓練能有效初始化大多數網絡層級不可同日而語,只能說是一種比較原始初級的"預訓練"了。
但直到2018年前,這就是NLP領域里能采用的預訓練典型做法了。
采用Word Embedding來初始化NLP神經網絡有那么點效果,但沒有期待的那么好。這里面還有一個邏輯上的原因:一個單詞有多義詞問題。所以企圖在一個數學空間里用一個固定的數學向量來表征一個單詞的意義,還要求含義相近的單詞都聚在一起。在面對多義詞的時候,這在邏輯上顯然就是矛盾的。
當然了,聰明的AI研究人員肯定還是有辦法。既然一個單詞存在多義性,固定的Word Embedding向量無法表達單詞的多個含義,那么是不是可以先訓練好一個單詞的Word Embedding,然后在實際使用中,根據句子里的上下文語義去動態調整這個Word Embedding數值,這樣經過調整后的"動態Word Embedding"更能準確表達單詞在上下文的具體含義,同時自然的,解決了多義詞的問題。
這個根據當前上下文來動態調整Word Embedding的想法就是頂級學術會議NAACL 2018年的最佳論文"Deep contextualized word representation",這個NLP模型命名為ELMO(Embedding from Language Models,基于語言模型的詞嵌入)
ELMO引入上下文動態調整單詞Word Embedding后,多義詞問題就被徹底解決了,而且比預期的解決得還好:利用ELMO改進過的多種不同NLP任務,性能上都有幅度不同的提升,最高達到了25%,不愧是最佳論文。
此外,ELMO還有一個貢獻,研究人員發現ELMO所使用的深度神經網絡模型里,不同層次提取到的特征是有差異的??吹竭@里,讀者想起了什么沒有?是不是和圖像預訓練的模型層級特征有點像了?
讓我們復習一下,前面講過,圖像處理領域進行大規模預訓練后,把深度學習網絡每層參數做可視化后可以看到,深度學習網絡每一層都對應著不同抽象層級的"特征",在圖像領域里,就是從底層的線段,到中間層的具體五官細節,再到高層的臉型,等等。
再說一次,"預訓練"為什么是一個特別重要的概念?這是因為好的"預訓練"可以直接利用大量標準通用的的訓練數據(圖像領域就是圖片,NLP領域就是語料),把深度學習模型調整到了90%甚至更高程度的可用狀態,預訓練好的模型最后通過任務相關的少量訓練數據,就能微調至完全勝任各種特定任務,這真是一個很美妙的事情。
那么,ELMO出現后,自然語言處理領域的"預訓練"有可能趕上圖像領域了嗎?
遺憾的是,還差一口氣。
因為技術原因,LEMO模型在抽取文字特征方面還比較弱,這是一個技術上的缺陷,意味著這個模型就無法很好完成NLP的"預訓練"夢想:特征都抽取不好,怎么讓網絡里每一層具體表達不同邏輯層級的特征呢。而從技術細節上對比,也會發現ELMO這種"預訓練"方法和圖像領域的預訓練方法,兩者在模式上還有很大差異。
自然語AI研究人員還需要繼續找到一個方法,希望這個方法能很好的提取出文字的特征,就類似圖像處理領域的神經網絡模型,能很好的提取圖像不同邏輯層面的特征。
恰就在時間剛好的2017年底,Google研究人員發表了一篇里程碑式的論文<Attention is all you need>,這一篇論文提出的"自我注意力"機制讓自然語言處理揭開了嶄新的篇章。
注意力機制和Transformer
2017年12月,Google在頂級機器學習會議NIPS上發表了論文《Attention is all you need》,提出在機器翻譯上大量使用自注意力(Self Attention)機制來學習文本表示,并把這種機制模型起了個霸氣的名字:Transformer。
這篇論文一經出世就橫掃了整個自然語言處理學術界,Transformer迅速的取代了深度學習里傳統的循環神經網絡(RNN)成為了之后的大語言模型的標準配置。
Transformer是目前NLP領域里最強的特征提取器,本質上Transformer是一個疊加的''自注意力機制"構成的深度網絡。
包括我們現在所知道的OpenAIGPT系列模型,以及GoogleBERT系列模型,都受到了這篇文章的啟發采用了部分transformer的架構,從而取得了突破性的效果。
先說個題外話,筆者感慨,論文是否牛逼,一看題目就知道,這篇論文連題目都如此特別和霸氣。
話說回來,什么是注意力機制?深度學習里的注意力機制其實是一種思想,參考借鑒了人類的注意力思維方式。
視覺注意力機制是人類視覺所特有的大腦信號處理機制,我們的眼睛會快速掃描全局圖像,得到需要重點關注的區域,就是所謂的注意力焦點后,再進一步對相關區域投入更多的關注。這是人類在長期進化中獲得的一種生存機制,極大提高了人類信息處理的效率和準確性。
深度學習的注意力機制在概念上參照了人類的視覺注意力機制,核心目標就是從眾多信息里選擇出對當前任務更重要和關鍵的信息。
具體到NLP自然語言處理領域里,在之前,注意力機制一般是指輸出句子里某個詞和輸入句子每個詞之間的相似度。這也很好理解,就是去尋求問題(輸入)和答案(輸出)之間的關系么。
但Google這篇<Attention is all you need>的特別之處,是明確指出了,我們其實不需要先考慮輸入和輸出的關系啊,為什么不參考人類理解語言的方式, 首先"學習"一句話內部單詞之間的關系呢?這就是所謂的"SelfAttention自注意力機制":指的是輸入元素之間,或者輸出元素之間的內在聯系機制。
如上圖所示,Self Attention自注意力機制尋找到了一個句子里單詞之間的語義特征,"it"指代的是"the animal"
稍微想一下,Self Attention自注意力機制在邏輯意義上非常清晰,它讓機器去理解人類語言每句話里單詞之間的語義關系。
除了邏輯上看起來更有道理,Self Attention機制還附帶了一個很大的好處:因為網絡層面拋棄了傳統的RNN(循環神經網絡)模型,徹底規避了RNN不能很好并行計算的困擾,極大提高了模型并行訓練計算的效率。更不用說,Attention注意力機制只關注部分信息,參數較少,容易訓練。
有趣的是,谷歌研究人員在這篇重要論文里差點使用了"注意力網絡"這樣的命名,只是他們覺得這個名字聽起來實在不夠響亮,后來團隊里一位工程師給起了個名字Transformer,這看起來就高大上很多了。
基于自我注意力機制的Transformer模型的出現是革命性的,最最重要的一點,它能實現自我監督學習。所謂自我監督,就是不需要標注的樣本,使用標準的語料或者圖像,模型就能學習了。
在Tranformer出現之前,我們要訓練一個深度學習模型,必須使用大規模的標記好的數據集合來訓練神經網絡。對數據進行標注只能人工進行,金錢和時間成本都相當高。
讀者如果還有印象,在筆者上一篇關于AI繪畫的文章里有講到,對于AI繪畫至關重要的跨模態模型CLIP之所以成功,是因為它使用了互聯網已經帶文字標記的圖片作為訓練數據,巧妙規避了超大規模數據標記的難題。
而回過頭來,Transformer的核心是在數學上計算輸入元素之間的關聯(Attention),通過這種模式,Tranformer成功的消除了訓練數據集的標注需求!
這簡直是感天動地,我們可以想象一下,從今以后,互聯網上或者企業數據庫里海量的文本數據都能直接成為大模型的訓練數據源了。
NVIDIA創始人兼CEO黃仁勛在2022 NVIDIA GTC大會上表示說,Transformer使自我監督學習成為可能,并無需人類標記數據,AI領域出現了“驚人的進展”。因此,Transformer正在越來越多的領域中發揮作用。比如用于語言理解的Google BERT,用于藥物發現的NVIDIA MegaMolBART以及DeepMind的AlphaFold2都要追溯到Transformer的突破。
上面又提到了Google BERT語言模型。這里要插一句,Google引以為傲的語言大模型BERT的架構和OpenAI GPT其實非常像,但有一個簡單而本質的區別, 在訓練階段,Google BERT輸入上文和下文來訓練,OpenAI GPT系列一直堅持只輸入上文訓練,而結果就是,Google BERT在體現AI分析能力的各種閱讀理解等問題上,都表現上佳;而OpenAIGPT術業有專攻,在生成式AI(比如回答各種問題,創造各種文字內容)上一騎絕塵。
不夸張的說,Transformer是迄今為止發明的最強大的模型之一。斯坦福研究人員在2021年8月的一篇論文把tranformer稱之為"基礎模型"(Foundation model),認為它推動了AI整個范式的轉變。
GPT3,神功初成
受Google論文啟發,基于Transformer模式的GPT系列模型作為OpenAI的當紅炸子雞,風頭當下無兩。
GPT全稱是“Generative Pre-Training”,直譯過來就是"生成式的預訓練",有意思吧。
如前文所說,OpenAI對GPT的生成式AI有堅定的信念,因此在訓練模型的時候,只選用"上文"來訓練模型,也就是說,GPT本質上是一個極致的概率模型,它根據上文提示,來猜測下一個單詞應該是什么。
這個堅持雖然在一開始GPT1和GPT2時代讓其輸出效果稍遜于同期Google的語言大模型BERT,但到了GPT3時期,在超級規模網絡參數的加持下,GPT這個100%純粹的生成式AI終于迸發出耀眼的光芒,模型輸出效果甚至大幅超越了研究人員的預期。
盡管沒有實證,但筆者很傾向認為GPT3的極大成功和OpenAI堅定不移的只用上文來訓練模型有著某種必然的關系,人的語言溝通也從來都是按順序表達的,沒有誰先把一句話的最后一個詞說完才回頭考慮上一個詞。從這點來看,GPT系列模型順應了人類思考的邏輯,最終由量變推動了質變。
終于,借助了Transformer,GPT這樣的超大規模語言模型(GPT-3有1750億個參數)在不需要標記數據的情況下,可以借助現成的海量標準數據以及超級算力,得到通用的"預訓練"版本模型。
可能有讀者會繼續問,有了預訓練好的模型版本后,GPT怎么能以適應各種各樣的特定任務(或者專業一點,"下游任務")呢?GPT論文里給出了簡單的改造施工圖,附在這里讀者們有點直觀感性感知即可??傊ㄟ^簡單的改造操作,GPT就能很好適應不同的任務。只需要在輸入部分調整一下就可以了,非常方便。
補充一句,或許正是因為改造特別方便,OpenAI的研究人員才能在GPT3.5版之上改造出一個問答專用的chatGPT。雖然還不是基于大殺器GPT4.0,但chatGPT所展現出的超強內容生成能力,在這幾天已經在大眾用戶群體里刮起了超級旋風。
從GPT3到chatGPT,進化繼續
在歷史長河里走了過來,終于回到了本文開頭的主角chatGPT。
如果讀者已經理解了前面關于深度學習神經網絡的變遷和發展之路,再來看chatGPT的技術升級,就是特別簡單的事情了。
chatGPT是基于GPT-3.5模型的魔改。GPT-3.5和3.0的區別呢,首先是和微軟合作,在微軟的Azure AI云服務器上完成了訓練;另一個重要的區別是其訓練數據集里除了文字,還加入了代碼,因此chatGPT現在已經可以寫程序,甚至給現成的代碼找bug了。
為什么試用過chatGPT的同學都感覺提升很明顯?一個重要的原因是chatGPT引入了一個新的訓練方法 RLHF(論文<Training language models to follow instructions with human feedback>發表于22年3月),簡單的說,就是用人類反饋的方式加強訓練。
看這個簡單的描述顯然不能感受到技術的提升,不過我們只需要理解,這其實就是在GPT3的大數據預訓練之下,再次加強了人類的反饋。
有趣的是,前面基于Transformer的通用大數據無監督訓練模式把自然語言的自動學習做到了某種極致,而這個RLHF又重新撿起了"手動檔"人類反饋機制, 貌似有一點返璞歸真的感覺。仿佛是武功高手練至化境之后,又重新拿起了最早的野球拳,一招使出了無與倫比的超越功力:)
chatGPT還有一個很重要的特點,就是針對輸出有效性上做了非常好的調整。使用過chatGPT的同學一定能感覺到,chatGPT并非每一個問題都能回答詳盡,但它絕對沒有胡說八道,chatGPT的回答和真實世界的情況是相當一致的。做到這點很不容易,也是chatGPT和之前容易亂說一氣的問答AI模型前輩最大的不同。
另一個和確?;卮鹩行酝瑯又档藐P注的改進是,chatGPT在道德約束上做得很出色。如果我們去詢問一些逾越了道德邊界的問題,或者一些特別敏感的問題,chatGPT基本都能察覺和回避。這讓我們想起了AI繪畫大模型最讓人詬病的地方,那就是通過AI生成18x圖片,盡管這不是一個技術問題,但對于一個智能內容生成平臺,我們顯然要有方法管理好內容的質量,以及內容的道德邊界。在這一點上,chatGPT帶了一個好頭。
chatGPT的試用版在OpenAI的RLHF論文發出半年之后剛剛推出,根據OpenAI研究人員自己的說法,內部經過了大量調優,而且即使當下,chatGPT還是有很多需要改進的地方。但無論如何,chatGPT已經展示給我們所有人,自然語言生成式AI所能達到的全新高度。
筆者特別憧憬GPT4.0的chatGPT改版。如果如傳說那般,GPT4.0已然突破了圖靈測試,筆者對基于4.0版本的chatGPT抱有無限的期待。說不定,作者在上一篇文章里預言的,AI大模型來寫長篇玄幻小說的時代,馬上就要來臨了。
后記
如果能耐著性子讀到這里,讀者應該自然語言的生成式AI的前世今生有了一點概念。
回過頭來再問一次,對于"預訓練"這個深度模型里的重要概念。讀者有沒有想過,預訓練到底是什么?
對,具體而言,預訓練就是在幾千億參數的支持下,類似GPT這樣的超級模型灌入了難以計量的文本訓練數據(說不定已經把全世界可以搜刮到的文本都拿來用了)來訓練得到了一個通用大語言模型。
不過,在更高的一個角度去暢想,當我們把全世界的文字信息直接灌進擁有數千億參數的AI模型里,模型在網絡的各個層級上抽取和記憶這些文字里的特征信息。那么,GPT這樣的超級模型實際上就在通過所謂預訓練方式,學習到了人類所有文字信息的全部特征,直接把人類的語言智慧記在了自己幾千億量級的神經網絡大腦里。
做到了這種程度,真的就像是我們用人類的全部知識體系來培養出了一個超級強大的機器大腦,這個大腦通過它超大規模的人工神經網絡規模接納學習了人類創造的所有內容。進而,針對人類的任意問題,AI可以做出連圖靈測試都無法區分的真正智能回答。
人類已經馬上無法分辨,在小黑屋后面,那究竟是一個人還是一個AI了。
這一天來得比想象更快。
一個能容納和理解人類全部文字知識,并做出真正智能回答的AI,我們是不是可以簡單認為,今天,真正的機器智能,已然誕生。
作者公眾號:Web3天空之城(ID:Web3SkyCity)
轉載請在文章開頭和結尾顯眼處標注:作者、出處和鏈接。不按規范轉載侵權必究。
未經授權嚴禁轉載,授權事宜請聯系作者本人,侵權必究。
本文禁止轉載,侵權必究。
授權事宜請至數英微信公眾號(ID: digitaling) 后臺授權,侵權必究。
評論
評論
推薦評論
全部評論(2條)