搜尋
首頁科技週邊人工智慧谷歌借AI打破十年排序演算法封印,每天被執行數萬億次,網友卻說是最不切實際的研究?

整理 | 核子可樂,褚杏娟

接觸過基礎電腦科學課程的朋友們,肯定都曾親自動手設計排序演算法——也就是藉助程式碼將無序列表中的各個條目按升序或降序方式重新排列。這是個有趣的挑戰,可行的操作方法也多元。人們曾投入大量時間探索如何更有效率地完成排序任務。

作為一項基礎操作,大多數程式語言的標準庫中都內建有排序演算法。世界各地的程式碼庫中使用了許多不同的排序技術和演算法來在線組織大量數據,但至少就與 LLVM 編譯器配套使用的 C 庫而言,排序程式碼已經有十多年沒有任何變化了。

近日,Google DeepMind AI 小組如今開發出一種強化學習工具 AlphaDev,能夠在無需透過人類程式碼範例做預訓練的情況下,開發出極限優化的演算法。如今,這些演算法已經整合到 LLVM 標準 C 排序庫中,這是十多年來排序庫部分第一次發生變化,也是第一次將透過強化學習設計的演算法添加到該庫中。

把程式設計過程視為「遊戲」#​​

##DeepMind系統通常能夠發現人類從未想過的解決問題的方法,因為它不需要預先接觸任何人類遊戲策略。 DeepMind 學習經驗時完全依賴自我對抗,因此在某些情況下會形成可被人類利用的盲點。

這種方法跟程式設計其實非常相似。大型語言模型能夠編寫有效的程式碼,因為它們已見過大量人類程式碼範例。但也因為如此,語言模型很難產出人類之前沒做過的東西。如果我們希望對普遍存在的現有演算法(例如排序函數)做進一步優化,那麼繼續依賴現有人類程式碼將很難突破固有思路的束縛。那麼,如何才能讓 AI 找到真正的新方向呢?

DeepMind研究人員使用了類似於國際象棋和圍棋的方法來優化程式碼任務,將其轉化為單人的「拼圖遊戲」。 AlphaDev 系統開發出一種 x86 彙編演算法,將程式碼的運行延遲視為一個分數,在努力將該分數最小化的同時確保程式碼能夠順暢跑通。 AlphaDev逐漸掌握了撰寫高效、簡潔程式碼的技巧,這得益於強化學習的應用。

AlphaDev 基於 AlphaZero。 DeepMind is well-known for developing AI software that can learn game rules on its own.。這一路思維被證實非常有效,並成功解決了許多遊戲難題,如西洋棋、圍棋和《星海爭霸》等。雖然具體細節因所玩遊戲而異,但 DeepMind 軟體確實能在重複遊玩中不斷學習,持續探索能令得分最大化的辦法。

AlphaDev 的兩個核心元件是學習演算法和表示函數。

使用 DRL 和隨機搜尋最佳化演算法結合來進行組裝遊戲,是 AlphaDev 學習演算法的一種方法。 AlphaDev 中的主要學習演算法是 AlphaZero 33 的擴展,AlphaZero 33 是​​一種著名的 DRL 演算法,其中訓練神經網路以指導搜尋完成遊戲。

此函數用於監控程式碼開發時的綜合效能,涵蓋了演算法一般結構,以及對 x86 暫存器和記憶體的使用。該系統將逐步引入彙編指令,在使用遊戲系統借鑒的蒙特卡羅樹搜尋方法進行選擇時獨立添加。樹狀結構允許系統快速將搜尋範圍縮小至包含大量潛在指令的有限區域,而蒙特卡羅方法則以一定程度的隨機性從這個分支區域內選擇具體指令。請注意,這裡所指的「指令」是選定特定暫存器等操作以建立有效且完整的組件。 )

接著,系統會對彙編程式碼的延遲和有效狀態進行評估,並給出分數,並將其與上一次得分進行比較。透過強化學習,系統能夠記錄樹狀結構中不同分支的工作訊息,以用於給定的程序狀態。在隨著時間的推移,系統會逐漸熟悉如何以最高得分(代表最低延遲)來贏得遊戲(成功完成排序)。 The primary representation function of AlphaDev is based on Transformers.。

為了訓練 AlphaDev 發現新演算法,AlphaDev 在每輪中都會觀察它生成的演算法和中央處理器 (CPU) 中包含的信息,然後透過選擇要添加到演算法中的指令完成遊戲。 AlphaDev 必須有效地搜尋大量可能的指令組合,以找到可以排序的演算法,並且還要比目前最好的演算法更快,同時代理模型可以根據演算法的正確性和延遲獲得獎勵。

谷歌借AI打破十年排序演算法封印,每天被執行數萬億次,網友卻說是最不切實際的研究?

圖 A:組裝遊戲,圖 B:獎勵計算

最終,AlphaDev 發現了新的排序演算法,這些演算法可以讓LLVM libc 排序庫得到改進:對於較短的序列,排序庫的速度提高了70%;對於超過250,000 個元素的序列,速度提高了約1.7%。

具體而言,此演算法的創新主要在於兩種指令序列:AlphaDev Swap Move(交換移動)和AlphaDev Copy Move(複製移動),透過這兩個指令,AlphaDev 跳過了一個步驟,以一種看似錯誤但實際上是捷徑的方式連接項目。

谷歌借AI打破十年排序演算法封印,每天被執行數萬億次,網友卻說是最不切實際的研究?

左圖:帶有 min(A,B,C) 的原始 sort3 實作。 ‍

右圖:AlphaDev Swap Move - AlphaDev 發現你只需要 min(A,B)。

谷歌借AI打破十年排序演算法封印,每天被執行數萬億次,網友卻說是最不切實際的研究?

左:max (B, min (A, C)) 的原始實作用於對八個元素進行排序的更大排序演算法。

‍右:AlphaDev 發現在使用其複製移動時只需要 max (B, min (A, C))。

這套系統的主要優點在於,其訓練過程不借助任何程式碼範例。相反,系統會自主產生程式碼範例,然後對其做出評估。過程當中,它也逐漸掌握了關於有效排序的指令組合資訊。

從排序到散列

在發現更快的排序演算法後,DeepMind 測試了 AlphaDev 是否​​可以概括和改進不同的電腦科學演算法:雜湊。

哈希是計算中用於檢索、儲存和壓縮資料的基本演算法。就像使用分類系統來定位某本書的圖書館員一樣,雜湊演算法可以幫助使用者知道他們正在尋找什麼以及在哪裡可以找到它。這些演算法會取得特定金鑰的資料(例如使用者名稱「Jane Doe」)並對其進行雜湊處理——這是將原始資料轉換為唯一字串(例如 1234ghfty)的過程。此雜湊演算法用於快速檢索與金鑰相關的數據,避免了搜尋全部數據的過程。

DeepMind 將 AlphaDev 應用於資料結構中最常用的雜湊演算法之一,以嘗試發現更快的演算法。 AlphaDev發現,在雜湊函數使用9-16位元組範圍內的資料時,演算法的速度提高了30%。

今年,AlphaDev 的新哈希演算法被發佈到開源 Abseil 庫中,可供全球數百萬開發人員使用,該庫現在每天被數萬億次使用。

實際可用的程式碼

複雜程式中的排序機制能夠處理大量任意條目的集合。但在標準庫層面來看,這種能力源自於一系列高度限定的具體函數。這些函數各自只能處理一種或幾種情況。例如,某些單獨演算法只能對 3、4 或 5 個條目做排序。我們可以使用一組函數對任意數量的條目進行排序,但是每次函數呼叫最多只能對4個條目排序。

AlphaDev has been implemented by DeepMind on each function, but its actual operating methods differ significantly.。可以編寫沒有分支語句的程式碼來處理特定數量條目的函數,也就是根據變數狀態執行不同的程式碼。因此程式碼效能往往與所涉及的指令數量成反比。

AlphaDev 已經成功將 sort-3、sort-5 和 sort-8 的指令數量各減一,在 sort-6 和 sort-7 中的指令削減量甚至更多。只有 sort-4 上沒能找到改進現有程式碼的方法。實際系統中重複執行測試表明,較少的指令確實提高了效能。

要對可變數量的條目進行排序,就需要在程式碼中包含分支語句,而不同處理器專門處理這些分支的元件數量也不同。

研究人員在對這種情況進行評估時,使用了100台不同的計算設備。 AlphaDev 在這類場景下也找到了進一步榨取效能的方法,以下我們以一次最多排序 4 個條目的函數為例,看看它到底是怎麼操作的。

在 C 函式庫的現有實作中,程式碼需要進行一系列測試來確認具體需要對多少個條目做排序,再根據條目數量呼叫對應的排序函數。

而 AlphaDev 修改後的程式碼則採取更「神奇」的想法:它先測試是不是 2 個條目,如果是則呼叫對應函數立即做排序。如果數量大於 2 個,則程式碼會先對前 3 個條目做排序。這樣如果確實只有 3 個條目,則傳回排序結果。由於實際上有 4 個條目要做排序,所以 AlphaDev 會運行專門程式碼,以非常有效率的方式將第 4 個條目插入到前 3 個已經排序完成的條目中的適當位置。

這種辦法聽起來有點怪異,但事實證明其效能確實始終優於現有程式碼。

由於 AlphaDev 確實產生了更有效率的程式碼,所以研究團隊打算把這些成果重新合併到 LLVM 標準 C 函式庫中。但問題是這些程式碼為彙編格式,而非 C 。因此,他們需要進行逆向計算,以找出產生相同組件的 C 程式碼。

這句話的重寫版本:現在,這部分程式碼已經被整合入 LLVM 工具鏈,並進行了近十年以來的首次更新。根據研究人員的估計,AlphaDev每天產生的新代碼被執行數萬億次。

結束語

這真是太好了!我們程式設計師早在很早以前就學會了這種基本的排序任務,但現在我們的速度提高了 70%。我們都依賴的演算法和函式庫中的 AI 提供了重大的加速,讓人感到非常興奮。 」有開發者對Google DeepMind 的成果表示振奮。

但也有開發者不買單:「相當令人失望…1.7% 的改善?5 個元素的序列70%?可能是最不受歡迎、最不切實際的應用研究…」也有開發者表示:「說發現了新演算法是不是有點誤導人?似乎更像是演算法優化。無論如何這仍然很酷。」

參考連結:

#https://arstechnica.com/science/2023/06/googles-deepmind-develops-a-system-that-writes-efficient-algorithms/

https://www.deepmind.com/blog/alphadev-discovers-faster-sorting-algorithms

深度:為什麼中國資料庫領域沒有出現像Snowflake這樣的巨人?

十七年來奇葩大崩壞!為不讓OpenAI和谷歌白拿數據,Reddit 收取巨額API 費用還誹謗開發者,社區爆發大規模抗議

「偷」代碼建起公司、學歷造假、6天拿下1億美元卻拖欠工資,這位AI獨角獸CEO屢遭質疑後親自回應了

以上是谷歌借AI打破十年排序演算法封印,每天被執行數萬億次,網友卻說是最不切實際的研究?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:搜狐。如有侵權,請聯絡admin@php.cn刪除
如何使用Huggingface Smollm建立個人AI助手如何使用Huggingface Smollm建立個人AI助手Apr 18, 2025 am 11:52 AM

利用“設備” AI的力量:建立個人聊天機器人CLI 在最近的過去,個人AI助手的概念似乎是科幻小說。 想像一下科技愛好者亞歷克斯(Alex)夢見一個聰明的本地AI同伴 - 不依賴

通過斯坦福大學激動人心的新計劃,精神健康的AI專心分析通過斯坦福大學激動人心的新計劃,精神健康的AI專心分析Apr 18, 2025 am 11:49 AM

他們的首屆AI4MH發射於2025年4月15日舉行,著名的精神科醫生兼神經科學家湯姆·因斯爾(Tom Insel)博士曾擔任開幕式演講者。 Insel博士因其在心理健康研究和技術方面的傑出工作而聞名

2025年WNBA選秀課程進入聯盟成長並與在線騷擾作鬥爭2025年WNBA選秀課程進入聯盟成長並與在線騷擾作鬥爭Apr 18, 2025 am 11:44 AM

恩格伯特說:“我們要確保WNBA仍然是每個人,球員,粉絲和公司合作夥伴,感到安全,重視和授權的空間。” anno

Python內置數據結構的綜合指南 - 分析VidhyaPython內置數據結構的綜合指南 - 分析VidhyaApr 18, 2025 am 11:43 AM

介紹 Python擅長使用編程語言,尤其是在數據科學和生成AI中。 在處理大型數據集時,有效的數據操作(存儲,管理和訪問)至關重要。 我們以前涵蓋了數字和ST

與替代方案相比,Openai新型號的第一印象與替代方案相比,Openai新型號的第一印象Apr 18, 2025 am 11:41 AM

潛水之前,一個重要的警告:AI性能是非確定性的,並且特定於高度用法。簡而言之,您的里程可能會有所不同。不要將此文章(或任何其他)文章作為最後一句話 - 目的是在您自己的情況下測試這些模型

AI投資組合|如何為AI職業建立投資組合?AI投資組合|如何為AI職業建立投資組合?Apr 18, 2025 am 11:40 AM

建立杰出的AI/ML投資組合:初學者和專業人士指南 創建引人注目的投資組合對於確保在人工智能(AI)和機器學習(ML)中的角色至關重要。 本指南為建立投資組合提供了建議

代理AI對安全操作可能意味著什麼代理AI對安全操作可能意味著什麼Apr 18, 2025 am 11:36 AM

結果?倦怠,效率低下以及檢測和作用之間的差距擴大。這一切都不應該令任何從事網絡安全工作的人感到震驚。 不過,代理AI的承諾已成為一個潛在的轉折點。這個新課

Google與Openai:AI為學生打架Google與Openai:AI為學生打架Apr 18, 2025 am 11:31 AM

直接影響與長期夥伴關係? 兩週前,Openai提出了強大的短期優惠,在2025年5月底之前授予美國和加拿大大學生免費訪問Chatgpt Plus。此工具包括GPT-4O,A A A A A

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具