stubs ChatDev: Komunikācijas aģenti programmatūras izstrādei — Unite.AI
Savienoties ar mums

Mākslīgais intelekts

ChatDev: Komunikācijas aģenti programmatūras izstrādei

mm
Atjaunināts on
ChatDev: AI atbalstīta programmatūras izstrāde

Programmatūras izstrādes nozare ir joma, kas bieži balstās gan uz konsultācijām, gan intuīciju, un to raksturo sarežģītas lēmumu pieņemšanas stratēģijas. Turklāt programmatūras izstrādei, uzturēšanai un darbībai ir nepieciešama disciplinēta un metodiska pieeja. Parasti programmatūras izstrādātāji pieņem lēmumus, pamatojoties uz intuīciju, nevis konsultācijām atkarībā no problēmas sarežģītības. Cenšoties uzlabot programmatūras inženierijas efektivitāti, tostarp programmatūras efektivitāti un samazinātas izstrādes izmaksas, zinātnieki pēta uz padziļinātu apmācību balstītu ietvaru izmantošanu, lai risinātu dažādus uzdevumus programmatūras izstrādes procesā. Ņemot vērā jaunākos notikumus un sasniegumus dziļās mācīšanās un AI nozarēs, izstrādātāji meklē veidus, kā pārveidot programmatūras izstrādes procesus un praksi. Viņi to dara, izmantojot sarežģītus dizainus, kas ieviesti dažādos programmatūras izstrādes procesa posmos.

Šodien mēs apspriedīsim ChatDev, uz lielas valodas modeļa (LLM) balstītu, novatorisku pieeju, kuras mērķis ir revolucionizēt programmatūras izstrādes jomu. Šīs paradigmas mērķis ir novērst vajadzību pēc specializētiem modeļiem katrā izstrādes procesa fāzē. ChatDev ietvars izmanto LLM ietvaru iespējas, izmantojot dabiskās valodas saziņu, lai apvienotu un racionalizētu galvenos programmatūras izstrādes procesus.

Šajā rakstā mēs izpētīsim ChatDev, virtuāli darbinātu uzņēmumu, kas specializējas programmatūras izstrādē. ChatDev izmanto ūdenskrituma modeli un rūpīgi sadala programmatūras izstrādes procesu četros primārajos posmos.

  1. Projektēšana. 
  2. Kodēšana. 
  3. Testēšana. 
  4. Dokumentācija. 

Katrā no šiem posmiem tiek izvietota virtuālo aģentu komanda, piemēram, koda programmētāji vai testētāji, kas sadarbojas savā starpā, izmantojot dialogus, kas nodrošina netraucētu darbplūsmu. Tērzēšanas ķēde darbojas kā veicinātājs un sadala katru izstrādes procesa posmu atomāros apakšuzdevumos, tādējādi nodrošinot dubultās lomas, ļaujot iesniegt priekšlikumus un apstiprināt risinājumus, izmantojot kontekstu apzinātus sakarus, kas ļauj izstrādātājiem efektīvi atrisināt norādītos apakšuzdevumus. 

ChatDev: AI atbalstīta programmatūras izstrāde

ChatDev instrumentālā analīze parāda, ka ChatDev sistēma ir ne tikai ārkārtīgi efektīva programmatūras izstrādes procesa pabeigšanā, bet arī ārkārtīgi rentabla, kā arī tā pabeidz visu programmatūras izstrādes procesu nedaudz mazāk par vienu dolāru. Turklāt sistēma ne tikai identificē, bet arī mazina iespējamās ievainojamības, novērš iespējamās halucinācijas, vienlaikus saglabājot augstu efektivitāti un rentabilitāti. 

ChatDev: ievads ar LLM darbināmu programmatūras izstrādi

Tradicionāli programmatūras izstrādes nozare ir tāda, kas balstās uz disciplinētas un metodiskas pieejas pamatiem ne tikai lietojumprogrammu izstrādei, bet arī to uzturēšanai un ekspluatācijai. Tradicionāli runājot, tipisks programmatūras izstrādes process ir ļoti sarežģīts, sarežģīts un laikietilpīgs, rūpīgs process ar gariem izstrādes cikliem, jo ​​izstrādes procesā ir iesaistītas vairākas lomas, tostarp koordinācija organizācijā, uzdevumu sadale, koda rakstīšana, testēšana un, visbeidzot, dokumentācija. 

Pēdējos gados ar palīdzību LLM jeb lielo valodu modeļi, AI kopiena ir sasniegusi nozīmīgus pagrieziena punktus datorredzes un dabiskās valodas apstrādes jomā, un pēc apmācības par “nākamā vārda prognozēšanas” paradigmām, lielo valodu modeļi ir labi pierādījuši savu spēju nodrošināt efektīvu veiktspēju, veicot plašu pakārtoto uzdevumu klāstu. piemēram, mašīntulkošana, atbildes uz jautājumiem un kodu ģenerēšana. 

Lai gan lielo valodu modeļi var rakstīt kodu visai programmatūrai, tiem ir būtisks trūkums: koda halucinācijas, kas ir diezgan līdzīgs halucinācijām, ar kurām saskaras dabiskās valodas apstrādes sistēmas. Koda halucinācijas var ietvert tādas problēmas kā neatklātas kļūdas, trūkstošās atkarības un nepilnīgas funkciju ieviešanas. Ir divi galvenie koda halucināciju cēloņi. 

  • Uzdevuma specifikācijas trūkums: Ģenerējot programmatūras kodu vienā solī, uzdevuma specifikas nedefinēšana samulsina LLM, jo tādi programmatūras izstrādes procesa uzdevumi kā lietotāju prasību analīze vai vēlamās programmēšanas valodas izvēle bieži vien nodrošina vadītu domāšanu, kas pietrūkst no augstākā līmeņa. - līmeņa uzdevumi, ko veic šie LLM. 
  • Šķērspārbaudes trūkums : Būtiski riski rodas, ja netiek veikta savstarpējā pārbaude, īpaši lēmumu pieņemšanas procesā. 

ChatDev mērķis ir atrisināt šīs problēmas un atvieglot LLM, kas spēj radīt jaunākās tehnoloģijas un efektīvas programmatūras lietojumprogrammas, izveidojot virtuāli darbinātu uzņēmumu programmatūras izstrādei, kas izveido ūdenskrituma modeli un rūpīgi sadala programmatūras izstrādes procesu četrās galvenajās daļās. posmi,

  1. Projektēšana. 
  2. Kodēšana. 
  3. Testēšana. 
  4. Dokumentācija. 

Katrā no šiem posmiem tiek izvietota virtuālo aģentu komanda, piemēram, koda programmētāji vai testētāji, kas sadarbojas savā starpā, izmantojot dialogus, kas nodrošina netraucētu darbplūsmu. Turklāt ChatDev izmanto tērzēšanas ķēdi, kas darbojas kā veicinātājs, un sadala katru izstrādes procesa posmu atomu apakšuzdevumos, tādējādi nodrošinot divējādas lomas, ļaujot iesniegt priekšlikumus un apstiprināt risinājumus, izmantojot kontekstu apzinātus sakarus, kas ļauj izstrādātājiem efektīvi atrisināt norādītos apakšuzdevumus. Tērzēšanas ķēde sastāv no vairākiem mezgliem, kur katrs atsevišķs mezgls pārstāv noteiktu apakšuzdevumu, un šīs divas lomas iesaistās vairāku apgriezienu kontekstu apzinošās diskusijās, lai ne tikai ierosinātu, bet arī apstiprinātu risinājumus. 

Šajā pieejā ChatDev sistēma vispirms analizē klienta prasības, ģenerē radošas idejas, projektē un ievieš sistēmas prototipu, identificē un risina iespējamās problēmas, izveido pievilcīgu grafiku, izskaidro atkļūdošanas informāciju un ģenerē lietotāja rokasgrāmatas. Visbeidzot, ChatDev sistēma nodrošina lietotājam programmatūru kopā ar pirmkodu, lietotāja rokasgrāmatām un atkarības vides specifikācijām. 

ChatDev: Arhitektūra un darbs

Tagad, kad mums ir īss ievads par ChatDev, apskatīsim ChatDev struktūras arhitektūru un darbību, sākot ar tērzēšanas ķēdi. 

Tērzēšanas ķēde

Kā jau minējām iepriekšējā sadaļā, ChatDev sistēma programmatūras izstrādei izmanto ūdenskrituma metodi, kas programmatūras izstrādes procesu sadala četrās fāzēs, tostarp projektēšanā, kodēšanā, testēšanā un dokumentācijā. Katrai no šīm fāzēm ir unikāla loma izstrādes procesā, un starp tām ir nepieciešama efektīva saziņa, un pastāv potenciālas problēmas, ar kurām jāsastopas, identificējot personas, ar kurām sadarboties, un nosakot mijiedarbības secību. 

Lai risinātu šo problēmu, ChatDev ietvars izmanto Chat Chain — vispārinātu arhitektūru, kas katru fāzi sadala subatomiskā tērzēšanā, katrai no šīm fāzēm koncentrējoties uz uzdevumu orientētu lomu spēlēšanu, kas ietver divas lomas. Vēlamā tērzēšanas izvade ir svarīga mērķa programmatūras sastāvdaļa, un tā tiek sasniegta sadarbības un instrukciju apmaiņas rezultātā starp aģentiem, kas piedalās izstrādes procesā. Tērzēšanas ķēdes paradigma starpposma uzdevumu risināšanai ir parādīta zemāk esošajā attēlā. 

Katrai individuālai tērzēšanai instruktors vispirms ierosina norādījumus un pēc tam virza dialogu uz uzdevuma izpildi, un tikmēr asistenti izpilda instruktora norādījumus, piedāvā ideālus risinājumus un iesaistās diskusijās par iespējamību. no risinājuma. Pēc tam instruktors un aģents iesaistās vairāku apgriezienu dialogos, līdz panāk konsensu un uzskata, ka uzdevums ir veiksmīgi izpildīts. Ķēdes ķēde sniedz lietotājiem caurspīdīgu priekšstatu par izstrādes procesu, izgaismo lēmumu pieņemšanas ceļu un piedāvā iespējas atkļūdot kļūdas, kad tās rodas, kas ļauj galalietotājiem analizēt un diagnosticēt kļūdas, pārbaudīt starpproduktus, un iejaukties procesā, ja to uzskata par nepieciešamu. Iekļaujot tērzēšanas ķēdi, ChatDev sistēma spēj koncentrēties uz katru konkrētu apakšuzdevumu detalizētā mērogā, kas ne tikai veicina efektīvu sadarbību starp aģentiem, bet arī nodrošina ātru nepieciešamo rezultātu sasniegšanu. 

Projektēšana

Projektēšanas fāzē ChatDev sistēmai ir nepieciešama sākotnējā ideja kā cilvēka klienta ievade, un šajā posmā ir trīs iepriekš noteiktas lomas. 

  1. Izpilddirektors vai izpilddirektors. 
  2. CPO vai galvenais produktu vadītājs. 
  3. CTO vai galvenais tehniskais direktors. 

Pēc tam tiek izmantota tērzēšanas ķēde, sadalot projektēšanas fāzi secīgos subatomiskos tērzēšanas uzdevumos, kas ietver programmēšanas valodu (CTO un CEO) un mērķa programmatūras modalitāti (CPO un CEO). Projektēšanas fāze ietver trīs galvenos mehānismus: lomu piešķiršana vai specializācija, atmiņas plūsma un pašrefleksija. 

Lomas piešķiršana

Katram aģentam Chat Dev sistēmā tiek piešķirta loma, izmantojot īpašus ziņojumus vai īpašas uzvednes lomu spēles procesa laikā. Atšķirībā no citiem sarunvalodas modeļiem, ChatDev ietvars aprobežojas tikai ar lomu spēles scenāriju uzsākšanu starp aģentiem. Šīs uzvednes tiek izmantotas, lai aģentiem piešķirtu lomas pirms dialoga. 

Sākotnēji instruktors uzņemas izpilddirektora pienākumus un iesaistās interaktīvā plānošanā, savukārt CPO pienākumus veic aģents, kas veic uzdevumus un sniedz nepieciešamās atbildes. Ietvars izmanto "sākuma pamudinājums” lomu specializācijai, kas ļauj aģentiem efektīvi pildīt savas lomas. Asistenta un instruktora uzvednēs ir ietverta svarīga informācija par norādītajām lomām un uzdevumiem, izbeigšanas kritērijiem, komunikācijas protokoliem un vairākiem ierobežojumiem, kuru mērķis ir novērst nevēlamas darbības, piemēram, bezgalīgas cilpas, neinformatīvas atbildes un instrukciju dublēšanu. 

Atmiņas straume

Atmiņas straume ir mehānisms, ko izmanto ChatDev ietvars, kas uztur visaptverošu aģenta iepriekšējo dialogu sarunu ierakstu un palīdz lēmumu pieņemšanas procesā, kas seko izteikumiem. ChatDev sistēma izmanto uzvednes, lai izveidotu nepieciešamos sakaru protokolus. Piemēram, kad iesaistītās puses panāk vienprātību, tiek parādīts beigu ziņojums, kas atbilst noteiktai formatēšanas prasībām, piemēram, ( : darbvirsmas lietojumprogramma”). Lai nodrošinātu atbilstību noteiktajam formātam, sistēma nepārtraukti uzrauga un visbeidzot ļauj pašreizējam dialogam nonākt pie secinājuma. 

Pašrefleksija

ChatDev ietvara izstrādātāji ir novērojuši situācijas, kad abas iesaistītās puses bija panākušas savstarpēju vienprātību, taču iepriekš noteiktie sakaru protokoli netika aktivizēti. Lai risinātu šīs problēmas, ChatDev sistēma ievieš pašrefleksijas mehānismu kas palīdz atmiņu izgūšanā un izvilkšanā. Lai ieviestu pašrefleksijas mehānismu, ChatDev sistēma uzsāk jaunu un jaunu tērzēšanu, iesaistot “pseido sevi” kā jaunu jautātāju. “Pseido es” analizē iepriekšējos dialogus un vēsturiskos ierakstus un informē pašreizējo palīgu, pēc tam tas pieprasa pārliecinošas un darbības cienīgas informācijas kopsavilkumu, kā parādīts tālāk esošajā attēlā. 

Izmantojot pašpalīdzības mehānismu, ChatDev palīgs tiek mudināts pārdomāt un analizēt viņa ierosinātos lēmumus. 

Kodēšana

Kodēšanas fāzē ir trīs iepriekš noteiktas lomas, proti, CTO, programmētājs un mākslas dizainers. Kā parasti, tērzēšanas ķēdes mehānisms sadala kodēšanas fāzi atsevišķos subatomiskos uzdevumos, piemēram, kodu ģenerēšana (programmētājs un CTO) vai GUI izstrāde. vai grafiskā lietotāja saskarne (programmētājs un dizainers). Pēc tam CTO uzdod programmētājam izmantot atzīmes formātu, lai ieviestu programmatūras sistēmu, pēc kuras mākslas dizaineris piedāvā lietotājam draudzīgu un interaktīvu GUI, kas izmanto grafiskās ikonas, lai mijiedarbotos ar lietotājiem, nevis paļautos uz tradicionālajām teksta komandām. 

Kodu pārvaldība

ChatDev ietvars izmanto objektu orientētas programmēšanas valodas, piemēram, Python, Java un C++, lai apstrādātu sarežģītas programmatūras sistēmas, jo šo programmēšanas valodu modularitāte ļauj izmantot autonomus objektus, kas ne tikai palīdz problēmu novēršanā, bet arī sadarbībā. , kā arī palīdz novērst liekās problēmas, atkārtoti izmantojot objektus, izmantojot mantojuma jēdzienu. 

Pārdomu norādījumi

Tradicionālās metodes atbildes uz jautājumiem bieži noved pie neatbilstošas ​​informācijas vai neprecizitātēm, īpaši ģenerējot kodu, jo naivu norādījumu sniegšana var izraisīt LLM halucinācijas, un tas var kļūt par sarežģītu problēmu. Lai risinātu šo problēmu, ChatDev sistēma ievieš “domu norādījumu” mehānismu, kas smeļas iedvesmu no domu ķēdes uzvednēm. “Domu norādījumu” mehānisms skaidri pievēršas instrukcijās iekļautajām individuālām problēmu risināšanas domām, līdzīgi kā uzdevumu risināšanai secīgā un organizētā veidā. 

Testēšana

Bez kļūdām koda rakstīšana pirmajā mēģinājumā ir izaicinājums ne tikai LLM, bet arī cilvēku programmētājiem, un tā vietā, lai pilnībā izmestu nepareizo kodu, programmētāji analizē savu kodu, lai identificētu kļūdas un tās novērstu. Testēšanas fāze ChatDev sistēmā ir sadalīta trīs lomās: programmētājs, testētājs un pārskatītājs. Testēšanas process ir sadalīts divos secīgos subatomiskos uzdevumos: Salīdzinošā pārskatīšana vai statiskā atkļūdošana (Recenzents un programmētājs), un Sistēmas testēšana vai dinamiskā atkļūdošana (Programmētājs un testētājs). Statiskā atkļūdošana vai salīdzinošā pārskatīšana analizē avota kodu, lai identificētu kļūdas, savukārt dinamiskā atkļūdošana vai sistēmas testēšana pārbauda programmatūras izpildi, izmantojot dažādus testus, ko programmētājs veic, izmantojot tulku. Dinamiskā atkļūdošana galvenokārt koncentrējas uz melnās kastes testēšanu, lai novērtētu lietojumprogrammas. 

Dokumentācija

Pēc tam, kad ChatDev sistēma ir pabeigta ar projektēšanas, kodēšanas un testēšanas fāzēm, tajā tiek izmantoti četri aģenti, proti, izpilddirektors, CTO, CPO un programmētājs, lai ģenerētu programmatūras projekta dokumentāciju. ChatDev ietvars izmanto LLM, lai dokumentu ģenerēšanai izmantotu dažu kadru uzvednes ar konteksta piemēriem. CTO uzdod programmētājam sniegt instrukcijas vides atkarību konfigurēšanai un izveidot dokumentu, piemēram, “atkarības prasības.txt”. Vienlaikus izpilddirektors paziņo CPO par prasībām un sistēmas dizainu, lai ģenerētu produkta lietotāja rokasgrāmatu. 

rezultāti

Programmatūras statistika

Lai analizētu ChatDev ietvara veiktspēju, izstrādātāju komanda veica statistisko analīzi par ietvara ģenerētajām lietojumprogrammām, pamatojoties uz dažiem galvenajiem rādītājiem, tostarp patērētajiem marķieriem, kopējo dialoga pagriezienu skaitu, attēlu līdzekļiem, programmatūras failiem, versiju atjauninājumiem un dažiem citiem, un rezultāti ir: parādīts zemāk esošajā tabulā. 

Ilguma analīze

Lai pārbaudītu ChatDev programmatūras ražošanas laiku dažādām pieprasījuma uzvednēm, izstrādātāji veica arī ilguma analīzi, un dažādu uzvedņu izstrādes laika atšķirības atspoguļo piešķirto uzdevumu atšķirīgo skaidrību un sarežģītību, un rezultāti ir parādīti zemāk esošajā attēlā. . 

Gadījuma izpēte

Nākamajā attēlā parādīts, kā ChatDev izstrādā piecus pēc kārtas vai Gomoku spēli. 

Kreisajā malā esošajā attēlā ir parādīta pamata programmatūra, kas izveidota ar ietvaru, neizmantojot GUI. Kā skaidri redzams, lietojumprogramma bez GUI piedāvā ierobežotu interaktivitāti, un lietotāji šo spēli var spēlēt tikai caur komandu termināli. Nākamajā attēlā ir parādīta vizuāli pievilcīgāka spēle, kas izveidota, izmantojot GUI, piedāvā labāku lietotāja pieredzi un uzlabotu interaktivitāti aizraujošai spēles videi, ko lietotāji var baudīt daudz vairāk. Pēc tam dizaineru aģents izveido papildu grafiku, lai vēl vairāk uzlabotu spēles lietojamību un estētiku, neietekmējot nevienu funkcionalitāti. Tomēr, ja lietotāji nav apmierināti ar dizainera ģenerēto attēlu, viņi var aizstāt attēlus pēc tam, kad ChatDev sistēma ir pabeigusi programmatūru. ChatDev sistēmas piedāvātā elastība, lai manuāli nomainītu attēlus, ļauj lietotājiem pielāgot lietojumprogrammas atbilstoši savām vēlmēm, lai uzlabotu interaktivitāti un lietotāja pieredzi, nekādā veidā neietekmējot programmatūras funkcionalitāti. 

Final Domas

Šajā rakstā mēs esam runājuši par ChatDev, an LLM jeb lielas valodas modelis balstīta inovatīva paradigma, kuras mērķis ir revolucionizēt programmatūras izstrādes jomu, novēršot prasību pēc specializētiem modeļiem katrā izstrādes procesa fāzē. ChatDev ietvara mērķis ir izmantot LLM ietvaru spējas, izmantojot dabiskās valodas saziņu, lai vienotu un racionalizētu galvenos programmatūras izstrādes procesus. ChatDev sistēma izmanto tērzēšanas ķēdes mehānismu, lai sadalītu programmatūras izstrādes procesu secīgos subatomiskos uzdevumos, tādējādi nodrošinot detalizētu fokusu un veicinot vēlamos rezultātus katram subatomiskajam uzdevumam. 

"Pēc profesijas inženieris, pēc sirds rakstnieks". Kunals ir tehnisks rakstnieks ar dziļu mīlestību un izpratni par mākslīgo intelektu un mākslīgo intelektu, kura mērķis ir vienkāršot sarežģītas koncepcijas šajās jomās, izmantojot savu saistošo un informatīvo dokumentāciju.