天天看點

緻全球開發者:你用的排序算法已被AI設計的新算法取代了!

作者:研元社
緻全球開發者:你用的排序算法已被AI設計的新算法取代了!
緻全球開發者:你用的排序算法已被AI設計的新算法取代了!

今天,一則新聞的出現讓科技圈再次沸騰。現在的AI不僅可以輔助寫代碼,而且能夠幫助開發者寫出更好的算法。

從DeepMind官網的部落格文章中可知,其開發的人工智能系統“阿爾法開發”(AlphaDev)在計算機科學方面取得了重大突破,已被證明能夠發現并改進C++庫裡廣泛使用的計算機排序算法。是以,當使用者送出搜尋查詢時,AlphaDev的算法有助于更快地對結果進行排序,在大規模使用時可以節省大量時間和能源。在今天《Nature》雜志刊登的文章中也表示,這些AI生成的算法已被整合到C++排序庫,是十多年來對這部分庫作出的首次更改。

什麼是排序算法?

在計算機系學生的必修課《資料結構與算法》中,排序是最基本的算法之一,它的作用是使一組資料按照某種規則進行排列,比如從小到大或者從大到小。

緻全球開發者:你用的排序算法已被AI設計的新算法取代了!

在日常生活中,排序算法可以應用在很多方面,比如:1.處理文字資料,産生人類可讀的輸出結果,例如按字母或拼音順序排列單詞或姓名。2.友善查找,例如在一組資料中找出最大值或最小值,或者統計某個元素出現的頻率。

3.優化日常生活中的文檔整理,例如按學号或姓名對作業本,答題卡,試卷等進行排序。

或許看上去排序算法很簡單且意義不大,但排序算法是全球開發人員每天使用數萬億次進行資料排序、存儲和檢索的基本流程,從線上搜尋結果和社交文章排名到如何在計算機和手機上處理資料,排序算法都起到了重要作用。尤其是當資料量擴大千倍、萬倍甚至億倍的時候,更好的排序算法可以節省大量的時間,減少不必要的比較和交換操作,降低時間和空間的複雜度,提高資料處理的速度和品質。

目前,已有的排序算法可以被劃分為内部排序和外部排序。其中,内部排序是在記憶體中進行排序,外部排序是在外存中進行排序。常見的内部排序算法有十種,分為以下幾類:

  • 穩定排序算法:冒泡排序、插入排序、歸并排序、計數排序、桶排序與基數排序
  • 不穩定排序算法:希爾排序、選擇排序、堆排序與快速排序

AI發現的新算法具有革命性意義

通過強化學習,DeepMind的AlphaDev發現了更加有效的算法,直接超越了科學家和工程師們幾十年來的精心打磨和優化的各種排序方式。現在,新的算法也已經成為兩個标準C++編碼庫的一部分,并且該算法也在今天開源,對于較短的序列,排序的速度提高了70%,即便對于超過25萬個元素的序列,速度也能提高約1.7%,未來每天都将被全球的程式員使用數萬億次。

而AlphaDev的主要作者之一、Google DeepMind的研究科學家Daniel J. Mankowitz表示,這是強化學習的一個重要裡程碑,因為它提供了更多證據證明其做出新發現的能力,特别是在代碼優化領域。此前,GPT-4等大模型生成代碼的能力已經讓人驚歎,而AlphaDev則是在更底層對計算機科學進行優化,影響範圍也更加深遠,因為它并不是通過改進現有算法,而是完全從頭開始發現了一種全新的且更快的算法。

根據DeepMind的說法,大多數算法都已達到人類專家無法進一步優化的階段,導緻計算的瓶頸不斷更新,而AlphaDev則采用了一種非正常的方法,通過進入計算機的彙編指令領域來發現更快的算法,這也是一個人類開發者很少會探索到的領域。

不過,如今開發者寫代碼時常用的是C++等進階語言,但這些算法層面的改進在更進階的程式設計語言中已經很難被發現。為了讓計算機了解代碼的意義,這些進階語言必須被翻譯成更加底層的彙編指令,而在彙編語言的層次上,計算機的存儲和操作都更加靈活,存在着更多潛在的改進可能性,這些改進可能對速度和能源使用産生更大的影響。

緻全球開發者:你用的排序算法已被AI設計的新算法取代了!

為了解鎖新的算法,AlphaDev從DeepMind著名的強化學習模型AlphaZero中汲取了靈感,AlphaDev的研究團隊也将排序重新想象為單人遊戲,AlphaDev則利用強化學習來觀察和生成“遊戲”算法。當AlphaDev增量建構新算法時,它還會将算法的輸出與預期結果進行比較,進而驗證每個動作的正确性,這種方法的最終目标是發現一個正确和更快的程式,進而在遊戲中取得勝利。

當然,這款“彙編遊戲”是非常困難的,因為AlphaDev必須在大量可能的指令組合中進行高效搜尋,以找到一個可以排序的算法,并且要比目前的最佳算法更快。指令的可能組合數量類似于宇宙中的粒子數量,或者國際象棋(10^120局)和圍棋(10^700局)中可能的動作組合的數量,而任何一個簡單的動作出現錯誤就可以使整個算法失效。

緻全球開發者:你用的排序算法已被AI設計的新算法取代了!

DeepMind的下一步是什麼?

對于DeepMind來說,下圍棋一戰成名的AlphaZero、能夠預測蛋白質結構的AlphaFold已經成功破圈,現在的AlphaDev更讓人感到驚豔,證明了它有能力概括和發現世界級的新算法。

不僅如此,AlphaDev的能力還超越了排序算法領域,其不僅發現了更快的算法,而且還發現了新的方法。在彙編層面,它的排序算法包含新的指令序列,每次應用時都會節省一條指令,當這些算法每天被使用數萬億次時,産生的巨大影響則不言而喻。DeepMind團隊還将AlphaDev應用于資料結構中最常用的雜湊演算法之一,嘗試發現更快的算法。當将其應用于9-16位元組範圍的哈希函數時,AlphaDev發現的算法速度提高了30%,該雜湊演算法現在也在Abseil開源庫中可用。

DeepMind表示,AlphaDev的出現是建立能夠優化整個計算生态系統和應對各種社會挑戰的多功能人工智能工具的一個重要裡程碑,這些新算法能為研究人員和從業者提供如何建構算法的全新視角。

雖然目前用AI來彙編指令已被證明非常強大,但DeepMind表示,它們還在積極探索AlphaDev直接在C++等進階語言中優化算法的潛力。例如,在運作應用程式和服務時更有效地排程資源,優化視訊壓縮管道,以及優化運作系統和應用程式的底層硬體等等,這對開發人員來說也更有價值。

此外,研究人員也希望,這些發現能激勵行業内人士創造新的技術和方法,進一步優化基礎算法,以建立一個更強大、更可持續的計算生态系統。

繼續閱讀