繼圍棋機器人AlphaGo和人工智慧預測蛋白摺疊系統AlphaFold之後,DeepMind又將人工智慧觸角伸向了程式設計。
今年2月初,就在大家正歡度農曆新年的時候,Google 母公司 Alphabet 旗下的人工智慧明星企業DeepMind向外界宣佈了其最新打造的程式設計 AI——AlphaCode。而這也是繼圍棋機器人AlphaGo和人工智慧預測蛋白摺疊系統AlphaFold之後,DeepMind強大的人工智慧觸角又一涉足的領域。
根據程式設計競賽網站Codeforces和DeepMind官網透露的資訊,AlphaCode 在測試中雖然暫時還達不到業內頂尖水平,但也基本達到了預期的排名,大概能夠躋身於人類程式設計師的前54%之列。
然而,隨著各路媒體開始對AlphaCode爭相報道,一些脫離事實的宣傳偏差開始出現,例如“AlphaCode即將搶走程式設計師的工作”、“AI比你更會寫程式碼”之類的標題競相湧現。可以說,歷次相似事件的重複上演凸顯了人類對人工智慧日益增長的能力進行框架化的普遍問題。
▍測試可以衡量智慧嗎?
幾十年來,人工智慧研究人員和科學家一直在尋找可以衡量通用人工智慧(AGI)進展的測試方法。在聯想了人工智慧與人類思維的關係後,他們轉向了以人類智慧為基準。
在現實中,由於多維度和主觀性因素,人類智慧可能很難衡量。但總的來說,有一些測試和比賽還是公認的可以用來衡量認知能力是否良好的標誌,代表性的如圍棋、程式設計和科學研究等。
當你把上述測試和比賽看作是一個將問題對映到解決方案的函式後,解決方案空間的大小就取決於問題了。例如,圍棋的解決方案空間要比象棋大得多,因為它有一個更大的棋盤和更多的可能走法。而相比圍棋,程式設計挑戰顯然有更大的解決方案空間,畢竟幾百上千條指令可以用幾乎無窮無盡的方式進行組合。
但在每一種情況下,一個問題都與一個解決方案相匹配,並且解決方案可以與預期結果進行權衡,無論是遊戲的輸贏、回答正確的問題、獎勵最大化,還是透過程式設計挑戰的測試案例。
當測試物件是我們人類時,這些競賽確實考驗了我們智力的極限。考慮到大腦的計算能力有限,我們無法進行窮舉式的蠻力破解。沒有一個象棋或圍棋選手能在合理的時間內評估每一回閤中可能的數百萬或數千步棋。同樣,程式設計師也不可能隨機檢查每一個可能的指令集。
相比之下,我們是從合理的直覺開始(歸納),將問題與之前看到的模式相匹配(歸納),並不斷應用一套已知的規則(演繹),直到我們將解決方案完善為一個可接受的解決方案。正是透過訓練和實踐來磨練這些技能,我們變得更善於在競賽中找到好的解決方案。
而且,在掌握這些競賽的過程中,我們發展了許多可以應用於其他問題的一般認知技能,如計劃、策略制定、設計模式、思維理論、綜合、分解以及批判和抽象思維。這些技能在其他如商業、教育、科學研究、產品設計和軍事等現實環境中也會派上用場。
在更專業的領域,如數學或程式設計,測試具有更實際的意義。例如,在程式設計比賽中,程式設計師必須將一個問題陳述分解成更小的部分,然後設計一個演算法來解決每個部分,並將其全部組合起來。這些問題往往有一些有趣的轉折點,要求參與者用新穎的方式思考,而不是使用腦海中第一個想到的解決方案。
有趣的是,你在這些比賽中看到的很多挑戰與程式設計師日常編寫的程式碼型別關係不大,例如從資料庫中提取資料,呼叫API,或搭建一個網路伺服器。但你可以透過程式設計比賽來檢驗一個程式設計師多年的學習和實踐技能。這就是為什麼許多公司將程式設計挑戰作為評估潛在僱員的重要工具。
▍機器智慧與人類智慧
雖然人類的大腦有可與之匹配的測試方法,但當面對人工智慧時,上述的競賽、遊戲和測試似乎就紛紛失效了,而其原因也很簡單,那就是計算極限被突破了。
以國際象棋和圍棋為例,這兩種棋類遊戲在過去幾十年中受到了人工智慧界的廣泛關注。1996年,DeepBlue擊敗了國際象棋大師Garry Kasparov。但DeepBlue並不具備其人類對手的一般認知能力。相反,它利用IBM超級計算機的巨大計算能力,每秒評估數百萬步棋,並選擇最好的一步。
當時,科學家和未來學家認為,中國的棋盤遊戲在相當長的一段時間內仍將是人工智慧系統無法企及的,因為它有更大的解決方案空間,並且需要幾十年內都無法獲得的龐大計算能力。但在2016年,AlphaGo擊敗了圍棋九段李世石,改寫了歷史。
與DeepBlue類似,AlphaGo並沒有像它的人類對手那樣下棋,它能夠取勝完全是藉助了機器學習和計算硬體方面的進步。
具體來說,AlphaGo是在一個大型的圍棋資料集上訓練出來的,這使得其比任何人一生中下過的圍棋都要多得多。它使用了深度強化學習和蒙特卡洛樹搜尋(MCTS)以及谷歌伺服器的計算能力來尋找每個回合的最佳下法。雖然AlphaGo沒有像DeepBlue那樣對每一個可能的下法都進行暴力計算,但它仍然在每個回合評估了數百萬個下法。
更具進步意義的事,AlphaCode使用Transformers(一種特別擅長處理連續資料的深度學習架構)將一個自然語言問題陳述對映到數千個可能的解決方案。然後它使用過濾和聚類來選擇模型提出的10個最有希望的解決方案。但儘管如此,AlphaCode的解決方案開發過程與人類程式設計師的開發過程還是非常不同。
▍人類發現問題,AI解決問題
可以看出,我們把所謂的機器智慧和人類智慧進行硬性類比的時候,人工智慧的進步會讓我們得出各種錯誤的結論,比如機器人接管世界、深度神經網路變得有意識,以及AlphaCode和普通人類程式設計師一樣優秀。
但如果從搜尋解決方案空間的框架來看,它們就有了不同的意義。在上述每個案例中,即使人工智慧系統產生的結果與人類相似或更好,它們的處理過程也與人類的思維有很大不同。
事實上,這些成就證明,當你把競爭簡化為一個定義明確的搜尋問題時,那麼只要有正確的演算法、規則、資料和算力,你就可以建立一個人工智慧系統,它可以找到正確的解決方案,而不需要經過人類掌握的任何一般認知技能。
只要結果是可以接受的,有些人可能會忽略這種差異。但是,當涉及到解決現實世界的問題時,那些被認為是理所當然的、沒有在測試中測量的一般認知技能往往比測試分數本身更重要。
而這也意味著目前形式下的人工智慧更應該被看作是人類智慧的延伸而不是替代。像AlphaCode這樣的技術不能思考和設計自己的問題(這是人類創造力和創新的關鍵因素之一),但它們是非常好的問題解決者。
它們為人類和人工智慧之間富有成效的合作創造了獨特的機會。人類定義問題,設定獎勵或預期結果,而人工智慧則透過以超人的速度找到潛在的解決方案。
最典型的一個例子就是像AutoML這樣的工具的出現,它透過搜尋架構和超引數值的最佳配置,使開發機器學習模型的各個方面自動化。AutoML使那些在資料科學和機器學習方面沒有什麼經驗的人有可能開發出機器學習模型,並將其應用於他們的應用程式。
同樣,像AlphaCode這樣的工具將為程式設計師提供更深入地思考具體問題的機會,將其制定為定義明確的語句和預期結果,並讓人工智慧系統產生新穎的解決方案,從而可能為應用開發提出新的方向。
總之,深度學習的這些漸進式改良是否最終會催生出AGI還有待觀察。但可以肯定的是,這些技術的成熟將逐漸促進人類與機器的分工,人類發現問題,而人工智慧來解決問題。