sponsored links

AlphaCode到底強在哪兒?清華博士後十分鐘影片詳細解析

機器之心報道

編輯:張倩

AlphaCode 到底是怎麼練成的?

春節期間,DeepMind 的程式設計版 AlphaGo——AlphaCode 一度火到刷屏。它可以編寫與普通程式設計師水平相媲美的計算機程式,在 Codeforces 網站的 10 項挑戰中總體排名前 54.3%,擊敗了 46% 的參賽者。

AlphaCode到底強在哪兒?清華博士後十分鐘影片詳細解析

這一成績給程式設計師群體帶來了不小的壓力,彷彿紡織工被紡織機淘汰的歷史正在重演。

那麼,AlphaCode 是如何做到如此強大的?在最近的一個 YouTube 影片中,清華大學朱軍門下博士後 Tim Pearce 詳細解析了 AlphaCode 的系統架構、「解題」原理、訓練流程等內容。

原影片地址:https://www.youtube.com/watch?v=YjsoN5aJChA

AlphaCode 到底做了什麼?

前面提到,DeepMind 的研究者將 AlphaCode 放在 Codeforces 挑戰中進行了測試。Codeforces 是一個線上程式設計的平臺,裡面有各種各樣的程式設計題目,各種各樣的比賽。它類似於國際象棋中使用的 Elo 評級系統,每週分享程式設計挑戰和問題排名。不同於程式設計人員在打造商業應用程式時可能面臨的任務,Codeforces 的挑戰更加獨立,需要對計算機科學中的演算法和理論概念有更廣泛的瞭解,一般是結合邏輯、數學和編碼專業知識的非常專業的難題。

AlphaCode到底強在哪兒?清華博士後十分鐘影片詳細解析

下圖展示了其中一個賽題的例子,包含賽題描述、輸入輸出示例等內容,挑戰者的任務就是根據這些內容寫出一段程式碼,使得其輸出符合要求。

AlphaCode到底強在哪兒?清華博士後十分鐘影片詳細解析

以下是 AlphaCode 寫出的程式碼:

AlphaCode到底強在哪兒?清華博士後十分鐘影片詳細解析

對於 AlphaCode 來說,這還只是中等難度的挑戰。

在類似的十項挑戰中,研究者將賽題輸入 AlphaCode。然後,AlphaCode 生成大量可能的答案,並透過執行程式碼和檢查輸出來篩選這些答案,就像人類競爭對手一樣。AlphaCode 論文的聯合負責人 Yujia Li 和 David Choi 表示:「整個過程是自動的,無需人工選擇最佳樣本。」

為什麼 AlphaCode 那麼厲害?

下圖是 AlphaCode 的概念圖。這是一個精心設計的系統,主要構建塊是基於 Transformer 的語言模型。但從本質上來說,沒有一個單獨的元件是全新的。

AlphaCode到底強在哪兒?清華博士後十分鐘影片詳細解析

「考場」上的 AlphaCode

我們先來看一下上述系統在測試時是如何工作的。

在解決編碼問題時,AlphaCode 使用了一個非常具體的協議(protocol),這個協議決定了整個系統的 pipeline。協議規定,他們可以無限制地使用示例測試用例,因為這些是作為問題的一部分給出的。但在提交給隱藏測試用例時,他們將提交版本數限制在了 10 次以內(至多 10 次)。

在測試時,AlphaCode 經歷了三個階段。

在第一個階段,他們使用一個大型 Transformer 模型,該模型將問題描述示例測試和一些關於問題的元資料都放在一個字串中作為輸入。然後,他們從這個模型中取樣,生成大量的潛在解決方案。所以第一個階段得到的是 100 萬套可能的程式碼指令碼。

在第二個階段,他們用示例測試用例測試了得到的 100 萬套程式碼,其中 99% 的程式碼都沒有透過測試,可以直接排除。這就將可行的程式碼套數降到了 1000 個左右(具體數量取決於題目的難度)。

在第三個階段,他們使用了第二個 Transformer 模型。該模型將問題描述作為輸入,但它並沒有試圖生成程式碼來解決問題,而是生成測試用例輸入(每個問題對應 50 個輸入)。也就是說,他們並沒有選擇生成輸入和輸出對,而是生成了一些與問題相關的實際輸入。所以模型可能要生成字串、二進位制數或數列(具體生成形式取決於問題型別)。

這種做法好在哪兒呢?他們認為,如果兩個指令碼為所有 50 個測試返回相同的答案,那麼它們可能使用的是相同的演算法。這就可以避免浪費兩次提交機會把這兩個指令碼都測試一下。所以在第二步得到 1000 套指令碼後,他們就根據這 50 個生成的測試輸入的輸出對指令碼進行聚類,然後從每個聚類中選出一個示例指令碼,總共選出 10 個。如果這 10 個指令碼中有一個通過了所有的隱藏測試,那麼他們就成功地解決了這個程式設計問題,否則就宣告失敗。

以上就是 AlphaCode 在測試時的工作原理,其中用到了兩個 Transformer 模型。那麼這兩個模型是怎麼訓練的呢

AlphaCode 的訓練

AlphaCode 的訓練分為兩個階段:預訓練和微調。這一過程涉及兩個資料集:第一個是由各種程式語言組成的公共 GitHub 庫,用於預訓練,資料量高達 715GB;第二個是從各個程式設計挑戰網站(包括 codeforces)蒐集的賽題,用於微調,包括問題描述、測試用例和人類程式設計師編寫的答案。

AlphaCode到底強在哪兒?清華博士後十分鐘影片詳細解析

資料集有了,接下來就是訓練了。

在預訓練階段,他們會抓取 GitHub 上的一些程式碼,然後隨機選擇他們所謂的「pivot point」。

pivot point 之前的所有東西都將被輸入到編碼器中,解碼器的目標則是重建 pivot point 以下的程式碼。編碼器輸出程式碼的向量表示,後續可用於整個解碼過程。

解碼器以自迴歸的方式工作。它從預測程式碼的第一個 token 開始。損失函式就是預測的 softmax 輸出和真實 token 之間的交叉熵。然後,第一個真實的 token 成為解碼器的輸入,第二個 token 隨之被預測出來。在解碼器被要求預測出一個特殊的程式碼結束標記前,這種情況會一直重複下去。現在,這些損失透過解碼器和編碼器反向傳播,但對於編碼器來說,增加第二個損失是非常重要的。這被稱為掩蔽語言建模損失:你將輸入到編碼器中的一些 token 留空,作為一種輔助任務,編碼器會試圖預測哪個 token 被掩蔽了。

AlphaCode到底強在哪兒?清華博士後十分鐘影片詳細解析

預訓練結束之後就到了微調環節。在這個環節,他們將問題描述元資料和示例的輸入輸入到編碼器中,試著用解碼器生成人類編寫的程式碼。此時可以看到,這與編碼器 - 解碼器架構所規定的結構非常自然地吻合在一起。這一階段的損失與預訓練時完全相同。而且,這裡也有第二個 Transformer 用來生成測試輸入。這也是由相同的 GitHub 預訓練任務初始化的,但它被微調以生成測試輸入而不是程式碼。

AlphaCode到底強在哪兒?清華博士後十分鐘影片詳細解析

AlphaCode到底強在哪兒?清華博士後十分鐘影片詳細解析

除了上面提到的常規訓練步驟和架構,AlphaCode 還從最近的其他論文中借鑑了一些經驗。Tim Pearce 指出了其中比較不錯的一個:

AlphaCode到底強在哪兒?清華博士後十分鐘影片詳細解析

AlphaCode 的元資料調節

除了問題描述,研究者還總是將元資料作為 Transformer 的輸入,包括程式語言、問題的難度等級、關於問題的一些標籤,以及解決方案是否正確等。在訓練時,模型顯然知道這些欄位的值是什麼,但在測試時,它們並不知道。非常有趣的是,他們可以在測試時向這些欄位中輸入不同的東西來影響生成的程式碼。例如,你可以控制系統將要生成的程式語言,甚至影響它試圖生成的解決方案型別,比如是嘗試動態程式設計方法還是進行窮舉搜尋。

他們在測試時發現,當他們對最初的 100 萬個程式碼指令碼進行取樣時,將很多欄位隨機化是非常有幫助的。因為,透過增加原始取樣池的多樣性,正確答案出現的可能性就會增加。

以上就是 Tim Pearce 對 AlphaCode 的全部解析。他認為,DeepMind 的團隊在這項工作中的確取得了一些進展。但他比較不解的是:為什麼他們在這些程式設計問題中取得的成就遠遠不及他們在圍棋、《星際爭霸》等遊戲中取得的超越人類的成果?Tim Pearce 初步猜測是因為程式設計問題比較難,而且資料比較難以獲取,因為在遊戲中你可以無限制地產生很多模擬資料,但在程式設計問題上卻不能這麼做。

參考連結:

https://www.youtube.com/watch?v=YjsoN5aJChA

https://storage.googleapis.com/deepmind-media/AlphaCode/competition_level_code_generation_with_alphacode.pdf

分類: 農業
時間: 2022-02-18

相關文章

PVC塑膠複合瓦的發展前景

PVC塑膠複合瓦的發展前景
當傳統的屋面材料已不能滿足建築發展需要時,各種新型屋面材料便應運而生.根據國際建材發展的流行趨勢,屋面材料正向質輕.美觀.環保.防水防火.隔音隔熱等方向發展.然而,石棉瓦.水泥瓦及早些年興起的彩鋼瓦, ...

拍戲靠摳圖、1公里內必有五星酒店,“塑膠演員”的下限有多低?

拍戲靠摳圖、1公里內必有五星酒店,“塑膠演員”的下限有多低?
在時下的演藝圈裡,塑膠演員一詞正引發熱烈討論. 該詞由老戲骨陳道明在某場座談會上提出,他表示文藝界正被一群包裝出來的塑膠演員拉低風評. 隨後人民日報延伸出關於塑膠演員的定義,官媒指出,這華而不實.缺乏 ...

有人帶8助理30保鏢,他啃漢堡被噎,誰揭了“塑膠演員”的遮羞布

有人帶8助理30保鏢,他啃漢堡被噎,誰揭了“塑膠演員”的遮羞布
近日身為中國電影家協會主席,國家一級演員的陳道明在一場座談會中談到流量明星的話引發大家熱烈討論,同時也獲得許多網友的支援與點贊. 陳道明尖銳地指出:他們不是文藝界的,他們是流量界的,他們是被包裝炒作出 ...

家常菜“塑膠炒茄子”

家常菜“塑膠炒茄子”
兄弟們,今天我為大家介紹一下我家祖傳百道美食之一的"塑膠炒茄子",我家一般人都不傳出去,今天我冒著生命危險為大家分享一下. 首先,我們先去地裡撿幾個腐爛30年的茄子,然後將它用宰牛 ...

研究稱陽光可將海洋塑膠分解成數萬種化合物
據美國伍茲霍爾海洋研究所官網9月8日訊息,美國麻省理工學院與伍茲霍爾海洋研究所領銜發表在<環境科學與技術>雜誌上的最新研究發現,陽光能在幾周時間內,將塑膠分解為成千上萬個水溶性化合物.此前 ...

大力發展再生塑膠行業 推進塑膠汙染治理取得更大成效——政策解讀之三
塑膠的品種多,綜合性能優良,廣泛應用於經濟社會方方面面.塑膠的人均消費量也反映了一個國家的經濟發展水平.我國已經成為了塑膠原料生產.製品生產和消費的大國.據統計,隨著經濟社會發展和人民生活水平不斷提高 ...

足球夾球、10人圍圈護球,你為國足想的歪點子都在犯規手冊裡

足球夾球、10人圍圈護球,你為國足想的歪點子都在犯規手冊裡
足球夾球犯規嗎?是的,這是一種明顯的犯規行為.面對國足常年不給力的情況,有球迷建議國足球員可以用雙腳或者雙腿夾住足球,衝向對方球門,只要夾得夠緊,就有機會把球送進對方大門,還有球迷建議10個人圍成一圈 ...

院子裡要是種了樹,就在底下圍一圈卡座地臺,睡覺乘涼給院子加分

院子裡要是種了樹,就在底下圍一圈卡座地臺,睡覺乘涼給院子加分
最懷念小時候老家樹下乘涼或和小夥伴們玩遊戲了,如果你家院子裡有一棵大樹,你該怎麼打造你的院子呢? 有一棵大樹,雖然夏季能夠給一家人提供遮陽.乘涼地,但有的朋友卻認為太佔面積,院子裡想規整規整種花草都沒 ...

抱朴再生推出環保中秋禮盒 以“塑膠碎片”打造“太空團圓之禮”

抱朴再生推出環保中秋禮盒 以“塑膠碎片”打造“太空團圓之禮”
今年中秋節十分特別,彼時嫦娥"奔向"月宮,神州十二號載人飛船也由"天宮"成功返航.這是一次跨越了上百公里的"太空式團圓",也是穿越了上千年的 ...

自建房樓頂是露臺,在樓梯口圍一圈玻璃房,常年開著像個小天井

自建房樓頂是露臺,在樓梯口圍一圈玻璃房,常年開著像個小天井
最近被國外的獨棟自建房給種草了,老家自建房拾掇拾掇,不比國外差,比在城裡買房更實惠,關鍵頂層露臺全是你家獨有,像種花.曬衣或是燒烤都可以,沒有業主投訴.物業管理,真香啊! 先來說說它的劣勢好了,入口圍 ...

200斤海龜活活被“撐死”!塑膠垃圾究竟有多可怕?真相終於藏不住了…

200斤海龜活活被“撐死”!塑膠垃圾究竟有多可怕?真相終於藏不住了…
本文專家:李一嵐,中國科學院大學化學博士 大家早上好!吃早餐的時間又到了. 然而今天要上班,很多人恐怕沒有那麼多時間準備早餐,就需要吃點方便食品,比如泡麵.餅乾.香腸-- 那麼問題來了:吃完了之後,這 ...

國外陽臺新操作,外沿加寬圍一圈不鏽鋼格柵板,面積增加通風透氣

國外陽臺新操作,外沿加寬圍一圈不鏽鋼格柵板,面積增加通風透氣
國外多住自建房,其中陽臺裝修就很不一樣,國內一般是開發商自帶的陽臺,裝上防盜網,而國外在房子蓋完之後,直接抬高加陽臺,關鍵還會給陽臺加寬,外沿加一圈不鏽鋼格柵板,這是什麼操作? 國內開發商自帶的陽臺, ...

“塑膠演員”的8種行為,一個比一個離譜,有演員用替身演整部戲

“塑膠演員”的8種行為,一個比一個離譜,有演員用替身演整部戲
今年以來國內娛樂圈可謂是地震不斷,很多明星紛紛翻車. 而隨著這些明星出事,藝人藝德.天價片酬.陰陽合同."飯圈"文化等娛樂圈的亂象也浮現在了大眾面前. 面對這些亂象,不管是相關行業 ...

拍戲靠摳圖,對白念數字,假唱對口型,這群塑膠演員遲早要涼涼的

拍戲靠摳圖,對白念數字,假唱對口型,這群塑膠演員遲早要涼涼的
這個9月,娛樂圈迎來了"清朗"的秋風. 先有各種劣跡明星紛紛落馬,後有相關部門釋出整頓政策,再有央媒通報批評,雙管齊下整治娛樂圈. 其中就有那些拍戲靠摳圖,對白念數字的塑膠演員.在 ...

還是為了環保?iPhone 13零售包裝現身,塑膠封膜真的沒有了

還是為了環保?iPhone 13零售包裝現身,塑膠封膜真的沒有了
本月17日晚,iPhone 13系列正式開啟預購.雖然很多果粉都參與了這次預購,但是要收到真機,可能還需要耐心等待幾天.不過,儘管如此,還是有博主提前在網上曝光了iPhone 13的包裝盒. 從網上曝 ...

寶寶頭圍怎麼測?

寶寶頭圍怎麼測?
頭圍是指自眉弓上緣經枕後結節繞頭一週的長度.是反映腦發育和顱骨生長的重要指標. 頭圍測量的意義是什麼? 頭圍過小多見於頭小畸形.腦發育不全:頭圍過大或增長過快提示腦積水.腦腫瘤的可能. 測量頭圍的正確 ...

淮海戰役中,為何80萬徐州國軍被圍,周邊的百萬友軍卻不動如山?

淮海戰役中,為何80萬徐州國軍被圍,周邊的百萬友軍卻不動如山?
在淮海戰役中,我軍60萬強吃80萬國軍精銳,完成了戰爭史上以少勝多的壯舉,兵力處於劣勢的我軍卻笑到了最後.而這場決定關內雙方命運的關鍵戰役,也因我軍運籌帷幄的指揮藝術.狹路相逢勇者勝的強硬作風,永載史 ...

50年代湖南“百虎圍村”,10年間2000多人慘死虎口,究竟有何緣由

50年代湖南“百虎圍村”,10年間2000多人慘死虎口,究竟有何緣由
2007年,陝西一位農民聲稱拍到了華南虎,其真假尚且難辨,就在我國媒體上引起了一陣轟動. 可你知道嗎?曾經的湘南大地上,老虎非但算不上什麼稀罕物,反而氾濫成災.與人為患,最嚴重的時候還鬧出了沸沸揚揚的 ...

美國遊客到安徽旅遊,看到“黃山”都被圍起來收費!直言看不明白

美國遊客到安徽旅遊,看到“黃山”都被圍起來收費!直言看不明白
像廣州的白雲山,其位於廣州市的東北部,山體相當寬闊,由30多座山峰組成,是廣東最高峰九連山的支脈.白雲山因為植被茂密,負氧離子含量高,被稱為是避暑的勝地!其實像廣州白雲山這樣出眾的名山名景我國還有很多 ...

“塑膠演員”的種種行為,一個比一個離譜,有演員用替身演整部戲

“塑膠演員”的種種行為,一個比一個離譜,有演員用替身演整部戲
娛樂圈可以說是在今年出盡了風頭,動盪不定,好多明星藝人接二連三的翻車. 明星藝人的翻車事件頻發,暴露出了娛樂圈的一些亂象終於大白於天下,比如說"飯圈"文化,天價片酬,陰陽合同,藝人 ...