最近,開源中國 OSCHINA、Gitee 與 Gitee AI聯(lián)合發(fā)布了《2024 中國開源開發(fā)者報告》。
報告聚焦 AI 大模型領域,對過去一年的技術演進動態(tài)、技術趨勢、以及開源開發(fā)者生態(tài)數(shù)據(jù)進行多方位的總結和梳理。
在第二章《TOP 101-2024 大模型觀點》中,同濟大學特聘教授、CCF 杰出會員朱少民對 2024 年 AI 編程技術與工具發(fā)展進行了總結。
全文如下:
2024 年 AI 編程技術與工具發(fā)展綜述
文 / 朱少民 2024 年 8 月下旬,一款 AI 代碼編輯器 ——Cursor 火爆全球,火到一位 8 歲小女孩拿著它學編程,幾十分鐘內搭起來一個聊天機器人,其演示吸引來 180 萬人在線圍觀。這導致有人大膽預言,未來編程只需要狂按 Tab 就夠了。Cursor 確實好用,包括新推出的“光標位置預測”功能。 但是 AI 編程發(fā)展沒有那么快,在國內生成代碼采納率還比較低,根據(jù)《2024 軟件研發(fā)應用大模型國內現(xiàn)狀調研報告》,多數(shù)團隊在 10-40% 之間,如圖 1 所示。
圖 1 大模型(LLM)在編程上的應用及其生成代碼的采納率 在 2024 年,我們還看到了“AI 程序員” Devin 的誕生,Devin 能夠獨立完成復雜的編碼和調試任務、自主查找和修復代碼庫中的錯誤,構建和部署應用程序。在 SWE-bench 編碼基準測試中,Devin 能夠解決 GitHub 中 13.86% 的真實問題,有了很大提升。 說起 SWE-bench 編碼基準測試(https://www.swebench.com/),2024 年進步很快,以 OpenAI 建立的 verified 子集(500 個問題)為例,4 月開始時,成功率只有 2.8%,到現(xiàn)在已提升到 53%,這表明 AI 在編程能力方面取得了顯著的進步。這一提升反映了 AI 編程幾個關鍵因素,正好用來總結 2024 年 AI 編程的進展。 模型能力的增強:AI 模型的架構和算法不斷優(yōu)化,如從 Claude 3 Opus、GPT-4o 到 Claude 3.5 Sonnet、Claude 3.5 Haiku,大模型自身的能力不斷提升,使得模型能夠更好地理解和解決復雜的編程問題。 智能體(AI agent)的引進:智能體可以收集和學習與任務相關的知識,可以直接調用靜態(tài)代碼分析工具、直接調用搜索引擎和 API 為編程任務服務,并通過構建代碼倉庫知識圖來幫助大模型全面理解軟件倉庫的結構和依賴關系,從而更好地定位問題根源并生成有效的代碼補丁。 智能體還可以動態(tài)獲取代碼片段和問題相關的信息,并分析和總結收集到的信息,以便規(guī)劃出更好的解決方案。例如從 RAG+GPT 4 (1106) 的 2.8% 提升到 SWE-agent+GPT 4 (1106) 的 22.4%、從 RAG+Claude 3 Opus 的 7% 提升到 SWE-agent+Claude 3 Opus 的 18.2%,效果都比較顯著。 多模態(tài)能力:多模態(tài) LLM 使智能體能夠綜合利用視覺和文本信息,可以理解軟件用戶界面、處理的圖表、可視化數(shù)據(jù)、語法高亮和交互映射等內容,更好地理解任務陳述以及獲取任務相關的產品信息、開發(fā)過程信息,從而更全面地理解和解決問題。目前排在 SWE-bench verified 前 4 位都使用了 Claude-3.5-Sonnet,而它是多模態(tài)的、具備處理文本和視覺信息的能力,使其能夠理解和修復包含圖像或其他視覺元素的 GitHub 問題。 和工具集成的框架:可以支持智能體在處理復雜任務時進行更好的任務管理和執(zhí)行,并促進不同 AI 模型和工具之間的協(xié)作。 例如 Composio SWE-Kit 集成文件操作、代碼分析、Shell 命令執(zhí)行、知識庫管理和數(shù)據(jù)庫操作等工具或能力,優(yōu)勢互補,將 SWE-bench verified 大幅度提升到 48.6%。 再比如 OpenHands+CodeAct v2.1 將智能體的行為整合到統(tǒng)一代碼行動空間的框架,允許 OpenHands 在編程任務中扮演全方位的智能助手角色,目前排在 SWE-bench verified 第一位(53%)。 基于代碼大模型的自身進化,以及 RAG 技術、智能體的有力支持,從而 LLM 有更好的上下文感知能力。例如,在代碼大模型預訓練時,其訓練語料中加入抽象語法樹(AST)、代碼依賴關系等數(shù)據(jù),新的代碼生成模型則具有更強的上下文感知能力。 在此基礎上,基于 AI 的編程工具能夠根據(jù)給定的上下文(如函數(shù)名、注釋、部分代碼等)檢索出最相關的代碼片段和文檔,能夠提供完整的函數(shù)或代碼塊建議。這也使得 LLM 能夠參考海量的代碼庫和技術文檔,這不僅能緩解大模型的幻覺問題,顯著提升代碼生成與理解的準確性,而且能符合上下文的代碼,更能滿足開發(fā)的業(yè)務需求。 未來,研發(fā)人員和多個智能體、工具協(xié)同工作來完成編程工作,如論文 Flows:Building Blocks of Reasoning and Collaborating AI 所描述的(圖 2 所示),構成一個復合競爭性編碼流程,研發(fā)人員更多是提需求,由 LLM 和智能體實現(xiàn)自主編程的過程。
圖 2 由 LLM 和智能體實現(xiàn)自主編程的過程 隨著大模型技術的迅速發(fā)展,在今年,我們明顯能感到,AI 已從單一的輔助工具,逐漸演變?yōu)檐浖_發(fā)人員不可或缺的助手或伙伴。 除了前面已介紹的 Cursor、Composio SWE-Kit、OpenHands CodeAct 等工具之外,國內主要使用 chatGPT、GitHub Copilot、通義靈碼、CodeGeeX、文心快碼、螞蟻 CodeFuse 等編程工具,國外還出現(xiàn)一些受歡迎的、新的編程工具,如 Codeium IDE Cascade、Solver ai、Websim ai 等。
圖 3 國內編程助手使用狀況(來源同圖 1) 這些工具讓我們能感受到 AI 卓越的生成能力和理解能力,幫助我們更高效地完成代碼生成、代碼評審、代碼解釋到單測生成、缺陷定位、代碼優(yōu)化等任務。這種進步也體現(xiàn)在今年國內企業(yè)一些落地實踐中:
在一些大廠,LLM 已經實際應用到代碼審查或 CI/CD 流程中(如 pull request),自動識別代碼質量問題并提出改進建議。
有些企業(yè)結合智能體和相關工具的支持,讓基于 LLM 的研發(fā)平臺生成代碼流程圖和類圖,輔助自然語言解釋,使得開發(fā)者更直觀地理解代碼結構和執(zhí)行流程,增強智能編程的可視性和交互性。
有些開發(fā)團隊借助智能體和 RAG 技術檢索歷史上已知的代碼缺陷模式和已知問題,從而比較準確地識別潛在的缺陷和安全漏洞,甚至能夠分析代碼的功能意圖,全面提升代碼評審的能力。
有些團隊,根據(jù) UI 設計圖,讓 LLM 自動生成相應的前端代碼,大大減少了手動編碼的時間,加快了從設計到實現(xiàn)的流程。
從應用效果看,前面調研的數(shù)據(jù)可供參考。在國內 AI 編程開展比較好的大廠,超過 80% 的工程師在使用 AI 編程工具完成日常的編程工作,近 30% 入庫的代碼由 AI 生成,生成代碼平均采納率超過 40%,有些產品線達到 60%。僅僅在編程這一項工作(雖然只占開發(fā)人員 20-30% 的工作量)上,研發(fā)效率能提升 20-30%。
圖 4 大模型時代的軟件研發(fā)正確方式 當然,我們不能局限于這一個編程環(huán)境,最好要從需求開始就應用大模型。ATDD(驗收測試驅動開發(fā))是大模型時代軟件研發(fā)的正確打開方式,讓大模型幫我們生成需求及其驗收標準,業(yè)務約束更明確了,上下文更清楚了,在此基礎上分別由不同的模型生成產品代碼和測試代碼,再讓它們之間相互驗證和博弈(如圖 4 所示),最終交付高質量的軟件。 未來,隨著 AI 技術的不斷成熟和創(chuàng)新,AI 編程工具將進一步提升智能化和可解釋性,支持更多的編程語言和平臺,并通過強化學習實現(xiàn)自適應優(yōu)化。為了全面發(fā)揮 AI 編程技術的潛力,開發(fā)團隊需要不斷學習和適應新技術,優(yōu)化開發(fā)流程,確保 AI 工具的有效應用和高質量輸出。
-
編程
+關注
關注
88文章
3673瀏覽量
94692 -
AI
+關注
關注
87文章
33554瀏覽量
274203
原文標題:2024年AI編程技術與工具發(fā)展綜述
文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論