在軟件工程中,自動編程一直被視為圣杯。從編譯器誕生時代開始,程序自動生成的目標就是將接近自然語言的高級語言翻譯成低級語言,最終目標是實現根據自然語言描述的需求,自動生成程序。盡管這個問題在學術圈已經探索了五六十年,但直到近年來才取得重大進展。
隨著 GPT-4 的出現,自動化編程迎來新的可能。未來人機協同提高開發效率將成為主流發展趨勢。AI 的強大能力讓很多程序員擔心被取代,但業界認為 AI 并不是來取代程序員的,而是來助其提高生產力的工具。哪些程序員將在這場 AI 革命中將受到更大沖擊?誰又是這場技術革命的受益者?它會對編程的交互方式帶來怎樣的改變?
懷揣著種種疑問,《開談:AI 編程會取代程序員嗎?哪家強?》直播中,我們邀請到了擁有三十余年編程經驗的 CSDN 創始人&董事長、極客幫創投創始合伙人蔣濤;復旦大學計算機科學技術學院副院長彭鑫;華為云智能化軟件研發首席專家王千祥;超對稱創始人、首席科學家吳恒魁齊聚線上,深入探討,為身處 AI 時代的程序員帶來一些指引。
其中精彩搶先看:
蔣濤:受 AI 影響較大的人員歸為三類:一類是將被取代工作的程序員;一類是技能將被增強的人員;一類是全新的藍海市場中的從業者;
彭鑫:技術的進步正在逐漸抬升簡單勞動和復雜勞動的邊界,創造性較低的開發活動容易被取代。人類在軟件開發的最后一公里中仍然扮演著重要角色,發現并修復最后 1% 的問題和背鍋都需要人來完成;
王千祥:如何描述問題和提示詞可能成為一個值得研究的領域,甚至可能發展出一門新的學科;
吳恒魁:AI 模型將對人類智力的提升產生巨大影響,這將是除了生產力提高之外對人類社會產生的重大影響。
自動化編程標準如何建立?
ChatGPT 展示出強大的編程能力,但是如何衡量 AI 編程能力的強弱標準。CSDN 曾提出自動化編程的 5 個等級:
第一個等級(C1):基于當前行代碼自動補全。
第二個等級(C2):編寫代碼時 AI 可以預測下一行代碼。
第三個等級(C3):基于自然語言生成代碼;基于自然語言完成編程語言翻譯功能。
第四個等級(C4):高度自動編程。可以基于自然語言生成項目及注釋,基于自然語言生成模塊及注釋,基于自然語言生成函數及注釋,函數、模塊、項目粒度自動化測試生成;主流編程語言正確互譯;基于當前行代碼生成下一行代碼;代碼調試 (bug 定位及正確修正建議);基于當前行代碼自動補全;代碼檢查(自然語言提示問題)。
第五個等級(C5):完全自動編程。可以基于自然語言生成系統及注釋;基于自然語言生成項目及注釋;基于自然語言生成模塊及注釋;基于自然語言生成函數及注釋;函數、模塊、項目、系統粒度自動化測試生成;全編程語言最佳互譯;基于當前行代碼生成下一行代碼;代碼調試 (bug 定位以及自動修正);基于當前行代碼自動補全;代碼檢查(自然語言精準提示問題);代碼自動最佳糾錯。
閆輝:對自動化編程的標準,各位有何看法?
蔣濤:GPT-4 或者說 GPT 給編程帶來了一種新的能力——使用精確的語言描述需求,以將其轉換成代碼、模塊或成熟的系統的能力。這種能力在國內還不是很明顯,但在國外已經非常流行,它被稱為提示詞工程(Prompt Engineering)。一些在硅谷的朋友告訴我,許多程序員可能會面臨挑戰,歷史的變革巨大,需要新的技術要求和能力,新的模塊也需要新技能。GPT-4 是一個助手,但是這種助手會取代一部分現有的工作,就不需要那么多助理程序員了。
彭鑫:這幾個級別基本上反映了智能化編程的發展過程。傳統 IDE 具有簡單的代碼補全功能。再往前3-5年,生成完整的函數非常困難,但從 Copilot 開始,代碼生成已經實現。而 ChatGPT 給我帶來的震撼是不僅能夠給出代碼,還能告訴你代碼的邏輯,甚至可以改代碼,比如在恰當的位置加入緩存,并解釋為什么選擇在這個位置加入緩存。
從程序員長期的工程化開發的角度考慮,如工程維護,代碼理解仍然是非常重要的。也正因此,人類在軟件開發的最后一公里中仍然扮演著重要角色,發現并修復最后 1% 的問題和背鍋都需要人來完成。未來的智能化編程可以進一步豐富,除了生成大量代碼之外,還可以提供解釋和修復缺陷等功能。
王千祥:發布這個評估標準是有意義的。而評估是否合理至關重要,否則會失去公信力。為了確保評估的合理性,可以參考其他人的做法,例如 GPT-4。NLP 領域有很多成熟的評估數據和排行榜,而代碼領域缺乏評估標準,這是一個需要解決的問題。GPT-4 報告的第五頁列出了大量的評估數據,例如 SAT 考試和法律考試等。可以借鑒這些評估標準來建立自己的評估體系,其中第一行講到 Codeforces 評比。DeepMind 開發的人工智能 AlphaCode 參加了 Codeforces 舉行的 10 場編程比賽,并取得了排名前 54.3% 的成績,擊敗了 46% 的參賽者。相比之下,GPT-4 在 Codeforces 的評級只排在倒數 5%,說明其編程能力遠遠不如 AlphaCode。在早期,評估 Codex 的能力使用了一個名為 HumanEval 的測試集,包含 164 道手工編寫的題目,這種方法對于評估人類的編程能力是有意義的。
如果想要評估 AI 的編程能力,可以先看看人類的編程能力是如何評估的,這是個基本點。當然,這種方法也存在一些不足之處,競賽題并不會用到那些非常復雜的庫,但實際應用中,會用到很多公共庫和私有庫。對此,我們開發了一個新的評估方法 CoderEval,現已經開源,從多個方面制定評估 AI 能力的標準,歡迎大家提出寶貴的建議。
吳恒魁:CSDN 發布的評測標準有 C1 到 C5 五個等級,這是一種程序員尋找編程輔助工具時所依賴的評測標準,能夠更好地評估模型在工作中的幫助作用,是個非常好的方向。而王老師提到的學術界標準則更為廣泛,適用于各種領域。華為做的benchmark (標準或數據集)也是個非常好的例子。它作為學術界的評測基準,已經被廣泛應用于文章發表和大模型測試。C1 到 C5 也可以和學術界的評測方法結合起來使用,或許在后面可以找到更多的結合點。在金融領域,我們也提出了一個中文金融下游任務評測標準,國內對這類評測標準的關注度較低。
新技術帶來焦慮or機遇?
閆輝:當一個新技術出現時,它可能給整個社會的變革或者工種的帶來變化。歷史上火槍的出現導致了騎士階層的消失,平民成為了戰士,整個社會政權也發生了變化。當人工智能 GPT 等新技術出現時,它所展現出的強大能力給程序員帶來了諸多挑戰,哪一類程序員受到的挑戰更大?哪一類挑戰更小?
彭鑫:與許多同行一起討論過這個問題,從學術界的角度來看,機會大于焦慮。AI 編程領域的人工智能經歷了幾年的沉寂之后,迎來了突破性進展,這讓人感到興奮和耳目一新。
歷史上,人類的技術創新往往會改變簡單勞動和復雜勞動的邊界。Brooks 早在寫《人月神話》時就指出,軟件開發需要應對本質上的難題和偶然性的困難,有簡單勞動和復雜勞動。本質上的難題是把問題搞清楚,比如將大規模軟件的問題進行分解后給出一個恰當的設計。相對簡單的是將問題翻譯成可實現的代碼,這一部分相對簡單,容易被取代。這種變化早在十幾年前就開始了,一些企業開始用低代碼開發的方式把時間省下來。盡管這種變化潛移默化,沒有造成很大的震動,但也取代了部分初級程序員的崗位。
相比之下,為什么 ChatGPT 的影響如此之深?因為它們的出現讓這種趨勢變得更加顯著,對人們的沖擊也更大。技術的進步正在逐漸抬升簡單勞動和復雜勞動的邊界,創造性較低的開發活動容易被取代。
在業界大會上,我曾經提出過一個口號:“人工智能的進步可以幫助減少重復的勞動和思考。軟件開發中最大的浪費是知識的浪費和重復思考的浪費”。其實很多問題和成果已經被前人思考過和解決過了,但以前沒有將它們凝聚在一起,人工智能技術的出現彌補了這種缺失,讓我們能夠更好地利用和共享已有的知識和成果,從而減少重復的思考和勞動。
總的來說,我認為 AI 可以取代一些相對簡單的編程任務,尤其是那些不涉及復雜設計的任務,而且需求已經非常清晰明確的任務。但仍需要人類確認和測試代碼的正確性并進行修改。并且工作量和人數肯定會比原來少。
王千祥:我認為有三類程序員受到的挑戰較小。
第一類是那些不怕背鍋的人。如果 AI 編寫的程序出了問題,責任最終還是在人身上。如果你是愿意承擔責任的人,敢于背鍋,那么你可能不會失業。AI 模型基于統計學,總有出錯的時候,只是概率大小不同。
第二類是從事非通用系統代碼編寫的程序員。現在的軟件很少是獨立的,都需要調用其他系統或接口。大量軟件需要建立在已有系統上。如果你的系統不通用,或者你有特殊的底層知識,你就不容易被替代。因為 AI 生成的模型可能沒有見過這些特殊的情況,無法生成合適的代碼。
第三類是做架構的程序員。需求總是在變化的,舊的需求可以用 AI 生成的代碼來滿足,但新的需求需要新的架構。這時候,AI 可能沒有見過這樣的架構,無法生成合適的代碼。所以做架構的崗位也是比較安全的。
吳恒魁:短期來看程序員大規模淘汰的可能性很小,AI 主要幫助程序員提高生產力。實際的工業生產過程中,要真正實現端到端的自動編程,比如用大模型來完整地開發一個產品,是非常困難的。盡管 OpenAI 展示了一些用自然語言編寫網站和游戲的案例,以及 GPT-4 演示了用圖形化方式生成網站的例子,實現端到端的自動編程仍然只是 Demo。
它的作用應該是極大地提高程序員的生產力和效率,它能更快速、準確地查找相關信息,自動代碼補全,幫助程序員提高生產力。從長遠來看,這種 AI 工具可以幫助許多沒有足夠時間成為專業程序員的人更快掌握編程工具,以解決問題。這意味著將更多的人引入編程群體中,轉化為半個程序員的水平,從而極大地提高整個社會的生產。
未來,當超大的編程項目可以用大型模型完成編寫,會不會有大量的程序員失業?我們需要再考慮這個問題。
蔣濤:我們可以將其影響的人員歸為三類:一類是將被取代工作的程序員;一類是技能將被增強的人員;一類是全新的藍海市場中的從業者。
第一批失業的將是從事單一模型研究的人員。不一定是他們工作的事業沒了,而是他們的工作目標沒了。ChatGPT 已經可以吊打很多單一模型,它在諸如翻譯等領域的表現遠勝于Google Translate和 DeepL 等單一模型。這是一個橫掃級的進步,給單一模型研究帶來了巨大沖擊。因此,許多人需要轉變工作任務,學習新的知識或使用新的工具。
第二類容易失業的人是從事那些需求可以明確定義的人員,如外包公司的員工。原因有兩點:首先,如果外包公司采用AI工具,其工作效率將得到提升;其次,客戶在使用AI工具后,他們的效率也會提高。由于他們的任務相對明確,外包程序員將受到較大沖擊。
第三點,AI 也會帶來新的機會,如 promote engineering (提示詞工程)。若將 GPT 大型模型比喻成一個操作系統,暴露出來的 API 是輸入一串文本提示詞,然后得到一個輸出。但這些詞并不像過去的 API 編程那樣固定,這是一個有趣的變化。正如恒魁所說,如果要從端到端完成一個任務,現在還缺乏中間層工具,也就是 promote engineering ,這是 AI 帶來的新機會之一。這些新機會源于 GPT 作為一個“操作系統”,需要更豐富的生態系統以及各種第三方工具和應用。在這個過程中,可以發現并抓住更多新的發展機遇。我們可以期待所謂的 GPT 原生應用的出現。就像早期的移動應用發展過程,從最初的簡單應用逐漸演變為能充分發揮大模型優勢的應用。
誰將成為這場技術革命的受益方?
閆輝:在這場技術革命中,一些程序員會受到沖擊,那么誰將會成為受益方?
彭鑫:這個答案很明顯,首先受益的當然是老板,因為技術的進步可以降低成本。其次是沒有被淘汰的程序員。
隨著大模型的出現,很多應用工具將被開發出來。大模型可以整合互聯網上的通用知識和企業內部的特定領域知識,形成一個統一的智能中心,為開發人員提供統一的門戶。沒有被淘汰的程序員都將從這些技術進步中受益。
那些經驗不足但思維靈活的人也將成為受益者。以架構師為例,一個優秀的架構師通常擁有多年的開發經驗,處理過不同類型的系統,并面臨過各種挑戰,這些經驗積累新手可能需要很多年的時間才能學會。如果一個人雖然經驗不足,但善于與大模型互動,并能準確把握大模型的提示,善于向大模型表述問題,消化吸收大模型的答案,將這些信息與當前項目的上下文結合起來,迅速形成具體的解決方案,那么這類人的能力將迅速提升。這只是一種可能性,不一定完全合理。
吳恒魁:大模型的蓬勃發展可能會給未來教育領域帶來極大的變化,特別是計算機使用和編程知識的普及,更多原本覺得計算機遙不可及的人,可更快地掌握這一工具。這種教育變革會全方位地影響各個領域,從教育到工業界。尤其是工業界,大模型對生產力提高所帶來的成本效益將是顯而易見的。
蔣濤:獲益最大的將是第一批采用這項 AI 技術的企業,但具體哪個行業或工種的變化最快仍有待觀察。科技日新月異,早加入,早受益。雖然很多人可能會因此產生焦慮,但更重要的是這開辟了一個新的藍海。在這個新藍海中,能孕育出怎樣的成果尚不清晰,短期來看,找到一個切入點就能受益,但這個受益是否長期還需打個問號。很多家長可能會因此感到焦慮,擔心孩子的未來,但我建議家長們讓孩子盡早使用這些技術,從而早受益。
編程教育將不再遵循舊例
閆輝:這場 AI 技術革命對編程教育的學習方式將會產生怎樣的影響?編程領域會不會出現不同的學習模式?
彭鑫:在編程學習方面,應該逐步提升思維層次。在 20 年前,人們會從語法入手,講解如何編寫程序。未來,普通學生可能不需要像現在這樣從數據結構、算法和基本編程語法入門,這部分可能會被機器或 AI 接手完成,程序員更多的任務是清晰地表達自己的意圖,計算思維可能會成為一種通用能力并得到強化。在特定領域,考慮到如資源限制、時間復雜度限制等方面,仍然需要優秀的程序員來完成。因此,我們仍然需要按照目前的方式培養一部分優秀的程序員。
王千祥:的確,編程教育課程的比例需要進行調整。一些較舊的知識,如匯編,可能需要壓縮,而新的知識則需要加強學習。
未來的編程可能更多地依賴于提示詞,需要清晰地表達需求,如何描述問題和提示詞可能成為一個值得研究的領域,甚至可能發展出一門新的學科,專門研究如何用更接近自然語言的方式描述問題,以便讓大型 AI 模型更容易理解。
吳恒魁:我的觀點與大家不太一樣。這個觀點來源于 OpenAI 首席執行官 Sam Altman 和首席科學家 Ilya Sutskever 在 Twitter 上的討論。我們認為,prompt(提示詞)只是一個過渡階段,是由于大型 AI 模型尚未完全理解自然語言的局限,未來的發展方向肯定是朝著更強大的自然語言理解能力邁進。
關于教育的問題,我們認為 AI 模型將對人類智力的提升產生巨大影響,這將是除了生產力提高之外對人類社會產生的重大影響。智力水平的提升可能會引發未來教育的巨大變革,下一代孩子將會把計算機作為最基本的通識類技能和知識。借助大型 AI 模型的幫助,能極大地補足現有教育資源和人類智力資源,從而引發教育領域的重大變革。
交互方式隨之改變,拓展編程邊界
閆輝:盡管計算機技術發生了很大變化,但編寫程序的目的仍然是解決人們的基本需求,今后編程解決的需求和應用場景方面可能會有哪些變化?
彭鑫:軟件開發最終服務于現實世界的需求和場景,AI 編程并沒有改變這一點,生成代碼只是軟件開發任務分解中的子節點。
AI 更擅長生成某些相對簡單的代碼,在處理較為復雜的軟件開發任務時,AI 的輔助作用可能有限。從學術研究的角度來看,我們希望未來的工具能在大型 AI 模型基礎上,通過在獨立問題上的智能,將各個部分串聯起來,實現更無縫的銜接,更自動化、更系統性的智能化編程。
計算和人、機、物的融合,與大模型的智能發展在一定程度上平行。未來的軟件編程對象將不再局限于計算機內部的數據結構和存儲,而是涵蓋萬物互聯的各種設備,如咖啡機、大樓的門窗、傳感器、語音音箱和機器人等。這些設備可以通過 API 進行包裝,實現應用創新。我們關注最終應用形態的變化,特別是設備上的變化。
Meta 有一篇具有影響力的文章提出讓大模型“長手”,即讓大模型的智能轉化為實際行動。大模型可以融入到現實世界的問題解決中,例如結合機器人。現在已經有研究探討如何利用大模型更好地編排機器人行為。
物理世界數字化程度的提高和軟件定義一切的理念已經成為現實。物理世界的事物通過軟件封裝和網絡化接入實現可編程,這大大拓展了編程的空間,未來這種融合將發生一些化學反應,帶來巨大的變化。
蔣濤:過去,微軟一直提倡自然人機接口,現在這一概念已經演變為 LUI(語言用戶界面),基于語言的應用將逐漸興起。未來可能會出現更適合 LUI 接口的新型計算設備和場景。前端接口需要更好地將 LUI 與用戶的意圖和目標結合起來,以創造更多垂直領域的場景和新應用。
正如滴滴打車利用手機定位能力產生了巨大的應用,GPT 等大模型的能力可能在未來會催生殺手級應用。微軟已經將 GPT 集成到 Office 中,對于提高信息生產力和數字化生產力具有重要意義。其潛力仍有待挖掘。
吳恒魁:當前信息社會的最大成就是搜索引擎和抖音等應用。大模型的發展不僅關注信息處理,還在于模擬人類智力。大模型的最大應用或殺手級應用究竟在哪里?一個重要方向是大模型對人類智力的不斷逼近或超越。因為所有工業生產和應用都基于科學,如果大模型在理解和發現科學方面超過人類,那么它將深入各個行業的工業生產。
大模型與機器人的結合將在物理世界產生實質性影響,這種影響可能遠大于推薦引擎和信息檢索。因為目前大部分生產仍在物理世界中進行,如果大模型能更深入掌握工業生產所需的知識,它將進入工業生產領域,直接影響各個行業,如生產制造和金屬加工等。借助這種高強度智力系統,人類社會應該建立一個以知識為中心的社會,擺脫以信息為中心的社會,未來每個人可以掌握所有學科的知識。我認為 AGI 的發展可以為人類社會帶來一個徹底改變的機會。
審核編輯 :李倩
-
AI
+關注
關注
87文章
31534瀏覽量
270343 -
自動化
+關注
關注
29文章
5622瀏覽量
79667 -
編譯器
+關注
關注
1文章
1642瀏覽量
49287 -
數字化
+關注
關注
8文章
8857瀏覽量
62170
原文標題:當 AI 沖擊自動化編程,誰將成為受益者?
文章出處:【微信號:AI科技大本營,微信公眾號:AI科技大本營】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論