[新科技速遞]
市場焦點在生成式AI,其他領域陸續亦有驚人突破。Google旗下DeepMind的AI竟破解了本以為是千錘百鍊的排序算法(Data Sort),憑空創建出新演算法,速度較人類開發最佳版本快上3倍。
DeepMind算法震驚全球,所謂排序數據工作,例如按大小或字母排序數據,是電腦語言最普通不過的函式,每天全球電腦內Sort的函數,運行次數以十億計算;DeepMind算法比流行C++語言算法,快上7倍,以百萬計電腦會受惠。
DeepMind有關研究刊登在《自然》期刊,AI開發的新模型AlphaDev,利用了訓練下圍棋、國際象棋和多種棋藝的AlphaZero技術,創建AlphaDev模型發現新算法,以算法最優解為目標,原則上跟對弈差不多。AlphaDev有一點AlphaZero相似,不再依靠前人經驗,AlphaZero不讀棋譜學習棋藝,只學習棋藝的規則;從零開始自行修煉。AlphaDev也沒參考學習現存算法,也是從零開始自行探索,以無法為有法,結果也修成正果,自創的算法,超越了人類。
加強學習再創新高
AlphaDev原理上跟AlphaZero差不多,AlphaZero棋局選擇下子;AlphaDev則選擇計算機程序每一度指令,自創招式,突破人類歷史經驗。兩者都是基於「強化學習」(Reinforcement learning)訓練,透過嘗試和錯誤(Trials and errors)反覆學習,先為AI鎖定目標 , 透過獎勵推動,概念上跟遊戲取分,擊敗對手差不多,AlphaDev取分勝負,則在於打敗自己,不斷縮短算法時間。
多年以來,科學家一直優化排序數據,算法更是汗牛充棟,即使縮短簡單排序工作,看似枯燥的按數目或字母排列名單,要快上毫秒也絕不簡單,DeepMind竟一下子快了7倍。
低階語言開發
據DeepMind計算機科學家Daniel Mankowitz回憶:團隊看到成果也感驚訝,最初甚至自己不敢相信。
DeepMind不是以一般高階編程語言,類似C語之類開發,而直接以低階「組合指令」(Assembly code),一種介乎程式語言和二進碼語言。組合指令執行較快,不過難於學習和理解,程式人員很少採用。一般而言,程式語言愈是高階執行速度愈慢,目前絕大部分程式都是利用高階語言開發,編譯(compiled)成組合指令才供電腦執行。採用組合指令可為AlphaDev創建更有效率算法提供了更多彈性。即使組合指令確較有效率,AlphaDev發新的算法亦是非常困難。
眾裡尋他千百度
AI模型每次要構建一條指令算法,根據已知正確方法測試輸出的結果,確保創建方法真正有效。AI模型要創建出盡量少指令算法。AlphaDev排序算法指令更少,執行更快,排序五條數據快70%,處理超過250,000個數據列表,只比目前最優算法快1.7%。
Mankowitz說:「起初以AlphaDev程式出錯,分析時才意識到AlphaDev實際上可能真是發現更快算法。」
排序算法在不少軟件常用,所以即使提昇1.7%速度;全球累計省回不少算力,此算法有機會取代所有語言函式庫(Library),DeepMind將算法開源並包括常用的Libc++的C++函式庫,C++率先受益,其排序演算法有十多年未曾更新。
軟件延續摩爾定律
Mankowitz認為,摩爾定律(Moore’s Law)會因處理器可容納電晶體,數量臨近物理極限,下一代算力加速正在減慢。AlphaDev從軟件層面彌補算力損失,延續摩爾定律。但是AI能否提昇所有函式庫,仍然是未知之數。
AlphaDev的突破在於,加強學習擊敗棋王以外,還可用於改善算法;而今次非首次DeepMind推出突破性AI模型應用,改寫了研究方向。
2018 年推出AlphaFold預測蛋白質結構,迭代至AlphaFold2已能預測所有蛋白質結構。雖然說,X射線、核磁共振或低溫電子顯微鏡(cryo-EM)仍是取得確定蛋白質結構數據的唯一方法。AlphaFold啟發了科學家,以AI先預測結構對接,以虛擬對接減省開發和篩選時間,選取更有可能的候選藥物化合物作藥物重新定位。AlphaFold不是以強化學習訓練,透過機器學習掌握預測方法,效果完勝人類。
成功不必在我,AlphaFold的重要性在於啟發研究方向,AlphaFold2凖確度仍強差人意,研究人員改進多種模型凖確度,結果令人鼓舞。
DeepMind開源了AlphaDev,究竟對編寫代碼有多大影響?仍是未知之數,但以向壁虛構算法,竟勝於千錘百鍊,AI作為人類助手,此後地位再上層樓。DeepMind擊敗的不是棋王,而是歷史上所有電腦精英。