Miten saat tekoälyavustajan koodaamaan – kun se jumiutuu?
Kun tekoäly jumittuu koodauksessa: parempi ohjeistus ja arkkitehtuuri
Jossain vaiheessa tekoälyavusteisessa kehityksessä tapahtuu outo käänne. Työkalu, joka aiemmin ratkoi virheitä ja lisäsi ominaisuuksia sujuvasti, hidastuu äkillisesti. Tokenien kulutus kasvaa räjähdysmäisesti. Vastaukset muuttuvat epämääräisiksi: "Tämä voisi olla ongelma, tai sitten ei."
Mikä meni pieleen? Tekoäly ei hajonnut. Sinä esitit sille väärän kysymyksen.
Alkuhuuma ja sen jälkeinen seinä
Claude, GPT-4 ja muut tekoälykoodaajat ovat erinomaisia siinä, mihin ne on koulutettu: tarkasti kohdennetuissa muutoksissa. Ne lukevat koodikannan, tunnistavat tyylin ja noudattavat testejä. Kun arkkitehtuuri on kunnossa ja teet pieniä parannuksia, tulokset ovat erinomaisia.
Mutta kun siirryt "lisää tämä ominaisuus" -tyylisistä pyynnöistä "refaktoroi koko autentikaatiokerros" -kyselyihin, tekoälyn vahvuudet kääntyvät heikkouksiksi. Se näkee testit ehdottomina totuuksina. Se pitää nykyistä koodityyliä pyhänä. Se pyrkii tekemään pienimmän mahdollisen muutoksen. Nämä ominaisuudet ovat hyödyllisiä ylläpidossa. Ne muodostavat esteen, kun haluat muuttaa arkkitehtuuria.
Tätä tilannetta voi kutsua testiloukuksi. Jokainen testi on kiinteä este, ja yritykset suurimittaisiin muutoksiin takertuvat juuri niihin turvamekanismeihin, joita varten ne luotiin.
Tokenien kierre
Tämä näkyy käytännössä seuraavasti:
- Pyydät refaktorointia
- Tekoäly yrittää säilyttää kaikki vanhat testit
- Uusi arkkitehtuuri ei sovi vanhaan testirakenteeseen
- Se tekee vain minimimuutoksia
- Pyydät uudelleen, entistä tarkemmin
- Tokenien kulutus kaksinkertaistuu, sitten kolminkertaistuu
- Vastaukset muuttuvat sekaviksi
Tekoäly ei ole menettänyt järkeään. Se yrittää ratkaista ristiriitaisia ohjeita: muuta kaikkea, pidä kaikki toimivana, älä koske testeihin, mutta ehkä kuitenkin.
Perimmäinen syy: arkkitehtuuri ja odotukset
Perimmäinen syy on arkkitehtoninen ja filosofinen.
Tekoälykoodaajat on koulutettu inkrementaaliseen kehitykseen. Pienet, täsmälliset muutokset vakaassa ympäristössä – juuri sitä, mitä tuotantokoodi yleensä vaatii. Tämä koulutus on oikeassa.
Kun projektisi vaatii kuitenkin laajamittaista uudelleenrakentamista, tekoäly ei ole enää oma-aloitteellinen engineer. Se on passiivinen ylläpitäjä. Sen koulutusta vastaan taistelematta,你无法得到想要的结果.
Ratkaisu: määrittele ongelma uudelleen
Tässä ihmisen kokemuksen ja kehitnyt arkkitehtuurin ohj