點(diǎn)擊上方“視學(xué)算法”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)
本文約2088字,建議閱讀4分鐘
本文介紹了OpenAI發(fā)布的一種AI工具Codex的升級(jí)版本,它可以將英語(yǔ)翻譯成代碼,甚至支持語(yǔ)音錄入。

編程從某種意義來(lái)說(shuō),是人類是將想法變?yōu)橛?jì)算機(jī)可以理解和執(zhí)行的指令的過(guò)程,這一過(guò)程需要程序員融入自己的算法思路,并且用固定的語(yǔ)法將程序?qū)懗鰜?lái)。這一過(guò)程并不容易,門檻也并不低。但是OpenAI正在用AI簡(jiǎn)化這一過(guò)程,最近,OpenAI發(fā)布的一種AI工具Codex的升級(jí)版本,它可以將英語(yǔ)翻譯成代碼,甚至支持語(yǔ)音錄入。這意味著,你只要說(shuō)出來(lái)你想要的效果,Codex可以直接幫你完成整個(gè)編程的過(guò)程。比如下面這個(gè)示例,一個(gè)經(jīng)典的‘接球’小游戲,就是Codex根據(jù)語(yǔ)言描述自己編程制作出來(lái)的,這個(gè)過(guò)程中人類沒(méi)有輸入一行代碼。這只是一個(gè)小項(xiàng)目,Codex究竟可以做到什么程度呢?文摘菌也很好奇,于是查詢了一番,發(fā)現(xiàn)已經(jīng)有人開始驗(yàn)證Codex的極限了——用Codex制作一個(gè)AI!嗯,用自動(dòng)編程AI創(chuàng)造AI,有點(diǎn)那味了!在這里還是先要嘮叨一下Codex的簡(jiǎn)單情況,熟悉的小伙伴可以直接跳過(guò)。正如OpenAI的CTO和聯(lián)合創(chuàng)始人Greg Brockman所說(shuō),編程包括兩步: 1、認(rèn)真思考一個(gè)問(wèn)題并試圖理解它 2、將這些小片段映射到現(xiàn)有的代碼中,不管它是一個(gè)庫(kù)、一個(gè)函數(shù)還是一個(gè)API。Codex的出現(xiàn)就是為了解決第二步,解放程序員的雙手,讓他們?cè)诘谝徊糠稚匣ㄙM(fèi)更多時(shí)間。要讓AI完成第二步,也需要兩步,一是讓AI能夠理解程序員的想法,二是讓AI能夠?qū)⒗斫獾降男枨筠D(zhuǎn)化為可執(zhí)行的代碼。這兩點(diǎn)對(duì)OpenAI來(lái)說(shuō)都不陌生,他們開發(fā)的GPT-3已經(jīng)大獲成功,在自然語(yǔ)言理解和生成上都有很強(qiáng)的技術(shù)積累,在創(chuàng)作方面,從完整的博客文章到歌曲、食譜,GPT-3都不在話下。因此,只要有足夠的語(yǔ)料庫(kù)數(shù)據(jù),就可以運(yùn)用類似的原理訓(xùn)練出可以自動(dòng)寫代碼的Codex(事實(shí)上Codex就是GPT-3的后代),顯然,存放了無(wú)數(shù)優(yōu)秀代碼的GitHub就是一個(gè)現(xiàn)成的語(yǔ)料庫(kù)。7月,OpenAI和GitHub合作開發(fā)了GitHub Copilot,這個(gè)功能可幫助程序員自動(dòng)改進(jìn)或更新軟件,在這個(gè)基礎(chǔ)上,借助GitHub上數(shù)十億行代碼,Codex最終獲得了將英語(yǔ)翻譯成代碼的能力。在對(duì)不同語(yǔ)言模型的編碼挑戰(zhàn)能力的專門測(cè)試APPS中,120億參數(shù)版的Codex取得了遠(yuǎn)超GPT-Neo和GPT-J的能力,能夠?qū)?8.81%的問(wèn)題給出正確答案。測(cè)試很完美,實(shí)用性也不錯(cuò),缺點(diǎn)也存在無(wú)論是演示一個(gè)‘接球’游戲,還是一個(gè)‘飛船’游戲,Codex都能完成很好。比如官方演示的‘飛船’游戲,在調(diào)整火箭速度時(shí),演示人員告訴Codex:‘when the rocket is clicked, temporarily display some text saying ‘fire thruster! ' in white on the current location——and temporarily speed up by 4x for 0.25 second’(“當(dāng)火箭被點(diǎn)擊,暫時(shí)顯示一些白色文字說(shuō)“火焰推進(jìn)器!”,并暫時(shí)加速4倍,持續(xù)0.25秒”)
Codex就會(huì)自動(dòng)將相關(guān)代碼寫出來(lái)。那么Codex對(duì)于一些現(xiàn)實(shí)任務(wù)的解決能力如何呢?Thomas Smith在Codex推出一周后應(yīng)邀進(jìn)行了Beta測(cè)試,他測(cè)試了一些現(xiàn)實(shí)任務(wù)。比如一個(gè)在加州非常接地氣的項(xiàng)目:根據(jù)郵編獲取空氣質(zhì)量指數(shù)(Air Quality Index),判斷是否存在山火。#Use the airnow API to to find and print the current AQI for zip code 94549
import urllib2
import json
api_key = "E722A2CA-9D39–4CDD-943B-8BAD9A298E0B"
url ="http://www.airnowapi.org/aq/observation/zipCode/current/?format=application/json&zipCode=94549&distance=25&API_KEY="+ api_key
request = urllib2.Request(url)
response = urllib2.urlopen(request)
data = json.load(response)
print data[0]['AQI']
完成地非常好!Codex根據(jù)文本描述中提到的Airnow API,找出了API的URL,還提供了必要的參數(shù),以獲得輸出。并且,還正確地判斷出了 AQI 的含義,并編寫了一個(gè)URL字符串,接受郵編94595作為輸入,查找該郵編的當(dāng)前情況,并返回AQI。Thomas Smith還測(cè)試了另一個(gè)例子,指示 Codex 獲取當(dāng)前的比特幣價(jià)格,然后格式化輸出,任務(wù)描述是:
Get the current price of Bitcoin using Coindesk’sAPI and display it as giant red letters in the middle of a webpage.
Codex生成了相應(yīng)的JavaScript代碼,還還生成了一個(gè)簡(jiǎn)單的網(wǎng)站,精確地實(shí)現(xiàn)了要求的功能:除此之外,Codex還能完成代碼翻譯、編寫代碼文檔等其他枯燥但重要的編碼工作,這些可以在將來(lái)幫助程序員做很多繁瑣的事項(xiàng)。那程序員是否需要擔(dān)心Codex會(huì)搶走他們的工作呢?目前來(lái)看,這樣的擔(dān)憂是沒(méi)有必要的,Thomas表示,Codex目前還不完美。第一,根據(jù) OpenAI 的說(shuō)法,當(dāng)前版本的Codex第一次就能編寫完美代碼的成功;率只有37%。要讓該系統(tǒng)真正起作用,依然需要人類程序員去審查代碼,評(píng)測(cè)其輸出是否正常工作,并進(jìn)行 Codex 做不到的微調(diào)和更新。第二,編寫代碼只是編程工作中的一小部分,程序員最重要的工作是理解問(wèn)題,并將其轉(zhuǎn)換成計(jì)算機(jī)能理解的格式。定義問(wèn)題、歸約到最基本的組成部分,再將這些組成部分翻譯成指令,這些工作占據(jù)了經(jīng)驗(yàn)豐富的程序員的大部分時(shí)間。另外,OpenAI也指出Codex存在過(guò)度依賴生成的輸出的問(wèn)題,并且大規(guī)模參數(shù)量還會(huì)產(chǎn)生大量碳足跡。用Codex自動(dòng)寫一個(gè)AI,效果如何?YouTube博主@Edan Meyer用Codex創(chuàng)造了一個(gè)手寫數(shù)字分類器,整個(gè)過(guò)程只是給Codex輸入了四句話。- 用Pytorch實(shí)現(xiàn)一個(gè)前饋神經(jīng)網(wǎng)絡(luò)
然后,提交‘Submit’,Codex就自動(dòng)完成了所有代碼的編寫。效果還不錯(cuò),看來(lái),AI套娃完全是可行的嘛!那么Codex的下一步是什么呢?看看網(wǎng)友的評(píng)論:“編寫一個(gè)排列良好的AI架構(gòu),可以擴(kuò)展到超級(jí)智能AGI”。哈哈哈,看起來(lái)Codex還有很長(zhǎng)的路要走。https://www.youtube.com/watch?v=Zm9B-DvwOgw&t=248s
https://openai.com/blog/openai-codex/
https://www.youtube.com/watch?v=6yJWMuUWcxY
https://www.youtube.com/watch?v=FC962DmVfSU
https://www.pcgamer.com/this-ai-tries-to-code-whatever-you-tell-it-to-even-videogames/
https://betterprogramming.pub/i-beta-tested-openais-codex-and-the-results-are-spooky-good-e282a1874c79