前言
下面是一段利用 Co-Pilot 輔助開(kāi)發(fā)的小視頻,這是 Apache SeaTunnel 開(kāi)發(fā)者日常開(kāi)發(fā)流程中的一小部分。如果你還沒(méi)有用過(guò) Co-Pilot、ChatGPT 或者私有化大模型幫助你輔助開(kāi)發(fā)的話,未來(lái)的 5 年,你可能很快就要被行業(yè)所淘汰。因?yàn)檫@些善于使用 AIGC 輔助編程的人可以 10 倍于你的速度開(kāi)發(fā)相應(yīng)的代碼,而你沒(méi)有這個(gè)技能。我并不是危言聳聽(tīng),讀完此文,我相信你對(duì) AIGC 研發(fā)提升研發(fā)效率會(huì)有全新的認(rèn)知。
2大模型顛覆傳統(tǒng)初級(jí)程序員的培訓(xùn)和輔導(dǎo)過(guò)程,讓技術(shù)和經(jīng)驗(yàn)“平權(quán)”
過(guò)去,初級(jí)程序員入職學(xué)習(xí)編程時(shí),往往是師傅給一個(gè)任務(wù)需求,教大體的思路,然后在初級(jí)程序員寫(xiě)出代碼工作當(dāng)中培訓(xùn)和糾正,針對(duì)不同的命題告訴不同的方案,直到初級(jí)程序員把這些經(jīng)驗(yàn)學(xué)會(huì)。
但大模型的到來(lái)把這個(gè)過(guò)程完全改變了。大模型自己具有廣泛的知識(shí),而且有一些基礎(chǔ)的推理能力,它可以經(jīng)歷無(wú)數(shù)次的實(shí)踐,學(xué)習(xí)公司里各種各樣的代碼和業(yè)務(wù)定義,它所遇到的場(chǎng)景要比師傅當(dāng)年要遇到的場(chǎng)景多得多,同時(shí)它會(huì)根據(jù)開(kāi)發(fā)者的需求和目標(biāo)給出可能的答案。
這個(gè)過(guò)程就像我們多了一個(gè)無(wú)所不能的“師傅”,隨叫隨到還可以給你直接寫(xiě)出可能的代碼,讓你參考學(xué)習(xí),讓一個(gè)初級(jí)的程序員快速具有“師傅”寫(xiě)代碼的能力。經(jīng)過(guò)自己的學(xué)習(xí)和調(diào)整,就可以提交出一個(gè)遠(yuǎn)超你自己個(gè)人水平的代碼,讓別人 Review。
那么,我們有什么理由不使用大模型來(lái)提高自己的研發(fā)效率呢?
3如何使用大模型輔助編程?
目前常見(jiàn)的工具有 ChatGPT、Co-Pilot、私有化大模型等等,在不同場(chǎng)景下要用不同的方法來(lái)編寫(xiě)程序:
可以看到,人類(lèi)其實(shí)最適合就是做比較有挑戰(zhàn)和創(chuàng)新的架構(gòu)類(lèi)產(chǎn)品,或者是某個(gè)新業(yè)務(wù)場(chǎng)景的代碼,如果中間有復(fù)用的部分或者類(lèi)似的算法,可以使用 Co-Pilot 快速提升效率;ChatGPT 可以用于類(lèi)似場(chǎng)景的代碼來(lái)自動(dòng)生成,稍微修改就可以使用;私有化大模型更適合對(duì)數(shù)據(jù)和代碼安全有要求,而又需要大模型比較了解你的業(yè)務(wù)知識(shí)的場(chǎng)景,私有化大模型是需要 FineTune 的。
可能有人會(huì)說(shuō),私有化大模型普通公司玩不起的!其實(shí)這是一個(gè)誤解,如果你要原生訓(xùn)練一個(gè)原生私有化大模型,估計(jì)中國(guó)能玩得起的公司不超過(guò) 5 個(gè),而大多數(shù)公司不需要訓(xùn)練大模型,只需要根據(jù)開(kāi)源大模型優(yōu)化(Finetune)大模型就可以讓大模型理解自己的業(yè)務(wù)了,而這個(gè)代價(jià)就是 1-2 張 3090/4090 的顯卡就可以了,整個(gè)的實(shí)行過(guò)程可能也只需要 2~3 個(gè)小時(shí)的配置就可以(感興趣的話可以參考下面這篇文章:《用一杯星巴克的錢(qián),訓(xùn)練自己私有化的 ChatGPT》,里面講的利用是 Apache DolphinScheduler 和配置好的模板,拖拽就可以訓(xùn)練一個(gè)大模型的例子)。
使用私有化大模型可以直接實(shí)現(xiàn)以下功能:
軟件眾多功能中,直接找到你所需要的功能;
眾多復(fù)雜的使用手冊(cè)和規(guī)則,找到你所需要的功能和說(shuō)明;
輔助編程,Txt2SQL,提高數(shù)據(jù)程序員的效率。
使用私有化大模型來(lái)輔助編程,真的距離我們一點(diǎn)都不遙遠(yuǎn)。如果你還不太相信 AIGC 自動(dòng)化編程時(shí)代已經(jīng)來(lái)臨了,那么下面這個(gè)開(kāi)源項(xiàng)目如何利用 AIGC 提高研發(fā)效率的例子,或許可以幫助你更好理解。
4大模型自動(dòng)化編程實(shí)例:Apache SeaTunel
Apache SeaTunnel 愿景是“連接萬(wàn)源,同步如飛”,也就是可以連接市面上所有的數(shù)據(jù)源(包括數(shù)據(jù)庫(kù)、SaaS、中間件、BinLog),而且同步效率要做的最高。這對(duì)于任何一家公司都是不可能做到的事情,而面對(duì)幾千上萬(wàn)的 SaaS 軟件和不斷變化的接口,甚至人類(lèi)也無(wú)法做到這一點(diǎn),那么 Apache SeaTunnel 核心項(xiàng)目團(tuán)隊(duì)是怎么在這個(gè) AI 時(shí)代設(shè)計(jì)這樣一款開(kāi)源軟件呢?總體如下圖所示:
首先,計(jì)算核心引擎部分,屬于專(zhuān)門(mén)為同步而生的計(jì)算引擎,它不同于 Flink、Spark,主要在同步復(fù)用內(nèi)存、CPU、帶寬和確保數(shù)據(jù)一致性上下功夫,所以大部分代碼都沒(méi)有可借鑒的,需要核心開(kāi)發(fā)工程師直接編寫(xiě)、修正,以確保“同步如飛 ”。當(dāng)然,因?yàn)槭情_(kāi)源項(xiàng)目,核心引擎部分得到了眾多大廠專(zhuān)家的修正和討論,以確保時(shí)刻跟進(jìn)全球最先進(jìn)的技術(shù)。
其次,數(shù)據(jù)庫(kù)的核心 Connector,例如 Iceberg Connector,這些接口實(shí)現(xiàn)比較復(fù)雜,除了保證代碼正確之外還要保證數(shù)據(jù)傳輸效率很高,這時(shí)候直接使用大模型是無(wú)法達(dá)到我們所需要的效果的。因此主力還是人,但可以復(fù)用自己和云端過(guò)去常用的代碼來(lái)做,這時(shí)候使用 Co-Pilot 就是最佳方案,主導(dǎo)者是人,而大模型可以作為輔助來(lái)幫你補(bǔ)充常規(guī)算法和復(fù)用的代碼,如開(kāi)頭視頻所示的樣子。
面對(duì)浩如煙海的 SaaS 接口,例如 MarTech 領(lǐng)域的 SaaS 就超過(guò) 5000 個(gè),靠人力對(duì)接接口是不可能的。SeaTunnel 核心團(tuán)隊(duì)就想了一個(gè)辦法,根據(jù)多次嘗試,把過(guò)去為人寫(xiě)的十幾個(gè)接口進(jìn)行抽象,不斷和 ChatGPT 磨合,最終變成 2 個(gè)可以讓 ChatGPT 理解并寫(xiě)出優(yōu)雅代碼的接口,然后利用 ChatGPT 可以讀懂 SaaS 接口文檔的特點(diǎn),直接生成相關(guān)代碼。這在 SeaTunnel 當(dāng)中叫“AI Compatible”特性,兼容 AI。我理解這更是程序員和 AI 的一種“和解”,大家不要相互搶飯碗,程序員為 AI 做好準(zhǔn)備,AI 來(lái)做程序員無(wú)法做到的事情。
這個(gè)特性在 Apache SeaTunnel 2.3.1 里面已經(jīng)發(fā)布了,當(dāng)然作為眾創(chuàng)的開(kāi)源軟件,該功能還有各種各樣的缺陷有待提升。不過(guò)因?yàn)榇a是完全開(kāi)源的,我相信會(huì)有越來(lái)越多的愛(ài)好者把它打磨到更加自動(dòng)化。比如,我已經(jīng)聽(tīng)到有一個(gè)開(kāi)發(fā)者要做一個(gè) GPT Coder,監(jiān)控 GitHub 上的 SaaS issue,自動(dòng)化調(diào)用 ChatGPT,生成代碼并提交 PR,讓機(jī)器人和人類(lèi)卷到極致。
5大模型自動(dòng)化編程存在的問(wèn)題
雖然 ChatGPT、Co-Pilot 可以輔助編程,但它們也不是無(wú)敵的,目前大模型生成代碼還有很多挑戰(zhàn):
準(zhǔn)確率問(wèn)題;
無(wú)法做 code review;
無(wú)法實(shí)現(xiàn)自動(dòng)化測(cè)試;
無(wú)法擔(dān)責(zé)。
大模型依然會(huì)出錯(cuò),這在未來(lái)一段時(shí)間是常態(tài),哪怕是 ChatGPT4,寫(xiě)出來(lái)的代碼也就 90% 的正確率,所以要盡量簡(jiǎn)化它寫(xiě)代碼的過(guò)程,否則可能會(huì)寫(xiě)出來(lái)完全不對(duì)的代碼。大模型快速生成代碼之后,人類(lèi)的 code review 會(huì)跟不上,因?yàn)闄C(jī)器是無(wú)法確定最終代碼實(shí)現(xiàn)業(yè)務(wù)邏輯是不是對(duì)的;而大模型做 code review 的話,你會(huì)發(fā)現(xiàn)每次都給你煞有其事地提出來(lái)不同的改進(jìn)點(diǎn),但其實(shí)都是無(wú)關(guān)痛癢部分,無(wú)法確定最終的邏輯正確性。
同時(shí),自動(dòng)化測(cè)試案例和自動(dòng)化測(cè)試也是當(dāng)前大模型一個(gè)弱點(diǎn),TestPilot 屬于在學(xué)術(shù)圈比較活躍的內(nèi)容,大家可以參考 Cornell 的《Large Language Models are Few-shot Testers: Exploring LLM-based General Bug Reproduction》和《Adaptive Test Generation Using a Large Language Model》都是一些比較有意思的文章,不過(guò)距離工程化使用都還有一定距離。
當(dāng)然,自動(dòng)化編程還有最后也是最難得一關(guān)——責(zé)任問(wèn)題,就像自動(dòng)化駕駛一樣,哪怕是做到 L5,如果出問(wèn)題到底是誰(shuí)的責(zé)任。就像 WhaleOps 實(shí)現(xiàn)了 Txt2SQL 之后,很多用戶(hù)問(wèn),為什么不直接把 SQL 執(zhí)行出來(lái)變成最終的結(jié)果給我,這才是業(yè)務(wù)部門(mén)最終需要的東西。
我認(rèn)為這是一個(gè)哲學(xué)問(wèn)題,而不是一個(gè)技術(shù)問(wèn)題了。不說(shuō)現(xiàn)在 ChatGPT 90% 的準(zhǔn)確率,假設(shè)將來(lái)大模型可以做到 99.9999%,你敢直接問(wèn)一句話讓它自動(dòng)計(jì)算全公司的工資然后自動(dòng)對(duì)接銀行發(fā)工資么?如果出問(wèn)題,你覺(jué)得是誰(shuí)的問(wèn)題呢?永遠(yuǎn)不能幻想用技術(shù)解決所有的業(yè)務(wù)問(wèn)題,大模型也是如此。
6未來(lái)展望
現(xiàn)在我們還處于大模型自動(dòng)化編程的初期,很多小伙伴還在處于試用 Co-Pilot 和 ChatGPT 階段,大多數(shù)程序員還沒(méi)有用上私有化大模型來(lái)根據(jù)自己公司的業(yè)務(wù)提升編程效率,不過(guò)我認(rèn)為未來(lái)的 3-5 年,自動(dòng)化輔助編程一定會(huì)成為我們這一屆開(kāi)發(fā)者的標(biāo)配工具:
國(guó)產(chǎn)基礎(chǔ)大模型拉進(jìn) ChatGPT 距離,易用性提高;
開(kāi)源大模型準(zhǔn)確性、性能提升,更多的公司使用私有化大模型 ROI 提升;
大模型自動(dòng)化門(mén)檻減低,除了 DolphinScheduler,更多的大模型訓(xùn)練平民化工具誕生;
技術(shù)管理者對(duì)于大模型自動(dòng)化編程認(rèn)知提升,技術(shù)管理流程適配大模型時(shí)代;
在當(dāng)前經(jīng)濟(jì)周期下,降本提效利用大模型提高效率勢(shì)在必行。
所以,未來(lái)幾年,如果你在研發(fā)過(guò)程還是只會(huì) CRUD,不會(huì)有效利用大模型將自己的經(jīng)驗(yàn)和業(yè)務(wù)理解 X10 或者 X100 的話,那么不用等到 35 歲,你就會(huì)被會(huì)大模型編程的那批程序員所取代,他們 X10 之后,你就是那被淘汰的 9 個(gè)人。
當(dāng)然,雖然有點(diǎn)危言聳聽(tīng),但是編程提效當(dāng)中的大模型趨勢(shì)是勢(shì)不可擋的,我也只是在大模型自動(dòng)化編程這方面不斷實(shí)踐摸索的小學(xué)生,我相信會(huì)有很多的技術(shù)管理者和架構(gòu)師加入到大模型自動(dòng)化編程的浪潮中來(lái),不斷迭代和優(yōu)化在開(kāi)發(fā)領(lǐng)域當(dāng)中人和大模型之間的關(guān)系。最終,讓程序員、AI、技術(shù)研發(fā)流程更有效的為業(yè)務(wù)服務(wù)。
-
ChatGPT
+關(guān)注
關(guān)注
29文章
1570瀏覽量
8067 -
AIGC
+關(guān)注
關(guān)注
1文章
367瀏覽量
1608 -
大模型
+關(guān)注
關(guān)注
2文章
2551瀏覽量
3172
原文標(biāo)題:大模型時(shí)代的程序員:不會(huì)用AIGC編程,未來(lái)5年將被淘汰?
文章出處:【微信號(hào):AI前線,微信公眾號(hào):AI前線】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
“程序員將消失”,李彥宏/黃仁勛都贊同,三大方向可“自救”
![“<b class='flag-5'>程序員</b>將消失”,李彥宏/黃仁勛都贊同,三大方向可“自救”](https://file1.elecfans.com/web2/M00/C4/C5/wKgaomXu20uAR0RtAAJB92DbaiA567.png)
AIGC入門(mén)及鴻蒙入門(mén)
機(jī)械革命發(fā)布CODE AI程序員本
Linux驅(qū)動(dòng)程序程序員指南
![Linux驅(qū)動(dòng)<b class='flag-5'>程序</b><b class='flag-5'>程序員</b>指南](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
AI編程工具會(huì)不會(huì)搶程序員飯碗
第五屆長(zhǎng)沙·中國(guó)1024程序員節(jié)開(kāi)幕
程序員節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎(jiǎng)
![<b class='flag-5'>程序員</b>節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎(jiǎng)](https://file1.elecfans.com/web2/M00/8D/79/wKgaomS7KZ-AY3GzAAArJzrUg1c443.png)
程序員節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!
![<b class='flag-5'>程序員</b>節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!](https://file1.elecfans.com/web2/M00/F7/E1/wKgaomaDZHyAdCpxAACC-PIdRiA155.png)
大模型時(shí)代,程序員當(dāng)下如何應(yīng)對(duì) AI 的挑戰(zhàn)
![大<b class='flag-5'>模型</b><b class='flag-5'>時(shí)代</b>,<b class='flag-5'>程序員</b>當(dāng)下如何應(yīng)對(duì) AI 的挑戰(zhàn)](https://file1.elecfans.com//web2/M00/F6/06/wKgaomZ-ceeAU_ldAAYCIRbxQ_w529.png)
阿里云發(fā)布首個(gè)AI程序員,引領(lǐng)應(yīng)用開(kāi)發(fā)進(jìn)入“分鐘級(jí)”時(shí)代
Stability AI發(fā)布Stable Code Instruct 3B大語(yǔ)言模型,可編譯多種編程語(yǔ)言
不會(huì)用AI的人被淘汰?訊飛AI鼠標(biāo)AM30助你迎接AI時(shí)代
![<b class='flag-5'>不會(huì)用</b>AI的人被<b class='flag-5'>淘汰</b>?訊飛AI鼠標(biāo)AM30助你迎接AI<b class='flag-5'>時(shí)代</b>](https://file1.elecfans.com//web2/M00/C5/87/wKgZomX-bFaAXjP0AADS60_oYzQ38.jpeg)
適者生存,程序員最終會(huì)流向哪……
![適者生存,<b class='flag-5'>程序員</b>最終會(huì)流向哪……](https://file1.elecfans.com/web2/M00/C4/93/wKgaomXtvQOAe7rJAATFhYYm6E8233.jpg)
評(píng)論