《智慧化軟體開發:程式設計師與 AI 機器人一起結對程式設計》閱讀筆記
前言
今日閱讀文章:《智慧化軟體開發:程式設計師與 AI 機器人一起結對程式設計》
原連結見:[1]
閱讀筆記
簡介
伴隨著 AI 技術的發展和應用,人們對「人工智慧」的認知也不斷被重新整理和拓展,在大眾眼中,AI 正變得越來越強大,不僅可以下棋博弈戰勝人類的頂尖選手,還可以進行語音識別、自動翻譯、人臉識別,甚至可以自動駕駛汽車。最近,北京大學與矽心科技團隊聯合推出了一項新的 AI 成果——aiXcoder,它利用 AI 技術輔助開發者自動進行程式編寫,引燃了人們關於「AI+軟體」的巨大發展潛力以及「軟體開發自動化」發展前景的討論與思考。
這麼強大的嗎,北大和矽心科技團隊開發出“aiXcoder”來輔助開發者進行程式編寫。
這個方向很新啊,看來。而且都是大公司在做,比如:谷歌,Facebook,微軟。
與上述研究思路不同,來自北京大學的研究團隊,正致力於「輔助人類程式設計師自動編寫程式程式碼」。「雖然在完全不依賴人類程式設計師的場景中自動生成程式仍需進一步研究,但我們可以利用人工智慧技術來輔助人類編寫程式。」北京大學高可信軟體技術教育部重點實驗室副教授李戈表示,「我們已經在『利用 AI 輔助程式設計師程式設計,以提高程式編寫的效率和質量』方面取得了重要的研究進展。」
這個確實是一個很好的思路,既然不能完全自動生成程式碼,我們可以採用半自動,即semi-automatically 的方式來做突破,循序漸進才是穩健之選。
李戈所在的研究團隊是國際上最早從事基於深度神經網路的計算機程式分析與生成研究的團隊之一,在程式碼功能語義分析、程式碼自動生成與補全等方面的研究成果受到國內外同行的高度關注。 近年來,該團隊取得了一系列重要研究成果,形成了一批重要的行業專利及學術論文。基於所取得的科研成果,李戈所在實驗室正轉向產業化應用,致力於將「智慧化軟體開發技術」轉化為能夠支援工業界生產的商業產品——aiXcoder。
劃重點。厲害。 而且該團隊是將近年來的一系列研究成果綜合起來,才做出來的aiXcoder,我覺得真酷! 自己的研究成果能夠真正推動工業的進步,實在美哉。
aiXcoder 智慧程式設計機器人
aiXcoder 是一款全新的智慧程式設計機器人產品,它採用與程式設計師一起「結對程式設計」的方式為程式設計師提供服務,從而提高程式設計師的程式設計效率。在 aiXcoder 的輔助下,程式將徹底擺脫傳統的程式設計模式,不再需要「逐字逐句」編寫程式。
這麼厲害的嗎,結對程式設計,我之前上課才學過的概念,似乎是:兩個程式設計師互幫互助一起完成軟體專案開發。 現在竟然變成了AI+程式設計師結對程式設計,好有想法。
aiXcoder 能夠自動預測程式設計師的程式設計意圖,連續向程式設計師推薦「即將書寫的下一段程式碼」,程式設計師可以通過「一鍵補全」的方式,直接確認接下來輸入的程式碼,從而大大提升程式碼的編寫效率。同時,aiXcoder 還能夠在程式程式設計的過程中,不斷智慧地搜尋並推薦與當前程式功能相似的規範程式程式碼,為程式設計師提供有力的程式設計參考。目前,aiXcoder 程式設計機器人已經推出了 Android、JFinal、Tensorflow 等多個版本,為不同領域的程式設計者提供輔助。
疑問:aiXcoder搜尋的速度快不快,佔用的系統資源大不大呢
當前,aiXcoder 採用「雲服務」的執行模式,其深度學習模型如同部署在雲端的「程式設計大腦」,其客戶端以外掛的形式整合在 IDE 中,實現了與 IntelliJ、Eclipse、VS-Code 等主流整合開發平臺的無縫對接,程式設計師可以通過 aiXcoder 外掛實現與「雲端 AI 服務」的對接,隨時隨地使用自己的「程式設計大腦」。 同時,aiXcoder 還可以為軟體企業提供專業領域的定製化專屬服務,以企業內部雲的方式為軟體企業提供專屬服務。使用過該服務的某軟體外包公司反饋:aiXcoder 不僅能夠有效節省程式設計師的開發時間,還能夠有效降低程式設計師對 API 文件或相關資訊的依賴,「原本需要上網搜尋相似程式碼和搜尋 API 使用模式的時間,被節省了下來,可以更加集中精力編寫特定系統所需要的程式碼。」站在程式設計師的角度,在 aiXcoder 的幫助下,開發者可以把更多時間用於「全新」程式碼的編寫,提高個人價值。
原來是雲服務的方式,那就是說不需要佔用本地的運算資源,很實用。
以 aiXcoder 的 Tensorflow 版本為例,他們使用了超過 30 萬份經過處理的 Tensorflow 原始碼作為訓練資料,使神經網路模型學會了編寫 Tensorflow 程式碼所需的各種規範模式、潛在規則、常用 API 序列、慣用編碼模式等知識和經驗。在程式設計師編寫程式碼的過程中,aiXcoder 能夠自動推測程式設計師的程式設計語義,並按照這些知識和經驗及時向程式設計師推薦可能要使用的程式設計語句,以達到輔助程式設計師自動完成程式的目的,大大提升程式開發的速度。
30萬份原始碼做訓練。
「Leave Artificial Intelligence to aiXcoder, Leave Real Intelligence to Human.」(把人工智慧留給 aiXcoder,把真正的智慧留給人類。),這正是 aiXcoder 研發團隊的信條和口號。
初步觀察
我進上面給出的aiXcoder的官網上看了看,網頁做的很好,下載的地方也很明瞭,而且提供免費下載,甚至還有評論區,我進評論看了一下,發現很有意思:
使用很慢會不會和網速有關係?
總的來看,感覺這些意見還是很中肯的。
總結
這個工作很有意義,以後希望也有機會接觸到這些。