程序員開發(fā)正遭 AI 「革命」

卞安
AI作畫,作為一個局部領(lǐng)域的產(chǎn)品方向,在基于機器學(xué)習(xí)算法基礎(chǔ)上,為世界打開了一扇大門,隨著AI作畫類軟件的大放異彩,基于AI進(jìn)行內(nèi)容生產(chǎn)話題也越來越受到關(guān)注。

本文來自CSDN(ID:CSDNnews),作者|卞安,游戲引擎技術(shù)專家,CSDN博客專家,獨立軟件創(chuàng)業(yè)者。從事游戲研發(fā)行業(yè)近二十年,孜孜不倦地學(xué)習(xí)和思考引擎研發(fā)技術(shù)和工具鏈設(shè)計,曾任端游企業(yè)引擎技術(shù)總監(jiān),Cocos游戲引擎產(chǎn)品總監(jiān)。目前在學(xué)習(xí)游戲引擎與AI的結(jié)合,致力于開發(fā)基于Python語言的全棧式開發(fā)工具軟件產(chǎn)品《PyMe》。

AI作畫,作為一個局部領(lǐng)域的產(chǎn)品方向,在基于機器學(xué)習(xí)算法基礎(chǔ)上,為世界打開了一扇大門,隨著AI作畫類軟件的大放異彩,基于AI進(jìn)行內(nèi)容生產(chǎn)話題也越來越受到關(guān)注。

作為一名程序員,我們又應(yīng)該怎么來看待AI的這些成果對于開發(fā)方式的影響,在此,筆者有幸受邀為各位小伙伴分享一下個人的看法。

2345截圖20220818151609.png

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

AI將改寫程序員的開發(fā)方式

AI的底層算法一般是基于神經(jīng)網(wǎng)絡(luò)進(jìn)行建模,通過在神經(jīng)元上的數(shù)學(xué)算法不斷的訓(xùn)練數(shù)據(jù)調(diào)整建模,使誤差向最小靠近的過程。這是一種非??岬乃季S方式,它使得計算機可以通過算法尋找到數(shù)據(jù)變化的趨勢。在此基礎(chǔ)上發(fā)展起來的生成對抗網(wǎng)絡(luò),使得計算機學(xué)習(xí)和模仿數(shù)字化內(nèi)容變的更加可信,這些數(shù)字化內(nèi)容不但包括文本(新聞和小說生成)、圖像(AI繪圖與視頻),3D模型(AI生成游戲場景),也包括編程代碼和文檔。

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

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

從工作形態(tài)的進(jìn)化趨勢上來看,預(yù)期會分為三個階段:

2345截圖20220818151609.png

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

這一階段的主要體現(xiàn)是:通過搜集、歸類、梳理編程開發(fā)項目中大量的可復(fù)用部分(如算法、功能函數(shù)或模塊)形成數(shù)據(jù)集,通過對輸入意向和數(shù)據(jù)集進(jìn)行訓(xùn)練和學(xué)習(xí)的方式,形成優(yōu)良的輔助功能,提升程序員的開發(fā)效率。

在具體實踐上,一些企業(yè)已經(jīng)推出了相關(guān)工具類產(chǎn)品:

GitHub Copilot:通過語音輸入指令讓IDE自動提示并生成代碼。

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

經(jīng)過數(shù)十億行代碼的訓(xùn)練,它可以將自然語言提示轉(zhuǎn)化為數(shù)十種語言的編碼建議,支持Python、JavaScript、TypeScript、Java、Ruby和Go等編程語言。根據(jù)今年GitHub Universe開發(fā)者大會報告給出的數(shù)據(jù),Copilot已經(jīng)通過基于AI的編碼建議,幫助全球開發(fā)者的工作效率提高了55%。

2345截圖20220818151609.png

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

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

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

2345截圖20220818151609.png

除此之外,還有Kite、Codota、DeepCode等一些基于機器學(xué)習(xí)的AI代碼生成工具,本質(zhì)上都是通過大量的代碼訓(xùn)練,來智能預(yù)測出需要生成的代碼,加快編程的效率。

總體來說,這一階段的產(chǎn)品推動者不需要面向業(yè)務(wù),只需要考慮面向程序員,可以達(dá)到輔助程序員提升業(yè)務(wù)開發(fā)速度的目標(biāo),也可以較好的通過工具化產(chǎn)品形成規(guī)范,解決企業(yè)的代碼風(fēng)格化統(tǒng)一問題。未來可能會廣泛的成為程序員工作中的標(biāo)配,程序員將不會再花大量的精力在高復(fù)用度的具體代碼函數(shù)設(shè)計,而更多的把精力放在業(yè)務(wù)模塊的設(shè)計實現(xiàn)。

第二階段:業(yè)務(wù)模塊的智能生成

這一階段的主要體現(xiàn)是:通過搜集、歸類、梳理相關(guān)領(lǐng)域業(yè)務(wù)開發(fā)項目中大量的通用業(yè)務(wù)(如游戲研發(fā)中的登錄模塊、熱更新模塊、聊天模塊、戰(zhàn)斗模塊等業(yè)務(wù)邏輯)形成數(shù)據(jù)集,通過對業(yè)務(wù)設(shè)計意向和數(shù)據(jù)集進(jìn)行訓(xùn)練和學(xué)習(xí)的方式,自動的進(jìn)行業(yè)務(wù)模塊前后端框架生成,優(yōu)化工作流程,提升業(yè)務(wù)模塊的產(chǎn)品設(shè)計迭代和研發(fā)速度。

我們可以通過一個實例工具軟件來理解這個過程,Adobe推出過的網(wǎng)頁三劍客之一的Dreamweave,其中提供了大量的模塊生成功能,比如通過設(shè)定數(shù)據(jù)集和表單的控件對應(yīng)關(guān)系,就可以生成前后端的代碼,實際提供一個可以運行的業(yè)務(wù)模塊。

當(dāng)然,這是由沒有結(jié)合人工智能輔助的情況,如果基于新的智能化生成,那我們在開發(fā)時,智能化生成模塊會自動跟據(jù)上下文來提示是否需要生成相應(yīng)的業(yè)務(wù)前后端模塊,我們只需要再跟據(jù)生成的模塊進(jìn)行微調(diào)或擴展即可達(dá)到我們的要求。

下圖是筆者使用DreamWeaver來生成一個簡單的登錄模塊,只需要設(shè)定一下數(shù)據(jù)表字段,即可生成表單,完成登錄判斷和跳轉(zhuǎn)功能。

2345截圖20220818151609.png

又或者在游戲開發(fā)領(lǐng)域。作者曾在企業(yè)負(fù)責(zé)技術(shù)中臺設(shè)計時,推動過面向各游戲項目組通用業(yè)務(wù)模塊的抽象與開發(fā),比如熱更新、原生接口調(diào)用,甚至包括游戲戰(zhàn)斗機制等大量的通用業(yè)務(wù),對于每一個項目幾乎都是需要的,只是因為技術(shù)棧或者界面的不同而需要重復(fù)的開發(fā),這些工作往往耗時耗力。

站在一個更高的維度,這些業(yè)務(wù)完全可以基于機器學(xué)習(xí)訓(xùn)練結(jié)合需求變化被快速地進(jìn)行調(diào)整而滿足各個項目的使用。所以,基于企業(yè)的技術(shù)中臺,把這些通用業(yè)務(wù)的統(tǒng)一框架和智能化定制與人工智能結(jié)合,基于主流開發(fā)軟件、引擎工具或平臺工具推出可實際操作的軟件或插件。從而形成更好的開發(fā)工作流是非常有意義的。

這個階段目前是各領(lǐng)域企業(yè)爭相降本增效的方向之一,程序員的工作正在進(jìn)一步從通用業(yè)務(wù)開發(fā)中解放,而把更多的把精力放在具體產(chǎn)品的需求上。

第三階段:產(chǎn)品原型的智能生成

這一階段主要體現(xiàn)是:通過對產(chǎn)品研發(fā)工作流中可智能化生成的部分進(jìn)行整合和優(yōu)化,達(dá)到能夠根據(jù)用戶需求自動的生成具備完整功能邏輯和效果表現(xiàn)的產(chǎn)品項目原型的目標(biāo),幫助產(chǎn)品經(jīng)理快速看到期望的結(jié)果。

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

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

這些平臺直接面向用戶方,提供給用戶可以自助訂制化的業(yè)務(wù)模塊并生成最終產(chǎn)品的服務(wù)。如騰訊云的自助式建站:

這些平臺雖然具備直接生成最終產(chǎn)品的能力,但其底層邏輯主要是基于一定數(shù)量的前后端模板和風(fēng)格模板進(jìn)行組合,通過固化的需求條目選項得到產(chǎn)品各模板模塊的組合結(jié)果,產(chǎn)品的領(lǐng)域有限、形態(tài)有限、規(guī)模有限,目前大部分不具備通過對用戶需求分析和產(chǎn)品形態(tài)數(shù)據(jù)集進(jìn)行機器學(xué)習(xí)來生成目標(biāo)產(chǎn)品的能力。

在數(shù)字人研發(fā)企業(yè)里,目前已經(jīng)在通過對人臉照片,動作視頻采用人物臉部識別,動作識別技術(shù)來建立模型數(shù)據(jù)集,通過機器學(xué)習(xí)對三維模型重建和自動動作綁定,快速化生產(chǎn)高精度數(shù)字人,這種方式與以往通過美術(shù)建模,手動綁定骨骼及人物動作的工作流有較大差別,它可以大大的加快數(shù)字人的生成效率、規(guī)模和精度。

2345截圖20220818151609.png

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

二、在一些游戲方向,如劇情文字類游戲(AVG)領(lǐng)域,開發(fā)者也在通過劇本生成,二次元立繪生成類軟件,通過腳本進(jìn)行完整的游戲產(chǎn)品生產(chǎn)嘗試,可以將原本需要幾個月才能完成的劇情文字游戲,在短短幾個小時內(nèi)生成出來。

當(dāng)然,這些方面的業(yè)務(wù)相對簡單,但隨著人工智能的發(fā)展,相信不久的未來,一個軟件產(chǎn)品設(shè)計師可以通過提供一些簡單的需求描述得到一個完整可運行的產(chǎn)品DEMO。它所要做的,是通過不斷的修改需求描述來不斷提交,得到期望的產(chǎn)品原型。

總結(jié)

最后,我想說的是,內(nèi)容生成的算法目前在一些方面有了較大突破,但在軟件開發(fā)領(lǐng)域,特別是開發(fā)者工具領(lǐng)域,我們也需要相關(guān)企業(yè)和創(chuàng)業(yè)者不斷的結(jié)合這些突破,落地到具體的工具軟件產(chǎn)品中來提升開發(fā)者的工作流程和體驗,推出更好的產(chǎn)品形態(tài),誰能夠在未來提供更好的智能化內(nèi)容生成體驗,也就會在未來更受歡迎。

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論