有沒有覺得 AI 攻克的這兩個領(lǐng)域很熟悉?沒錯,就在 2021 年,OpenAI 發(fā)布了 AI 代碼補全工具 GitHub Copilot ,并公布了背后的技術(shù) CodeX。同樣,在去年下半年,DeepMind 也公布了他們解決數(shù)學難題的 AI 研究成果,并登上了 Nature。 雖然兩家研究機構(gòu)的新成果為 AI 解決老問題提供了新思路,但也不得不讓網(wǎng)友感嘆,AI 領(lǐng)域太卷了!
舉個例子,在測試 AlphaCode 的一項挑戰(zhàn)中,試題要求參賽者找到一種方法,使用一組有限的輸入將一個隨機、重復(fù)的 s 和 t 字母字符串轉(zhuǎn)換為另一個相同字母的字符串。例如,競爭對手不能只輸入新字母,而必須使用「backspace」命令刪除原始字符串中的幾個字母。對于 AlphaCode 來說,這只是中等難度的挑戰(zhàn):
其中十個挑戰(zhàn)以與人類完全相同的格式輸入 AlphaCode。然后,AlphaCode 生成大量可能的答案,并通過運行代碼和檢查輸出來篩選這些答案,就像人類競爭對手一樣。AlphaCode 論文的聯(lián)合負責人 Yujia Li 和 David Choi 表示:「整個過程是自動的,無需人工選擇最佳樣本?!?/span> 要想在 Codeforces 的挑戰(zhàn)中脫穎而出,原本不是一件容易的事。AlphaCode 項目開展于兩年多前,隨著大規(guī)模 Transformer 模型的進步與大規(guī)模采樣、濾波技術(shù)的結(jié)合,DeepMind 的研究者已經(jīng)在 AI 能夠解決的問題數(shù)量上取得了重大進展。
受到疫情的影響,項目的大部分工作都是在家完成的。 研究者在選定的公共 GitHub 代碼上預(yù)訓練該模型,并在相對較小的競賽編程數(shù)據(jù)集上對其進行微調(diào)。在評估期間,研究者為每個問題創(chuàng)建了大量的 C++ 和 Python 程序,且數(shù)量級比以前的工作要大。然后對這些解決方案進行篩選、聚類和重新排序,將這些解決方案分配到一個由 10 個候選程序組成的小集合中,并提交給外部評估。這個自動化系統(tǒng)取代了競爭對手的調(diào)試、編譯、通過測試和最終提交的反復(fù)試驗過程。
總體來說,AlphaCode 的排名在競爭對手中大致相當于中位數(shù)。雖然遠遠沒能贏得比賽,但這個結(jié)果代表了人工智能解決問題能力的實質(zhì)性飛躍。這一進步證明了深度學習模型在需要批判性思維的任務(wù)中的潛力。DeepMind 指出,AlphaCode 目前的技能組合目前僅適用于競賽性質(zhì)的編程領(lǐng)域,但它的能力為創(chuàng)建未來工具打開了新的大門,這些工具使編程變得更加容易,并且有朝一日完全自動化。 許多其他公司正在開發(fā)類似的應(yīng)用程序。對于終端的用戶來說,這些系統(tǒng)就像 Gmail 的 Smart Compose 功能一樣工作,提供一些關(guān)于你正在編寫的任何內(nèi)容的建議。 近年來,AI 編程系統(tǒng)的開發(fā)取得了很大進展,但這些系統(tǒng)還遠未準備好接管人類程序員的工作。他們生成的代碼通常有問題,而且由于系統(tǒng)通常是在公共代碼庫上進行訓練的,所以有時會復(fù)制受版權(quán)保護的材料。 在一項關(guān)于 GitHub Copilot AI 編程工具的研究中,研究人員發(fā)現(xiàn)其輸出的代碼約有 40% 包含安全漏洞。安全分析師甚至建議,不良行為者可以故意編寫代碼并與隱藏的后門(backdoor)在線共享代碼,然后這些代碼可能被用來訓練 AI 程序,將這些錯誤插入到未來的程序中。 像這樣的挑戰(zhàn)意味著 AI 編程系統(tǒng)可能會慢慢融入程序員的工作中——換句話說,他們要進行學徒訓練,從助理開始做起,在被信任能夠自主執(zhí)行工作之前,AI 給出的建議都要受到懷疑。
研究者觀察到,生成策略參數(shù)所需的原始數(shù)學術(shù)語的能力出現(xiàn)在了他們的訓練過程中,這是離開神經(jīng)語言模型所無法完成的。下面的證明就是它的一個例子:證明步驟「use n + 1」(完全由模型生成)提出使用「n + 1」作為解決方案,剩下的形式證明依賴于「ring _ exp」策略來驗證它確實有效。
研究者還觀察到,他們的模型和搜索過程能夠產(chǎn)生鏈接多個重要推理步驟的證明。在下面的證明中,模型首先使用了引出存在性命題(existential statement) (? (x : ?), f x ≠ a * x + b) 的換質(zhì)換位律(contraposition)。然后,它使用 use (0 : ?) 為它生成一個 witness,并通過利用 norm _ num 策略來完成證明。
國內(nèi)的 AI 從業(yè)者們可以趁假期研究下這兩項研究,發(fā)表自己的看法。 參考鏈接:https://openai.com/blog/formal-math/?continueFlag=6cc759bbfb87d518f6d6948bcf276707https://deepmind.com/blog/article/Competitive-programming-with-AlphaCode?continueFlag=b34ed7683541bab09a68d7ab1d608057