自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

AlphaCode驚世登場!編程版“阿法狗”悄悄參賽,擊敗一半程序員

人工智能
今天,DeepMind的“Alpha”家族再添一名新成員:會刷編程競賽題的AlphaCode來了!

今天,DeepMind的“Alpha”家族再添一名新成員:

會刷編程競賽題的AlphaCode來了!

其實,AlphaCode早在幾個月前就“悄悄進村”了,一直沒人察覺。

它默默參加了著名網(wǎng)站Codeforces最近舉行的10場編程比賽,成績超過了一半人類。

直到今天DeepMind才公布最終成績:AlphaCode在這10場比賽中排名前54.3%,Elo評分1238。

更重要的是,在編程比賽這樣考察算法創(chuàng)造力的問題中,AI終于不落下風,而這恰恰是AI過去所欠缺的。

如果把這個分數(shù)放到過去六個月總體來看,AlphaCode的成績更為優(yōu)秀,因為它只刷了10周的題目,就已經(jīng)達到了前28%用戶的水平。

Codeforces是一個由俄羅斯程序員Mikhail Mirzayanov創(chuàng)辦的編程競賽網(wǎng)站,大約每周舉行一次名為“Codeforces Rounds”的編程比賽。

通過Codeforces的Elo評分可以衡量一位程序員的編程水平。

△ Codeforces創(chuàng)始人Mikhail Mirzayanov

當看到AlphaCode的成績后,連創(chuàng)始人Mirzayanov都驚訝不已。

他原本對AI持懷疑態(tài)度,因為編程比賽考驗的是發(fā)明算法的能力,這是最困難的,沒想到AlphaCode的結(jié)果完全超出了他的預期。

DeepMind發(fā)布這條消息僅半天,在Twitter上已經(jīng)有2000多次轉(zhuǎn)發(fā)、5000多點贊。

AlphaCode如何編程

說了這么多,下面我們來看看AlphaCode是如何成為“編程做題家”的。

以下是Codeforces上的1553D問題:

(鏈接:https://codeforces.com/problemset/problem/1553/D)

有兩個字符串s和t,都是由小寫字母組成。對于字符串s,我們從前向后掃描整個字符串。

如果按下Backspace鍵,就刪除該光標前到上一個未刪除字符之間的所有字符。

例如字符串s是”abcbd”,你分別在第一個位置和第四個位置按下Backspace,那么將得到字符串”bd”。

因為在第一個光標位置前沒有字符,所以第一次沒有動作。第四個光標位置前的字符是c,上一個未刪除字符是a,所以按下Backspace將刪除前三個字符”bd”。

好了,現(xiàn)在問題來了:

我們能否從前向后掃描一次s字符串, 讓s變?yōu)閠。如果可以輸出YES,否則輸出NO。

AlphaCode給出的代碼是這樣的:

t=int(input()) 
for i in range(t):
s=input()
t=input()
a=[]
b=[]
for j in s:
a.append(j)
for j in t:
b.append(j)
a.reverse()
b.reverse()
c=[]
while len(b)!=0 and len(a)!=0:
if a[0]==b[0]:
c.append(b.pop(0))
a.pop(0)
elif a[0]!=b[0] and len(a)!=1:
a.pop(0)
a.pop(0)
elif a[0]!=b[0] and len(a)==1:
a.pop(0)
if len(b)==0:
print("YES")
else:
print("NO")

向以上程序輸入4組字符串:

4 
ababa
ba
ababa
bb
aaa
aaaa
aababa
ababa

得到的輸出是:

YES
NO
NO
YES

在這里,AlphaCode不再是黑箱。

它不僅成功解決了問題,還能將代碼和注意力高亮的對應(yīng)位置顯示出來。

一位網(wǎng)友表示:既然AI能看得這么細,那么如果能在代碼后面加入注釋就更好了。

至于更多的案例,可以去AlphaCode網(wǎng)站觀摩。

原理

DeepMind說,在Codeforces比賽中所需解決問題的能力,已經(jīng)超出了現(xiàn)有AI系統(tǒng)的能力。

整個AlphaCode模型的流程如下:

  1. 用標準的語言建模目標在GitHub代碼上預訓練一個基于Transformer的語言模型。這個模型可以合理地代表人類編寫代碼的空間,大大減少了問題的搜索空間。
  2. 在競爭性編程數(shù)據(jù)集上微調(diào)模型,使用GOLD與tempering作為訓練目標,進一步減少了搜索空間,并利用預訓練彌補了少量的競爭性編程數(shù)據(jù)。
  3. 為每個問題從模型中生成非常多的樣本。
  4. 對樣本進行過濾,以獲得一小部分候選提交的樣本(最多10個),在隱藏的測試案例上進行評估,方法是利用實例測試和聚類,根據(jù)程序行為挑選樣本。

總而言之,通過將大規(guī)模Transformer模型與大規(guī)模采樣和過濾相結(jié)合,DeepMind在可以解決的問題數(shù)量方面取得了重大進展,比之前的工作高出一個數(shù)量級。

刷題人士抵觸

正如Codeforces創(chuàng)始人所說,在編程問題中對算法的發(fā)明創(chuàng)造是最難的。

在全球編程比賽網(wǎng)站上常年排名前幾的谷歌工程師Petr Mitrichev說:

解決編程比賽問題是一件非常困難的事情。它既需要良好的代碼技能,也需要人類解決問題的創(chuàng)造力。

AlphaCode不是第一個編程工具,Codex以及GitHub Copilot都給人留下了深刻的印象。

但DeepMind認為,AlphaCode和前輩們大有不同:

最近的大規(guī)模語言模型展示了生成代碼的驚人能力,現(xiàn)在能夠完成簡單的編程任務(wù)。然而,當對更復雜、看不見的問題進行評估時,這些模型的表現(xiàn)仍然很差,這些問題需要解決問題的技能,而不僅僅是將指令翻譯成代碼。

與Twitter上截然不同的是,Codeforces高手們卻多有抵觸情緒。

一位程序員認為:“這個AI真是個菜鳥?!?/p>

因為AlphaCode只有1238分,只相當于一個學生水平,一個參加信息學奧賽的中學生也能刷到這個水平。

雖然DeepMind聲稱AlphaCode是為了輔助人類,但也有程序員開始擔心了:

現(xiàn)在連刷題的世界都被AI占領(lǐng),本來這里是程序員們切磋的地方,AI應(yīng)該適可而止,給程序員們留一片凈土吧!


責任編輯:華軒 來源: 量子位
相關(guān)推薦

2022-12-09 13:54:49

編程AI

2022-02-11 11:32:07

程序員AI編程

2020-09-21 09:22:25

CTO程序員管理層

2020-08-18 18:19:44

高性能開發(fā)程序員

2009-05-22 09:28:18

程序員SOHO職場

2015-10-19 17:49:43

程序員泡沫工資

2012-08-30 10:05:40

編程編程語言程序員

2019-04-12 09:40:30

碼農(nóng)科技開發(fā)

2013-11-14 10:05:25

程序員職業(yè)轉(zhuǎn)型

2023-03-30 14:19:11

程序員數(shù)據(jù)報告軟件開發(fā)

2021-04-26 15:02:13

程序員工具系統(tǒng)

2014-03-06 11:08:40

自學編程程序員

2022-02-07 08:50:00

AI奧數(shù)模型

2012-06-15 09:54:58

程序員編程開發(fā)

2014-06-13 11:03:19

程序員

2011-11-11 16:20:22

編程

2025-02-27 09:26:58

2015-02-03 02:40:33

程序員盲人程序員

2010-03-22 09:32:42

自學編程

2014-11-10 09:46:57

程序員
點贊
收藏

51CTO技術(shù)棧公眾號