99国产精品欲av蜜臀,可以直接免费观看的AV网站,gogogo高清免费完整版,啊灬啊灬啊灬免费毛片

網(wǎng)易首頁 > 網(wǎng)易號(hào) > 正文 申請入駐

中山大學(xué)團(tuán)隊(duì)打造"軟件修復(fù)流水線":讓AI自動(dòng)解決編程難題

0
分享至


這項(xiàng)由中山大學(xué)郭良洪、王彥琳等人領(lǐng)導(dǎo)的研究團(tuán)隊(duì),聯(lián)合華為技術(shù)有限公司于2025年6月發(fā)表的突破性成果,為我們描繪了一個(gè)令人興奮的未來圖景。想象一下,當(dāng)程序員在GitHub上遇到棘手的代碼問題時(shí),不再需要花費(fèi)數(shù)小時(shí)甚至數(shù)天來搭建測試環(huán)境、編寫測試腳本,而是有一個(gè)智能"工廠"能夠自動(dòng)完成這些繁瑣工作。這就是SWE-Factory(軟件工程自動(dòng)化工廠)要解決的核心問題。有興趣深入了解的讀者可以通過arXiv:2506.10954v1訪問完整論文。

在軟件開發(fā)的世界里,GitHub就像是一個(gè)巨大的"問題求助中心",每天都有無數(shù)程序員在這里提出各種代碼問題,尋求修復(fù)方案。就像醫(yī)生需要先做各種檢查才能確診病情一樣,要評(píng)估一個(gè)AI是否真的能解決編程問題,我們也需要先搭建一套完整的"診斷環(huán)境"。傳統(tǒng)的做法就像讓每個(gè)醫(yī)生都要自己制造體溫計(jì)、血壓計(jì)一樣低效——每次遇到新問題,都需要人工搭建測試環(huán)境,編寫評(píng)分規(guī)則,手動(dòng)檢查結(jié)果,整個(gè)過程既耗時(shí)又容易出錯(cuò)。

研究團(tuán)隊(duì)發(fā)現(xiàn)了一個(gè)有趣的現(xiàn)象:就像不同品牌的溫度計(jì)都會(huì)在發(fā)燒時(shí)顯示高溫一樣,幾乎所有的編程測試工具都遵循一個(gè)簡單的約定——測試成功時(shí)返回?cái)?shù)字0,失敗時(shí)返回其他數(shù)字。這個(gè)看似簡單的發(fā)現(xiàn),卻成為了整個(gè)自動(dòng)化系統(tǒng)的關(guān)鍵突破口。通過巧妙利用這個(gè)"數(shù)字密碼",研究團(tuán)隊(duì)實(shí)現(xiàn)了從人工判斷到自動(dòng)評(píng)分的飛躍。

更令人印象深刻的是,這套系統(tǒng)不是單打獨(dú)斗的"獨(dú)行俠",而是由四個(gè)"AI助手"組成的協(xié)作團(tuán)隊(duì)。第一個(gè)助手專門負(fù)責(zé)"偵察任務(wù)",像偵探一樣在代碼倉庫中搜集各種線索和信息;第二個(gè)助手是"環(huán)境工程師",負(fù)責(zé)搭建運(yùn)行代碼所需的虛擬環(huán)境;第三個(gè)助手是"測試專家",專門編寫和執(zhí)行測試腳本;最后一個(gè)助手擔(dān)任"質(zhì)量檢查員",負(fù)責(zé)驗(yàn)證整套系統(tǒng)是否正常工作。這四個(gè)AI助手就像一個(gè)配合默契的團(tuán)隊(duì),通過不斷的溝通協(xié)作,最終完成了原本需要人工完成的復(fù)雜任務(wù)。

一、傳統(tǒng)方法的三大痛點(diǎn):為什么需要"自動(dòng)化工廠"

在深入了解這個(gè)"自動(dòng)化工廠"之前,我們先來看看傳統(tǒng)方法面臨的困境。想象你是一個(gè)餐廳老板,每次有新客人點(diǎn)菜時(shí),你都需要重新裝修廚房、購買設(shè)備、培訓(xùn)廚師,這樣的餐廳顯然無法正常經(jīng)營。而傳統(tǒng)的GitHub問題解決方法就面臨著類似的困境。

第一個(gè)痛點(diǎn)就像每次做菜都要重新裝修廚房一樣荒誕。每當(dāng)遇到一個(gè)新的GitHub問題時(shí),研究人員需要手動(dòng)搭建測試環(huán)境,這個(gè)過程繁瑣得令人發(fā)指。不同的編程語言就像不同的菜系,Python項(xiàng)目可能需要特定版本的解釋器和依賴包,Java項(xiàng)目需要特定的編譯環(huán)境,JavaScript項(xiàng)目又有自己的運(yùn)行要求。更要命的是,同一個(gè)項(xiàng)目的不同版本,其環(huán)境配置也可能大相徑庭,就像同一道菜在春夏秋冬需要不同的食材和調(diào)料一樣。這種"一菜一廚房"的模式讓研究人員苦不堪言。

第二個(gè)痛點(diǎn)則像是每次品嘗食物都要發(fā)明新的味覺測試方法。在編程世界里,不同的項(xiàng)目使用不同的測試框架,產(chǎn)生的日志格式千差萬別。有些測試結(jié)果會(huì)顯示"PASSED"和"FAILED",有些會(huì)顯示綠色和紅色的標(biāo)記,還有些會(huì)輸出復(fù)雜的統(tǒng)計(jì)信息。為了從這些五花八門的日志中提取"通過"或"失敗"的信息,研究人員需要為每種情況編寫專門的解析代碼,就像為每種菜系都要培養(yǎng)專門的美食評(píng)論家一樣。這種"一菜一評(píng)委"的做法不僅效率低下,還容易出錯(cuò)。

第三個(gè)痛點(diǎn)最為致命,就像需要人工一一品嘗所有菜品來確認(rèn)質(zhì)量一樣。在構(gòu)建測試數(shù)據(jù)集時(shí),研究人員必須驗(yàn)證每個(gè)問題確實(shí)能夠從"失敗"狀態(tài)轉(zhuǎn)變?yōu)?成功"狀態(tài)。這個(gè)驗(yàn)證過程傳統(tǒng)上完全依賴人工檢查,研究人員需要逐一查看測試日志,確認(rèn)修復(fù)補(bǔ)丁確實(shí)解決了問題。當(dāng)面對成百上千個(gè)問題時(shí),這種人工檢查不僅耗時(shí)巨大,還容易因?yàn)槠诨蚴韬龆a(chǎn)生錯(cuò)誤判斷。

正是這三大痛點(diǎn)的存在,讓構(gòu)建大規(guī)模的GitHub問題解決數(shù)據(jù)集變得極其困難和昂貴。就像一個(gè)效率低下的手工作坊無法與現(xiàn)代化工廠競爭一樣,傳統(tǒng)的人工方法已經(jīng)無法滿足現(xiàn)代AI訓(xùn)練對大規(guī)模高質(zhì)量數(shù)據(jù)的需求。

二、四個(gè)AI助手的分工協(xié)作:打造完美團(tuán)隊(duì)

SWE-Factory的核心創(chuàng)新在于將復(fù)雜的環(huán)境構(gòu)建任務(wù)分解為四個(gè)專門化的AI助手,它們就像一個(gè)經(jīng)驗(yàn)豐富的施工隊(duì),各司其職又密切配合。這種設(shè)計(jì)理念就如同現(xiàn)代化工廠的流水線作業(yè),每個(gè)工位都有專門的技能,通過精密的協(xié)調(diào)實(shí)現(xiàn)整體效率的最大化。

第一位團(tuán)隊(duì)成員是"倉庫探索者",它就像一個(gè)經(jīng)驗(yàn)豐富的偵探,專門負(fù)責(zé)收集項(xiàng)目的各種信息。當(dāng)面對一個(gè)新的GitHub項(xiàng)目時(shí),這個(gè)AI助手會(huì)自動(dòng)瀏覽項(xiàng)目的文件結(jié)構(gòu),仔細(xì)閱讀配置文件如requirements.txt或package.json,查看說明文檔如README.md,甚至研究項(xiàng)目的安裝腳本。它的工作方式就像一個(gè)新來的程序員在熟悉項(xiàng)目環(huán)境,通過三種核心"調(diào)查技能"完成信息收集:首先是"文件瀏覽"技能,能夠打開任何文件并根據(jù)需要提取特定信息;其次是"目錄結(jié)構(gòu)"技能,可以快速了解項(xiàng)目的整體布局;最后是"關(guān)鍵詞搜索"技能,能夠快速定位包含特定信息的文件。這個(gè)探索過程最多進(jìn)行10輪,每輪都會(huì)根據(jù)已有信息決定下一步的調(diào)查方向,就像偵探根據(jù)線索逐步逼近真相一樣。

第二位成員是"環(huán)境管理者",它的任務(wù)就像建筑工程師設(shè)計(jì)施工圖紙一樣。在獲得倉庫探索者提供的詳細(xì)信息后,環(huán)境管理者開始構(gòu)建Docker容器的配置文件,這就像是為每個(gè)項(xiàng)目定制一個(gè)專門的"虛擬工作間"。它會(huì)根據(jù)項(xiàng)目需要選擇合適的基礎(chǔ)鏡像,安裝必要的依賴包,配置環(huán)境變量,確保代碼能夠在這個(gè)虛擬環(huán)境中正常運(yùn)行。更重要的是,環(huán)境管理者具有"記憶"功能,它會(huì)記住每次的構(gòu)建歷史,當(dāng)出現(xiàn)錯(cuò)誤時(shí)能夠在之前的基礎(chǔ)上進(jìn)行改進(jìn),而不是從零開始,這就像經(jīng)驗(yàn)豐富的工程師會(huì)從以往的項(xiàng)目中汲取經(jīng)驗(yàn)一樣。

第三位成員是"測試管理者",它就像一個(gè)專業(yè)的測試工程師。它的工作是編寫能夠在Docker環(huán)境中運(yùn)行的測試腳本,這些腳本需要能夠準(zhǔn)確執(zhí)行項(xiàng)目的測試用例,并且能夠清晰地報(bào)告測試結(jié)果。測試管理者的一個(gè)關(guān)鍵創(chuàng)新是在每個(gè)測試腳本的末尾添加一個(gè)特殊的"信號(hào)發(fā)射器"。這個(gè)設(shè)計(jì)就像在每個(gè)測試的最后安裝一個(gè)標(biāo)準(zhǔn)化的"結(jié)果播報(bào)器",無論原始測試框架如何復(fù)雜,都會(huì)統(tǒng)一輸出形如"OMNIGRIL_EXIT_CODE=0"的標(biāo)準(zhǔn)格式。這個(gè)看似簡單的改動(dòng)卻解決了傳統(tǒng)方法中最頭疼的日志解析問題。

第四位成員是"測試分析師",它擔(dān)任整個(gè)團(tuán)隊(duì)的"質(zhì)量監(jiān)督員"角色。測試分析師的工作是驗(yàn)證前三位同事的協(xié)作成果是否達(dá)到預(yù)期標(biāo)準(zhǔn)。它會(huì)實(shí)際構(gòu)建Docker環(huán)境,應(yīng)用修復(fù)補(bǔ)丁,運(yùn)行測試腳本,然后分析結(jié)果。如果一切順利,測試分析師會(huì)宣布任務(wù)完成;如果發(fā)現(xiàn)問題,它會(huì)充當(dāng)"診斷醫(yī)生"的角色,分析錯(cuò)誤日志,識(shí)別問題根源,然后向?qū)?yīng)的團(tuán)隊(duì)成員提供具體的改進(jìn)建議。比如,如果Docker構(gòu)建失敗,它會(huì)告訴環(huán)境管理者具體哪個(gè)依賴包有問題;如果測試腳本執(zhí)行出錯(cuò),它會(huì)指導(dǎo)測試管理者修改腳本的相應(yīng)部分。

這四個(gè)AI助手的協(xié)作過程就像一個(gè)不斷優(yōu)化的反饋循環(huán)。整個(gè)團(tuán)隊(duì)最多會(huì)進(jìn)行5輪協(xié)作,每一輪都在前一輪的基礎(chǔ)上進(jìn)行改進(jìn)。第一輪通常是全員參與的"初始建設(shè)"階段,后續(xù)輪次則根據(jù)測試分析師的反饋進(jìn)行針對性的"局部優(yōu)化"。這種設(shè)計(jì)確保了系統(tǒng)既能夠處理復(fù)雜的項(xiàng)目要求,又能夠在合理的時(shí)間和成本范圍內(nèi)完成任務(wù)。

為了進(jìn)一步提高效率,研究團(tuán)隊(duì)還為這個(gè)AI團(tuán)隊(duì)配備了一個(gè)"經(jīng)驗(yàn)資料庫",就像一個(gè)經(jīng)驗(yàn)豐富的工程隊(duì)會(huì)保留以往項(xiàng)目的圖紙和經(jīng)驗(yàn)一樣。當(dāng)處理同一個(gè)項(xiàng)目的不同版本時(shí),團(tuán)隊(duì)可以從資料庫中找到相似的配置作為起點(diǎn),這大大減少了從零開始的重復(fù)工作。這個(gè)設(shè)計(jì)基于一個(gè)簡單而深刻的觀察:同一個(gè)軟件項(xiàng)目的相鄰版本通常有相似的環(huán)境需求,就像同一個(gè)餐廳的菜品通常使用相似的廚房設(shè)備一樣。

三、"數(shù)字密碼"的奧秘:如何實(shí)現(xiàn)自動(dòng)化評(píng)分

在整個(gè)SWE-Factory系統(tǒng)中,最巧妙的創(chuàng)新可能就是利用了編程世界的一個(gè)"潛規(guī)則"——退出碼機(jī)制。這就像發(fā)現(xiàn)了一種通用的"紅綠燈"系統(tǒng),無論什么品牌的汽車,都能理解紅燈停、綠燈行的基本規(guī)則一樣。

在計(jì)算機(jī)程序的世界里,每當(dāng)一個(gè)程序運(yùn)行結(jié)束時(shí),它都會(huì)向操作系統(tǒng)報(bào)告一個(gè)數(shù)字,這個(gè)數(shù)字就叫做"退出碼"。這就像學(xué)生考試結(jié)束后要告訴老師自己的答題情況一樣。按照約定俗成的規(guī)則,如果程序正常完成任務(wù),它會(huì)報(bào)告數(shù)字0,意思是"一切順利";如果程序遇到錯(cuò)誤或測試失敗,它會(huì)報(bào)告一個(gè)非零數(shù)字,意思是"出了問題"。這個(gè)機(jī)制被幾乎所有的編程測試工具采用,無論是Python的pytest、Java的Maven,還是JavaScript的npm,都遵循這個(gè)簡單而統(tǒng)一的約定。

傳統(tǒng)的評(píng)分方法就像需要為每種考試題型都培養(yǎng)專門的閱卷老師一樣復(fù)雜。不同的測試框架會(huì)產(chǎn)生截然不同的輸出格式,有些會(huì)顯示詳細(xì)的通過失敗統(tǒng)計(jì),有些會(huì)用彩色文字標(biāo)記結(jié)果,還有些會(huì)輸出復(fù)雜的XML報(bào)告。為了從這些五花八門的輸出中提取"通過"或"失敗"的信息,傳統(tǒng)方法需要為每種情況編寫專門的解析代碼,這不僅工作量巨大,還容易因?yàn)楦袷阶兓鲥e(cuò)。

SWE-Factory的創(chuàng)新就像發(fā)現(xiàn)了所有考試都有一個(gè)統(tǒng)一的"交卷鈴聲"一樣。無論測試框架的輸出格式多么復(fù)雜,退出碼都是標(biāo)準(zhǔn)化的。研究團(tuán)隊(duì)在每個(gè)測試腳本的末尾添加了一個(gè)簡單的"信號(hào)捕捉器",它會(huì)捕獲測試命令的退出碼,然后以標(biāo)準(zhǔn)格式輸出。具體來說,系統(tǒng)會(huì)自動(dòng)添加這樣的代碼:首先用"rc=$?"命令捕獲剛剛執(zhí)行的測試命令的退出碼,然后用"echo 'OMNIGRIL_EXIT_CODE=$rc'"命令將這個(gè)退出碼以特定格式打印出來。

這個(gè)設(shè)計(jì)的妙處在于它的普適性和可靠性。就像所有的紅綠燈都使用相同的顏色約定一樣,退出碼機(jī)制在整個(gè)編程世界都是標(biāo)準(zhǔn)化的。無論項(xiàng)目使用什么編程語言、什么測試框架、什么版本的工具,退出碼的含義都是一致的。這意味著SWE-Factory可以用同一套評(píng)分邏輯處理所有類型的項(xiàng)目,就像用同一套交通規(guī)則管理所有類型的車輛一樣。

為了驗(yàn)證這種方法的可靠性,研究團(tuán)隊(duì)進(jìn)行了大規(guī)模的對比實(shí)驗(yàn)。他們手工檢查了超過2000個(gè)測試報(bào)告,將人工判斷的結(jié)果與基于退出碼的自動(dòng)判斷進(jìn)行對比。結(jié)果令人驚喜:兩種方法的判斷結(jié)果完全一致,準(zhǔn)確率達(dá)到了100%。這就像發(fā)現(xiàn)了一個(gè)完美的"自動(dòng)閱卷系統(tǒng)",它的判斷能力與最經(jīng)驗(yàn)豐富的人工評(píng)分員完全相同,但效率卻高出數(shù)百倍。

這種基于退出碼的評(píng)分方法還有一個(gè)重要優(yōu)勢:它不依賴于輸出文本的語言。無論測試框架使用英文、中文還是其他語言輸出結(jié)果信息,退出碼都是數(shù)字,沒有語言障礙。這就像數(shù)字本身就是一種通用語言一樣,為SWE-Factory的國際化應(yīng)用奠定了基礎(chǔ)。

更重要的是,這種方法具有很強(qiáng)的前向兼容性。當(dāng)新的測試框架出現(xiàn)或現(xiàn)有框架更新輸出格式時(shí),基于退出碼的評(píng)分系統(tǒng)不需要任何修改就能繼續(xù)正常工作。這就像一套設(shè)計(jì)良好的交通信號(hào)系統(tǒng),即使車輛型號(hào)不斷更新?lián)Q代,紅綠燈的基本機(jī)制依然有效。

四、自動(dòng)化質(zhì)量檢驗(yàn):解決"錯(cuò)過好答案"的難題

在構(gòu)建GitHub問題解決數(shù)據(jù)集時(shí),有一個(gè)關(guān)鍵步驟就像食品安全檢驗(yàn)一樣重要——確保每個(gè)問題確實(shí)能夠從"失敗"狀態(tài)轉(zhuǎn)變?yōu)?成功"狀態(tài)。這個(gè)過程被稱為"fail2pass驗(yàn)證",傳統(tǒng)上需要大量的人工檢查,就像需要質(zhì)檢員逐一品嘗每個(gè)產(chǎn)品來確認(rèn)質(zhì)量一樣。

SWE-Factory通過巧妙運(yùn)用退出碼機(jī)制,將這個(gè)繁瑣的人工過程轉(zhuǎn)化為高效的自動(dòng)化流程。系統(tǒng)的工作方式就像一個(gè)自動(dòng)化的"變化檢測器":首先在沒有應(yīng)用修復(fù)補(bǔ)丁的情況下運(yùn)行測試,記錄退出碼;然后應(yīng)用修復(fù)補(bǔ)丁再次運(yùn)行測試,記錄新的退出碼;最后比較兩次的退出碼變化。只有那些從非零(失?。┳?yōu)榱悖ǔ晒Γ┑臏y試用例才被認(rèn)定為有效的benchmark實(shí)例。

為了驗(yàn)證這種自動(dòng)化方法的可靠性,研究團(tuán)隊(duì)進(jìn)行了一項(xiàng)大規(guī)模的對比研究。他們從三個(gè)不同AI模型生成的1030個(gè)測試實(shí)例中,人工檢查了每一個(gè)的前后狀態(tài)變化,然后與自動(dòng)化系統(tǒng)的判斷結(jié)果進(jìn)行對比。結(jié)果顯示,自動(dòng)化系統(tǒng)在識(shí)別真正的fail2pass實(shí)例方面達(dá)到了完美的召回率(100%),也就是說,所有真正有效的實(shí)例都被正確識(shí)別出來了。在精確度方面,系統(tǒng)的表現(xiàn)也相當(dāng)優(yōu)秀:DeepSeek模型生成的實(shí)例精確度為93%,GPT-4.1-mini為93%,Gemini-2.5-flash為90%,整體精確度達(dá)到92%。

然而,在分析那些被自動(dòng)化系統(tǒng)誤判的8%案例時(shí),研究團(tuán)隊(duì)發(fā)現(xiàn)了一個(gè)有趣而重要的現(xiàn)象,他們稱之為"error2pass現(xiàn)象"。這就像發(fā)現(xiàn)了一種特殊的"假陽性"情況——表面上看起來是從失敗到成功的轉(zhuǎn)變,但實(shí)際上反映的是一種不公平的測試場景。

讓我們通過一個(gè)具體的例子來理解這個(gè)現(xiàn)象。想象一個(gè)Python項(xiàng)目,其中的修復(fù)補(bǔ)丁添加了一個(gè)名為"to_bool"的新函數(shù),同時(shí)測試文件也被更新為導(dǎo)入和使用這個(gè)精確的函數(shù)名。在應(yīng)用補(bǔ)丁之前,測試無法運(yùn)行,因?yàn)樗噲D導(dǎo)入一個(gè)不存在的函數(shù),就像試圖使用一個(gè)還沒有被發(fā)明的工具一樣。應(yīng)用補(bǔ)丁后,測試成功運(yùn)行并通過,因?yàn)樗璧暮瘮?shù)現(xiàn)在存在了。

從表面上看,這確實(shí)是一個(gè)fail2pass的轉(zhuǎn)變。但問題在于,這種測試場景對AI模型來說是不公平的。如果一個(gè)AI模型被要求解決這個(gè)GitHub問題,它可能會(huì)創(chuàng)建一個(gè)功能完全相同但名字略有不同的函數(shù),比如"to_boolean"。雖然這個(gè)解決方案在邏輯上是完全正確的,能夠解決用戶的實(shí)際問題,但由于函數(shù)名不匹配,測試仍然會(huì)失敗,導(dǎo)致這個(gè)本來正確的方案被錯(cuò)誤地標(biāo)記為失敗。

這就像一個(gè)烹飪比賽,評(píng)委要求參賽者做一道"紅燒肉",但暗中規(guī)定只有使用特定品牌醬油的紅燒肉才算合格。一個(gè)廚師可能做出了味道絕佳的紅燒肉,但因?yàn)槭褂昧瞬煌放频尼u油就被判定為失敗,這顯然是不公平的。在編程問題解決的語境下,這種error2pass實(shí)例會(huì)系統(tǒng)性地低估AI模型的真實(shí)能力,因?yàn)樗鼈円竽P筒粌H要解決實(shí)際問題,還要猜測人類開發(fā)者的具體實(shí)現(xiàn)細(xì)節(jié)。

研究團(tuán)隊(duì)通過詳細(xì)分析發(fā)現(xiàn),所有8%的"誤判"案例實(shí)際上都屬于這種error2pass現(xiàn)象。這意味著自動(dòng)化系統(tǒng)實(shí)際上沒有出現(xiàn)任何真正的錯(cuò)誤,而是成功識(shí)別出了一類需要特別處理的邊界情況。這個(gè)發(fā)現(xiàn)具有重要的實(shí)踐意義:在構(gòu)建高質(zhì)量的benchmark數(shù)據(jù)集時(shí),應(yīng)該主動(dòng)過濾掉這些error2pass實(shí)例,以確保評(píng)估的公平性和準(zhǔn)確性。

更進(jìn)一步,研究團(tuán)隊(duì)指出,error2pass現(xiàn)象的存在揭示了測試代碼與解決方案代碼之間過度耦合的問題。在理想的benchmark設(shè)計(jì)中,測試應(yīng)該驗(yàn)證功能是否正確實(shí)現(xiàn),而不是驗(yàn)證實(shí)現(xiàn)是否使用了特定的變量名或函數(shù)名。這就像評(píng)價(jià)一個(gè)翻譯的質(zhì)量應(yīng)該看意思是否準(zhǔn)確傳達(dá),而不是看是否使用了特定的詞匯選擇一樣。

通過自動(dòng)化識(shí)別和過濾error2pass實(shí)例,SWE-Factory不僅提高了數(shù)據(jù)集構(gòu)建的效率,更重要的是提升了最終benchmark的質(zhì)量和公平性。這種自動(dòng)化質(zhì)量檢驗(yàn)機(jī)制就像一個(gè)智能的"質(zhì)量篩選器",既能確保數(shù)據(jù)集的規(guī)模和效率,又能保證評(píng)估的準(zhǔn)確性和公平性。

五、實(shí)驗(yàn)驗(yàn)證:從理論到實(shí)踐的完美轉(zhuǎn)化

為了驗(yàn)證SWE-Factory這套"自動(dòng)化工廠"的實(shí)際效果,研究團(tuán)隊(duì)進(jìn)行了一系列comprehensive的實(shí)驗(yàn),就像新汽車上市前需要經(jīng)過各種路況測試一樣。他們精心構(gòu)建了一個(gè)名為SweSetupBench-lite的測試數(shù)據(jù)集,包含了671個(gè)來自12個(gè)知名開源項(xiàng)目的GitHub問題,涵蓋Python、Java、JavaScript和TypeScript四種主流編程語言。

選擇這些項(xiàng)目就像挑選最具代表性的"樣板房"一樣,每個(gè)項(xiàng)目都是其領(lǐng)域內(nèi)的知名項(xiàng)目,GitHub星標(biāo)數(shù)都超過2500個(gè)。比如Python領(lǐng)域的Pillow圖像處理庫、Java領(lǐng)域的checkstyle代碼檢查工具、JavaScript領(lǐng)域的Mocha測試框架,以及TypeScript領(lǐng)域的Redux狀態(tài)管理工具。這些項(xiàng)目不僅技術(shù)成熟,而且具有不同的環(huán)境配置需求,正好用來測試SWE-Factory的適應(yīng)性和魯棒性。

在模型選擇上,考慮到實(shí)驗(yàn)成本,研究團(tuán)隊(duì)選擇了三個(gè)性價(jià)比較高的AI模型進(jìn)行測試:GPT-4.1-mini、Gemini-2.5-flash和DeepSeek-v3。這就像選擇不同價(jià)位的工人來測試工廠的通用性一樣,既要保證有足夠的能力完成任務(wù),又要控制成本在可接受的范圍內(nèi)。

實(shí)驗(yàn)結(jié)果令人印象深刻。在整體表現(xiàn)上,GPT-4.1-mini表現(xiàn)最為出色,成功構(gòu)建了269個(gè)有效的測試實(shí)例,占總數(shù)的40.1%,平均每個(gè)實(shí)例的成本僅為0.045美元。這就像一個(gè)效率很高的裝配線,能夠以相當(dāng)?shù)偷某杀究焖偕a(chǎn)出高質(zhì)量的產(chǎn)品。Gemini-2.5-flash雖然成功率稍低(33.5%,225個(gè)實(shí)例),但成本控制得最好,每個(gè)實(shí)例僅需0.024美元,堪稱最經(jīng)濟(jì)的選擇。DeepSeek-v3的表現(xiàn)介于兩者之間,成功構(gòu)建了232個(gè)實(shí)例(34.6%),展現(xiàn)了不錯(cuò)的性價(jià)比。

更有趣的是不同編程語言的表現(xiàn)差異,這就像不同的AI模型在不同"專業(yè)領(lǐng)域"有著各自的特長。DeepSeek-v3在Python項(xiàng)目上表現(xiàn)最為出色,成功率高達(dá)71.2%,有效實(shí)例率也達(dá)到43.4%,仿佛它天生就對Python"情有獨(dú)鐘"。在JavaScript項(xiàng)目上,DeepSeek-v3同樣表現(xiàn)不俗。相比之下,GPT-4.1-mini在TypeScript和Java項(xiàng)目上更有優(yōu)勢,特別是在TypeScript項(xiàng)目上達(dá)到了54.0%的有效率,展現(xiàn)了其在復(fù)雜類型系統(tǒng)處理上的專長。

關(guān)于退出碼評(píng)分方法的驗(yàn)證結(jié)果更是令人振奮。研究團(tuán)隊(duì)手工檢查了2085個(gè)測試日志,將人工判斷結(jié)果與自動(dòng)化系統(tǒng)進(jìn)行對比,發(fā)現(xiàn)兩者的判斷結(jié)果完全一致,準(zhǔn)確率達(dá)到100%。這就像發(fā)現(xiàn)了一個(gè)永不出錯(cuò)的"自動(dòng)檢測儀",不僅效率遠(yuǎn)高于人工檢查,準(zhǔn)確性也毫不遜色。

在fail2pass驗(yàn)證的實(shí)驗(yàn)中,自動(dòng)化系統(tǒng)展現(xiàn)了出色的性能:精確度達(dá)到92%,召回率達(dá)到100%。這意味著系統(tǒng)能夠找出所有真正有效的實(shí)例(召回率100%),同時(shí)將誤判率控制在很低的水平(精確度92%)。更重要的是,那8%的"誤判"全部屬于前面提到的error2pass現(xiàn)象,這實(shí)際上是系統(tǒng)正確識(shí)別出了需要特別處理的邊界情況,而不是真正的錯(cuò)誤。

時(shí)間效率方面的表現(xiàn)也很令人滿意。平均而言,處理每個(gè)GitHub問題需要20-30分鐘,這相比傳統(tǒng)的人工方法(通常需要數(shù)小時(shí)甚至數(shù)天)是一個(gè)巨大的進(jìn)步。系統(tǒng)的迭代次數(shù)通常在3-4輪之間,這表明AI助手們的協(xié)作效率很高,不需要太多的"返工"就能達(dá)到預(yù)期效果。

成本分析顯示,整個(gè)系統(tǒng)的運(yùn)行成本非常合理。即使是相對較貴的GPT-4.1-mini,平均每個(gè)實(shí)例的成本也只有0.045美元,而最經(jīng)濟(jì)的Gemini-2.5-flash甚至只需要0.024美元??紤]到傳統(tǒng)方法需要研究人員投入大量時(shí)間進(jìn)行手工操作,SWE-Factory在成本效益方面的優(yōu)勢是壓倒性的。

這些實(shí)驗(yàn)結(jié)果不僅驗(yàn)證了SWE-Factory技術(shù)方案的可行性,更重要的是證明了這套系統(tǒng)已經(jīng)達(dá)到了實(shí)用化的水平。就像一臺(tái)經(jīng)過充分測試的新機(jī)器,它已經(jīng)準(zhǔn)備好投入大規(guī)模的生產(chǎn)使用,為AI研究社區(qū)提供高質(zhì)量、大規(guī)模的訓(xùn)練和評(píng)估數(shù)據(jù)。

六、突破性意義:開啟AI軟件工程的新時(shí)代

SWE-Factory的成功不僅僅是一個(gè)技術(shù)工具的突破,更像是為整個(gè)AI軟件工程領(lǐng)域打開了一扇新的大門。在這個(gè)領(lǐng)域,獲取高質(zhì)量的訓(xùn)練數(shù)據(jù)一直是最大的瓶頸,就像優(yōu)秀的廚師總是受限于食材的質(zhì)量和數(shù)量一樣。

傳統(tǒng)的數(shù)據(jù)集構(gòu)建方法就像手工作坊一樣,雖然能夠產(chǎn)出高質(zhì)量的產(chǎn)品,但產(chǎn)量有限,成本高昂。以著名的SWE-bench數(shù)據(jù)集為例,它包含了2294個(gè)Python問題,被廣泛認(rèn)為是該領(lǐng)域的重要里程碑。然而,構(gòu)建這樣一個(gè)數(shù)據(jù)集需要大量的人工勞動(dòng),從環(huán)境配置到測試腳本編寫,再到最終的質(zhì)量驗(yàn)證,每個(gè)步驟都需要經(jīng)驗(yàn)豐富的研究人員投入大量時(shí)間。這種"手工定制"的模式雖然能夠保證質(zhì)量,但在規(guī)?;矫婷媾R巨大挑戰(zhàn)。

SWE-Factory的出現(xiàn)就像將手工作坊升級(jí)為現(xiàn)代化工廠一樣,實(shí)現(xiàn)了質(zhì)量與效率的雙重提升。通過自動(dòng)化的多智能體協(xié)作機(jī)制,系統(tǒng)能夠同時(shí)處理多種編程語言的項(xiàng)目,這打破了傳統(tǒng)方法通常只能專注于單一語言的限制。更重要的是,整個(gè)過程的標(biāo)準(zhǔn)化程度很高,這意味著構(gòu)建新數(shù)據(jù)集的邊際成本會(huì)隨著規(guī)模的擴(kuò)大而顯著降低。

從研究角度來看,SWE-Factory為AI模型的訓(xùn)練和評(píng)估提供了前所未有的數(shù)據(jù)豐富度。在此之前,研究人員往往需要在數(shù)據(jù)量和數(shù)據(jù)質(zhì)量之間做出痛苦的權(quán)衡,就像在食材的新鮮度和數(shù)量之間做選擇一樣?,F(xiàn)在,研究人員可以同時(shí)獲得大規(guī)模和高質(zhì)量的數(shù)據(jù)集,這為訓(xùn)練更強(qiáng)大、更可靠的AI軟件工程模型奠定了基礎(chǔ)。

特別值得關(guān)注的是,SWE-Factory支持多種編程語言的能力為研究跨語言的代碼理解和生成能力開辟了新的可能性。在實(shí)際的軟件開發(fā)環(huán)境中,項(xiàng)目往往涉及多種編程語言的混合使用,比如一個(gè)Web應(yīng)用可能同時(shí)使用JavaScript前端、Python后端和SQL數(shù)據(jù)庫查詢。傳統(tǒng)的數(shù)據(jù)集通常只關(guān)注單一語言,這種"語言孤島"的現(xiàn)狀限制了AI模型在真實(shí)環(huán)境中的應(yīng)用效果。

從產(chǎn)業(yè)應(yīng)用的角度來看,SWE-Factory的成功預(yù)示著AI輔助軟件開發(fā)工具的快速發(fā)展。隨著高質(zhì)量訓(xùn)練數(shù)據(jù)的大規(guī)模可得性,我們可以期待看到更多能夠理解復(fù)雜代碼庫、準(zhǔn)確定位問題、生成可靠修復(fù)方案的AI工具。這些工具不僅能夠幫助程序員提高工作效率,還可能改變整個(gè)軟件開發(fā)的流程和模式。

研究團(tuán)隊(duì)特別強(qiáng)調(diào)了開源的重要性。通過將整個(gè)SWE-Factory系統(tǒng)開源,他們?yōu)槿虻难芯可鐓^(qū)提供了一個(gè)共同的工具平臺(tái)。這就像建設(shè)了一條高速公路,讓所有的研究者都能夠快速到達(dá)自己的目的地,而不需要每個(gè)人都重新修建道路。這種開放協(xié)作的模式有望加速整個(gè)領(lǐng)域的發(fā)展速度。

更深層次的意義在于,SWE-Factory代表了一種新的研究范式:通過AI來輔助AI研究本身。傳統(tǒng)上,構(gòu)建AI訓(xùn)練數(shù)據(jù)需要大量的人工勞動(dòng),這創(chuàng)造了一個(gè)有趣的循環(huán)——我們需要人類的智慧來訓(xùn)練人工智能,然后再用人工智能來模擬人類的智慧。SWE-Factory打破了這個(gè)循環(huán),展示了AI系統(tǒng)如何能夠自主地為自己的"同類"生成訓(xùn)練素材,這種"自舉"能力可能是通向更高級(jí)AI系統(tǒng)的重要步驟。

從經(jīng)濟(jì)效益的角度來看,SWE-Factory的成本控制能力意味著高質(zhì)量數(shù)據(jù)集的民主化。以前,只有資源雄厚的大型科技公司才能承擔(dān)構(gòu)建大規(guī)模數(shù)據(jù)集的成本,現(xiàn)在中小型研究機(jī)構(gòu)和初創(chuàng)公司也能夠獲得高質(zhì)量的訓(xùn)練數(shù)據(jù)。這種"數(shù)據(jù)民主化"有望促進(jìn)AI軟件工程領(lǐng)域的創(chuàng)新多樣性,讓更多的聲音和想法能夠參與到技術(shù)發(fā)展的進(jìn)程中。

七、未來展望:從工具到生態(tài)的演進(jìn)

SWE-Factory的成功只是一個(gè)開始,它為我們描繪了一個(gè)更加自動(dòng)化、智能化的軟件開發(fā)未來。就像第一臺(tái)個(gè)人電腦的出現(xiàn)預(yù)示著信息時(shí)代的到來一樣,這種自動(dòng)化的代碼問題解決能力可能會(huì)催生出我們現(xiàn)在還難以想象的應(yīng)用場景。

在不久的將來,我們可能會(huì)看到SWE-Factory的擴(kuò)展版本,它們不僅能夠處理傳統(tǒng)的代碼修復(fù)問題,還能夠自動(dòng)生成新功能、優(yōu)化性能、甚至重構(gòu)整個(gè)代碼庫的架構(gòu)。想象一下,當(dāng)程序員提出"讓這個(gè)網(wǎng)站加載速度提高50%"的需求時(shí),AI系統(tǒng)能夠自動(dòng)分析代碼、識(shí)別瓶頸、設(shè)計(jì)優(yōu)化方案、實(shí)施改進(jìn)并驗(yàn)證效果,整個(gè)過程可能只需要幾分鐘而不是幾天。

從教育的角度來看,SWE-Factory生成的大規(guī)模數(shù)據(jù)集可能會(huì)revolutionize編程教育。傳統(tǒng)的編程教學(xué)往往依賴于人工設(shè)計(jì)的練習(xí)題,這些題目雖然結(jié)構(gòu)清晰,但往往缺乏真實(shí)世界的復(fù)雜性。基于真實(shí)GitHub問題的訓(xùn)練數(shù)據(jù)能夠讓學(xué)習(xí)者接觸到各種各樣的實(shí)際編程挑戰(zhàn),從簡單的bug修復(fù)到復(fù)雜的系統(tǒng)設(shè)計(jì)問題。這就像讓醫(yī)學(xué)生直接在真實(shí)的醫(yī)院環(huán)境中學(xué)習(xí),而不是只在教科書上紙上談兵。

在企業(yè)應(yīng)用方面,SWE-Factory的技術(shù)可能會(huì)被集成到現(xiàn)有的軟件開發(fā)工具鏈中,成為程序員日常工作的重要助手。當(dāng)開發(fā)團(tuán)隊(duì)遇到復(fù)雜的技術(shù)問題時(shí),他們可能不再需要花費(fèi)大量時(shí)間搜索Stack Overflow或閱讀文檔,而是可以直接向AI助手描述問題,然后獲得基于大量真實(shí)案例的解決方案建議。這種"智能技術(shù)支持"可能會(huì)顯著提高整個(gè)軟件行業(yè)的開發(fā)效率。

從質(zhì)量保證的角度來看,SWE-Factory的自動(dòng)化測試環(huán)境構(gòu)建能力可能會(huì)被擴(kuò)展到持續(xù)集成和持續(xù)部署(CI/CD)流程中。想象一個(gè)能夠自動(dòng)為每個(gè)代碼提交構(gòu)建完整測試環(huán)境、運(yùn)行全面測試、生成詳細(xì)報(bào)告的系統(tǒng),這將大大提高軟件發(fā)布的質(zhì)量和速度。這就像有一個(gè)永不疲倦、永不出錯(cuò)的質(zhì)量檢查員,能夠確保每一行代碼都經(jīng)過嚴(yán)格的驗(yàn)證。

研究團(tuán)隊(duì)也坦誠地指出了當(dāng)前系統(tǒng)的一些局限性。比如,SWE-Factory目前主要關(guān)注代碼層面的問題修復(fù),對于涉及復(fù)雜系統(tǒng)架構(gòu)或需要深度領(lǐng)域知識(shí)的問題,效果可能會(huì)有所限制。此外,雖然系統(tǒng)在四種主流編程語言上表現(xiàn)良好,但對于一些特殊用途的編程語言或新興的技術(shù)棧,可能需要額外的適配工作。

然而,這些局限性也指明了未來改進(jìn)的方向。研究團(tuán)隊(duì)表示,他們正在探索如何將SWE-Factory的能力擴(kuò)展到更多編程語言,如何處理更復(fù)雜的系統(tǒng)級(jí)問題,以及如何與其他AI工具形成更強(qiáng)大的協(xié)作生態(tài)。比如,可以將代碼生成AI、代碼審查AI和代碼測試AI整合成一個(gè)完整的"AI開發(fā)團(tuán)隊(duì)",每個(gè)AI都有自己的專業(yè)領(lǐng)域,但又能夠seamlessly協(xié)作。

從社會(huì)影響的角度來看,SWE-Factory代表的自動(dòng)化趨勢可能會(huì)改變程序員這個(gè)職業(yè)的性質(zhì)。雖然一些重復(fù)性的、低技能的編程任務(wù)可能會(huì)被自動(dòng)化取代,但這也會(huì)釋放程序員的時(shí)間和精力去處理更有創(chuàng)造性、更具挑戰(zhàn)性的問題。就像計(jì)算器的普及沒有讓數(shù)學(xué)家失業(yè),反而讓他們能夠?qū)W⒂诟鼜?fù)雜的數(shù)學(xué)問題一樣,AI編程助手可能會(huì)讓程序員evolve成為更高層次的"系統(tǒng)設(shè)計(jì)師"和"問題解決專家"。

最值得期待的是,SWE-Factory可能只是"AI幫助AI"這個(gè)paradigm的一個(gè)早期示例。在未來,我們可能會(huì)看到AI系統(tǒng)在各個(gè)領(lǐng)域都能夠?yàn)樽约荷捎?xùn)練數(shù)據(jù)、設(shè)計(jì)測試用例、驗(yàn)證結(jié)果質(zhì)量,形成一個(gè)自我改進(jìn)、自我演化的智能生態(tài)系統(tǒng)。這種能力不僅會(huì)加速AI技術(shù)本身的發(fā)展,還可能為解決人類面臨的各種復(fù)雜挑戰(zhàn)提供新的工具和方法。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
宮導(dǎo),把李夢請回吧!球迷:李夢再差也比這兩人強(qiáng)啊

宮導(dǎo),把李夢請回吧!球迷:李夢再差也比這兩人強(qiáng)啊

南海浪花
2025-06-19 11:05:50
合并后的胡志明市堪比上海

合并后的胡志明市堪比上海

李東海評(píng)論
2025-06-19 00:04:36
少婦天花板!

少婦天花板!

貴圈真亂
2025-06-10 12:03:31
乏善可陳!切爾基曼城首秀全場0次射門,27次傳球20次成功

乏善可陳!切爾基曼城首秀全場0次射門,27次傳球20次成功

雷速體育
2025-06-19 06:22:27
鄭中基再陷離婚:女性擇偶需擦亮雙眼

鄭中基再陷離婚:女性擇偶需擦亮雙眼

明星爆料客
2025-06-19 15:50:25
震驚!這5所大學(xué)對復(fù)讀生關(guān)上了大門!只招收普通高中應(yīng)屆畢業(yè)生

震驚!這5所大學(xué)對復(fù)讀生關(guān)上了大門!只招收普通高中應(yīng)屆畢業(yè)生

小人物看盡人間百態(tài)
2025-06-19 21:11:45
越南突然向中國提出要借錢修鐵路?這可不是小數(shù)目,整整83億美元

越南突然向中國提出要借錢修鐵路?這可不是小數(shù)目,整整83億美元

小企鵝侃世界
2025-06-19 21:02:25
蘇媒:南通隊(duì)主場緊急加裝9000個(gè)座位,完成后座位將增至2萬

蘇媒:南通隊(duì)主場緊急加裝9000個(gè)座位,完成后座位將增至2萬

懂球帝
2025-06-19 17:02:10
C羅離創(chuàng)造歷史紀(jì)錄只差1球!五種球衣進(jìn)100球,足壇難有后繼者!

C羅離創(chuàng)造歷史紀(jì)錄只差1球!五種球衣進(jìn)100球,足壇難有后繼者!

漫川舟船
2025-06-19 04:56:32
神藥滯銷,誰偷走了中年男人的“快樂”?

神藥滯銷,誰偷走了中年男人的“快樂”?

果殼
2025-06-17 20:49:07
也門向以色列發(fā)射導(dǎo)彈,以多地拉響警報(bào)

也門向以色列發(fā)射導(dǎo)彈,以多地拉響警報(bào)

澎湃新聞
2025-06-16 15:56:25
重磅!自閉癥的發(fā)生原因終于找到了?或終結(jié)“無藥可治”的窘境

重磅!自閉癥的發(fā)生原因終于找到了?或終結(jié)“無藥可治”的窘境

大米和小米
2025-06-19 19:14:50
陳冠希被曝飛機(jī)上與機(jī)組人員吵架,因其率先安排日籍乘客下機(jī)

陳冠希被曝飛機(jī)上與機(jī)組人員吵架,因其率先安排日籍乘客下機(jī)

魯中晨報(bào)
2025-06-18 14:38:06
烏軍清除別爾江斯克叛徒市長!擊斃俄軍摩托旅指揮官

烏軍清除別爾江斯克叛徒市長!擊斃俄軍摩托旅指揮官

項(xiàng)鵬飛
2025-06-19 21:50:42
謝逸楓:信貸暴跌,房貸不足10%,樓市陷入下行更大危機(jī)

謝逸楓:信貸暴跌,房貸不足10%,樓市陷入下行更大危機(jī)

謝逸楓看樓市
2025-06-18 15:47:19
都2025年了,每個(gè)月還有1萬多人買奔馳 GLC?

都2025年了,每個(gè)月還有1萬多人買奔馳 GLC?

駕仕派
2025-06-19 15:26:51
涉嫌嚴(yán)重違紀(jì)違法!廣東一副區(qū)長任上被查!

涉嫌嚴(yán)重違紀(jì)違法!廣東一副區(qū)長任上被查!

花young的生活
2025-06-18 23:02:12
莫言:一個(gè)家庭,如果老公掙不了大錢,妻子不要去和老公鬧,只要學(xué)會(huì)做這3件事,好日子都在后頭!

莫言:一個(gè)家庭,如果老公掙不了大錢,妻子不要去和老公鬧,只要學(xué)會(huì)做這3件事,好日子都在后頭!

LULU生活家
2025-06-15 18:01:01
驚呆!男子泰國旅行離奇"失憶",半年后肚子里竟發(fā)現(xiàn)15厘米的咖啡勺......

驚呆!男子泰國旅行離奇"失憶",半年后肚子里竟發(fā)現(xiàn)15厘米的咖啡勺......

大風(fēng)新聞
2025-06-19 16:48:18
車禍3年后,多次整形的林志穎成了嫂子臉,郭德綱可以松口氣了

車禍3年后,多次整形的林志穎成了嫂子臉,郭德綱可以松口氣了

史行途
2025-04-16 18:21:29
2025-06-20 00:39:00
至頂頭條 incentive-icons
至頂頭條
記錄和推動(dòng)數(shù)字化創(chuàng)新
12164文章數(shù) 49634關(guān)注度
往期回顧 全部

科技要聞

羅永浩數(shù)字人爆火,可怕的不是5500萬GMV

頭條要聞

美打擊伊核設(shè)施計(jì)劃披露 特朗普鼓勵(lì)以總理"繼續(xù)干"

頭條要聞

美打擊伊核設(shè)施計(jì)劃披露 特朗普鼓勵(lì)以總理"繼續(xù)干"

體育要聞

22年,云南足球走出了一條自己的路

娛樂要聞

章子怡“吃蛋糕”戲在全網(wǎng)爆火

財(cái)經(jīng)要聞

Labubu黃牛價(jià)腰斬 誰會(huì)是最后的接盤俠

汽車要聞

5.99萬起/空間大續(xù)航長 純電小車凱翼拾月Mate上市

態(tài)度原創(chuàng)

教育
藝術(shù)
親子
游戲
軍事航空

教育要聞

2025年山東夏季合格考準(zhǔn)考證打印操作詳細(xì)教程

藝術(shù)要聞

故宮珍藏的墨跡《十七帖》,比拓本更精良,這才是地道的魏晉寫法

親子要聞

小葉教我句話還讓我挺意外,原來中外文化差異這么大

《戰(zhàn)地》實(shí)驗(yàn)室13GB更新上線 支持英偉達(dá)DLSS 4

軍事要聞

俄羅斯告誡美國不要攻擊伊朗

無障礙瀏覽 進(jìn)入關(guān)懷版 主站蜘蛛池模板: 伊通| 赣州市| 漯河市| 赫章县| 原平市| 宜章县| 祥云县| 延寿县| 固镇县| 弥勒县| 韩城市| 青海省| 洛宁县| 新丰县| 马关县| 岗巴县| 囊谦县| 布尔津县| 抚宁县| 怀安县| 故城县| 伊金霍洛旗| 禄劝| 来安县| 普陀区| 瓦房店市| 太仆寺旗| 平陆县| 六盘水市| 马尔康县| 桐庐县| 介休市| 同德县| 屏山县| 方城县| 湘西| 日喀则市| 庆元县| 肃北| 安陆市| 满洲里市|