首頁/ 遊戲/ 正文

這個AI能自動寫程式碼!

相信大家聽說過人工智慧寫程式碼吧?

之前我聽說這玩意的時候還不屑一顧,不過最近我看了一個AI寫程式碼的能力,還真讓我開了眼界。

這個AI叫做:

CodeGeeX

這個AI能自動寫程式碼!

根據官方的宣稱,這個傢伙的誕生可不簡單:

CodeGeeX是一個具有130億引數的多程式語言程式碼生成預訓練模型在20多種程式語言的程式碼語料庫(>8500億Token)上經過歷時兩個月預訓練得到。CodeGeeX採用華為MindSpore框架實現在鵬城實驗室的“鵬城雲腦ll”平臺上訓練而成。

130億+引數,20多種程式語言,訓練2個月。。。真不愧是煉丹術,讓我們來看看這訓練出來的AI寫程式碼能力究竟如何。

如何使用?

使用很簡單,你只需要在註釋中闡述你需要什麼樣的功能,AI會自動提示程式碼輸出,接下來要做的就是不停按Tab鍵就可以了。

PS: 描述程式功能的時候,用英文的效果比中文要好一些。

這個AI能自動寫程式碼!

這裡是它們的官網,在官網提供了線上測試的入口,大家可以去“調戲”一波:

https://models。aminer。cn/codegeex/zh-CN/

除了線上使用,另一種更加實用的方式是整合到IDE中。

這玩意提供了VSCode的外掛支援(PS:VSCode真香),可以在VSCode中體驗絲滑般的使用體驗。

接下來我分別使用了三種主流的程式語言,來試試這傢伙的“智慧”到底是什麼水平。

Python

在Python中,我敲下了一行註釋:

# start a web server on port 8090

意思就是在8090埠給我起一個web服務,來看看AI的表現:

看起來還不錯吧,當然影片是我設定了三倍速播放,正常情況下差不多是1-2秒鐘出來一行,我就是一直等待它計算出來後,不斷按tab鍵,坐等程式編寫完成。

整體來看生成的程式符合我的要求,給個好評。

Java

再來看看Java中的表現,我在註釋中敲下了:

// download a file from a specified url

從一個指定的URL下載一個檔案。

額,不知道為啥把Android的包都引入進來了,難道這玩意的Java是在Android語義環境下訓練出來的?

而且,我沒說這是個圖片啊,程式碼直接當成了Bitmap在處理。

有點文不對題,這次給個差評!

C++

最後來看看在C++中的表現。

我的註釋是:

traverse the files in the specified directory

遍歷指定目錄下的所有檔案。

好傢伙,一來就告訴我,目前只支援Windows平臺,所以生成的程式碼是基於Win32 API的,沒想到這傢伙還精通已經逐漸沒落的Win32程式設計,讓我有點意外。

整體來看效果還不錯,生成的程式碼可用性還是挺高,基於它的結果我們改一下就可以用起來了,再次好評。

總結

除了這三個例子,實際上我還測試了很多,大部分時候還是能get到我的意思,輸出我想要的程式碼,但還是有些場景下,輸出的程式碼風牛馬不相及,不知道是什麼意思。

整體來看,這款AI的水平已經算不錯了,但感覺還是有點雞肋。比如上面三個例子,我在百度那麼一搜,去部落格園、CXDN找一找別人寫的說不定還快一點,質量還可靠一點。

簡單的用不上,複雜的搞不定,差不多就是這麼個意思。

當然還是不能否定人家的成績,能做到這個程度已經很不容易,相信隨著後續的最佳化迭代,也會越來越完善。

AI:程式設計師們,你們顫抖吧!

開啟App看更多精彩內容

相關文章

頂部