首圖來源:Shutterstock

【為什麼我們要挑選這篇文章】AI 人工智慧可以做的事情越來越多,能夠設計出晶片、開發出 App,甚至還可以當學生上學,從各方面逼近人類的能力,現在 AI 更養成了一個新招:刷 LeetCode 解程式題目!(責任編輯:徐宇儂)

本文經 AI 新媒體量子位(公眾號 ID:QbitAI)授權轉載,轉載請連繫出處
作者:量子位

你見過這種 coding 題目描述方式嗎?

不用自然語言描述,也沒有輸入輸出示例,你所看到的就只有一個 Python 函數。

這是來自 MIT、Allen AI 和微軟的研究人員提出的一種全新的程式題目描述方法:

每個題目都由一個簡短的 Python 函數 f 定義,目標是找​​到一個輸入 x,使 f 輸出 true。

這樣的題目形式可以讓 AI 審題更容易,人類工程師的理解也不會受到影響。

AI 寫程式,道路真是越來越平了啊。

接下來就來詳細看看這個研究吧。

沒有自然語言描述的 Coding 題目,讓 AI 刷題練功

再來解釋一下這種描述方法:

題目採用 Python 函數的形式,參數為答案。

解題的目標是找到使函數輸出為真的輸入 x,即滿足 f(x)= true 的正確答案。

現在請你舉一反三:求解一個有 1000 個不連續 “o” 的字符串,用這種新形式如何描述呢?

正確答案:

下面是另外兩道題目的描述範例。

動態規劃—最長單調遞增子序列問題:

經典的漢諾塔 (Towers of Hanoi ):

研究人員按此種出題形式囊括了各種程式題,提出來一個開源數據集:叫做 P3。

該數據集題型非常全面:涉及不同難度、不同領域和不同算法工具等方面的題目。

有簡單的字符串操作問題;

有經典如漢諾塔和國際象棋(例如,騎士遊曆算法和 N 皇后問題變體)等難題;

也有兩人挑戰尋找最佳策略的題型,如井字棋(Tic-Tac-Toe)、石頭剪刀布、珠璣妙算 Mastermind 等;

還包括來自國際數學奧林匹克競賽(IMO)和國際大學生程序設計競賽(ICPC)的題目,如各種圖論和數論難題。

一共包含 208 種題型、14 萬+的題目,並且還在不斷更新中。

每個題目都提供了至少一種答案。

這套新穎的程式挑戰題庫數據集,抓住了 Coding 題目的本質,可用於教 AI 寫程式並評估 AI 的程式能力

研究人員表示,這套題可以對 AI 的程式能力進行客觀評估。因為不用查看答案,就能直接驗證解答的正確性。因此,這種題目不會增加 AI 學習任何答案偏差的負擔。

數據集已開源,AI 刷 LeetCode 寫程式會越來越聰明

不同 AI 求解器根據這些題目寫程式的效果如何呢?

研究人員做了一些深入的實驗,開發了基於隨機森林、Transformer 和不同類型 GPT-3 prompts 的 AI 求解器,它們採用不同參數枚舉、自頂向下的方法,使用這個 P3 數據集來評估性能。

首先,測試這些求解器在這個數據集上利用此前解決題目的方法來解決新題目的自舉效率(bootstrapping efficacy)。

結果發現,增加嘗試次數可以解決新題目。但它們也能透過學習過去的經驗,更快地解決新的難題。

下圖為這些 AI 求解器在不同嘗試次數下的已解決題目數量:

而在一項小的用戶研究中,21 名在 Python 寫程式方面有不同經驗年限的工程師完成了不同難度的 30 個題目。每個題目最多分配 6 分鐘的時間來解決。

用這個數據集評估 AI 與人類工程師對程式題難度的感知發現:

人類覺得難的題對 AI 來說也更難,現階段情況下,AI 求解器能解決的大多數題都是對人類來說比較簡單的。

上圖表示人類和 AI 對各種題目的難度打分,按人類分數排序。人類的難度分數透過超出允許的最大解題時間的平均分數來衡量,AI 的則是根據解題所需的嘗試次數。

另外,AI 用這種形式的題目可以解決了 60% 的難題,初學者和有經驗的工程師平均分別解決了 76% 和 87% 的難題。

整體來看,利用這個新穎的數據集,透過精心設計的 AI 求解器,可以大大減少 AI 寫程式求解所需的嘗試次數、並解出更多的題目

因此,研究人員希望,這個新的程式題庫數據集能支持大家研究和開發新的 AI 寫程式解決方案,提高 AI  Coding 的效率和性能。

之前,柏克萊大學曾訓練 AI 刷 LeetCode,總共 5000 道題的測試中,AI 能做出 15%。

不知道使用這個數據集訓練,AI 寫程式的能力又會達到什麼水準呢?

>> 完整論文地址 <<

>> 開源數據集傳送門 <<

(本文經 AI 新媒體量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈MIT微軟為AI量身打造了一套leetcode編程題〉;首圖來源:Shutterstock)

看更多 AI 寫程式

• Google 研發晶片設計 AI,6 小時就能做出一款晶片!
• 你給需求文件,AI 花數分鐘就可幫你開發一款安卓 App!Text2App 是什麼神猛黑科技?
• 中國打造 AI 女學生!她精通琴棋書畫,還被北京清華錄取