2023年,生成式AI在協(xié)助開(kāi)發(fā)者構(gòu)建應(yīng)用方面取得突破,各大工具商紛紛推出產(chǎn)品,以滿足開(kāi)發(fā)者的實(shí)際需求。
譯自Generative AI: In 2023, GenAI Tools Became Table Stakes,作者 Darryl K. Taft ?從他位于巴爾的摩地區(qū)的辦公室報(bào)道了 DevOps、軟件開(kāi)發(fā)工具和開(kāi)發(fā)者相關(guān)的問(wèn)題。他在該行業(yè)有超過(guò) 25 年的經(jīng)驗(yàn),一直在尋找下一個(gè)重大新聞。他曾在......
很長(zhǎng)一段時(shí)間以來(lái),我一直想知道人工智能如何能更好地支持軟件開(kāi)發(fā)者的工作。
2023年 對(duì)于軟件開(kāi)發(fā)領(lǐng)域的人工智能而言是一個(gè)關(guān)鍵的一年,像GitHub 的 Copilot這樣的工具進(jìn)化到可以幫助開(kāi)發(fā)者構(gòu)建應(yīng)用程序的程度。
至少十年來(lái),我斷斷續(xù)續(xù)地向我的技術(shù)伙伴Grady Booch提出這個(gè)問(wèn)題。他是IBM研究院的首席軟件工程師,也是 IBM 的 Fellow。起初,他認(rèn)為人工智能在軟件開(kāi)發(fā)中會(huì)有用處,但他對(duì)其作用持懷疑態(tài)度。
他仍持這種態(tài)度。去年年底,Booch 在Twitter(現(xiàn)在是 X)上與 Replit CEOAmjad Masad就人工智能對(duì)開(kāi)發(fā)者的貢獻(xiàn)進(jìn)行了一次交鋒。Masad 寫道,隨著人工智能模型的進(jìn)步,到某個(gè)時(shí)候,"世界上每個(gè)人都至少會(huì)具備 John Carmack 級(jí)別的軟件開(kāi)發(fā)能力"。Carmack 是一位知名的游戲開(kāi)發(fā)者(Doom等游戲的共同創(chuàng)造者),也是 AR/VR 大師,曾任 Oculus VR 的 CTO 和Meta收購(gòu) Oculus 后任咨詢 CTO。
不過(guò),我們現(xiàn)在還遠(yuǎn)未達(dá)到那個(gè)階段。但是 2023 年對(duì)于開(kāi)發(fā)者生產(chǎn)力的人工智能而言是一個(gè)巨大的一年。
"2023年確實(shí)是人工智能輔助編程和軟件開(kāi)發(fā)的關(guān)鍵之年",Omdia 的應(yīng)用智能首席分析師Lian Jye Su通過(guò)電子郵件告訴 The New Stack。"Copilot 和其他生成式人工智能工具在用作開(kāi)發(fā)者工具時(shí)展現(xiàn)出了高度的準(zhǔn)確性、自動(dòng)化和最重要的靈活性。開(kāi)發(fā)者可以使用自然語(yǔ)言來(lái)表達(dá)他們的意圖,并專注于創(chuàng)造性和評(píng)估方面,因?yàn)楣ぞ邥?huì)處理枯燥的部分。"
"因此,一些開(kāi)發(fā)者使用這些工具生成近 40% 的代碼。除了 Copilot,其他關(guān)鍵工具包括 OpenAI Codex、Replit、Tabnine、Codacy 和 Durable。"
JetBrains 關(guān)于開(kāi)發(fā)者生態(tài)系統(tǒng)狀況的最新研究顯示,如果有機(jī)會(huì),56% 的受訪者會(huì)讓人工智能助手編寫代碼注釋和文檔。
Copilot 的演變
與此同時(shí),46% 的受訪者表示他們使用 Copilot。
GitHub 在 2022 年 6 月啟動(dòng)了其代碼自動(dòng)完成功能/結(jié)對(duì)編程工具 Copilot。它現(xiàn)在擁有超過(guò) 150 萬(wàn)用戶,GitHub 首席產(chǎn)品官Inbal Shani在接受 The New Stack 采訪時(shí)表示。此外,使用 Copilot 編寫的新代碼的百分比已從 35% 增長(zhǎng)到 60%,預(yù)計(jì)在未來(lái)幾年將達(dá)到 80-90%,她說(shuō)。
像?GitHub Copilot?這樣的人工智能驅(qū)動(dòng)的開(kāi)發(fā)者工具正在經(jīng)歷大規(guī)模增長(zhǎng),并在軟件開(kāi)發(fā)中產(chǎn)生變革性影響,對(duì)生產(chǎn)力、質(zhì)量和工作滿意度具有積極作用,Shani 指出。
開(kāi)發(fā)者采用人工智能工具的情況呈指數(shù)增長(zhǎng)。根據(jù) GitHub 的數(shù)據(jù),現(xiàn)在有 92% 的開(kāi)發(fā)者在工作中使用某種形式的人工智能。這在很大程度上得益于使人工智能普及化的 GenAI 模型的興起。
像 GitHub Copilot 這樣的人工智能輔助工具現(xiàn)在可以生成完整的代碼塊、代碼的解釋、文檔以及對(duì)開(kāi)發(fā)者問(wèn)題的回答。這可以更快地幫助新開(kāi)發(fā)者上手,微軟開(kāi)發(fā)者部門的產(chǎn)品、設(shè)計(jì)、用戶研究和工程系統(tǒng)公司副總裁阿曼達(dá)·西爾弗(Amanda Silver)在接受 The New Stack 的視頻采訪時(shí)表示。
此外,Copilot 可以優(yōu)化和重構(gòu)代碼、排除故障、建議安全修復(fù)、輔助調(diào)試等,從而減少對(duì)多個(gè)領(lǐng)域深厚專業(yè)知識(shí)的需求,她解釋道。
在內(nèi)部,隨著微軟工程師構(gòu)建自己的產(chǎn)品,他們會(huì)對(duì) Copilot 的功能進(jìn)行“吃自己的狗糧”,為 GitHub 提供反饋來(lái)改進(jìn)該技術(shù)。的確,微軟工程師使用 Copilot 執(zhí)行內(nèi)部系統(tǒng)的大規(guī)模遷移,這也幫助測(cè)試了其大規(guī)模重構(gòu)能力,西爾弗說(shuō)。
對(duì)代碼 Whispering
雖然亞馬遜去年也推出了其 Copilot 競(jìng)爭(zhēng)對(duì)手CodeWhisperer,與 Copilot 和其他工具一樣,2023 年看到它作為日常使用工具出現(xiàn)。亞馬遜CodeWhisperer是一個(gè)利用機(jī)器學(xué)習(xí)為開(kāi)發(fā)者提供基于開(kāi)發(fā)者自然注釋和先前代碼的代碼建議從而提高開(kāi)發(fā)者生產(chǎn)力的服務(wù)。
亞馬遜網(wǎng)絡(luò)服務(wù)在生成式人工智能方面迎來(lái)了一個(gè)大年,推出了 CodeWhisperer 生成可用性,用于構(gòu)建自定義人工智能應(yīng)用程序的Bedrock,以及目前處于預(yù)覽階段的無(wú)代碼人工智能應(yīng)用程序構(gòu)建工具PartyRock。在去年秋天的 re:Invent 上,該公司還宣布了Amazon Q,這是一種專為工作而定制的 GenAI 助手,可以根據(jù)組織的業(yè)務(wù)進(jìn)行定制。
亞馬遜的研究顯示,CodeWhisperer 實(shí)現(xiàn)了 50-60% 的開(kāi)發(fā)者生產(chǎn)力提升,而定制化等功能進(jìn)一步提升了它,亞馬遜網(wǎng)絡(luò)服務(wù)人工智能平臺(tái)的軟件開(kāi)發(fā)總監(jiān)兼 CodeWhisperer 和Amazon Q總經(jīng)理Doug Seven在接受 The New Stack 采訪時(shí)表示。
"亞馬遜在人工智能方面具有競(jìng)爭(zhēng)力,因?yàn)樗墓ぷ鳈M跨從針對(duì)人工智能工作負(fù)載優(yōu)化的芯片到利用人工智能的開(kāi)發(fā)者工具的整個(gè)技術(shù)棧",Seven 說(shuō)。
整個(gè)行業(yè)
直到 2023 年,在整個(gè)數(shù)字計(jì)算的歷史上,編程的核心活動(dòng)一直是人類編寫代碼行。一些人工智能工具已經(jīng)出現(xiàn)來(lái)增強(qiáng)這種能力,但人類編碼始終處于中心位置。
這已經(jīng)改變了,Intellyx 的分析師杰森·布隆伯格(Jason Bloomberg)通過(guò)電子郵件告訴 The New Stack。他說(shuō):"如今,隨著編程活動(dòng)的發(fā)展,人工智能(主要是生成式人工智能和神經(jīng)網(wǎng)絡(luò))創(chuàng)建應(yīng)用程序已經(jīng)成為核心。人類創(chuàng)建和管理模型和訓(xùn)練人工智能的數(shù)據(jù)集,而不是編寫代碼。"
當(dāng)然,手動(dòng)編碼仍在繼續(xù)——但布隆伯格說(shuō),他認(rèn)為它已經(jīng)進(jìn)入了一個(gè)次要位置。他說(shuō):"任何沒(méi)有意識(shí)到這一點(diǎn)的組織、供應(yīng)商或企業(yè)都注定會(huì)變得缺乏競(jìng)爭(zhēng)力,最終變得無(wú)關(guān)緊要。"
確實(shí),正如 GitHub 的 Shani 所說(shuō),"人工智能現(xiàn)在是軟件開(kāi)發(fā)的基本配置。"GitHub 正致力于用其工具覆蓋軟件開(kāi)發(fā)生命周期(SDLC)的更多方面。
Gartner 分析師托馬斯·墨菲(Thomas Murphy)通過(guò)電子郵件表示:"顯然,Copilot 憑借上市時(shí)間和量而脫穎而出,但其他像 Tabnine、CodeStory、Codium 等工具也都在擴(kuò)展"生成式人工智能空間。除了 AWS 和谷歌之外,像GitLab和 Atlassian 這樣的云提供商也在擴(kuò)展代碼生成和更廣泛的人工智能輔助功能,用于 SDLC,他說(shuō)。
JetBrains是另一家著名的開(kāi)發(fā)工具制造商,一直在構(gòu)建自己的人工智能助手功能,并在最新的產(chǎn)品更新中發(fā)布了它,主要集中在旗艦集成開(kāi)發(fā)環(huán)境(IDE)IntelliJ IDEA上。該公司新的人工智能助手插件引入了不同的功能——它可以"在更高、更抽象的層面上建議代碼重構(gòu),而不僅僅是修復(fù)特定的模式",JetBrains 開(kāi)發(fā)倡導(dǎo)者M(jìn)att Ellis告訴 The New Stack。
Ellis 說(shuō),為未來(lái),該公司希望改進(jìn)助手使其變得“更智能”,以便它可以利用現(xiàn)有的內(nèi)部代碼索引和元數(shù)據(jù)更好地理解代碼上下文,并探索企業(yè)托管其模型的選項(xiàng)。
“像 Copilot 這樣的工具在本地代碼建議方面表現(xiàn)不錯(cuò),但缺乏應(yīng)用程序上下文,”AppMap首席執(zhí)行官Elizabeth Lawler告訴 The New Stack。“新玩家可以整合可觀察性數(shù)據(jù)、架構(gòu)信息等,以使建議更準(zhǔn)確?!?/span>
然而,她說(shuō),2023 年使人工智能基礎(chǔ)設(shè)施和模型足夠可訪問(wèn),以至于現(xiàn)在較小的公司也可以利用可定制的人工智能。這將帶來(lái)新的增值服務(wù),Lawler 指出。此外,她補(bǔ)充說(shuō),人工智能生成的代碼仍存在質(zhì)量問(wèn)題,但它迫使開(kāi)發(fā)人員批判性地評(píng)估建議。
與此同時(shí),從風(fēng)險(xiǎn)投資的角度來(lái)看,Differential Ventures的創(chuàng)始人兼管理合伙人尼克·亞當(dāng)斯(Nick Adams)表示,他正在看到公司利用GenAI來(lái)幫助商業(yè)分析師的機(jī)會(huì),后者經(jīng)常編寫重復(fù)的查詢來(lái)提取數(shù)據(jù)。
“人工智能工具可以通過(guò)獲取業(yè)務(wù)用戶的自然語(yǔ)言問(wèn)題,生成 SQL 或 Python 中的查詢作為起點(diǎn),并允許分析師完善代碼來(lái)提供幫助,”亞當(dāng)斯告訴 The New Stack。“這加快了過(guò)程,并避免每次從頭開(kāi)始編寫查詢?!?/span>
他指出,遷移遺留代碼(如COBOL)是另一個(gè)機(jī)會(huì)。這是IBM 與其 watsonx生成式人工智能將舊 COBOL 代碼遷移到 Java 所做的工作。
“許多舊系統(tǒng)現(xiàn)在由即將退休的開(kāi)發(fā)人員編寫而接近退休,”亞當(dāng)斯說(shuō)。“電氣工程也積累了幾十年即將退休的專業(yè)知識(shí),需要用現(xiàn)代工具和培訓(xùn)傳承給新一代。”
生成式人工智能和低代碼
我曾經(jīng)認(rèn)為生成式人工智能會(huì)以某種方式取代低代碼、無(wú)代碼開(kāi)發(fā),但Pegasystems的首席技術(shù)官兼產(chǎn)品營(yíng)銷副總裁Don Schuerman糾正了我的想法。
生成式人工智能正在對(duì)軟件行業(yè)產(chǎn)生重大影響,包括低代碼平臺(tái),因?yàn)榭梢宰詣?dòng)生成代碼的工具可能會(huì)破壞市場(chǎng)的低端。
“然而,企業(yè)級(jí)低代碼更專注于架構(gòu)、集成、DevOps、安全性、可重用性等。這種復(fù)雜性不僅僅是關(guān)于生成代碼片段的?!盨chuerman 告訴 The New Stack。
Pegasystems 正在使用生成式人工智能來(lái)自動(dòng)生成低代碼工件以加速開(kāi)發(fā)者,例如標(biāo)準(zhǔn)工作流模板、測(cè)試數(shù)據(jù)、流程文檔、數(shù)據(jù)映射等。
亞馬遜的 Seven 表示,雖然 CodeWhisperer 可以輔助在 IDE 中工作的專業(yè)開(kāi)發(fā)者,但 Party Rock 旨在面向其他群體,例如主題專家,讓他們可以用很少或不用代碼來(lái)構(gòu)建應(yīng)用程序。
他說(shuō):"我不認(rèn)為生成式人工智能會(huì)使低代碼、無(wú)代碼過(guò)時(shí)。我認(rèn)為它會(huì)使低代碼變得更好。"
關(guān)于人工智能是否會(huì)取代開(kāi)發(fā)者的問(wèn)題,Schuerman 說(shuō):"我看不到生成式人工智能完全取代開(kāi)發(fā)者。它將通過(guò)提供起點(diǎn)和建議來(lái)提高他們的生產(chǎn)力。開(kāi)發(fā)人員很少完全從零開(kāi)始編寫所有內(nèi)容。"
JetBrains 的研究顯示,60% 的受訪者表示,他們認(rèn)為人工智能編碼工具將從根本上改變就業(yè)市場(chǎng),51% 的人表示,他們認(rèn)為這些工具將增加對(duì)專業(yè)軟件開(kāi)發(fā)者的需求。然而,人們一致認(rèn)為,人工智能永遠(yuǎn)不會(huì)完全接管編寫代碼的工作。
工作室之年
11 月,微軟推出了Azure AI Studio的預(yù)覽版,這是一種新的平臺(tái),它使所有能力和偏好的開(kāi)發(fā)者都可以使用最新的人工智能工具和機(jī)器學(xué)習(xí)模型對(duì)人工智能進(jìn)行創(chuàng)新、探索、構(gòu)建、測(cè)試和部署,這些都基于負(fù)責(zé)任的人工智能實(shí)踐,微軟人工智能平臺(tái)項(xiàng)目管理公司副總裁約翰·蒙特諾默里(John Montgomery)告訴 The New Stack。
他說(shuō):"我們認(rèn)為人工智能是終極的放大器。這最新一輪的生成式人工智能完全改變了世界。這對(duì)應(yīng)用程序來(lái)說(shuō)是巨大的改變。我在微軟工作了 25 年,我從未見(jiàn)過(guò)客戶采用技術(shù)的速度這么快。在不到一年的時(shí)間里,我們就有超過(guò) 18,000 個(gè)客戶使用 Azure OpenAI 制作自己的東西。"
例如:他說(shuō),Instacart 正在使用配備 Vision 的GPT-4 Turbo,讓用戶可以拍一張手寫購(gòu)物列表的照片,并在其應(yīng)用程序中生成一個(gè)虛擬購(gòu)物列表。
"你可以把人工智能工作室看作是生成式人工智能的終極工具包。" 蒙哥馬利說(shuō),"它匯集了正確的模型、數(shù)據(jù)和負(fù)責(zé)任的人工智能系統(tǒng),以便客戶能夠放心,他們的解決方案將是安全、可靠和可擴(kuò)展的。"
微軟宣布支持其自己最新的大型語(yǔ)言模型(LLM),以及來(lái)自O(shè)penAI、Meta、Nvidia、Mistral AI?和Hugging Face的最新模型。
此外,該公司以 Azure AI 服務(wù)的形式宣布了 Azure AI 模型即服務(wù),“這將使客戶更容易部署和運(yùn)行尖端模型”,蒙哥馬利說(shuō)。微軟還推出了名為prompt flow的提示工程工具。Prompt flow 是一個(gè)高級(jí)的提示工程、評(píng)估和部署系統(tǒng),是 Azure AI Studio 和 Azure 機(jī)器學(xué)習(xí)的關(guān)鍵組成部分。
盡管 OpenAI 在這個(gè)領(lǐng)域非常重要,與微軟有著密切合作,但一位公司發(fā)言人告訴 The New Stack,團(tuán)隊(duì)無(wú)法接受采訪。
與此同時(shí),谷歌最近宣布了谷歌人工智能工作室,以示不甘落后。谷歌人工智能工作室是一個(gè)免費(fèi)工具,可以讓開(kāi)發(fā)者快速開(kāi)發(fā)提示,然后獲取 API 密鑰在應(yīng)用開(kāi)發(fā)中使用。它目前在限制內(nèi)免費(fèi)使用,谷歌表示其定價(jià)將具有競(jìng)爭(zhēng)力。
在一次新聞簡(jiǎn)報(bào)中,谷歌實(shí)驗(yàn)室副總裁喬?!の榈挛值?Josh Woodward)演示了如何使用谷歌帳戶登錄谷歌人工智能工作室,并利用每分鐘 60 次請(qǐng)求的免費(fèi)配額。伍德沃德還演示了開(kāi)發(fā)人員如何通過(guò)簡(jiǎn)單地點(diǎn)擊“獲取代碼”將他們的工作轉(zhuǎn)移到首選 IDE。
谷歌內(nèi)部一直在通過(guò)代碼補(bǔ)全、文檔、聊天機(jī)器人等多種方式使用其人工智能技術(shù),谷歌開(kāi)發(fā)者體驗(yàn)部門副總裁兼總經(jīng)理Jeanine Banks告訴 The New Stack。她說(shuō):"在內(nèi)部應(yīng)用這項(xiàng)技術(shù)真的給了我們很多學(xué)習(xí)經(jīng)驗(yàn)",公司可以將這些經(jīng)驗(yàn)帶回產(chǎn)品中。