AlphaCode 取得的成績?它還需要人工訓練嗎?

在編程競賽網站 Codeforces 舉辦的 10 場比賽中,AlphaCode 取得了前 54.3% 成績。這意味著,它打敗了將近一半的人類選手。更為關鍵的是,比賽中的所有代碼都是由 AlphaCode 自動生成,全程無需人工監督。

AlphaCode 取得的成績意味著什麼?它會搶走程式設計師的飯碗嗎?在基礎科學領域,AI 發揮了怎樣的作用?該如何理解人類和 AI 的關係?

近期,由極客公園創始人兼總裁張鵬主持的《今夜科技談》邀請了科普作家瘦駝、Jina AI 創始人兼 CEO 肖涵、一流科技 OneFlow 創始人兼 CEO 袁進輝,他們聊了聊和 AI 有關的話題。

AlphaCode:程式設計師的另類「內卷」?

如何評價 AlphaCode 取得的成績?它還需要人工訓練嗎?

肖涵:AlphaCode 其實不是一個單一的算法,它是根據 GPT-3 模型搭建出來的一個系統。所以我們不認為 AlphaCode 是AI算法上的突破,它的突破在於產生了一個能夠勝任比較複雜任務的系統。

就算法訓練來說,人工智慧的第一步是預訓練。就是把 GitHub 上的程序都拉下來,讓這個模型對編程有初步認識。

第二步是微調。因為預訓練得到的知識並不都是有用的,它們給出了一個大體的世界觀,但如果要解決具體的問題,就需要定向調整。

AlphaCode 做的另外一件事就是構建了一套評判系統。因為基於給定的題目,AlphaCode 可以生成大量答案,但它並不知道這些答案正確與否。所以把問題答案和他給出的答案輸入到這個系統中,就可以評判答案正確與否。

整個過程確實就像 AlphaCode 發布時所宣稱的,可以做到完全無監督。

袁進輝:我認為 AlphaCode 是里程碑式的進展,根據自然語言描述,自動生成可解決算法問題的完整程序,這很了不起。

其實我對 AlphaCode,經歷了從低估到高估再到低估的心理轉變。

在看到論文細節之前,我低估了 AlphaCode。和 GPT-3 訓練自然語言類似,AlphaCode 本質上也是抓取了 GitHub 上的幾百億行代碼,捕捉語言結構,再生成。並且,相比於非常不規律的自然語言,代碼的語法是非常規律的。從這個角度來說,AlphaCode 和以前解決問題的方法差不多。

但令我感到意外的是,我本來以為 AlphaCode 的原理是自動搜索代碼庫中已有的代碼片段,但實際上這些代碼都是預訓練模型自動生成的。傳統上,我們認為 AI 解決的通常是低精度的問題,比如圖片識別準確率 90% 已經很高了,但讓 AI 做到 100% 的準確率極難。而代碼恰恰要求 100%,即使是寫錯一個變量名稱,或者少打一個「;」,程序也會報錯。所以這時我又高估了 AlphaCode。

後來我又看了 AlphaCode 的論文,發現它確實可以自己生成完整程序,但中間也用了一些取巧的成分。比如它會為一個問題生成 100 萬份程序,其中當然有對有錯。AlphaCode 會篩選掉 99% 的代碼,留下 1%。在這 1% 的幾千份代碼中,AlphaCode 又通過聚類篩選等方式,篩選出 10 個答案提交到 Codeforces。只要這 10 個答案中有一個正確答案,就算過了。

所以 AlphaCode 並不是一次性生成解決問題的程序,而是為一個問題生成數十萬、上百萬的程序,經過簡單測試、樣例篩選,最終篩選出正確答案。

袁進輝:我覺得有兩點,一是解決的問題不同,二是方法不同。

這些 AI 編程工具,會取代程式設計師嗎?

肖涵:其實這些 AI 輔助編程工具,都是為了幫助開發者能有更好的編程體驗。只不過 AI 發展到今天已經非常強大,它可以自動把代碼寫完,而不僅僅是填函數名這麼簡單。

但是今天所有的AI都沒有到達取代開發者的程度,開發者本身還是那個最終的決策人。AI 所生成的代碼,僅僅是一個參考。

瘦駝:作為一個文字工作者,我還是想把這件事映射到「自然語言」的領域來。

首先,讓 AI 生成一段沒有任何語法錯誤的代碼沒有那麼難。在自然語言裡有大量不符合邏輯和語法的東西,我們在說話的時候並不是嚴格遵循某種規律的。但代碼本身是嚴格遵守語法的,它有一套通用的邏輯。

第二點,我覺得碼農其實不必太緊張,對於文字創作者來說,我們在前幾年已經碰到過類似的挑戰了。現在一些固定格式的文本已經大量地由 AI 生成,比如比賽結果、股市播報、天氣預報。對於這種有規律可循的文本來說,AI 寫得比人快多了。但是想讓 AI 寫一些有創造性的東西還是非常困難的,因為創造性本質上是對現有邏輯和體系的挑戰,甚至創造性包含了允許 AI 犯錯。對 AI 來說,它很難保持一定的個性,比如《紅樓夢》裡,賈寶玉的詩和林黛玉的詩就有明顯的不同。這種能力,AI 現在可能還很難做到。

肖涵:我覺得性格的差別,無非就是訓練語料的不同。如果我想生成一個朦朧派詩人的風格,我就把所有朦朧派詩人的語料收集起來,訓練一下就可以了。所以我覺得對 AI 最重要的還是數據。算法模型如果能更好地挖掘數據,把數據的價值充分利用起來,那其實所謂的性格也就達成了。

袁進輝:我來補充一個反方向。按照肖涵的邏輯,那如果沒有朦朧派的語料,就生成不出朦朧派的 AI;如果沒有梵谷這個人,就訓練不出梵谷風格的繪畫。所以 AI 在創造層面,本質上還是更像一種記憶,差別在於是一種機械的記憶還是比較聰明的記憶,但其實都跳脫不出原有的範疇。

專業術語裡有兩個詞,「exploitation」和「exploration」。exploitation 指的是保守地在應有的範圍內工作,exploration 指的是在範圍之外探索。也許我們需要給 AI 一點犯錯空間。

在 AI 崛起的背景下,怎麼做一個有價值的程式設計師?

袁進輝:AI 比較擅長做比較機械的工作,但寫代碼也是需要創造性的,寫到一定程度,我們也把它稱之為藝術。代碼也有好壞,寫出來的代碼是不是足夠簡潔優雅,是否有創造性的審美,這可能還是人類的優勢。

張鵬:但這種美,是不是也要能體現在效率上高於丑和複雜的東西,商業世界才會認可?

袁進輝:這種美,確實在效率上有體現。判斷代碼美醜的一個標準,就是可復用性。簡單的代碼有更好的擴展性,未來就可以在更多的地方復用。如果我的代碼只在當前的任務可以用,就是不太好的實踐。

肖涵:我想起來之前國外論壇上有一個特別火的帖子,就是說一個律所僱傭了一個小伙子做類似報表整理之類的工作。恰好這個小伙子懂一點編程,就把這個工作自動化了,程序運行 5 分鐘就可以做完原來一周的工作。兩周之後,這個小伙子內心有點愧疚,就把這件事發到了論壇上,問大家該不該告訴老闆這件事。

我覺得這件事反映了一點——不管他有沒有告訴老闆,機械化的工作一定會被取代。甚至他自己也覺得做這種工作沒有意義,否則就不會有這種糾結。人生總要有點追求,何必在這裡浪費時間?

其次,我覺得出現這些代碼輔助 AI 不是壞事。人類發展到今天,不管是工業革命還是流水線的引入,人類總會從事更高級的職業,會創造更高的價值。總體來說,我覺得這是一件正向的事。

怎麼理解當下很火熱的低代碼、軟體 2.0 這些概念?

肖涵:低代碼出現的原因,其實是過去幾十年我們已經積累了大量的代碼資本。今天任何一個軟體,都不是從頭開始寫的,它們都有自己的上游依賴關係——軟體庫。

實際上我們構建現代軟體的時候,最重要的往往不是創新,而是可復用性。可復用性指的就是,這個軟體完成之後,一定要成為更大型軟體中的一個組件,而不是從頭開始重複造輪子。

當「可復用性」這種概念深入人心之後,於是才有了低代碼、無代碼這種概念。今天我們構建的代碼越來越高級,不再是作業系統這種底層軟體,更多的是面向 C 端用戶的高級軟體。這種情況下就非常凸顯低代碼、無代碼的重要性。

縱觀整個人類的工程史,其實可復用性就是非常關鍵的轉折點——一旦一個東西可以被復用,人類的文明就會發展到一個新高度。我們可以假想一下,一個原始人拿著兩塊石頭碰觸了火花,這是一個偶然嗎?還是說它成為了可以被復用的經驗,於是人類就此掌握火的使用?

所以我更想強調的是,低代碼和無代碼肯定是發展趨勢。但趨勢背後的原因在於,我們現在面向的是更高級的軟體開發,這種開發尤其強調復用性。

袁進輝:我來補充一下軟體 2.0。軟體 1.0 說的是「代碼是數據」。我們在代碼的基礎上,基於數據訓練一個 AI 模型。軟體 2.0 指的是「模型是代碼」。在 AlphaCode 之前,AI 模型早就開始為人寫代碼了。比如圖形識別模型,它的原理是計算機視覺科學家寫了一堆規則——圖片裡有哪些特徵,那這張圖片就是汽車。但是這麼做了幾十年之後,發現這種方法識別率並不高。所以現在的做法是從一堆數據中訓練出一個模型。

以前,代碼必須由程式設計師理解問題之後轉化成計算機理解的語言,計算機才能幫我們解決問題,本質上是一個從物理世界遷移到數字世界的過程。模型即代碼的意思就是,現在我們不需要經過人腦了,只要收集一堆數據,計算機就能自動挖掘數據中的規律,生成模型。

可復用性是判斷代碼好壞的一個重要標準。代碼間復用的情況也越來越普遍,但如果引用的底層代碼本身就有問題,該怎麼辦?

肖涵:現實世界中確實發生過這樣的事。前幾個月 Log4j 軟體包出錯,就造成了非常多軟體公司的恐慌。這樣的問題,在低代碼和無代碼的環境下會更難發覺。因為沒有多少人會去寫這種底層代碼,大家關注的更多是更高級的軟體業務邏輯。

之前在 Javasript 社區還發生了一件事。維護底層代碼的程式設計師因為覺得別人在網上攻擊他,一怒之下把代碼刪了。這導致的後果就是整個復用的鏈條斷了。所以在低代碼、無代碼的環境下,一定要保證上游足夠穩健。即使出錯也要能夠及時修復,這一點非常重要。

袁進輝:其實 AI 的模型是很脆弱的,非常容易被攻擊。實際上訓練 AI 模型的就是一堆數據,簡單理解就是高維空間中的一個方向。如果進來的數據是沿著這個方向的,AI 就判斷得很準。如果進入的數據和那個方向垂直,那 AI 的判斷就會出錯。

前幾年有人在特斯拉的雷射雷達上做了一個實驗,用一個小紙片稍微改變一下傳進去的信號,特斯拉的識別就出錯了。

張鵬:前段時間我還聽到過這種觀點。就圖像識別技術而言,在最初構建 ImageNet(視覺影像網資料庫)的時候,因為當時數據的局限,導致現在形成了一些偏差,比如 AI 對人類的歧視問題。但今天 ImageNet 已經成為了一個基礎設施,無數人在這之上構建了新的設施,這種偏差就成為了一個逐級感染的問題,越來越難以克服。可能在某些時刻,需要一個根本性的重啟,才能解決這個問題。

在基礎科學領域,AI 能夠發揮哪些作用?

瘦駝:對於很多數據敏感型的行業來說,AI 確實解放了很多科學家,讓這些科學家可以去做更多有創造性的工作。

之前討論過,在人類的天文學家中,最容易被 AI 取代的可能是埃德文·哈勃。他花了幾十年時間,從大量數據中發現了星系的「紅移-距離關係」。這本質上是一個數據相關性的問題,放在今天的 AI 身上,可以立刻發現這種數據間的規律。

又比如說快速射電暴,它以前經常被人忽略。因為快速射電暴太短暫了,很容易被認為是數據中出現的一個異常。但是有了 AI 這樣的工具後,就可以從這些不斷出現的偶然異常中發現規律。

我覺得 AI 的出現改變了科學發現的範式,讓我們具備了從數據中找出被忽略的規律的能力。

AI 公司的商業化都很困難,但 DeepMind 在去年盈利了,怎麼理解這家公司?

肖涵:我對 DeepMind 是非常崇敬的,但我不會做這種公司,我個人認為 DeepMind 風險性是非常高的,回本的機率很低。

首先在深度學習的前提下,算力成本和存儲成本的投入是非常高的,這個很好理解。其次是人員原因。每年 DeepMind 都有一兩篇轟動性的論文面世,很重要的原因就在於,它儲備了大量全世界最頂尖的人才。這種人才成本,不是每個公司都能承擔的。深度學習發展到今天,實際上拉大了大公司和小公司間的貧富差距。

我個人其實更看重 AI 在工程領域的突破,如何更好地解決已有的問題,而不是找到一個從沒被解決過的新問題去突破。

袁進輝:DeepMind 的確不太典型,理論上不是一家商業公司。大部分商業公司,一定是要做一個可複製的商業化產品,更多的是考慮市場規模等一系列更實際的問題。

DeepMind 更像一家科研機構。只不過它不像科研機構申請經費那麼困難,DeepMind 背後有谷歌源源不斷地投入資金。

這些年,AI 的發展思路有什麼變化?

肖涵:我覺得有兩點,一是 AI 的解釋性,二是 AI 的訓練過程。

1、解釋性。AI 這些年其實經歷了從可解釋到不可解釋的過程。早期的 AI 是基於一套規則生成的,比如最早的問答機 Eliza,它的邏輯在於,識別你說的話包含哪些字符,經過因果判斷,返回特定的答案。這些回答都是可解釋的,因為程序是寫死的。

後來 AI 發展到 2000 年左右,出現了參數化模型。參數化模型會把圖片、聲音、文本等信息描述成一個數據函數,AI 所要做的,就是填入係數。這一階段的 AI 也是可解釋的。

自 2010 年以來,AI 逐漸轉向了深度學習框架,AI 開始變得不可解釋。因為深度學習框架拆分到最細,其實是由一個一個非線性函數疊加而成的。如果只有一個非線性函數的話還比較好解釋,但疊加在一起的非線性函數有點類似蝴蝶效應,基本上是不可能溯源的。

我們整個深度學習網絡是一個非常深的非線性系統,比如 AlphaCode 就包含 400 多億個參數,實際上無法追根溯源,到底是哪個參數產生的影響。這就好像我們無法判斷,到底是哪一個神經元令人腦產生了意識一樣。

但是今天,又有一些人要求 AI 具有可解釋性。因為隨著 AI 越來越聰明,我們要求它承擔它的社會責任了,比如不能歧視黑人。當出現問題時,就可以找到出現問題的原因,這就要求 AI 可以被解釋。

2、訓練過程。AI 的訓練過程,從一開始的「端到端」過程,拆分成了「預訓練」和「微調」兩步,專業術語叫遷移學習。

其實我本人非常喜歡遷移學習,它為機器學習指明了一個大方向。以往的機器學習,每解決一個問題,就要專門構建一個模型。即使是解決兩個非常相似的問題,比如識別是籃球新聞還是足球新聞,哪怕都是自然語言處理,在傳統機器看來都是不同的任務。

機器學習將端到端訓練的過程拆分成了兩部分。一部分是預訓練,從大規模的語料中學到一個相對通用的知識。然後是微調,將通用的知識去解決特定的細節問題。

這樣拆分的好處在於,大規模語料訓練的模型可以得到復用。因為不是所有公司都有能力構建這種超大規模的模型。可以復用之後,中小公司就可以拿這個模型針對自身特定的領域微調,就能產生子領域上的業務價值,節省了大量人力、物力和時間成本。

袁進輝:我想補充的是,這種大模型還沒到頭,以後還會越來越大。像 GPT-3,參數已經達到 1700 億,但和人腦的神經元連接數相比,還差 1000-10000 倍左右。

一個可能的猜想是,智能或許沒有那麼神奇,只是一個規模的問題,最後會由量變產生質變。必利吉 /必利吉哪裡買/ 必利吉正品/ 必利吉效果

另一種觀點認為,預訓練模型在腦科學和神經科學上也有一定支撐。人之所以這麼聰明,有一部分是後天習得的,但主要還是先天決定的。在一個嬰兒出生之前,大腦皮層間的連接和神經元的突起,就已經大致由基因決定了。在嬰兒出生看到這個物理世界後,神經元之間的連接會根據物理信號微調——有的連接會越來越強,不太使用的連接就會變弱。

這整個過程都非常類似預訓練和微調的模式。所以從某種意義上來說,大模型預訓練的確有生物的合理性。

AI 和人類會是怎樣的關係?

肖涵:我對 AI 能力的增強是非常有信心的。但是,在目前這套方法之下,我認為 AI 可能最終無法產生自我意識。可話說回來,難道AI一定要有自我意識嗎?

50 年後可能 AI 仍然沒有自我意識,但它可以解決非常多重要的問題,要比人類解決得好得多,這個時候你會願意承認這種形態的東西是「智能」嗎?

袁進輝:我傾向於從正面理解這件事,就是 AI 可以解放人類,讓人類去追求更本質的東西,就好像蒸汽機把我們從體力勞動中解放出來一樣。

這讓我想起了劉慈欣的小說《朝聞道》中的一個設定:地球人可以向外星人提任何問題,外星人會告訴你正確答案。但代價是知道答案後,這個提問者會立刻死去。但最終有一個人問了外星人這樣一個問題:宇宙的目的是什麼?外星人也不知道,於是他崩潰了。

張鵬:雖然我們被冠以「擁有自我意識」,但全世界也有大量的人不知道自己的目的是什麼。所以我覺得以自我意識來定義也許是一種人類沙文主義。

瘦駝:我覺得對於 AI 的思考有幾個層面。

一個是哲學層面上的。我認為如果未來AI變得像人一樣,那一定是失敗的 AI。它有人的缺點,有人自己都搞不清的邏輯錯誤,那我們為什麼要造 AI?直接造人不是簡單得多嗎?我們之所以要造 AI,一定是它可以解決人類解決不了的問題,這樣 AI 才有意義。

另外我也有一些應用層面上的顧慮。剛剛幾位也說到,AI 很脆弱。如果我們已經高度依賴 AI 了,一旦底層的東西有問題,犀利士5mg正品|犀利士5mg每日錠| 犀利士5mg| 犀利士5mg哪裡買| 犀利士5mg 28顆價格會造成非常大的影響。

然後是關於解釋性的困局。解釋性的困局其實是用來解放人類自己的,就是想求一個安心。但即便這個說法本身沒有意義,也一定會讓很多人心生警惕。這種警惕,從人作為社會性動物的角度來說,就會對 AI 的發展產生影響。我們需要有一定的準備,不要讓這種警惕發酵到一個比較尖銳的地步,那到時狀況就比較糟糕了。

張鵬:我覺得真正的問題是,AI今天還有大量的基礎工作要做好。我們可以確定,AI 會成為人類未來文明進程中重要的夥伴,但它距離這個角色,其實還有很長的路要走。

今天我們對於 AI 的探討,如果是針對「不要犯一些基礎錯誤」,是有意義的。但在 AI 能力還比較羸弱的時候過度討論「自我意識」之類的話題,其實是很務虛的。

目前还没有人评论

©2023 wailaike.net,all rights reserved