展會(huì)信息港展會(huì)大全

第二波AI編程浪潮已經(jīng)到來
來源:互聯(lián)網(wǎng)   發(fā)布日期:2025-02-04 18:04:53   瀏覽:219次  

導(dǎo)讀:(來源:MIT Technology Review)如果你問那些正在開發(fā)生成式 AI 的人當(dāng)前這一技術(shù)最擅長的領(lǐng)域是什么,也許很多人會(huì)回答:編程。“這對(duì)開發(fā)者來說是非常激動(dòng)人心的! Anthropic 首席科學(xué)家 Jared Kaplan 在接受 MIT Technology Review 采訪時(shí)表示,“它真能理解代碼中的錯(cuò)誤,并幫助調(diào)試。”Copilot 是由 GitHub 基于 OpenAI 的大語言模型開發(fā)的工具,于 2022 年推出,現(xiàn)已 ......

第二波AI編程浪潮已經(jīng)到來

(來源:MIT Technology Review)

如果你問那些正在開發(fā)生成式 AI 的人當(dāng)前這一技術(shù)最擅長的領(lǐng)域是什么,也許很多人會(huì)回答:編程。

“這對(duì)開發(fā)者來說是非常激動(dòng)人心的! Anthropic 首席科學(xué)家 Jared Kaplan 在接受 MIT Technology Review 采訪時(shí)表示,“它真能理解代碼中的錯(cuò)誤,并幫助調(diào)試!

Copilot 是由 GitHub 基于 OpenAI 的大語言模型開發(fā)的工具,于 2022 年推出,現(xiàn)已被全球數(shù)百萬開發(fā)者使用。此外,還有數(shù)百萬開發(fā)者依賴于通用聊天機(jī)器人(比如 Anthropic 的 Claude、OpenAI 的 ChatGPT 和 Google 的 Gemini)來輔助編程。

谷歌母公司 Alphabet 首席執(zhí)行官 Sundar Pichai 在 10 月的財(cái)報(bào)電話會(huì)議上表示:“目前,谷歌超過四分之一的新代碼是由 AI 生成的,并由工程師進(jìn)行審核與采納。這種方式大幅提升了工程師的效率,加速開發(fā)進(jìn)度!彼預(yù)計(jì)其他科技公司也會(huì)很快趕上。

不僅僅是科技巨頭在推出 AI 編程工具,一批新的初創(chuàng)公司也紛紛進(jìn)入這一炙手可熱的市場。新興玩家如 Zencoder、Merly、Cosine、在成立幾個(gè)月內(nèi)估值已達(dá)到 7.5 億美元的 Tessl 以及盡管尚未發(fā)布任何產(chǎn)品,估值已高達(dá) 30 億美元的 Poolside 正在激烈爭奪市場份額。

“看起來開發(fā)者確實(shí)愿意為 Copilots 支付費(fèi)用。”投資公司 Air Street Capital 的分析師 Nathan Benaich 說,“因此,生成代碼成為了 AI 最容易變現(xiàn)的途徑之一!

這些公司承諾將生成式編程助手提升到全新高度。新一代助手不僅僅提供類似“超級(jí)自動(dòng)補(bǔ)全”的功能,它們還能幫助開發(fā)者進(jìn)行原型設(shè)計(jì)、測試和調(diào)試代碼。最終,開發(fā)者的角色可能會(huì)逐漸轉(zhuǎn)變?yōu)楣芾碚,花更多時(shí)間審閱和修正 AI 生成的代碼,而不再是從零開始編寫。

但這不僅僅是關(guān)于編程。許多生成式編程助手的開發(fā)者認(rèn)為,這可能是通向 AGI 的快速通道,這種設(shè)想的“超人技術(shù)”正是多家頂級(jí) AI 公司競相追逐的目標(biāo)。

“第一個(gè)在經(jīng)濟(jì)上具有巨大價(jià)值、且能達(dá)到人類水平的 AI 能力領(lǐng)域,將是軟件開發(fā)!盤oolside 的 CEO 兼聯(lián)合創(chuàng)始人 Eiso Kant 表示。OpenAI 甚至宣稱,他們最新的 o3 模型在一場編程挑戰(zhàn)中擊敗了公司自己的首席科學(xué)家。

歡迎來到 AI 編程的第二波浪潮。

代碼的正確性

在討論代碼正確性時(shí),軟件工程師通常會(huì)關(guān)注兩種類型,首先是語法正確性,即程序的語法是否準(zhǔn)確,確保所有的單詞、數(shù)字和運(yùn)算符都在正確的位置。這一點(diǎn)比自然語言中的語法正確性重要得多。畢竟在成千上萬行代碼中,哪怕一個(gè)小小的錯(cuò)誤,也可能會(huì)導(dǎo)致整個(gè)程序無法正常運(yùn)行。

第一代編程助手在這方面表現(xiàn)已經(jīng)相當(dāng)優(yōu)秀。它們經(jīng)過大量代碼訓(xùn)練,掌握了各種程序的表層結(jié)構(gòu),因此能夠生成語法正確的代碼。

但代碼的正確性不僅僅局限于此。程序不僅要能夠運(yùn)行,還必須實(shí)現(xiàn)期望的功能。這種更高層次的正確性,正是新一代生成式編程助手所追求的目標(biāo),也是它們能夠真正改變軟件開發(fā)方式的關(guān)鍵。

“或許大語言模型可以寫出能夠編譯的代碼,但它們未必能寫出你真正想要的程序!盋osine 的聯(lián)合創(chuàng)始人 Alistair Pullen 指出,“要做到這一點(diǎn),就需要重現(xiàn)人類程序員在實(shí)現(xiàn)目標(biāo)時(shí)的思維過程!

問題在于,大多數(shù)編程助手所訓(xùn)練的數(shù)據(jù)(也就是從在線代碼庫中獲取的大量代碼)并沒有記錄這些思維過程。這些數(shù)據(jù)只是最終的成品,而不是程序員如何構(gòu)思、開發(fā)和調(diào)試的完整過程!熬W(wǎng)絡(luò)上確實(shí)有大量代碼!盞ant 說,“但這些數(shù)據(jù)并不代表真正的軟件開發(fā)過程!

Pullen、Kant 以及其他開發(fā)者發(fā)現(xiàn),如果想要構(gòu)建比自動(dòng)補(bǔ)全更強(qiáng)大的模型(能夠自主編寫有用程序、測試代碼并修復(fù)錯(cuò)誤的系統(tǒng))就不能僅僅讓它學(xué)習(xí)代碼本身,還必須讓它理解代碼是如何被構(gòu)建出來的。

所以,最終的目標(biāo)是開發(fā)出一種模型,它不僅僅是模仿“好代碼”看起來的樣子,而是能夠模擬產(chǎn)生這些代碼的整個(gè)思維和開發(fā)過程。

代碼開發(fā)的“面包屑”

要讓 AI 理解軟件開發(fā)的完整過程,就需要構(gòu)建一個(gè)數(shù)據(jù)集,能夠捕捉人類開發(fā)者在編寫代碼時(shí)的思維步驟。這些步驟可以被看作是“面包屑”路徑,幫助機(jī)器沿著這條路徑,自己生成類似的代碼。

首先,需要確定從哪些材料中提取信息:在現(xiàn)有代碼庫以及其他信息源中,哪些部分對(duì)當(dāng)前編程任務(wù)是必要的?“上下文至關(guān)重要!盳encoder 創(chuàng)始人 Andrew Filev 指出,“第一代工具在理解上下文方面做得很差,它們基本上只會(huì)看你當(dāng)前打開的標(biāo)簽頁。但你的代碼庫可能有 5,000 個(gè)文件,它們通常會(huì)忽略大部分內(nèi)容。”

為了提升代碼生成的質(zhì)量,Zencoder 招募了一批搜索引擎領(lǐng)域的資深專家,幫助開發(fā)能夠解析大型代碼庫并找出相關(guān)信息的工具。這種深入的上下文分析能夠減少 AI 產(chǎn)生的幻覺,并提高代碼的準(zhǔn)確性。

Cosine 也認(rèn)為上下文是關(guān)鍵。他們正在收集盡可能多的“面包屑”信息,創(chuàng)建一種全新的數(shù)據(jù)集。為了實(shí)現(xiàn)這一目標(biāo),該公司邀請(qǐng)了數(shù)十位開發(fā)者,要求他們在完成數(shù)百個(gè)不同編程任務(wù)時(shí)記錄自己的思考過程。“我們讓他們寫下所有操作細(xì)節(jié)!盤ullen 解釋道,“為什么你打開了這個(gè)文件?為什么你滾動(dòng)到一半?為什么你又關(guān)閉了它?”

此外,他們還要求開發(fā)者在最終代碼上做標(biāo)注,指出哪些部分需要借鑒其他代碼片段或參考特定文檔。這些信息將幫助 AI 更好地理解開發(fā)者的思維方式,而不僅僅是模仿最終的代碼結(jié)果。

Cosine 將所有這些信息整合,生成一個(gè)龐大的合成數(shù)據(jù)集,映射了程序員通常采取的步驟、他們參考的信息來源,并最終對(duì)應(yīng)到完整的代碼片段。通過利用這個(gè)數(shù)據(jù)集來訓(xùn)練模型,Cosine 希望其 AI 能夠推測出需要遵循的面包屑路徑,從而生成特定的程序,并學(xué)會(huì)如何正確地跟隨這條路徑。

總部位于舊金山的 Poolside 也在構(gòu)建一個(gè)類似的合成數(shù)據(jù)集,用于捕捉編程過程,但它更側(cè)重于一種名為 RLCE(Reinforcement Learning from Code Execution)的方法。

RLCE 類似于用于優(yōu)化聊天機(jī)器人技術(shù)。RLHF 通過人類測試者的反饋,讓模型生成更符合人類偏好的文本。而 RLCE 則訓(xùn)練模型生成能夠正確執(zhí)行、實(shí)現(xiàn)預(yù)期功能的代碼,而不僅僅是看起來合理的代碼。

“游戲化”系統(tǒng)

Cosine 和 Poolside 都表示,他們的靈感來源于 DeepMind 訓(xùn)練游戲模型 AlphaZero 的方法。AlphaZero 只被賦予了一套規(guī)則(游戲中的可執(zhí)行動(dòng)作)然后通過自我對(duì)弈,不斷嘗試并找出哪些步驟能帶來勝利,哪些會(huì)導(dǎo)致失敗。

“他們讓 AlphaZero 在每一步都盡可能多地探索不同的走法,模擬盡可能多的對(duì)局,這最終讓它戰(zhàn)勝了李世石。”Poolside 的創(chuàng)始科學(xué)家 Pengming Wang 說道。他指的是 AlphaZero 在 2016 年擊敗韓國圍棋大師李世石的壯舉。在加入 Poolside 之前,Wang 曾在 Google DeepMind 研究 AlphaZero 在棋類游戲之外的應(yīng)用,例如 FunSearch,一個(gè)用于解決高級(jí)數(shù)學(xué)問題的版本。

當(dāng)這種方法應(yīng)用于編程時(shí),編寫代碼的步驟就相當(dāng)于游戲中的可執(zhí)行動(dòng)作,而生成一個(gè)正確的程序就等同于贏得比賽。讓模型自行嘗試,它的學(xué)習(xí)速度將遠(yuǎn)超人類!叭祟惓绦騿T只能一次次試錯(cuò),而模型可以同時(shí)嘗試一百種方案。”Poolside 的 CEO Eiso Kant 說。

Cosine 和 Poolside 的主要區(qū)別在于,Cosine 采用了 OpenAI 提供的定制版 GPT-4,這使其能夠訓(xùn)練比基礎(chǔ)模型更大的數(shù)據(jù)集;而 Poolside 則完全從零開始構(gòu)建自己的大語言模型。

Kant 認(rèn)為,從頭開始訓(xùn)練一個(gè)專門用于編程的模型,會(huì)比改造一個(gè)已經(jīng)吸收了整個(gè)互聯(lián)網(wǎng)內(nèi)容的通用模型效果更好。“我完全不介意讓我們的模型忘記蝴蝶的解剖結(jié)構(gòu),”他說。

Cosine 聲稱,其生成式編程助手 Genie 在 SWE-Bench 排行榜上名列前茅。而 Poolside 的模型尚未正式推出,但他們表示,現(xiàn)階段的性能已經(jīng)能與 GitHub 的 Copilot 相媲美。

“我個(gè)人非常堅(jiān)定地相信,大語言模型最終能夠達(dá)到與人類軟件開發(fā)者同樣的能力,”Kant 說道。

不過,并非所有人都認(rèn)同這種觀點(diǎn)。

不合邏輯的大語言模型

對(duì)于 Merly 的 CEO 和創(chuàng)始人 Justin Gottschlich 來說,大語言模型根本不是做這項(xiàng)工作的合適工具。他舉了一個(gè)例子:“無論怎么訓(xùn)練我的狗,它都永遠(yuǎn)不可能學(xué)會(huì)編程,因?yàn)檫@就根本不會(huì)發(fā)生!彼f,“它能做很多其他事情,但沒有那種深層次的認(rèn)知能力。”

Gottschlich 從事代碼生成工作已有十多年,他對(duì)大語言模型持類似看法。編程需要能夠精準(zhǔn)地解決邏輯難題。無論大型語言模型如何模仿人類程序員的行為,本質(zhì)上它們依然是統(tǒng)計(jì)學(xué)上的老虎機(jī),他說:“我不能訓(xùn)練一個(gè)不合邏輯的系統(tǒng)去變得符合邏輯!

因此,Merly 并不是通過給模型提供大量人類編寫的代碼來訓(xùn)練它生成代碼。Gottschlich 認(rèn)為,要真正構(gòu)建一個(gè)能夠生成代碼的模型,必須從代碼背后的基本邏輯層面入手,而不是代碼本身。因此,Merly 的系統(tǒng)是在一個(gè)中間表示上進(jìn)行訓(xùn)練,類似于大多數(shù)編程語言在執(zhí)行前會(huì)轉(zhuǎn)換成的機(jī)器可讀符號(hào)。

Gottschlich 并沒有透露這種中間表示的具體樣子或工作原理。但他用一個(gè)類比來說明:“在數(shù)學(xué)中,有一個(gè)觀點(diǎn)認(rèn)為,只有質(zhì)數(shù)必須存在,因?yàn)槟憧梢岳觅|(zhì)數(shù)來計(jì)算所有其他的數(shù)字。你可以把這個(gè)概念應(yīng)用到代碼上。”

這種方法不僅直接聚焦于編程的邏輯,而且效率也很高,因?yàn)樵谙到y(tǒng)分析之前,數(shù)百萬行代碼會(huì)被簡化為幾千行的中間語言。

思維方式的轉(zhuǎn)變

這些競爭方法的效果,可能很大程度上取決于你希望生成式編程助手達(dá)成的目標(biāo)。

去年 11 月,Cosine 禁止工程師使用除自己產(chǎn)品以外的任何工具,并開始觀察 Genie 對(duì)工程師的影響。許多時(shí)候,工程師們發(fā)現(xiàn)自己在觀看工具生成代碼。“現(xiàn)在,你給模型設(shè)定一個(gè)目標(biāo),它會(huì)自己處理實(shí)現(xiàn)的細(xì)節(jié)!盋osine 另一位聯(lián)合創(chuàng)始人 Yang Li 說道。這種方式讓工程師們將更多的精力集中在目標(biāo)設(shè)定上,而不是具體的代碼實(shí)現(xiàn),變得更像是與工具的協(xié)作伙伴而非傳統(tǒng)的手動(dòng)編程。

Pullen 承認(rèn),這種方式可能讓人感到困惑,甚至需要轉(zhuǎn)換思維方式!拔覀兊墓こ處熗瑫r(shí)處理多個(gè)任務(wù),在不同的窗口之間切換!彼f。“當(dāng) Genie 在一個(gè)窗口里運(yùn)行代碼時(shí),他們可能在另一個(gè)窗口里提示它做其他事情!

這些工具還使得可以同時(shí)原型化多個(gè)版本的系統(tǒng)。舉個(gè)例子,如果你正在開發(fā)需要內(nèi)置支付系統(tǒng)的軟件,你可以讓編程助手同時(shí)嘗試幾種不同的選項(xiàng),例如 Stripe、Mango、Checkout 等,而不是每次手動(dòng)逐一編寫它們的代碼。通過這種方式,開發(fā)者可以快速比較不同的解決方案,節(jié)省大量的時(shí)間和精力,同時(shí)保證了不同方案的實(shí)現(xiàn)能夠并行進(jìn)行。

此外,Genie 還可以全天候地修復(fù) bug。大多數(shù)軟件團(tuán)隊(duì)使用 bug 報(bào)告工具,讓團(tuán)隊(duì)成員上傳他們遇到的錯(cuò)誤描述。Genie 可以讀取這些描述并提出修復(fù)方案。然后,人類工程師只需要審查并更新代碼庫即可。

Li 說:“今天最大的軟件系統(tǒng)中的萬億行代碼,沒有任何一個(gè)人能理解,而且隨著越來越多的軟件由其他軟件編寫,代碼的量只會(huì)不斷增加!

這將使得那些幫助我們維護(hù)代碼的編程助手變得至關(guān)重要!捌款i將變成人類審核機(jī)器生成代碼的速度。”Li 表示。隨著代碼量的激增,人類不可能完全理解和管理所有代碼,因此編程助手的作用將變得更加突出,幫助開發(fā)者保持對(duì)整個(gè)系統(tǒng)的控制。

Cosine 的工程師們怎么看待這一切呢?至少根據(jù) Pullen 的說法,他們覺得還不錯(cuò)!叭绻医o你一個(gè)難題,你依然會(huì)思考如何把這個(gè)問題描述給模型!彼f,“你不再寫代碼,而是用自然語言描述它。但在這個(gè)過程中,你還是需要很多思考,所以你并沒有真正失去工程的樂趣,那個(gè)‘癢’依然能得到滿足。”這種方式雖然減少了編寫代碼的工作量,但依然保留了思考和解決問題的樂趣,因此很多開發(fā)者并不感到失落。

有些人可能適應(yīng)得更快。Cosine 喜歡邀請(qǐng)潛在的員工與團(tuán)隊(duì)一起花幾天時(shí)間編程。幾個(gè)月前,他們讓一位候選人開發(fā)一個(gè)小工具,允許員工將自己正在開發(fā)的酷軟件分享到社交媒體。

這個(gè)任務(wù)并不簡單,需要掌握 Cosine 數(shù)百萬行代碼中的多個(gè)部分。但該候選人幾個(gè)小時(shí)內(nèi)就完成了!斑@個(gè)從未見過我們代碼庫的人,周一到公司,周二下午就交付了!盠i 說道,“我們原以為他需要一整周時(shí)間!边@個(gè)例子顯示了生成式編程助手的巨大潛力,能夠顯著提高開發(fā)速度,讓工程師能夠在短時(shí)間內(nèi)掌握并有效利用復(fù)雜的代碼庫。當(dāng)然,這位候選人最終被聘用了。

不過,還有另一個(gè)角度。許多公司將使用這項(xiàng)技術(shù)來減少雇傭的程序員數(shù)量。Li 認(rèn)為,我們很快就會(huì)看到軟件工程師出現(xiàn)不同的層次。一方面,將有年薪百萬的精英開發(fā)者,負(fù)責(zé)在 AI 出錯(cuò)時(shí)進(jìn)行診斷;另一方面,只有 10 到 20 人的小團(tuán)隊(duì)將完成曾經(jīng)需要數(shù)百名程序員才能完成的工作!斑@就像自動(dòng)取款機(jī)如何改變了銀行業(yè)!盠i 說道。

“你想做的任何事情都將由計(jì)算力而非人頭數(shù)量來決定!彼f,“我認(rèn)為大家普遍接受這樣一個(gè)事實(shí):為了一個(gè)項(xiàng)目增加幾千名工程師的時(shí)代已經(jīng)結(jié)束!

“曲速引擎”

對(duì)于 Gottschlich 來說,能夠比人類編寫更好代碼的機(jī)器將變得至關(guān)重要。在他看來,這是我們最終能夠構(gòu)建龐大復(fù)雜的軟件系統(tǒng)的唯一方式。他像硅谷的許多人一樣,預(yù)見到一個(gè)人類將移居其他星球的未來。他說:“只有讓 AI 構(gòu)建所需的軟件,我們才能實(shí)現(xiàn)這一目標(biāo)。Merly 的真正目標(biāo)就是帶我們?nèi)セ鹦恰!?br/>

Gottschlich 更愿意談?wù)摗皺C(jī)器編程”而不是“編程助手”,因?yàn)樗J(rèn)為后者的說法從根本上就設(shè)定了錯(cuò)誤的問題框架!拔也徽J(rèn)為這些系統(tǒng)應(yīng)該在協(xié)助人類,我認(rèn)為人類應(yīng)該在協(xié)助它們!彼f,“它們可以以 AI 的速度運(yùn)作。為什么要限制它們的潛力呢?”

他的觀點(diǎn)強(qiáng)調(diào)了 AI 的自主性,認(rèn)為人類不應(yīng)該限制 AI 的能力,而應(yīng)當(dāng)為 AI 提供支持,以便讓其以最快速度、高效地創(chuàng)造和實(shí)現(xiàn)解決方案。

他進(jìn)一步解釋道:“有一部卡通片叫《摩登原始人》,里面有一些車,但只有當(dāng)駕駛員用腳踩時(shí),車才會(huì)動(dòng)。”Gottschlich 說,“我覺得大多數(shù)人在做 AI 的軟件系統(tǒng)時(shí),就像是用腳踩車一樣!

“但 Merly 正在構(gòu)建的,實(shí)質(zhì)上是飛船!彼a(bǔ)充道,“我不認(rèn)為飛船應(yīng)該由踩自行車的人來驅(qū)動(dòng),飛船應(yīng)該由‘曲速引擎’提供動(dòng)力!

這聽起來似乎很瘋狂,但在這些構(gòu)建技術(shù)的人眼中,這個(gè)話題背后有一個(gè)嚴(yán)肅的觀點(diǎn),即他們真正的終極目標(biāo)是什么。

Gottschlich 并不是個(gè)例,持有這種宏大視角的觀點(diǎn)并不罕見。盡管這些公司專注于開發(fā)開發(fā)者今天會(huì)使用的產(chǎn)品,但他們大多數(shù)都有著更宏偉的目標(biāo)。訪問 Cosine 的官網(wǎng),你會(huì)看到這家公司自我介紹為人類推理實(shí)驗(yàn)室。它認(rèn)為編程只是朝著更通用模型邁出的第一步,這個(gè)模型可以模仿人類在多個(gè)領(lǐng)域解決問題的能力。

Poolside 也有類似的目標(biāo):公司明確表示正在構(gòu)建 AGI!按a是一種形式化推理的方式!盞ant 說。

Wang 提到了智能體。想象一個(gè)系統(tǒng),它可以隨時(shí)生成自己的軟件來完成任何任務(wù)!叭绻隳茏屇愕闹悄荏w通過軟件手段解決任何計(jì)算任務(wù),那基本上就是 AGI 的體現(xiàn)。”

但在地球上,這樣的系統(tǒng)仍然是一個(gè)“空中樓閣”。與此同時(shí),軟件工程的變化速度比許多前沿領(lǐng)域的預(yù)期還要快。

“我們現(xiàn)在還沒有達(dá)到一切都由機(jī)器完成的地步,但我們確實(shí)在逐步遠(yuǎn)離傳統(tǒng)的軟件工程師角色! Cosine 的 Pullen 說,“我們正在見證那種新工作流程,而這意味著未來的軟件工程師將承擔(dān)新的職責(zé)和角色。”

原文鏈接:

https://www.technologyreview.com/2025/01/20/1110180/the-second-wave-of-ai-coding-is-here/

贊助本站

相關(guān)內(nèi)容
AiLab云推薦
展開

熱門欄目HotCates

Copyright © 2010-2025 AiLab Team. 人工智能實(shí)驗(yàn)室 版權(quán)所有    關(guān)于我們 | 聯(lián)系我們 | 廣告服務(wù) | 公司動(dòng)態(tài) | 免責(zé)聲明 | 隱私條款 | 工作機(jī)會(huì) | 展會(huì)港