Uurimisprioriteedid: Autonoomse kodeerimise järgmised 18 kuud
AI-põhised kodeerimisassistendid muudavad juba praegu tarkvaraarendust. 2025. aasta lõpuks kasutab enamik arendajaid igapäevaselt selliseid tööriistu nagu GitHub Copilot ja AI-juturobotid ning isegi mitteprogrammeerijad saavad lihtsate käskudega koodi prototüüpida. Google'i tegevjuht märgib, et see trend – mida sageli nimetatakse „vibe coding’uks“ – muudab programmeerimise mittetehniliste töötajate jaoks kättesaadavamaks (www.itpro.com). Tegelikud juurutused on aga paljastanud olulisi lünki. AI genereeritud kood sisaldab sageli peeneid vigu, ebaõnnestub keerukates projektides ning tekitab vastutuse ja poliitika küsimusi. Laboratoorsetest demonstratsioonidest usaldusväärsete tootmissüsteemideni liikumiseks vajame keskendunud uurimistööd neljal rindel: töökindlus, pikaajaline planeerimine, kontrollitavus ja sotsiaal-tehniline juhtimine. Allpool kirjeldame peamisi avatud probleeme ning pakume välja uurimiskavasid, võrdlusnäitajaid ja koostöövõimalusi nende lahendamiseks.
1. Töökindlus ja koodikvaliteet
Suur probleem on põhimõtteline töökindlus: AI assistentide kirjutatud kood sisaldab endiselt oluliselt rohkem vigu kui inimeste kirjutatud kood. Näiteks 470 GitHubi pull request'i analüüsist selgus, et AI kirjutatud PR-ides oli umbes 1,7 korda rohkem probleeme kui inimeste kirjutatud omades (www.itpro.com). Keskmiselt tekitasid AI PR-id ~10,8 probleemi (loogikavead, nimetamise või vormindamise probleemid, turvanõrkused jne), võrreldes ~6,5-ga inimeste PR-ide puhul (www.itpro.com). Märkimisväärselt oli AI loodud koodil raskem "saba" tõsistest vigadest (loogikavead ja turvaaugud ilmnesid peaaegu kaks korda sagedamini kui inimeste koodis) (www.itpro.com). Praktikas on AI tööriistu kasutavad meeskonnad teatanud üllatustest: kood, mis näeb eraldi õige, kuid ebaõnnestub integreerimisel või sisaldab peidetud vigu. Tõepoolest, põhjalik ülevaade koodigenereerimise tööriistadest märgib, et olemasolevad võrdlusuuringud ei hõlma tootmises esinevaid rikkeviise – hallutsinatsiooniga API-kõned, ebajärjekindel nimetamine või peened loogikavead, mis libisevad läbi ühiktestide (doi.org). Lühidalt öeldes, AI suudab genereerida töötavaid koodilõike, kuid need lõigud ei ole sageli tootmiseks valmis (doi.org).
Arendajate kogemus peegeldab seda umbusku. Suur SonarSource'i uuring (mille kohta teatas tööstusajakirjandus) leidis, et kuigi 72% inseneridest kasutab AI tööriistu igapäevaselt kuni 42% koodi kirjutamiseks, siis vapustav 96% tunnistab, et nad ei usalda täielikult AI väljundit (www.itpro.com). Ometi vaatab vähem kui pool meeskondadest AI genereeritud koodi alati enne commit'imist üle (www.itpro.com). See lõhe – suur kasutus, kuid vähene usaldus – viib selleni, mida eksperdid nimetavad „verifitseerimisvõlaks.“ Ilma parema töökindluseta riskivad organisatsioonid raskesti tabatavate vigade ja tehnilise võla tekkimisega iga kord, kui nad võtavad kasutusele AI kodeerimise otseteid (www.itpro.com).
Uurimiskava: Vajame süstemaatilist AI koodi veamustrite uurimist ja uusi meetodeid nende leevendamiseks. Ideede hulka kuulub automatiseeritud AI-kindlus: staatiliste analüsaatorite või teisese mudelite integreerimine, mis skaneerivad AI väljundit levinud vigade osas (sarnaselt teisele retsensendile). Paremad LLM-i treenimise eesmärgid võiksid keskenduda stabiilsusele – näiteks vigase ja puhta koodi näidiste treenimisele, et õpetada mudelit eelistama ohutumaid lahendusi. Teadlased peaksid analüüsima, millised kooditüübid (algoritmid, sisend/väljund, turvalisuse seisukohalt kriitilised) AI sisemisi heuristikaid eksitavad, ja välja töötama spetsialiseeritud kaitsemehhanismid. Näiteks on varajased tööd märkinud, et AI tööriistad kasutavad liiga palju riskantseid otseteid (kõvakooditud paroolid, ebaefektiivsed tsüklid jne) (www.businesswire.com) (www.infoworld.com). Peame need rikkeviisid kodifitseerima.
Hariduslikud lahendused võivad samuti aidata: nagu kogukonna juhised rõhutavad, saavad AI tööriistad vaid abistada – inimesed peavad kontrollima (firefox-source-docs.mozilla.org) (chromium.googlesource.com). Selle julgustamiseks võiksid tulevased tööriistad automaatselt genereerida hoiatusi või isegi keelduda ülesandeid lahendamast ilma inimese heakskiiduta. Võrdlusuuringud peaksid muutuma: liikumine küsimusest "kas see kood kompileerub" küsimuseni "mitu peent probleemi jääb". Näiteks on tekkimas koodi ülevaatuse AI mudelid, mis mõõdavad spetsiaalselt vigade tuvastamise jõudlust (docs.factory.ai). Kogukondlik jõupingutus, et luua avalik andmestik tõeliste AI ja inimeste koodimuudatuste kohta (koos märgitud defektidega) – sarnaselt CodeRabbit'i PR-uuringule – võimaldaks teadlastel jälgida töökindluse edusamme.
2. Pikaajaline planeerimine ja hooldus
AI koodigeneraatorid on suurepärased väikeste, iseseisvate ülesannete puhul, kuid suured projektid paljastavad nende piirangud. Reaalne tarkvara areneb aja jooksul, muutuvate nõuete, mitmete failide ja arhitektuuriliste otsuste haldamisega. Uuringud märgivad, et "õigete isoleeritud funktsioonide genereerimine erineb kvalitatiivselt sidusate arhitektuuriliste otsuste säilitamisest suures koodibaasis" (doi.org). Praktikas näevad isegi tipptasemel mudelid vaeva mitmeetapiliste, mitmefaililiste ülesannetega. Kaks hiljutist võrdlusuuringut rõhutavad seda lünka:
-
RoadmapBench (mai 2026) hindab „pikaajalisi“ uuendusi reaalsete avatud lähtekoodiga projektide puhul. Iga ülesanne annab agendile projekti baasversiooni ja loetelu rakendatavatest funktsioonidest, kusjuures muudetakse ~3700 rida enam kui 50 failis. Isegi Claude-Opus-4.7, üks tugevamaid mudeleid, lahendas ainult ~39% ülesannetest ja teiste mudelite tulemused langesid kuni 5%-ni (papers.cool). Seevastu lihtsate ühekordsete veaparanduste puhul on AI jõudlus peaaegu täiuslik. RoadmapBenchi autorid järeldavad, et „pikaajaline tarkvaraarendus jääb suures osas lahendamata probleemiks.“ (papers.cool)
-
SlopCodeBench (2026) uurib iteratiivset arendust. Agentidele anti ülesanne ja nad koostasid koodi, seejärel muutus ülesande spetsifikatsioon 20 vooru jooksul, sundides koodi arenema. Tulemus: kuigi kõik vaheversioonid läbisid olemasolevad testid, muutusid AI genereeritud koodibaasid 2,2 korda verbaalsemaks ja palju raskemini hooldatavaks kui inimeste hallatav kood (www.techradar.com). Tegelikult ei lahendanud ükski tippmodell kogu järjestust: edukuse määr langes viimase kontrollpunkti ajaks ~0,5%-ni. See näitab, et väikesed disainivead kuhjuvad AI abiga, takistades tulevasi muudatusi (www.techradar.com).
Need leiud viitavad uurimistööle, mis keskendub planeerimisele ja dekompositsioonile. AI süsteemid ei peaks lihtsalt "koodi kirjutama" vastavalt käsklusele, vaid planeerima mitmeetapilisi strateegiaid. Üks uus idee on planeerimine-ja-täitmine: lasta mudelil esmalt kavandada disain või sammude jada, seejärel genereerida kood iga sammu jaoks (crabtalk.ai). Tegelikult leiavad koodiagentide (Claude Code, GitHub Copilot jne) analüüsid, et planeerimise eraldamine täitmisest (ja plaani kasutajale avalikustamine) parandab oluliselt keerukate ülesannete jõudlust (crabtalk.ai). Uurimistöö peaks arendama uusi arhitektuure: näiteks pesastatud agendid, kus "haldur" LLM jagab suure probleemi alamülesanneteks töölistele LLM-idele. Vajalikud on ka pikaajalise mälu mehhanismid: tulevased mudelid peaksid meeles pidama sessiooni alguses genereeritud koodi isegi väljaspool kontekstiakent.
Võrdlusuuringud: Kogukond peaks määratlema võrdlusuuringud, mis peegeldavad tegelikku arendustööd. Lisaks RoadmapBench'ile vajame ülesandeid, mis hõlmavad mitut keelt ja integratsiooniprobleeme (esiosa/tagasiosa, andmebaasid jne). Simuleeritud meeskondlikud projektid testiksid AI ja inimeste koostööd versioonide kaupa. Tarkvaratehnikast ideid laenates saaks võrdlusuuringutes mõõta mitte ainult õigsust, vaid ka hooldatavust (kui lihtne on uut funktsiooni lisada?), jõudlust (kas AI kood halveneb arenedes?) ja integratsiooni (kas see sobib olemasolevate stiilikonventsioonidega?). Näiteks võiksid võrdlusuuringud alata olemasoleva koodibaasiga ja paluda agendil rakendada mitmeid funktsiooninõudeid või refaktoreerimisi, perioodiliste testidega. Järgmise 18 kuu jooksul aitab selliste avatud väljakutsete loomine (võib-olla akadeemiliste-tööstuslike konkursside kaudu) suunata uurimistööd mitmeastmelises kodeerimises.
3. Kontrollitavus ja formaalsed liidesed
Kuna AI assistendid üritavad üha kriitilisemaid ülesandeid, muutub õigsuse tagamine hädavajalikuks. Kontrollitavus tähendab koodi sidumist täpsete spetsifikatsioonide või testikomplektidega, et saaksime olla kindlad, et see teeb seda, mida me tahame. Klassikalises inseneritöös kirjutatakse enne kodeerimist formaalne spetsifikatsioon või põhjalikud testid. Kuidas me selle mõtteviisi AI-põhisesse kodeerimisse toome?
Üks võimalus on „suletud ahelaga“ genereerimine. Hiljutine töö pakub välja, et AI-genereeritud koodi, selle docstring’i ja mis tahes formaalseid annotatsioone tuleks kontrollida järjepidevuse osas. Näiteks Clover lähenemine genereerib automaatselt koodi kõrvale formaalsed spetsifikatsioonid (kasutades keeli nagu Dafny) ja kasutab seejärel tõestustööriistu ebakõlade lahenduste tagasilükkamiseks (theory.stanford.edu). Varajastes testides tuvastas see kõik valed programmid õpikutaseme andmestikus. Sarnaselt kasutab AutoACSL staatilist analüüsi, et käskida LLM-il kirjutada täpsed funktsioonilepingud (eel-/järeltingimused) ja seejärel kontrollib neid Frama-C-ga (papers.cool). Tagasisidestades rahuldamata tingimusi, parandas see oluliselt tõestatavalt korrektse koodi protsenti. Need näited näitavad, et formaalsete meetodite integreerimine koodi genereerimise etapis võib muuta kontrollimatu AI oletuse kontrollitud programmiks.
Lisaks formaalsele matemaatikale vajame ka paremaid liideseid mitteformaalsete spetsifikatsioonide, testide ja koodi vahel. Täna on tavaline kirjeldada funktsiooni inglise keeles ja loota, et AI teeb õiget asja. Kuid me peaksime laskma AI-l ka genereerida või küsida testijuhtumeid, tüübiannotatsioone ja disainikommentaare. Näiteks võiks käsk kõigepealt paluda mudelil kirjeldada algoritmi või invariante loomulikus keeles või pseudokoodis ja alles siis selle kodeerida. Või võiksime kasutada lepingupõhist arendust: kirjutada ühiktestid (või omadustestid), mida AI peab rahuldama. Nende ideede esialgsed visandid on osutunud paljulubavaks: isegi mõne näidispõhise testi genereerimine võib suunata mudelit eemale triviaalseid lahendustest.
Võrdlusuuringud: Uued võrdlusuuringud peaksid sisaldama formaalseid kontrolliprobleeme. Näiteks võiksime lisada ülesandeid, kus "õigsust" kontrollitakse teoreemi tõestajaga või sümboolse kontrollijaga, mitte ainult ühiktestidega. Kasulikud oleksid andmestikud kasutajalugudest LTL/TLA+ või Alloy spetsifikatsioonidega ja vastava koodiga. Hariduses näitavad sellised võistlused nagu TLA+ mudelikontrolli väljakutse, et spetsifitseerimine on raske – üks uuring leidis, et praegused LLM-id saavutavad lihtsate TLA+ spetsifikatsioonide puhul vaid ~8% semantilist õigsust (papers.cool). Avatud lähtekoodiga projektid võiksid laiemalt levitada spetsifikatsioonikeeli (omamoodi kodeerimisavaldus). Standardiseeritud vorminguid (YAML, JSON) API spetsifikatsioonide või andmeskeemide jaoks saaks AI ära kasutada, et viia kood vastavusse kavandatud käitumisega.
4. Sotsiaal-tehniline juhtimine ja usaldus
Lõpuks tõstatab autonoomne kodeerimine inim- ja poliitikaprobleeme. Kes vastutab AI koodi eest? Kuidas tagame turvalisuse, autoriõiguste järgimise ja vastutuse? Mitmed organisatsioonid on seda juba hakanud käsitlema, kuid avatud küsimused jäävad.
Arendajate tavad: Nagu mainitud, näitavad tööstusharu uuringud usalduslõhet. Arendajad teavad, et nad peaksid AI väljundit üle vaatama, kuid jätavad selle sageli vahele, kui see on lihtsam, mis viib juhitamata riskini (www.itpro.com). Vastuseks on suured projektid kehtestanud selged reeglid. Näiteks OpenInfra Foundation lubab AI abi ainult siis, kui commitid on märgistatud sildiga „Assisted-By:“ või „Generated-By:“ (openinfra.org). Google’i Chromiumi projekt nõuab samamoodi, et autorid mõistaksid täielikult mis tahes AI-soovitatud koodi, vastasel juhul kaotavad nad commit-õigused (chromium.googlesource.com). Mozilla Firefoxi poliitika ütleb otse: „AI saab abistada, kuid vastutus jääb alati muudatuse taga olevale inimesele“ (firefox-source-docs.mozilla.org). Isegi NumPy projekt hoiatab, et peate suutma selgitada mis tahes esitatud koodi, olenemata sellest, kas AI selle kirjutas (numpy.org). Need poliitikad rõhutavad, et tehnilised vahendid üksi ei ole piisavad – vajame ka selgeid töövooge ja kultuuri.
Regulatsioon ja standardid: Laialdasemalt on valitsused ja standardiorganisatsioonid järele jõudmas. EL on lõpetamas üldotstarbelise tehisintellekti käitumiskoodeksi koostamist, mis nõuab AI mudelite pakkujatelt läbipaistvust ja ohutusmeetmeid (digital-strategy.ec.europa.eu). Kuigi see ei ole spetsiifiline kodeerimisele, viitab see rangemale kontrollile koolitusandmete litsentside ja mudeli selgitatavuse üle – mõlemad on väga olulised, kui teie koodiassistent kasutas autoriõigusega kaitstud koodi. Sarnaselt on ISO ja IEEE alustanud AI standarditega juhtimise ja eetika osas, kuigi vaid vähesed käsitlevad otse koodigeneratsiooni. AI seadus (EL) ja tulevased USA juhised mõjutavad tõenäoliselt seda, kuidas ettevõtted AI koodi sisemiselt kontrollivad.
Vajalik koostöö: Nende sotsiaal-tehniliste lünkade täitmine nõuab ühiseid jõupingutusi. Akadeemia saab uurida, kuidas AI tööriistad mõjutavad meeskonna tootlikkust, haavatavuse avastamist ja litsentseerimist; tööstus saab jagada anonüümseid andmeid tegelike AI-ga seotud intsidentide kohta; standardiorganisatsioonid (nagu W3C, IEEE) saavad lisada kodeerimisstsenaariume eetiliste AI juhiste hulka. Näiteks võiksid töötoad tuua kokku SAT-EL (tarkvara kindluse) eksperdid ja ML-inimesed, et määratleda AI koodi ohutuse hindamiskriteeriumid. Juhised võiksid areneda standarditeks (nt „IEEE 8201: AI-toega tarkvaraprotsess“), andes organisatsioonidele ühise raamistiku. Järgmise 18 kuu jooksul aitab parimate tavade osas konsensuse loomine – valgete raamatute, konsortsiumide või avatud lähtekoodiga poliitikamallide kaudu – meeskondadel neid tööriistu vastutustundlikult kasutusele võtta.
5. Uurimiskava ja võrdlusnäitajad
Kokkuvõttes pakume uurimiskogukonnale järgmisi konkreetseid samme:
-
Täiendatud võrdlusuuringud: Arendada välja võrdlusuuringute komplekt, mis jäljendab tegelikke tarkvaraprojekte. Näiteks mitmemoodulilised raamistikud (veebirakendused, API-d, manussüsteemid), kus AI peab uusi funktsioone rakendama ja seejärel neid hooldama. Kaasa arvatud arenevad spetsifikatsioonid (simuleerides muutuvate nõuetega). Mõõta mitte ainult testide läbimise määra, vaid ka koodi keerukust, loetavust, turvameetmeid ja ülevaatamise töökoormust. Teha koostööd tööstusega, et hankida tegelikke veaparanduste ajalugusid ja funktsiooninõudeid võrdlusuuringu ülesannetena.
-
Vigade taksonoomia uuring: Süstemaatiliselt kategoriseerida AI poolt sisse toodud vigade liike. CodeRabbiti aruanne andis esialgse jaotuse (loogikavead, nimetamisprobleemid jne) (www.infoworld.com). Suurem akadeemiline uuring võiks koguda PR-andmeid ja klassifitseerida AI versus inimeste vead. See suunaks uute mudelite kahjusid (nt suurem kaal turvalisusel) ja automatiseeritud detektoreid (tööriistad, mis märgivad tüüpilisi AI-ga valesti läinud mustreid).
-
Planeerimine ja mitmeagendi uuring: Uurida arhitektuure nagu planeerija/täitja agendid. Uurida, kuidas anda AI süsteemidele mingisugune mälu üle sessioonide või rakendada hierarhilist planeerimist. Teha koostööd olemasoleva agentuurilise AI ja robootikaalase tööga (koodi jaoks mitmeetapilise põhjendamise meetodite taaskasutamine).
-
Formaalsete meetodite integreerimine: Investeerida uurimistöösse nagu Clover ja AutoACSL, mis seovad programmi sünteesi ja tõestusi. Julgustada formaalsete meetodite uurijaid partneriks NLP/ML rühmadega. Näiteks võiksid akadeemilised võistlused ühendada LLM koodiassistendid ja tõestajad ühiste ülesannetega. Luua võistlused AI-genereeritud tõestuste või lepingu järelduste jaoks.
-
Juhtimisraamistikud: Sotsiaalteaduste uuringud meeskonnatavade ja vastutuse kohta. Näiteks viia läbi arendajauuringuid: anda meeskondadele AI tööriistad ja jälgida, kuidas nad üle vaatavad ja siluvad. Õigusalased uuringud intellektuaalomandi kohta: nagu üks blogi märgib, on "Copiloti autoriõiguse probleem" (litsentseerimata kood) avatud küsimus (www.systemshardening.com). Standardiorganisatsioonid peaksid koostama selged juhised andmete litsentseerimise ja omistamise kohta AI koodi puhul.
-
Tööriistad ja liidesed: Lõpuks, ehitada tööriistade prototüübid, mis demonstreerivad parimaid tavasid. Näide: AI kodeerimise IDE plugin, mis automaatselt käitab staatilist analüüsi või teste mis tahes AI-genereeritud koodil ja hoiatab kasutajat. Või käsurida, mis märgistab kõik AI-ga abistatud sektsioonid koodibaasis. Julgustada avatud lähtekoodiga projekte kasutusele võtma "AI kasutatud" märgiseid või commit-sõnumi konventsioone. Need mitteformaalsed standardid saab hiljem formaliseerida.
Kogukondlike võrdlusuuringute määratlemise ja mitme institutsiooni väljakutsete korraldamisega (nagu AI-kodeerimise hackathon, et täita teatud turvalisuse või hooldatavuse eesmärke) saame jälgida edusamme. Mõelge sellele nagu ImageNet ajas visiooni: vajame jagatud "ImageNet koodi jaoks", mis peegeldab tegelikku arendust. Varased jõupingutused (RoadmapBench, SlopCodeBench, Sigmabench (sigmabench.com)) näitavad teed, kuid järgmisena peaksime neid laiendama ja laialdaselt kättesaadavaks tegema.
6. Formaalsed liidesed: spetsifikatsioonid, testid ja kood
Kesksel kohal on spetsifikatsioonide ja testide tihedam integreerimine kodeerimisahelasse. Traditsioonilises arenduses kirjeldab spetsifikatsioon, mida kood peaks tegema, ja testid kontrollivad seda. AI tööriistad saavad aidata neid ühendada. Näiteks on paljulubavaks praktikaks spetsifikatsioonipõhine genereerimine: kirjutage esmalt (võimalik, et mitteformaalne) spetsifikatsioon ja seejärel käskige AI-l see kodeerida. Veelgi parem, spetsifikatsiooni saaks arendada koos AI-ga. Näiteks võite küsida assistendilt: „Genereeri selle nõude jaoks ühiktestid,“ ja seejärel „Kasuta neid teste koodi valideerimiseks.“ See loob formaalse liidese: loomuliku keele spetsifikatsioon, sellest tulenevad testid ja kood moodustavad tiheda kolmnurga.
Uurimistöö poolel saaks määratleda spetsifikatsioonide jaoks standardse vormingu (nt YAML või JSON skeem, mis kirjeldab funktsionaalsust) ja nõuda AI süsteemidelt selle tarbimist. Jõupingutused nagu TLA+, Alloy või BDD-stiilis tööriistad (Cucumber) võiksid olla integreeritud: kujutage ette, et ütlete AI-le: „palun genereeri kood, mis rahuldab seda TLA+ mudelit.“ Kuigi tänapäevased LLM-id ei ole algusest peale TLA+-i kirjutamises suurepärased (papers.cool), tasub uurida inimese kirjutatud abstraktse spetsifikatsiooni kombineerimist AI-ga täiendatud koodigeneratsiooniga. Eesmärk on muuta meeskondade jaoks lihtsaks käivitatava spetsifikatsiooni (isegi kui mitteformaalse) loomine, mida AI austab. Formaalseid teste saaks seejärel automaatselt genereerida: hiljutised tööd näitavad, et GPT mudelid suudavad funktsiooni käitumise kirjelduse põhjal luua omadustepõhiseid teste.
Ambitsioonikamalt saame luua formaalseid spetsifikatsioonimalle. Pilvejuurutuste või turvakriitilise koodi jaoks määratleda mall (nt „Kasutaja autentimise voog“ koos väljadega). AI täidab malli ja genereerib koodi; valideerija kontrollib lepingut. Nende liideste pakkumisega muudame kodeerimise mustast kastist kontrollitumaks torujuhtmeks. Algatused nagu AI tööriistad TLA+ jaoks või LLM-i spetsifikatsiooniks tõlkimine (mida mõned uurimisrühmad teevad) on varajased näited. Praktikas võib isegi osaline kasutuselevõtt (paludes AI-l väljastada kommentaare või tüübisignatuure) parandada õigsust.
Arendajate jaoks esimene samm: lisage lihtsaid spetsifikatsiooni-testi silmuseid kohe. Näiteks kui kasutate ChatGPT-d, alustage oma sessiooni kirjutades „Tahame funktsiooni, mis teeb X, kirjutage esmalt testid.“ Seejärel paluge sellel genereerida implementatsioon. Isegi ilma uhkete formaalsete tööriistadeta jõustab see distsipliini, kus AI toodab alati koodi koos kaasneva kontrolliga. Aja jooksul võib sellest harjumusest saada AI kodeerimise standard.
7. Koostöö: akadeemia, tööstus ja standardid
Nende eesmärkide saavutamine nõuab laialdast koostööd:
-
Akadeemia saab panustada andmete ja võrdlusuuringute loomise ja jagamisega ning rangete hindamiste avaldamisega. Ülikoolid peaksid tegema koostööd ettevõtetega, et saada testimiseks reaalseid koodibaase. Uurimislaborid saavad korraldada avatud väljakutseid (auhindadega) sellistes ülesannetes nagu pikaajaline koodikvaliteet või kontrollitud koodigeneratsioon.
-
Tööstus peab pakkuma tagasiside ahelaid. AI kodeerimistööriistu kasutavad ettevõtted peaksid anonüümselt jagama veastatistikat, panustajate kogemusi ja funktsiooninõudeid. Tehnoloogiaettevõtted saavad rahastada ka „AI kodeerimiseks“ töötubasid või radasid konverentsidel (nagu ICSE, FSE). Nad saavad avada osi oma poliitikatest (nagu Google tegi Chromiumi AI poliitikaga (chromium.googlesource.com)), et teised saaksid õppida.
-
Standardiorganisatsioonid (IEEE, ISO, W3C jne) peaksid lisama kodeerimise olemasolevatesse AI eetika- ja ohutusstandarditesse. Näiteks ISO käimasolev töö AI juhtimise (ISO/IEC 38507) ja AI elutsükli (ISO/IEC 5338) kohta võiks selgesõnaliselt välja tuua koodigeneratsiooni. W3C-l on veebi ML-i eetiliste põhimõtete eelnõu (www.w3.org) – seda saaks laiendada programmeerimiskasutuse sektsiooniga. Tekkida peaks kerge „käitumiskoodeks“ AI-le toetuvatele arendusmeeskondadele, sarnaselt turvalise arenduse standarditele (nt OWASP) turvalisuse jaoks.
Lühidalt öeldes on tee edasi sotsiaal-tehniline. Just nagu avatud lähtekoodiga kogukonnad kujundasid kodeerimisstandardeid ja ülevaatuskultuure, vajab tekkiv AI kodeerimise valdkond jagatud norme. Ühised teekaardid (nt tööstuskonsortsiumid AI koodi ohutuse kohta) ja läbipaistvus (võrdlusuuringute ja rikete juhtumite avaldamine) viivad kõik samale lehele.
8. Kes kasu saavad ja kuidas alustada
Kõige tähtsam on, et AI-põhine kodeerimine ei ole ainult ekspertaarendajatele. Need tööriistad saavad demokratiseerida programmeerimist. Algajad ja valdkonnaeksperdid saavad AI-d kasutada projektide käivitamiseks, mille kodeerimiseks käsitsi neil kunagi aega poleks olnud. Näiteks võiks turundusanalüütik paluda AI-l kirjutada andmearuandluse skripti, selle asemel et õppida Pythonit nullist. Kunstnik võiks prototüüpida rakenduse kasutajaliidese, visandades käskluse. Igal juhul alandab AI loomise takistust.
Nende tööriistade kasutamise alustamiseks järgige sama agiilset, iteratiivset töövoogu, mida kasutavad professionaalsed meeskonnad:
- Määratlege selge eesmärk või spetsifikatsioon. Alustage konkreetsete tingimuste kirjeldamisega, mida soovite. See võib olla funktsiooni kirjeldus loomulikus keeles või lihtne sammude visand. Programmeerijate jaoks võib isegi loetelu punktidest või kasutajalugudest piisata.
- Kasutage AI assistenti koodi mustandi koostamiseks. Käivitage AI kodeerimistööriist (paljud on saadaval: veebipõhised juturobotid või IDE laiendused) ja paluge sellel spetsifikatsioon implementeerida. Näiteks võite kirjutada „Loo Pythoni funktsioon, mis loeb CSV-d ja joonistab andmepunkte.“ AI genereerib esimese versiooni.
- Kontrollige ja täpsustage. Kriitiliselt oluline on võtta AI väljund ja testida seda. Kui see on kood, käivitage see oma keskkonnas. Kirjutage või genereerige automaatselt mõned lihtsad testid: kas see annab põhilistel juhtudel õiged tulemused? Kui midagi ebaõnnestub (sageli juhtub esimesel katsel), andke AI-le tagasisidet: näiteks tõstke esile ebaõnnestunud juhtum ja paluge sellel kood parandada. Paljud tööriistad võimaldavad iteratiivset käskluste andmist või „mitme pöördega“ redigeerimist.
- Küsi selgitusi ja dokumentatsiooni. Kasutage AI-d docstringide või kommentaaride loomiseks tagantjärele. See aitab teil, (uuel) kodeerijal, aru saada, mis tehti. Samuti võite paluda AI-l välja tuua võimalikud probleemid või pakkuda parendusi.
- Suurendage järk-järgult keerukust. Kui lihtsad skriptid töötavad, võite proovida väikest projekti (nt ülesannete rakendus, andmeanalüüsi torujuhe). Jagage projekt osadeks: küsige AI-lt iga komponendi (andmebaasi skeem, esiots, äriloogika) kohta ükshaaval. Käsitlege seda nagu paarisprogrammeerimist, kus AI on teie noorem partner.
Esimene järgmine samm: Valige algajasõbralik AI kodeerimistööriist ja proovige väikest eksperimenti. Näiteks kasutage liidest nagu GPT-4 (koodivõimalustega) või tasuta laiendust oma koodiredaktoris. Andke sellele triviaalne ülesanne („sorteeri loendit“, „loo graafik“, „hello world veebileht“) ja vaadake, mida see toodab. Seejärel lugege koodi – isegi ilma kodeerimiskogemuseta vaadake struktuuri. Käivitage see ja märkige üles kõik vead. Seejärel korrake: täpsustage oma käsku (võib-olla lisage rohkem detaile või piiranguid) ja genereerige uuesti. Aja jooksul õpite tööriistaga tõhusalt suhtlema ja suunama seda õigete lahenduste poole.
Uued kodeerijad peaksid meeles pidama: AI on võimas assistent, mitte oraakel. Kontrollige alati selle tööd ja kasutage seda õppimisvõimalusena. Kirjutage oma testid AI koodi jaoks, käivitage need ja esitage järelküsimusi, kuni olete kindel. See „kontrolli-siis-usaldus“ harjumus on see, kuidas kõik – algajad või eksperdid – peaksid AI-ga turvaliselt looma.
Kokkuvõte
Autonoomse kodeerimise tööriistade esilekerkimine on murdepunkt, kuid eelnevate juurutuste käigus ilmnenud avatud probleemide lahendamine on vajalik täieliku kasu saamiseks. Töökindluse osas näeme, et koodiassistendid teevad rohkem vigu kui inimesed, seega peab uurimistöö keskenduma vigade tuvastamisele ja robustsele genereerimisele. Planeerimises näeme agentide ebaõnnestumisi pikkade, mitmeetapiliste projektide puhul, seega vajame uusi arhitektuure ja võrdlusuuringuid keerukate töövoogude jaoks. Kontrollitavuse osas tunnistame, et formaalsed spetsifikatsioonid ja testimistugi tuleb integreerida AI kodeerimisprotsessi endasse. Ja juhtimises on ettevõtted ja reguleerivad asutused hädas reeglite kehtestamisega, et AI kood oleks läbipaistev, turvaline ja vastutustundlik.
Järgmise 18 kuu jooksul on edu igas neist valdkondadest hädavajalik. Rangete võrdlusuuringute loomisega (alates projekti planeerimise väljakutsetest kuni AI põhjustatud vigade kontrollimiseni), formaalsete meetodite integreerimisega AI kodeerimise torujuhtmetesse ja distsipliinidevahelise koostöö edendamisega saame kaotada lõhe uhkete demode ja reaalse töökindluse vahel. Visioon on selge: AI kodeerimise ökosüsteem, kus isegi algajad saavad turvaliselt tarkvara luua ja kus AI genereeritud kood on sama usaldusväärne kui inimeste loodud kood. Selle visiooni täitmine nõuab nii tehnoloogia kui ka selle ümber olevate tavade kujundamist. Keskendunud uurimistöö ja laia kogukonna jõupingutustega saab järgmise põlvkonna AI tööriistad tõeliselt avada kodeerimise kõigile – alustades tänasest.
**`
Auto