演講嘉賓 | 石 琳
回顧整理 | 廖 濤
排版校對 | 李萍萍
嘉賓介紹
石琳,北京航空航天大學(xué)軟件學(xué)院教授,CCF高級會員,2022年度中國科學(xué)院軟件研究所杰出青年科技人才。研究方向?yàn)?a target="_blank">智能軟件工程,包括代碼智能、智能需求工程、經(jīng)驗(yàn)軟件工程、開源軟件、可信AI等。曾在軟件工程、人工智能領(lǐng)域的高水平國際會議發(fā)表論文50余篇,三次獲得杰出論文獎;主持參與多項(xiàng)國家自然科學(xué)基金項(xiàng)目、國家重點(diǎn)研發(fā)項(xiàng)目等;擔(dān)任多個國際知名會議期刊審稿人。
視頻回顧
打開嗶哩嗶哩APP,觀看更清晰視頻
正文內(nèi)容
隨著AI大模型能力的大幅提升,軟件開發(fā)已經(jīng)逐步走向新智能化時代。然而,目前代碼大模型在可靠性、隱私和合規(guī)以及用戶意圖識別等方面仍存在一定局限性。如何基于交互式需求澄清方法,讓大模型更好地理解用戶意圖,并給出更準(zhǔn)確的答案?北京航空航天大學(xué)教授石琳在第二屆OpenHarmony技術(shù)大會上進(jìn)行了精彩分享。
2022年11月,OpenAI發(fā)布ChatGPT,利用GitHub數(shù)據(jù)與RLFH強(qiáng)化學(xué)習(xí)技術(shù),在輔助編程取得進(jìn)展;2023年1月,微軟Copilot平臺用戶超過1億,CEO表示Copilot很快就會替代程序員完成80%的代碼開發(fā)。在GitHub的報告中,使用Copilot的開發(fā)者的開發(fā)效率幾乎提升了一倍,一個用Copilot的初學(xué)者就能夠像專業(yè)程序員一樣,從零開始開發(fā)出最小可行產(chǎn)品程序。此外,清華大學(xué)推出的ChatDev項(xiàng)目,支持多個智能體分工合作,能夠根據(jù)用戶指令生成休閑小游戲、效率管理工具、繪畫板、數(shù)學(xué)計算器、網(wǎng)絡(luò)爬蟲等軟件。
通過前文可知,代碼大模型在軟件開發(fā)方面“一鳴驚人”,給開發(fā)者們帶來了極大的便利。但是,代碼大模型的快速發(fā)展同時也帶來了新的問題,如:
模型問題:可靠性、幻覺、更新、形式重于內(nèi)容
數(shù)據(jù)問題:數(shù)據(jù)演化、質(zhì)量問題、安全問題、隱私和合規(guī)
應(yīng)用問題:用戶意圖不明確、復(fù)雜問題抽象和分解、項(xiàng)目上下文、領(lǐng)域?qū)I(yè)知識、遺留系統(tǒng)維護(hù)
其中,用戶的意圖表述不明確是代碼大模型在實(shí)踐中遇到的巨大阻礙。開發(fā)者想寫出一個清晰明確且全面的Prompt并不容易。既然開發(fā)者寫的Prompt不清晰,有沒有辦法讓大模型幫開發(fā)者改寫?目前,業(yè)界已經(jīng)有一些嘗試,例如GPT Engineer。GPT Engineer是一個基于需求描述自動生成項(xiàng)目源碼的開源項(xiàng)目,主打輕量,靈活生成項(xiàng)目源碼,可以在AI生成與人工生成之間進(jìn)行切換。在接收到Prompt時,GPT Engineer不會直接生成代碼,而是先梳理有哪些事項(xiàng)需要用戶進(jìn)一步澄清,然后讓用戶把需要澄清的事項(xiàng)輸入后,再進(jìn)一步生成代碼。然而,GPT Engineer經(jīng)常會問一些在Prompt中已經(jīng)提供了答案的問題,對用戶造成困擾。
如何找到Prompt中“不清楚”的地方,從而進(jìn)行精準(zhǔn)提問?石琳教授所在團(tuán)隊(duì)提出了ClarifyGPT工具。ClarifyGPT會先識別是否應(yīng)該提問,再利用大模型生成問題。
ClarifyGPT的模塊1:基于測試結(jié)果的代碼多樣性評價模塊
如何判斷是否應(yīng)該向用戶做Prompt澄清呢?這里我們從代碼大模型的輸出結(jié)果出發(fā),提出一個基本假設(shè):如果Prompt清晰,大模型生成的代碼應(yīng)該行為一致;如果Prompt模糊,大模型生成的代碼可能五花八門。因此,ClarifyGPT會先通過種子輸入進(jìn)行代碼多樣性測試,并基于測試結(jié)果判斷是否要做向用戶做Prompt的澄清。
具體而言,(1)先進(jìn)行種子測試輸入初始化。構(gòu)建prompt用于生成種子輸入,Prompt包含三部分:Instruction,Demonstrations,Query。將Prompt輸入LLM中生成一些測試輸入,并用它們初始化一個種子池;(2)再進(jìn)行類型感知的測試輸入變異(采用了標(biāo)準(zhǔn)的基于變異的模糊流程)。在每次迭代時,從種子池中隨機(jī)選擇一個輸入;對于選定的輸入,我們檢查其數(shù)據(jù)類型并執(zhí)行與其類型一致的單個變異操作以創(chuàng)建新的測試用例;完成一輪突變后,我們將新生成的輸入添加到種子池中,并重復(fù)上述過程,直到獲得所需的生成輸入數(shù)量。
ClarifyGPT的模塊2:基于推理的LLM問題生成模塊
在確定了需要向用戶做Prompt澄清后,應(yīng)該問什么內(nèi)容呢?為了解決這個以問題,ClarifyGPT會進(jìn)一步分析代碼的細(xì)節(jié)差異,區(qū)分不一致的代碼,比較solution的不同點(diǎn),再基于推理進(jìn)行LLM問題生成。
具體而言,首先生成中間推理步驟(分析導(dǎo)致歧義的因素),然后基于這些中間推理步驟產(chǎn)生最終結(jié)果(有針對性的澄清問題)。此外,ClarifyGPT鼓勵LLM進(jìn)行“超前規(guī)劃”,使他們能夠更好地利用他們的推理和理解能力來提高生成問題的質(zhì)量。
經(jīng)過評測,ClarifyGPT將GPT-4在MBPP-sanitized上的表現(xiàn)(Pass@1)從70.96%提高到80.8%;將MBPP-ET的性能從51.52%提高到60.19%。相對改善平均為15.35%,優(yōu)于基線。且增加Prompt中示例的數(shù)量會帶來ClarifyGPT性能提升。
ClarifyGPT是一個交互式代碼生成框架,會引導(dǎo)用戶先澄清意圖,再利用大模型幫助用戶生成代碼。后續(xù),ClarifyGPT也會在其他生成類任務(wù)上進(jìn)行進(jìn)一步的研究和探索。
大模型加速了研發(fā)人員的工作效率,但同時也提出了新的挑戰(zhàn)。我們必須大膽嘗試LLM在改進(jìn)軟件開發(fā)方面的潛力,但同時也要謹(jǐn)慎行事,不要忘記工程思維、嚴(yán)謹(jǐn)性和經(jīng)驗(yàn)驗(yàn)證的基本原則。 【材料分享】 [1] 論文原文下載 http://arxiv.org/abs/2310.10996 [2] 開源原型工具 https://github.com/ClarifyGPT/ClarifyGPT(點(diǎn)擊閱讀原文可跳轉(zhuǎn))
E N D
關(guān)注我們,獲取更多精彩。
審核編輯 黃宇
-
AI
+關(guān)注
關(guān)注
88文章
35041瀏覽量
279100 -
代碼
+關(guān)注
關(guān)注
30文章
4899瀏覽量
70639 -
OpenHarmony
+關(guān)注
關(guān)注
29文章
3848瀏覽量
18543 -
大模型
+關(guān)注
關(guān)注
2文章
3132瀏覽量
4049
發(fā)布評論請先 登錄
主線科技亮相第二屆中國具身智能大會
利爾達(dá)攜明星模組亮相第二屆移動物聯(lián)網(wǎng)大會(2024)

翱捷科技亮相第二屆移動物聯(lián)網(wǎng)大會
第二屆開放原子大賽首批賽項(xiàng)頒獎儀式在武漢舉辦
第二屆開放原子大賽首批創(chuàng)新成果集結(jié)武漢
谷東科技受邀參加2024第二屆元宇宙大會
美光科技第二屆鏈博會精彩回顧
智芯公司亮相2024第二屆中國電氣工程大會
帝奧微第二屆代理商大會圓滿召開
成都華微亮相第二屆腦機(jī)接口大會
知存科技邀您相約第二屆集成芯片和芯粒大會
第二屆openEuler生態(tài)大會圓滿結(jié)束
第二屆開放原子大賽火熱進(jìn)行中
第二屆開放原子大賽火熱開啟
第二屆大會回顧第24期 | 面向OpenHarmony的軟件工程研究:機(jī)遇與挑戰(zhàn)

評論