2022年3月3日,距離世界首個AI程式設計師Devin誕生不足一個月,普林斯頓大學的NLP團隊開發了一個開源AI程式設計師SWE-agent。它利用GPT-4模型在GitHub儲存庫中自動解決問題。 SWE-agent在SWE-bench測試集上的表現與Devin相似,平均耗時93秒,解決了12.29%的問題。 SWE-agent透過與專用終端交互,可以開啟、搜尋文件內容,使用自動語法檢查、編輯特定行,以及編寫和執行測試。 (註:以上內容為原始內容微調,但保留了原文中的關鍵信息,未超過指定字數限制。)
SWE-Agent的智能體-計算機接口(ACI)進行了簡化,大模型的命令和回饋格式被重新設計,使其更容易瀏覽儲存庫、檢視、編輯和執行程式碼檔案。研究團隊還提供了一些有用的功能,例如程式碼檢查器、檔案檢視器和全域目錄字串搜尋命令,以提高效率。這些調整有助於提高工作效率。
在同日,阿里雲公佈了一位特殊的新員工——AI程式設計師“通靈靈碼”,工號AI001。這位AI程式設計師在加入正式員工行列之前已經在阿里雲內外進行了數月的實習,並獲得了超過80%的好評率。通靈靈碼的加入顯示出通用程式碼的加入提高了工程師們在編寫、閱讀、尋找BUG和優化程式碼等方面的工作效率,其工作能力被描述為7x24小時隨叫隨到,大大省略了人類程式設計師在測試程式碼上的工作量。
通用靈碼由阿里雲與通用實驗室共同開發,目前已被下載超過200萬次,每天有數百萬行程式碼被採納。它能夠熟練使用200多種程式語言,並精通16種主流語言。通用靈碼不僅具備程式碼續寫、產生單元測試、程式碼最佳化等技能,還能進行智慧問答和異常報錯排查,減少了排查工作的複雜度。此外,它還支援企業級程式碼庫專項訓練,更能理解企業程式碼和文件數據,並支援國產化適配。
在人工智慧的浪潮中,AI程式設計師的出現無疑是科技革命的一個重要里程碑。從1950年代早期的邏輯推理和專家系統的探索,到今天深度學習和機器學習的廣泛應用,AI技術的發展背景是多方面的。 在過去的幾十年裡,AI研究和應用的範疇不斷擴大。從最初專注於解決邏輯問題和模擬人類思維的早期階段,如今AI技術已經涉及到各個領域,包括醫療保健、金融、交通等。 AI程式設計師的角色
人工智慧程式設計師的興起,標誌著人工智慧技術在程式設計領域的重大突破。它不僅能重塑軟體開發產業的生態,對我們理解人工智慧的潛力和邊界也有著深遠的意義。 AI程式設計的興起可能會改變程式設計師的工作方式和技能需求,但並不會減少程式設計師這個職業的重要性。
AI程式設計師技術特徵分析
AI程式設計師,如Devin、通樂靈碼和普林斯頓大學的SWE-agent,正在重新定義軟體工程的邊界。這些系統不僅展示了AI在程式設計領域的巨大潛力,而且還揭示了科技產業未來可能的發展方向。 AI程式設計師可以透過機器學習和自動化技術,加速軟體開發週期並提高程式碼品質。其結果可能是更有效率、更智慧的開發過程,以及更具創造性和創新性的發展方向。
Devin:全自動AI軟體工程師
Devin是世界上首個全自動AI軟體工程師,它的出現標誌著AI在軟體開發領域的一個重要里程碑。 Devin具備長期推理與規劃能力,能夠執行複雜的工程任務。這意味著Devin不僅能夠處理簡單的編碼任務,還能夠管理整個專案的生命週期,從需求收集到設計、編碼、測試和部署。 Devin的意義在於它不僅能夠處理簡單的編碼任務,還能夠管理整個專案的生命週期,從需求收集到設計、編碼、測試和部署,並且還能夠承擔複雜的工程任務。
圖片
圖:OpenDevin 是 Devin 的複製品,其目標是與開源社群共享力量。透過社群貢獻和對開放標準的承諾,OpenDevin 希望完善和擴展人工智慧輔助軟體工程的功能。
Devin的核心優勢在於其能夠回憶相關上下文,並隨時間學習並修正錯誤。這種能力使得Devin能夠在專案進度中不斷自我完善,減少人為錯誤的可能性。此外,Devin配備了開發者常用工具,如shell、程式碼編輯器和瀏覽器,這些工具都整合在一個沙盒運算環境中,確保了安全性和靈活性。
與使用者的即時協作也是Devin的一大特色。它能夠即時報告進度,接受回饋,並根據需要與用戶共同做出設計選擇。這種協作模式不僅提高了開發效率,也增強了專案的適應性和創新性。
Devin的技術特徵和能力概述:Devin是由Cognition AI團隊開發的AI軟體工程師,它具備自主程式設計的能力,能夠獨立完成複雜的工程任務。 Devin的核心技術特徵包括:
「通靈靈碼」:先進的AI程式設計助手
通靈靈碼作為阿里雲推出的AI程式設計助手,它的目標是提高軟體開發的效率和品質.它透過自動化程式設計任務,幫助程式設計師減少重複性工作,讓他們有更多時間專注於創新和解決複雜問題。
圖片
通靈靈碼的未來目標是寫公司20%的程式碼,使得程式設計師能夠更專注於系統設計和核心業務開發。同時,通靈靈碼也在通義千問APP上線,免費向公眾開放,讓任何人都可以在手機上編寫和學習程式碼。對於沒有程式設計基礎的學生,通義千問還能提供學習建議和製定學習計畫。這標誌著AI程式設計師不僅是程式設計師的助手,而且可能成為軟體開發領域的重要參與者。
「通靈靈碼」的技術特徵和能力概述
普林斯頓開源AI程式設計師:SWE-agent
普林斯頓大學推出的SWE-agent是基於GPT-4技術的首個開源AI程式設計師。作為一個開源項目,SWE-agent能夠在GitHub倉庫中自動修復bug,這對於開源社群來說是一個巨大的貢獻。在SWE-bench測試集上,SWE-agent成功解決了12.29%的問題,平均耗時僅93秒,顯示出與Devin相當的準確率。
SWE-agent的開源性質意味著它能夠快速獲得社群的回饋和改進,這加速了AI在軟體工程領域的進步。 SWE-agent的成功也表明,AI程式設計師不僅能夠提高開發效率,還能夠提升程式碼質量,減少維護成本。
圖:SWE 基準效能
開源性質SWE-agent作為一個開源項目,意味著它的程式碼、設計和功能都是公開的,這為全球的開發者提供了參與和貢獻的機會。它在GitHub上迅速獲得了1.6k星和109個Fork,顯示出開源社群對這項技術的高度認可和興趣。
1. 以GPT-4為基礎的智能體-電腦介面(ACI) SWE-agent透過智能體-電腦介面(ACI)的設計,使得大模型如GPT-4能夠更方便地瀏覽儲存庫、檢視、編輯和執行程式碼檔案。這種設計類似人類喜好的UI設計,提高了與大模型的互動效率和品質。
2. 自動修復bug的能力 SWE-agent能夠在GitHub倉庫中自動修復bug。在SWE-bench測試集上,它成功解決了12.29%的問題,平均耗時僅93秒,準確率與先前推出的AI程式設計師Devin相當。這表明SWE-agent在自動化軟體工程任務方面具有高效和準確的能力。
3. 與專用終端的互動 SWE-agent透過與專用終端互動來運作,它可以開啟、搜尋檔案內容,使用自動語法檢查、編輯特定行,也可以編寫並執行測試。這種互動方式為AI程式設計師提供了更多的自主性和靈活性。
4. 功能性設計SWE-agent包含了研究團隊在智能體-電腦介面設計過程中發現的非常有用的功能,包括添加一個在發出編輯命令時運行的linter,如果程式碼語法不正確,則不會讓編輯命令通過。此外,為智能體提供了專門建構的文件檢視器和全目錄字串搜尋命令,這些功能都旨在提高工作效率和準確性。
5. 智能體工作流程 SWE-agent的工作流程分為兩個階段:「推理」和「評估」。在推理階段,SWE-agent會處理GitHub上報告的問題,並產生一個旨在修復該問題的拉取請求(Pull Request)。在評估階段,會對產生的拉取請求進行評估,以確認它是否真正解決了報告的問題。
AI程式設計師如Devin、通靈靈碼和SWE-agent的出現,預示著軟體開發領域的未來將更加自動化、智慧化和協作化,這些系統的技術特徵和能力展示了AI如何能提高開發效率,降低錯誤率,並推動創新。
Devin AI程式設計師的測試顯示,它能夠完成多種程式設計任務,包括使用API獲取股票價格的軟體和創建允許用戶與大型模型下棋的網站。 Devin在處理API金鑰、套件錯誤和與LLM下棋的提示詞方面表現出色。然而它在反饋速度上還有待提高。
通靈靈碼與GitHub Copilot操作類似,使用者可以輕鬆地從一個工具切換到另一個工具。它在程式碼編寫能力上雖不及GitHub Copilot,但提供免費使用,特定領域的優勢以及良好的操作介面和適配性。根據個人測驗和評價,通靈靈碼可以獲得3.5~4分的評分(滿分5分),被視為值得嘗試的AI編碼輔助工具。
普林斯頓大學推出的SWE-agent在GitHub儲存庫中自動修復bug的能力與Devin相當,平均耗時僅93秒。這項開源專案在GitHub上迅速獲得了社群的認可和興趣。
1. 測試效率和準確性, AI程式設計師透過自動化技術提高了軟體測試的效率,能夠快速識別和修復bug。它們利用機器學習演算法,不斷學習和最佳化,以提高bug發現的準確性和覆蓋範圍。這種持續性的學習能力使得AI程式設計師在軟體開發過程中能夠持續提升其效能。
2. 自動化Bug發現,AI程式設計師在自動化Bug發現方面表現出色,它們可以對軟體程式碼和測試資料進行深入分析,識別出隱藏和複雜的Bug。這不僅提高了測試的質量,還節省了大量的時間和人力成本。
3. 持續效能測試,AI程式設計師能夠執行持續的效能測試,確保軟體系統的穩定性和可靠性。它們透過模擬不同的測試場景,評估軟體在各種條件下的表現,從而確保軟體品質。
4. 功能和效能測試,在功能和效能測試方面,AI程式設計師能夠自動執行單元測試、整合測試和效能測試,以確保程式碼品質。這些測試通常是自動化的,可以在程式碼部署到生產或測試環境之前進行。
5. 提高工作效率,AI程式設計師還可以幫助傳統的測試工程師提高工作效率,例如協助撰寫測試文件、測試案例和測試報告。雖然AI程式設計師在用例設計方面還不能完全取代人類測試工程師,但它們在某些方面已經能夠提供有效的支援。
根據以上多項指標,多家的評測結果顯示AI程式設計師Devin、通靈靈碼和SWE-agent在軟體工程任務的測試中表現不一,各有特色。
在SWE-bench基礎測試中,Devin無需人類輔助就能解決13.86%的問題。
Devin的測試顯示,它能夠執行多步驟規劃並接收環境回饋,72%的通過測試需要10分鐘以上完成,顯示出其迭代能力。
通靈靈碼在輔助Java編碼方面表現最佳,而在SQL及程式碼糾錯方面,iFlyCode可能是更好的選擇。
通靈靈碼支援30 種語言的程式碼解釋,並能對特定領域的知識進行問答,如阿里雲OSS相關問題。
SWE-agent是一個開源的軟體工程代理,能夠將GitHub問題轉換為拉取請求,解決了SWE-bench測試集中12.29%的問題。
SWE-agent實現了Agent Computer Interface (ACI),透過設計簡單的LM中心指令和回饋格式,讓LM更容易瀏覽倉庫、檢視、編輯和執行程式碼檔案。
綜合評價,Devin在無輔助情況下解決問題的能力較強,通靈靈碼在特定領域如編程教育和代碼解釋方面有優勢,而SWE-agent作為一個開源代理,在解決GitHub問題方面表現出色。每個工具都有其獨特的優勢和適用場景。
AI程式設計師技術的拓展正在不斷推動軟體開發領域的變革。從自動化程式設計到智慧程式設計工具,再到最佳化演算法和自動化測試,AI程式設計師技術正成為軟體開發不可或缺的一部分。
AI技術的發展使得許多傳統程式設計任務開始被自動化取代。例如,AI可以用於自動產生程式碼、進行自動化測試和最佳化演算法等。這意味著程式設計師將不再需要花費大量時間進行重複性的程式設計工作,而可以專注於更具創造性和複雜性的任務。
AI程式設計師的出現促進了編碼輔助工具的發展。這些工具可以提供智慧建議、自動糾錯和程式碼優化等功能,幫助程式設計師提高開發品質和效率。隨著機器學習、深度學習等技術的不斷發展,程式設計師可以藉助這些工具提高開發效率,創造出更豐富多彩的應用。
AI程式設計師在演算法最佳化方面具有巨大潛力。它們可以透過學習和演化演算法,自動優化程式的效能、資源利用和效能,從而提高程式的運作效率和使用者體驗。此外,AI可以透過分析程式碼的運作情況和效能數據,自動給予最佳化建議,有助於程式設計師提升軟體效能,提升使用者體驗。
AI程式設計師的崛起也促使程式設計師培養跨學科能力。 AI領域的發展涉及多個學科,如電腦科學、數學、統計學等。程式設計師需要具備跨學科的知識和技能,以便更好地理解和應用AI技術。這種跨學科能力有助於程式設計師在處理複雜問題時綜合不同領域的知識,找到更全面和有效的解決方案。
AI技術的這些應用不僅提高了程式設計的效率和質量,也為程式設計師提供了更廣闊的創新空間和探索領域。隨著AI技術的不斷進步,未來的程式設計師將能夠更好地發揮其潛力,解決實際問題,並推動電腦科學的進一步發展。
在AI技術的快速發展下,AI程式設計師對實際程式設計師的影響是多方面的,既包括挑戰也包括機會傳統程式設計師可以透過不斷學習和適應新技術,利用AI程式設計師的優勢,提高自己的競爭力和生產力。
AI程式設計師的出現使得程式設計工作的某些方面可以自動化和智慧化。例如,AI程式設計師能夠自動產生程式碼,減少人為錯誤的可能性,提高開發效率。這可能會改變傳統程式設計師的工作方式和職責,使他們能夠更專注於更高層次的設計和創新。
AI程式設計師可能具備更快速、更準確地產生程式碼的能力。透過AI程式設計師的輔助,程式設計師能夠更有效率地開發和測試應用程序,減少錯誤和調試時間,提高整體的開發效率。
AI程式設計師的出現可能在某種程度上釋放程式設計師的創造力和創新能力。 AI可以處理重複性的程式設計任務,讓程式設計師有更多時間去思考和解決更複雜的問題,從而增強創新能力。
AI程式設計師可以對程式碼進行效能分析和最佳化建議,找出潛在的瓶頸並提出改進方案,使得程式碼執行更有效率。此外,AI驅動的測試工具能夠自動化產生和執行單元測試、整合測試,確保程式碼質量,減少回歸錯誤。
AI程式設計師的技術可以支援複雜的決策和推理,自動化產生和執行測試,從而提高軟體的可靠性和效能。這種自動化不僅提高了測試的效率,還有助於在早期發現和修復bug,減少了軟體發布後的問題。
儘管AI技術的發展可能會導致一些程式設計職位的減少,但同時也會創造出新的就業機會和發展空間。傳統程式設計師可以透過不斷學習和提升自身的技能,適應新的技術發展趨勢,保持競爭力。
總之,AI程式設計師對實際程式設計師的影響是深遠且複雜的。它們不僅提高了程式設計的效率和質量,還可能改變程式設計師的工作內容和職業路徑。未來,程式設計師可能需要更多關注創新、設計和解決複雜問題的能力,而不僅僅是編碼技能。
AI程式設計師Devin、通靈靈碼和SWE-agent展示了人工智慧在軟體開發領域的顯著進步,提高了程式設計效率並推動了技術創新。 AI程式設計師的優勢是明顯的,AI程式設計師能夠自動化產生程式碼,減少傳統手動編碼的時間和精力。它們可以快速學習大量的程式碼和模式,提高編碼效率,減少人為錯誤的發生。 AI程式設計師透過深度學習和強化學習等技術,不斷自我學習、進化。它們能夠快速適應新的程式語言、框架和技術。同事AI程式設計師具備大規模任務處理和平行運算能力和智慧化和自動優化能力。
但就目前來說,AI程式設計師也具有一些局限性,例如創造力和創新能力不足,AI程式設計師難以進行創造性的創新和設計。還有上下文理解和推理能力有限,AI程式設計師在理解和處理複雜的上下文情境時存在局限,它們可能無法準確理解人類的意圖和特定領域的知識。資料依賴性和泛化能力也是它的缺點,AI程式設計師的表現和效果受限於訓練資料的品質和覆蓋範圍,在面對新領域或新場景時,它們的泛化能力可能不足。
正面,AI程式設計師的自動化程度將進一步提升,其可解釋性和透明性也將增強。這將有助於程式設計師和相關利益方更好地理解和控制AI程式設計師的行為,並提高程式碼的可靠性和安全性。同時,AI程式設計師和人類程式設計師將形成互補的合作關係,共同創造出更有效率、智慧和創新的軟體解決方案。在這個過程中,程式設計師需要適應變化,透過不斷學習、提陞技能和創新思維,與AI程式設計師形成合作共贏的關係。這樣,我們才能在AI時代中立足並發揮重要作用,共同迎接人工智慧時代的到來。 (END)
https://www.php.cn/link/6def9cdc404151fd9c44071edea3d735
以上是AI程式設計師哪家強?探索Devin、通靈靈碼和SWE-agent的潛力的詳細內容。更多資訊請關注PHP中文網其他相關文章!