金磊 發自 凹非寺
量子位 | 公眾號 QbitAI
GitHub Copilot,最近又出了個新功能。
這一次,它不再是幫你寫代碼了,而是充當一個“翻譯官”:
用“人話”告訴你,這段代碼到底寫了啥。
瞧,只需要選中一段代碼,然后點一下旁邊的“Ask Copilot”,就會快速得到代碼的“人話版”解釋:
示例中的代碼片段是這樣的:
if?len(l)=0:
returnNone
else:????max_int=l[0]for?i?in?l:if?i>max_int
????????????max_int=i
return?max_int
Copilot對此進行“翻譯”后,輸出的內容是:
定義一個函數max_int(),它將一個列表作為輸入。
設置一個變量max_int=l[0],它包含列表中的第一個元素。
設置一個for循環,迭代列表中的每個元素。
如果元素大于max_int,便讓max_int等于I。
返回max_int。
這便是GitHub Copilot的最新功能——Explain Code。
之前Copilot是基于人類的注釋生成代碼,現在好了,它也學會了反向輸出。
網友們的反應也是可想而知了:
但在“新奇”之后,這件事也引發了不小的討論。
AI給代碼做注釋,有必要嗎?
不僅是Copilot,“AI給代碼做注釋”這事最近在Reddit也比較火。
有位貼主上傳了他用AI技術,給代碼做注釋的demo。
不同于Copilot的Explain Code,這個AI不會非常詳盡地去描述每行代碼運行的過程。
而是概括性地去講“這段代碼是干嘛的”。
以下面這個代碼片段為例:
在AI“解讀”過后,它就會告訴你:
這段代碼是用來從GitHub的Repo中收集數據。
會返回一個數據的矩陣。
再如下面這個代碼片段:
AI給出的注釋是:
函數運行的是梯度下降算法。
而后它還會對函數中的變量依次做解釋。
看似不錯的效果,但依舊還是引來了網友們激烈的討論。
“樂觀派”網友認為:
輔助寫注釋和寫測試比寫代碼的幫助大更多,而犯錯可能更少。
但有人質疑這種AI的能力:
如果我函數寫的特別亂、變量這名字亂糟糟的,它還能好使嗎?
也有人認為,諸如此類的AI“沒有什么用處”:
更形象一點的比喻,這種AI起到的作用,可能就是“復讀機”……
那么對于“AI給打碼寫注釋”這件事,你覺得是否有用呢?
參考鏈接:
[1]https://twitter.com/ow/status/1466149473701273602
[2]https://www.reddit.com/r/MachineLearning/comments/sab6tk/p_documentation_generated_using_ai/
[3]https://weibo.com/1402400261/LcqZsETbR?filter=hot&root_comment_id=0&type=comment
(聲明:本文僅代表作者觀點,不代表新浪網立場。)