这个AI狠!能互译C++、Java和Python,以后只学一种编程就行吗
如果要問這個世界有多少種編程語言,想必我們很多人都會發懵,要么嘀咕思考一會,要么找資料查詢。沒幾個人——或者說沒一個人能清楚地羅列出現在到底有多少種編程語言。的確,計算機編程語言不僅分好幾種類,而且數量繁多。一人客覺得,除了機器語言、匯編語言比較單一外,高級語言多得簡直能讓人看得眼睛發花,學得頭皮發麻。更何況,計算機技術在發展,技術更新快,編程語言也一直在變化。
雖然說高級編程語言很多東西是相通的,學好一種編程語言,再學其他編程語言會很快入門并上手做項目。不過編程語言的不同,對太多技術人而言,還是需要下功夫努力需要付出很多時間、精力乃至金錢上的成本。畢竟,現實生活中,我們往往不可能只懂一種編程語言,而只能根據需要選擇學習和使用不同的編程語言或技術。
那么在人工智能技術發展如此之快的今天,AI就不能在這個問題上幫幫我們解決一下?巧了,還真有。想必關注一人客的文章的朋友都大概知道,現在的人工智能技術,在自然語言理解、處理上已經很成熟,可以翻譯自然語言了。那么AI翻譯編程語言,可以不可以?可以,美國Facebook還就這么做了。
他們最近推出了TransCoder,這是一個可以翻譯編程語言的AI,也就是說,這個人工智能程序可以在C++、Java、Python語言之間互譯,把Java翻譯成C++,把Python翻譯成Java。而目前經過測試得出的結果呢,則是,翻譯后的代碼成功運行的通過率是80.9%。
驚訝不老鐵?這么實用的AI技術要是普及開來,程序員還不得喜從天降痛哭流涕啊。天啊,終于不用勞心費力地移植代碼,不用再在該死的編程語言之間切換了,只學一種編程語言就行了,用一種編程語言寫代碼,再翻譯成其他編程語言。想變成C++,那就翻譯成C++,想變成Java,就翻譯成Java。
這個好有一比。你寫的代碼就好比你用漢字寫的文章。在以前,你要給英文讀者看,那你就得先學習英語,然后把你的漢語文章用英文再寫一遍。你要給法國讀者看,那你就得先學法語,然后再把你的漢語文章用法文寫一遍。而現在呢,一個翻譯軟件搞定。
那么這個神一樣的翻譯AI軟件,是什么原理呢?據了解,TransCoder利用的是無監督學習算法,充分利用了編程語言的特點,比如像for、while、if這些關鍵詞以及通用的數學運算符。而實現這個無監督編程語言機器翻譯的三個原則,則分別是:
首先,通過跨語言掩碼語言模型(MLM)預處理來初始化模型,這有些類似于自然語言的填空題。其次是去噪自動編碼,它能訓練解碼器始終生成有效序列,即使在輸入有噪聲的數據時也是如此,提高了編碼器對輸入噪聲的魯棒性。最后是反向翻譯,它允許模型生成可用于訓練的并行數據。每當Python轉C++模型變得更好時,它就會為C++轉Python模型生成更精確的數據,反之亦然。如果大家對Python感興趣的話,可以加一下我的薇信哦:abb436574,免費領取一套學習資料和視頻課程喲~
在訓練后,TransCoder這個AI成功地理解了每種語言特有的語法、數據結構、函數庫和方法。而為了訓練這個AI,Facebook從GitHub上找了280萬個開源代碼庫來訓練的,其中包含數百億個token。當然就目前為止,這個翻譯AI還沒那么完善,而且類似的代碼生成系統也不是第一個。但至少這是一個很被看好的需求方向,未來人工智能不僅會在現實生活中落地替代我們做很多事,而且會在技術上替代我們做很多工作。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的这个AI狠!能互译C++、Java和Python,以后只学一种编程就行吗的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 逼自己玩命学了3个多月,吃透了Pytho
- 下一篇: 火爆 GitHub 的 16 张机器学习