商湯科技Copilot技術(shù)應(yīng)用負(fù)責(zé)人張濤:大模型不能解決一切,AI產(chǎn)品需要領(lǐng)域知識 原創(chuàng)
嘉賓 | 張濤
采訪&撰稿 | 云昭
出品 | 51CTO技術(shù)棧(微信號:blog51cto)
“程序員的飯碗被AI惦記”,早已不是新鮮事。李彥宏說未來不需要程序員,黃仁勛說未來不要再讓孩子學(xué)編程!
Coding這個(gè)行業(yè)會(huì)消失?要回答這個(gè)問題,AI編程工具的研發(fā)者最有發(fā)言權(quán)。
近日,商湯科技小浣熊出圈,我們在AIGC實(shí)戰(zhàn)派中邀請到小浣熊背后的主導(dǎo)開發(fā)者,商湯科技Copilot應(yīng)用技術(shù)負(fù)責(zé)人張濤。
“那些仍需要人精心地去跟機(jī)器溝通的部分,以前叫Coding、現(xiàn)在叫Coding,以后還是叫Coding!”
從模糊語義的人類語言到精確運(yùn)行的機(jī)器指令,這個(gè)Gap會(huì)一直需要Coding來彌合。
在張濤看來,我們不妨換另一種角度去思考AI編程的意義。AI讓我們不再局限于傳統(tǒng)的代碼編寫,而是致力于讓人類能夠通過更自然、更直觀的方式與機(jī)器交流。張濤認(rèn)為,消滅Coding并非目標(biāo),人們真正的愿景是提升編程的效率和直觀性,讓更多人能夠參與到創(chuàng)造未來的行列中來。
“現(xiàn)在的AI,是一種新的交互形式,它能與很多垂域的產(chǎn)品結(jié)合起來。”
之前的產(chǎn)品開發(fā),往往會(huì)從場景需求出發(fā),然后去收集各種各樣的一些軟件組件,或者是一些技術(shù)實(shí)現(xiàn)方案來實(shí)現(xiàn)自己原來想定義的產(chǎn)品。
而一旦想要往已經(jīng)成熟的產(chǎn)品加入AI,或者在產(chǎn)品初期引入AI時(shí),那么即使它不是個(gè)AI Native的產(chǎn)品,也需要提前把AI的局限性納入到考慮里面來。
值得注意的是,引入AI并沒有那么簡單,或許引入AI的方式并不起眼,它可能是一個(gè)一個(gè)小小的按鈕,或者是融入到一個(gè)不可見的整體流程,但這背后都是各種各樣的場景和需求。
“你要去照顧大模型來做產(chǎn)品,因?yàn)槟愕暮诵膄eature是由大模型提供的。這是AI Native產(chǎn)品帶來的一個(gè)明顯的思路改變?!?/p>
然而,讓軟件編程者去主導(dǎo)一個(gè)大模型應(yīng)用的產(chǎn)品,并不是一個(gè)水到渠成的事情。
正如張濤在提到自身角色轉(zhuǎn)變時(shí)所說的,只懂大模型遠(yuǎn)遠(yuǎn)不夠,還有很多,比如產(chǎn)品思維,但最重要的,還是需要具備相應(yīng)的領(lǐng)域知識和行業(yè)認(rèn)知。
“我們不能過分自信地認(rèn)為,懂大模型就可以把一切都做了?!?/p>
以下為訪談要點(diǎn):
- AI產(chǎn)品不會(huì)消滅程序員,反而會(huì)促進(jìn)程序員這個(gè)行業(yè)良性的發(fā)展。
- 實(shí)際上大家現(xiàn)在做這兩件事:第一,克服現(xiàn)在大模型的若干個(gè)缺點(diǎn),第二,激發(fā)大模型更多的思考能力。
- AI提效工具類的產(chǎn)品,更多是讓它能夠處理人類慢思考能夠解決的事情。
- 爽點(diǎn)就在于,一個(gè)事情如果沒有什么成就感,但又一定要做,機(jī)器可以直接幫我完成。
- 不能過分自信地認(rèn)為,懂大模型就可以把一切都做了。否則,可能全世界只需要Open AI的那700多人,其他的人都不需要來做軟件了。
- 對于正確性有高要求的場景而言,SFT的成本比較高,而且可操作性也是受限的,不如直接外掛一些知識庫的方法。
采訪內(nèi)容如下:
一、Coding會(huì)一直存在,刷題怪可能會(huì)消失
51CTO《AIGC實(shí)戰(zhàn)派》:最近李彥宏、周鴻祎、黃仁勛都就程序員這個(gè)職業(yè)是否會(huì)消失發(fā)表了觀點(diǎn),你對這個(gè)問題怎么看?
張濤:
程序員還會(huì)存在,只是工作方式不一樣了。程序員群體是對技術(shù)抱有好奇心的,肯定嘗試過各種各樣的AI輔助編程產(chǎn)品。從體感上看,目前已有的AI編程工具,大都是以Copilot的形式存在,去替代開發(fā)者去完成簡單枯燥的程式化的工作,加速開發(fā)效率。最重要的一點(diǎn)是,它可以讓你的Coding思路更加流暢絲滑。
如果說哪部分人會(huì)被取代,“背答案”或“刷題怪”可能危險(xiǎn)了。從另一個(gè)角度看,AI產(chǎn)品不會(huì)消滅程序員,反而會(huì)促進(jìn)程序員這個(gè)行業(yè)良性的發(fā)展。
一方面,大家不必再去投入太大精力去考察已有的經(jīng)典算法或古怪的代碼中的奇技淫巧。更多地還是回到編程思想,溝通協(xié)作、解決問題的能力上來。另一方面,這也會(huì)讓開發(fā)者更積極的能投入到關(guān)鍵技術(shù)的探索里面,同時(shí)也能參與進(jìn)產(chǎn)品的開發(fā)體驗(yàn)和設(shè)計(jì)之中。比如我之前就是個(gè)程序員,現(xiàn)在其實(shí)有一半的精力在做產(chǎn)品相關(guān)事情。所以說,AI時(shí)代,會(huì)讓一個(gè)代碼實(shí)現(xiàn)的勞動(dòng)者轉(zhuǎn)變成一個(gè)思考者的角色。
51CTO《AIGC實(shí)戰(zhàn)派》:
Coding本身這件事會(huì)被消滅嗎?
張濤:
我認(rèn)為還是消滅不了的。消滅Coding的意義就在于,大家希望通過“人和人”交流的方式去和機(jī)器打交道,也就是用自然語言來做編程,但是這兩者之間是天然有一個(gè)鴻溝。
之所以稱之為自然語言,是因?yàn)樗€是有一些模糊語義和需要澄清的部分。它和嚴(yán)格的形式化語言,比如說像數(shù)學(xué)公式、代碼等,天然有一個(gè)gap,即:沒有哪一個(gè)數(shù)學(xué)家,他會(huì)純用自然語言去闡述自己的數(shù)學(xué)發(fā)現(xiàn)。
至于說Coding中可以被AI取代的部分,是那些成組織的、有既定任務(wù)的部分,那些仍需要人和機(jī)器去精心溝通的部分,以前叫Coding,現(xiàn)在叫Coding,以后還是叫Coding。
51CTO《AIGC實(shí)戰(zhàn)派》:
Coding效率變高,是不是企業(yè)需要的程序員會(huì)變少?
張濤:
確實(shí)存在這個(gè)問題。一部分既定任務(wù)或者CRUD,其實(shí)這些是AI可以通過人的簡單指令,就能做到,甚至可能做的比人更好,而且不知疲憊。程序員這個(gè)職業(yè)自身的技術(shù)或者能力成分可能會(huì)發(fā)生一些變化。
之前,程序員的傍身之技,更多在于編程,比如對某一個(gè)編程語言特別的熟悉,理解一些編程的思想,此外還有一些落地實(shí)踐經(jīng)驗(yàn)。后續(xù)可能就會(huì)轉(zhuǎn)變到留出更多的時(shí)間來發(fā)掘新算法,更多地思考新的產(chǎn)品特性,比如,思考AI時(shí)代之后會(huì)給編程領(lǐng)域帶來怎樣的新的交互方式、產(chǎn)品形態(tài),我就是個(gè)例子。
二、讓大模型坦承自己做不到
51CTO《AIGC實(shí)戰(zhàn)派》:AI編程類產(chǎn)品是否已經(jīng)成熟,有哪些待改進(jìn)之處?
張濤:
如果不考慮現(xiàn)在模型能力的限制,可以說趨于成熟了?,F(xiàn)在,比較關(guān)鍵的大模型限制主要有兩個(gè)。一個(gè)是context length(上下文長度),還有一個(gè)就是幻覺問題。現(xiàn)在大家都是采用一些工程手段來解決這兩類問題。雖然這樣不是說徹底解決,但是可以把它解決到一個(gè)使用的狀態(tài),比如RAG,它本質(zhì)上精排了一些優(yōu)質(zhì)數(shù)據(jù)和信息去增大里面的信息的密度,去解決這個(gè)問題。
另外還有prompt engineering、SFT的方式,讓大模型自身來抑制幻覺,讓其遇到一些未知的知識的時(shí)候,就坦誠的表示“不知道”。這些都是在大語言模型在落地的過程中非常重要的一個(gè)配套工程。
但目前還沒有達(dá)成一個(gè)既定的行業(yè)標(biāo)準(zhǔn)的成熟狀態(tài),大家現(xiàn)在還是在摸索??赡苈窂缴鲜乔逦模菍?shí)際的技術(shù)棧上,還沒有形成真正的共識,比如上面提到的這些事情,langchain能不能做,也能做,但是可能用AutoGen更快,更容易。針對不同的場景,大家會(huì)采用一些不同的方式。總結(jié)來說,實(shí)際上大家現(xiàn)在做這兩件事:第一,克服現(xiàn)在大模型的若干個(gè)缺點(diǎn),第二,激發(fā)大模型更多的思考能力。
三、聊一聊AI編程產(chǎn)品思路
51CTO《AIGC實(shí)戰(zhàn)派》:在激發(fā)大模型能力方面,小浣熊家族有著怎樣的產(chǎn)品路徑?
張濤:
小浣熊家族目前已經(jīng)完成了兩款產(chǎn)品,分別是編程和辦公場景。這兩個(gè)產(chǎn)品從底層邏輯上,其實(shí)它是一個(gè)繼承的關(guān)系。AI提效工具類的產(chǎn)品,更多是讓它能夠處理人類慢思考能夠解決的事情。
而慢思考、邏輯推理,這些工作可能不是直接靠這個(gè)大模型“next token prediction”就可以做到的。那怎么辦?
第一,先給產(chǎn)品一個(gè)特定的、最適用于大模型的能力。代碼能力是大模型一個(gè)非常強(qiáng)大的內(nèi)在能力,因?yàn)榇竽P捅旧砭团茉谟?jì)算機(jī)里。我們可以將其內(nèi)化,強(qiáng)化大模型的編程能力。
第二,驗(yàn)證可行后,憑借代碼能力可以做更多,去解決之前純靠大模型解決不了的事情:比如一些數(shù)據(jù)分析、數(shù)據(jù)可視化等任務(wù)。這就對應(yīng)為辦公小浣熊這個(gè)場景。其中,除了強(qiáng)化代碼能力之外,還需要結(jié)合沙盒的執(zhí)行反饋,來強(qiáng)化大模型的多輪反思能力。后續(xù)該系列產(chǎn)品還計(jì)劃通過、websearch、知識庫、多Agent等方式來激活大模型更多的能力。
AI編程產(chǎn)品形態(tài)方面,目前以代碼能力為出發(fā)點(diǎn),自然會(huì)想到以插件形式集成到開發(fā)者經(jīng)常使用的IDE內(nèi),這是一個(gè)最自然的形態(tài)。剩下的一些編程相關(guān)的工作,比如前端,對著一張高保真的圖像來實(shí)現(xiàn)復(fù)刻代碼,其實(shí)也可以給大模型直接做,這是多模態(tài)大模型所擅長的。
51CTO《AIGC實(shí)戰(zhàn)派》:
從用戶角度看,AI產(chǎn)品的痛點(diǎn)和爽點(diǎn)在哪里?
張濤:
從國內(nèi)外類Copilot產(chǎn)品的數(shù)據(jù)來看,開發(fā)人員的接受度很高。爽點(diǎn)就在于,一個(gè)事情如果沒有什么成就感,但又一定要做,機(jī)器可以直接幫我完成。
舉個(gè)例子,開發(fā)者在寫代碼的過程中,有很多任務(wù),思路很簡單,且有很多既定方法,但又沒有API,卻需要花時(shí)間去敲。這類工作交給AI,代碼寫到那里一停,小浣熊就可以直接給出后面十來行的函數(shù)。這對于程序員來講就是一個(gè)很大的爽點(diǎn)。
針對開發(fā)者平時(shí)搜索技術(shù)文檔方面,Devin是個(gè)值得借鑒的方法,可信度不能僅依靠大模型自身的反省能力。更好地一個(gè)方式是采用RAG或Web搜索而來的強(qiáng)參考信息,這些信息是有來源標(biāo)注的,大家可以review。
除了幫你寫代碼,還有和你對話聊天,解決編程過程中遇到的一些問題,你可以直接針對代碼某些技術(shù)點(diǎn)進(jìn)行提問。
四、角色轉(zhuǎn)變:懂大模型遠(yuǎn)遠(yuǎn)不夠
51CTO《AIGC實(shí)戰(zhàn)派》:從開發(fā)者到AI產(chǎn)品的打造者,有著怎樣的變化?
張濤:
之前自己主要是程序員的角色,現(xiàn)在主要在做代碼產(chǎn)品,所以在產(chǎn)品思維上會(huì)有更多的要求。但并不是完全轉(zhuǎn)向了產(chǎn)品角色。
之所以選擇代碼產(chǎn)品,是因?yàn)榇诡怉I產(chǎn)品是需要具備這個(gè)領(lǐng)域的知識和行業(yè)認(rèn)知。
我在這里的角色并不是一個(gè)大模型專家,反而更多是一名產(chǎn)品所在行業(yè)的從業(yè)者——一名程序員。我們不能過分自信地認(rèn)為,懂大模型就可以把一切都做了。否則,可能全世界只需要Open AI的那700個(gè)人,其他的人都不需要來做軟件了。
51CTO《AIGC實(shí)戰(zhàn)派》:
跟開發(fā)之前非大模型產(chǎn)品相比,流程上有哪些變化?
張濤:
之前的產(chǎn)品更多從場景出發(fā),然后來收集一些軟件組件,或者是一些技術(shù)實(shí)現(xiàn)方案來實(shí)現(xiàn)自己預(yù)先定義的產(chǎn)品。而一旦想要往已經(jīng)成熟的產(chǎn)品加入AI,或者在產(chǎn)品初期引入AI時(shí),那么即使它不是個(gè)AI Native的產(chǎn)品,也需要提前把AI的限制局限性納入到考慮里面來。
之前大家可能從需求設(shè)計(jì)來出發(fā),而現(xiàn)在大家可能有一定的考慮,需要去照顧大模型來做,因?yàn)槿绻a(chǎn)品的一些核心feature是大模型提供的,思路就需要轉(zhuǎn)變。
比如代碼產(chǎn)品中,我們先有代碼場景,然后在大模型放進(jìn)來的第一時(shí)間就要考慮到大模型是如何起作用,如何揚(yáng)長避短,在準(zhǔn)備階段和一次次打磨過程中,讓大模型更好地為編程場景工作。
五、AI產(chǎn)品打磨,需要工程和模型雙側(cè)配合
51CTO《AIGC實(shí)戰(zhàn)派》:打造一款A(yù)I產(chǎn)品,有哪些棘手的挑戰(zhàn)?
張濤:
目前,AI產(chǎn)品的棘手問題挺多。比如,如何讓大模型更實(shí)用,剛才我們提到的RAG方案其實(shí)就需要做很多工作,怎樣保證性能效果有提升。雖然說它是“精選數(shù)據(jù)加入到提示”的方法,但是這里的精選數(shù)據(jù)也是一個(gè)模糊定義,所以他真正對模型的理解到底是加buff還是損失或者噪音,這里都需要大量研究工作。再比如,對于正確性有高要求的場景而言,SFT的成本比較高,而且可操作性也是受限的,不如直接外掛一些知識庫的方法。此外,工程和模型的配合的視角上面也要做很多大量實(shí)驗(yàn)的工作,流程上目前也不能做到很精確的定義。以上這些都需要工程側(cè)和模型側(cè)一起解決。
本文轉(zhuǎn)載自 ??51CTO技術(shù)棧???,作者:云昭
