程式設計師開發正遭 AI 「革命」

【CSDN 編者按】AI,一個可以讓人充滿無限想象力的技術。近年來,隨著 GPT-3、BERT 等大語言模型的崛起,以及昨日最新 Stable Diffusion 2.0 開源文字圖像模型的發佈,也讓很多「所想即所得」的應用場景逐漸成為現實。反觀其背後,技術人在推動 AI 落地的過程中,包括自身的開發習慣、方式等也正被 AI 重置。

作者 | 卞安 責編 | 屠敏

AI 作畫,作為一個局部領域的產品方向,在基於機器學習演算法基礎上,為世界打開了一扇大門,隨著 AI 作畫類軟體的大放異彩,基於 AI 進行內容生產話題也越來越受到關注。

作為一名程式設計師,我們又應該怎麼來看待 AI 的這些成果對於開發方式的影響,在此,筆者有幸受邀為各位小夥伴分享一下個人的看法。

在美國科羅拉多州藝術博覽會上基於 Midjourney 獲獎的 AI 畫作《太空歌劇院》

AI 將

AI 將改寫程式設計師的開發方式

AI 的底層演算法一般是基於神經網路進行建模,通過在神經元上的數學演算法不斷的訓練資料調整建模,使誤差向最小靠近的過程。這是一種非常酷的思維方式,它使得計算機可以通過演算法尋找到資料變化的趨勢。在此基礎上發展起來的生成對抗網路,使得計算機學習和模仿數字化內容變的更加可信,這些數字化內容不但包括文字(新聞和小說生成)、圖像(AI繪圖與視訊),3D 模型(AI 生成遊戲場景),也包括程式設計程式碼和文件。

雖然我們目前還沒有能夠走到直接通過 AI 來生成完整的項目的地步,但在 AI 大發展的背景下,如何高效、快速、更好的達到程式設計目標,正在成為解決問題中一個重要的考慮因素。

我們可以對比 AI 的工作原理,反思程式設計工作中的痛點,預測一些潛在的可能性,也許未來這些可能性會極大的推動我們的程式設計和工作方式。

從工作形態的進化趨勢上來看,預期會分為三個階段:

第一階段:編碼工作的輔助智慧化

這一階段的主要體現是:通過蒐集、歸類、梳理程式設計開發項目中大量的可複用部分(如演算法、功能函數或模組)形成資料集,通過對輸入意向和資料集進行訓練和學習的方式,形成優良的輔助功能,提升程式設計師的開發效率。

在具體實踐上,一些企業已經推出了相關工具類產品:

  1. GitHub Copilot : 通過語音輸入指令讓 IDE 自動提示並生成程式碼。

Copilot 是 GitHub 今年早些時候推出的人工智慧程式設計輔助工具,2022 年 6 月 22 日已正式上線(https://github.com/features/copilot),定價每月 10 美元(約 66.9 元)或每年 100 美元(約 669 元),對學生使用者和流行開源項目的維護者免費提供。

經過數十億行程式碼的訓練,它可以將自然語言提示轉化為數十種語言的編碼建議,支持 Python、JavaScript、TypeScript、Java、Ruby 和 Go 等程式語言。根據今年GitHub Universe 開發者大會報告給出的資料,Copilot 已經通過基於 AI 的編碼建議,幫助全球開發者的工作效率提高了 55%。

2. GodeGeeX:通過輸入文字描述讓 IDE 自動提示並生成程式碼。

與此相近的一款國產工具叫做 GodeGeeX(https://models.aminer.cn/codegeex/),來自清華大學知識工程實驗證(KEG),CodeGeeX 是一款具有 130 億參數的多語言程式碼生成模型,採用華為 MindSpore 框架實現,在鵬城實驗室「鵬城雲腦II」中的 192 個節點(共 1536 個國產昇騰 910 AI 處理器)上訓練而成。

截至 2022 年 6 月 22 日,CodeGeeX 歷時兩個月在 20 多種程式語言的程式碼語料庫(>8500 億 Token)上預訓練得到。它可以跟據你的描述,或者上下文自動生成一段程式碼,和以往的程式碼補全功能是完成不同的。目前支持 Python、C++、Java、JavaScript、Go 五種主流程式語言,而且在準確度上表現較好。

除此之外,還有 Kite、Codota、DeepCode 等一些基於機器學習的 AI 程式碼生成工具,本質上都是通過大量的程式碼訓練,來智慧預測出需要生成的程式碼,加快程式設計的效率。

總體來說,這一階段的產品推動者不需要面向業務,只需要考慮面向程式設計師,可以達到輔助程式設計師提升業務開發速度的目標,也可以較好的通過工具化產品形成規範,解決企業的程式碼風格化統一問題。未來可能會廣泛的成為程式設計師工作中的標配,程式設計師將不會再花大量的精力在高複用度的具體程式碼函數設計,而更多的把精力放在業務模組的設計實現。

第二階段:業務模組的智慧生成

這一階段的主要體現是:通過蒐集、歸類、梳理相關領域業務開發項目中大量的通用業務(如遊戲研發中的登入模組、熱更新模組、聊天模組、戰鬥模組等業務邏輯)形成資料集,通過對業務設計意向和資料集進行訓練和學習的方式,自動的進行業務模組前後端框架生成,最佳化工作流程,提升業務模組的產品設計迭代和研發速度。

我們可以通過一個實例工具軟體來理解這個過程,Adobe 推出過的網頁三劍客之一的 Dreamweave,其中提供了大量的模組生成功能,比如通過設定資料集和表單的控制元件對應關係,就可以生成前後端的程式碼,實際提供一個可以運行的業務模組。

當然,這是由沒有結合人工智慧輔助的情況,如果基於新的智慧化生成,那我們在開發時,智慧化生成模組會自動跟據上下文來提示是否需要生成相應的業務前後端模組,我們只需要再跟據生成的模組進行微調或擴展即可達到我們的要求。

下圖是筆者使用 DreamWeaver 來生成一個簡單的登入模組,只需要設定一下資料表欄位,即可生成表單,完成登入判斷和跳轉功能。

又或者在遊戲開發領域。作者曾在企業負責技術中臺設計時,推動過面向各遊戲項目組通用業務模組的抽象與開發,比如熱更新、原生接口調用,甚至包括遊戲戰鬥機制等大量的通用業務,對於每一個項目幾乎都是需要的,只是因為技術棧或者界面的不同而需要重複的開發,這些工作往往耗時耗力。

站在一個更高的維度,這些業務完全可以基於機器學習訓練結合需求變化被快速地進行調整而滿足各個項目的使用。所以,基於企業的技術中臺,把這些通用業務的統一框架和智慧化定製與人工智慧結合,基於主流開發軟體、引擎工具或平臺工具推出可實際操作的軟體或外掛。從而形成更好的開發工作流是非常有意義的。

這個階段目前是各領域企業爭相降本增效的方向之一,程式設計師的工作正在進一步從通用業務開發中解放,而把更多的把精力放在具體產品的需求上。

第三階段:產品原型的智慧生成

這一階段主要體現是:通過對產品研發工作流中可智慧化生成的部分進行整合和最佳化,達到能夠根據使用者需求自動的生成具備完整功能邏輯和效果表現的產品項目原型的目標,幫助產品經理快速看到期望的結果。

這裡以幾個案例加以說明:

一、市場上大量自助建網站,電商小程序類的平臺。

這些平臺直接面向使用者方,提供給使用者可以自助訂製化的業務模組並生成最終產品的服務。如騰訊雲的自助式建站:

這些平臺雖然具備直接生成最終產品的能力,但其底層邏輯主要是基於一定數量的前後端模板和風格模板進行組合,通過固化的需求條目選項得到產品各模板模組的組合結果,產品的領域有限、形態有限、規模有限,目前大部分不具備通過對使用者需求分析和產品形態資料集進行機器學習來生成目標產品的能力。

在數字人研發企業裡,目前已經在通過對人臉照片,動作視訊採用人物臉部識別,動作識別技術來建立模型資料集,通過機器學習對三維模型重建和自動動作綁定,快速化生產高精度數字人,這種方式與以往通過美術建模,手動綁定骨骼及人物動作的工作流有較大差別,它可以大大的加快數字人的生成效率、規模和精度。

在 GTC 大會上,黃仁勳宣佈推出一個全方位的虛擬化身平臺 —— Omniverse Avatar(來源:https://developer.nvidia.com/nvidia-omniverse-platform/ace)

二、在一些遊戲方向,如劇情文字類遊戲(AVG)領域,開發者也在通過劇本生成,二次元立繪生成類軟體,通過腳本進行完整的遊戲產品生產嘗試,可以將原本需要幾個月才能完成的劇情文字遊戲,在短短几個小時內生成出來。

當然,這些方面的業務相對簡單,但隨著人工智慧的發展,相信不久的未來,一個軟體產品設計師可以通過提供一些簡單的需求描述得到一個完整可運行的產品DEMO。它所要做的,是通過不斷的修改需求描述來不斷提交,得到期望的產品原型。

總結

總結

最後,我想說的是,內容生成的演算法目前在一些方面有了較大突破,但在軟體開發領域,特別是開發者工具領域,我們也需要相關企業和創業者不斷的結合這些突破,落地到具體的工具軟體產品中來提升開發者的工作流程和體驗,推出更好的產品形態,誰能夠在未來提供更好的智慧化內容生成體驗,也就會在未來更受歡迎。

作者介紹:卞安,遊戲引擎技術專家,CSDN 部落格專家,獨立軟體創業者。從事遊戲研發行業近二十年,孜孜不倦地學習和思考引擎研發技術和工具鏈設計,曾任端遊企業引擎技術總監,Cocos 遊戲引擎產品總監。目前在學習遊戲引擎與 AI 的結合,致力於開發基於 Python 語言的全棧式開發工具軟體產品《PyMe》。

相關文章

ChatGPT 資料集之謎

ChatGPT 資料集之謎

ChatGPT這把火越燒越旺。國內很多大廠相繼聲稱要做中文版ChatGPT,還公佈了上線時間表,不少科技圈已功成名就的大佬也按捺不住,攜巨資...

重磅,GPT-4 API 全面開放使用!

重磅,GPT-4 API 全面開放使用!

整理 | 屠敏 遙想今年 3 月剛推出GPT-4的 OpenAI 僅邀請了部分提交申請的開發者參與測試。眼瞅 OpenAI 聯合創始人 Gr...

最強 AI ChatGPT 真要取代程式設計師?

最強 AI ChatGPT 真要取代程式設計師?

【CSDN 編者按】ChatGPT 一出,「程式設計師要失業了」、「程式設計師要下崗了」之聲不絕於耳,引得程式設計師們不由得一陣驚慌,最強 ...