Ok, joten ChatGPT vain suoritti vianmäärityksen koodillani. Ihan totta.

1-vianetsintä(1).png

Joten. Ohjelmointi. Niille, jotka ohjelmoivat ammatikseen, se on jatkuvaa mielipeliä Jengaa: yksi koodirivi pinoitetaan toisen päälle, rakennetaan kooditorni, jonka toivoo olevan tarpeeksi vahva, ettei se sortuisi.

Mutta se tapahtuu aina. Koodi ei koskaan toimi ensimmäisellä kerralla. Joten yksi keskeisistä taidoista jokaiselle ohjelmoijalle on virheenkorjaus - taiteen ja tieteen löytää miksi koodi ei toimi tai tekee jotain odottamatonta tai ei-toivottavaa.

Se on vähän kuin olla etsivä, löytää vihjeitä ja sitten selvittää mitä nämä vihjeet yrittävät kertoa sinulle. Se on joskus erittäin turhauttavaa ja samaan aikaan hyvin tyydyttävää.

Teen paljon virheenjäljitystä. Se johtuu siitä, ettei koodi toimi koskaan ensimmäisellä kerralla. Käytän myös virheenjäljitystä kertomaan minulle, miten koodi suoritetaan, ja säädän sitä matkan varrella.

Mutta vaikka hyvä vianmääritys vaatii oman erityisen taitojoukkonsa, se on loppujen lopuksi vain ohjelmointia. Kun olet selvittänyt, miksi jokin koodin lohko ei toimi, sinun täytyy keksiä, miten kirjoittaa jotain, joka toimii.

Reaalimaailman ChatGPT-testaus

Tällä viikolla työskentelin kolmen ohjelmointitehtävän parissa, joita ylläpidän ohjelmistolle. Kahdessa tehtävässä korjasin käyttäjien ilmoittamia bugeja. Yksi tehtävä oli uuden toiminnallisuuden lisääminen koodiin. Tämä oli peruskauraa minulle ohjelmointityössäni. Se oli osa säännöllistä työaikaani.

Lisäksi: Miten ChatGPT toimii?

Kerron tämän sinulle, koska tähän mennessä olen testannut ChatGPT:ta testikoodilla. Olen luonut tilanteita nähdäkseni, kuinka hyvin ChatGPT toimisi. Tällä kertaa oli erilaista. Yritin saada oikeaa työtä tehdyksi ja päätin selvittää, voiko ChatGPT olla hyödyllinen työkalu sen tekemiseen.

Se on erilainen tapa katsoa ChatGPT:ta. Testitilanteet ovat usein hieman keinotekoisia ja yksinkertaisia. Oikeassa maailmassa koodaus tarkoittaa toisen asiakastukilipun poimimista pinosta ja selvittämistä, mikä sai käyttäjän kokemuksen menemään huonosti.

Joten, sen kanssa, katsotaanpa niitä tehtäviä ja nähdään miten ChatGPT suoriutui.

Uudelleenkirjoita säännöllisten lausekkeiden koodi

Koodauksessa meidän täytyy löytää paljon malleja tekstistä. Sen tekemiseen käytämme erään tyyppistä symbolista matematiikkaa, jota kutsutaan säännöllisiksi lausekkeiksi. Olen kirjoittanut säännöllisiä lausekkeita vuosikymmeniä ja edelleen inhoan sitä. Se on tylsää, virhealtista ja salaperäistä.

Myös:Käytän ChatGPT:ää auttamaan minua korjaamaan koodia nopeammin, mutta millä kustannuksella?

Joten kun minulle tuli vikailmoitus, jossa kerrottiin, että koodini osa salli vain kokonaislukuja, kun sen olisi pitänyt sallia dollareita ja senttejä (toisin sanoen jonkin verran numeroita, mahdollisesti pisteen jälkeen, ja jos pisteen jälkeen oli, niin kaksi lisää numeroita), tiesin, että minun pitäisi käyttää säännöllisiä lausekkeita koodauksessa.

Koska pidän sitä ikävänä ja ärsyttävänä, päätin kysyä apua ChatGPT:lta. Tässä on, mitä kysyin:

2-regex-q.jpg

Ja tässä on tekoälyn erittäin hyvin esitetty vastaus (klikkaa pientä neliötä suurentaaksesi):

3-regex-a.jpg

Pudotin ChatGPT:n koodin omaan funktiooni, ja se toimi. Sen sijaan, että olisin repinyt hiuksiani 2-4 tuntia, minulla meni noin viisi minuuttia keksiä kysymys ja saada vastaus ChatGPT:ltä.

Taulukon uudelleenmuotoilu

Seuraavaksi oli taulukon uudelleenmuotoilu. Tykkään tehdä taulukkokoodeja, mutta se on myös tylsää. Joten kokeilin jälleen ChatGPT:ta. Täysi epäonnistuminen.

Lisäksi:Miten saada ChatGPT tarjoamaan lähteitä ja viittauksia

Kun olin valmis, syötin sille todennäköisesti kymmenen erilaista viestiä. Jotkut vastaukset näyttivät lupaavilta, mutta kun yritin ajaa koodia, se aiheutti virheen. Joissakin koodeissa oli kaatumisia. Joissakin koodeissa generoitiin virhekoodit. Ja joissakin koodeissa suoritettiin, mutta ei tehnyt sitä mitä halusin.

Noin tunnin jälkeen luovutin ja palasin normaaliin tapaani kaivella Githubista ja StackExchangesta, nähdäkseni oliko olemassa esimerkkejä siitä, mitä yritin tehdä, ja sitten kirjoittaa oman koodini.

Toistaiseksi ChatGPT-kokemuksesta on tullut yksi voitto ja yksi tappio. Mutta nyt oli tarkoitus nostaa haastetta.

Oikeastaan etsimässä virhettä koodissani

OK, joten tämä seuraava osa tulee olemaan vaikea selittää. Mutta ajattele sitä tosiasiaa, että jos se on vaikea selittää sinulle (luultavasti ihmiselle etkä yhdelle niistä noin 50 botista, jotka vain kopioivat ja julkaisevat työni huijaavilla ja roskaisilla verkkosivustoilla), se on vielä haastavampaa selittää tekoälylle.

Kirjoitin uutta koodia. Minulla oli funktio, joka otti vastaan kaksi parametria, ja kutsuväite, joka lähetti kaksi parametria koodiini. Funktiot ovat pieniä mustia laatikoita, jotka suorittavat hyvin tarkkoja tehtäviä, ja niitä kutsutaan (pyydetään tekemään taikojaan) muualla ohjelman ajossa olevista riveistä.

Ongelmaksi muodostui, että sain jatkuvasti virhesanoman.

Olennainen osa tuota viestiä on kohta, jossa se ilmoittaa "1 passed" jossain vaiheessa ja "tarkalleen 2 odotettu" toisessa vaiheessa. Katsoin kutsuvaa lausetta ja funktiomääritelmää, ja kummassakin paikassa oli kaksi parametria.

Lisäksi: Miten käyttää ChatGPT:a kirjan, artikkelin tai tutkimuspaperin tiivistämiseen

W-the-ever-loving-F?

Noin viidentoista minuutin syvän turhautumisen jälkeen päätin heittää sen tekoälylle nähdäkseni, voisiko se auttaa. Kirjoitin siis seuraavanlaisen pyynnön:

4-untitled.jpg

Näytin sille koodirivin, joka teki kutsun, näytin sille itse funktion ja näytin sille käsittelijän, pienen palan koodia, joka lähettää kutsutun funktion koukusta pääsovellukseeni.

Muutamassa sekunnissa ChatGPT vastasi seuraavasti (klikkaa pientä neliötä suurentaaksesi):

5-virhe-apply-filttereissä-wordpressissä.jpg

Juuri kuten ehdotettiin, päivitin add_filter()-funktion neljännen parametrin arvoksi 2, ja se toimi!

ChatGPT otti koodinpätkiä, analysoi niitä ja antoi minulle diagnoosin. Selvennän, jotta sen suositus olisi selvä, sen piti ymmärtää, miten WordPress käsittelee koukkuja (siihen liittyy add_filter-funktio) ja miten tämä toiminnallisuus heijastuu koodin kutsumis- ja suorituslinjoihin.

Lisäksi: Pyydin ChatGPT:ltä kirjoittamaan tarvitsemani WordPress-liitännäisen. Se teki sen alle 5 minuutissa

Täytyy merkitä se uskomattomaksi, kiistämättömästi "tulevaisuudessa elävää" uskomattomaksi.

Mitä tämä kaikki tarkoittaa?

Kuten aiemmin mainitsin, virheenkorjaus on osittain taidetta ja osittain tiedettä. Useimmat hyvät kehitysympäristöt sisältävät tehokkaita virheenkorjaustyökaluja, joiden avulla voit tarkastella datan kulkua ohjelman suorituksen aikana, ja tämä auttaa selvittämään virheitä.

Lisäksi: Nämä asiantuntijat kilpailevat suojatakseen tekoälyä hakkeroinnilta

Mutta kun olet jumissa, apua on usein vaikea saada. Se johtuu siitä, että vaikka läheinen kollega saattaa olla tuttu koodin osien kanssa, joita jäljittelet, hän ei ehkä tunne kaikkea koodin laajuutta, jota vianmääritykseen tarvitaan. Ohjelma, jossa työskentelen, koostuu 153 259 rivistä koodia, jotka jakautuvat 563 tiedostoon - ja mitä ohjelmiin tulee, se on pieni.

Joten, jos olisin halunnut pyytää apua kollegalta, minun olisi pitänyt rakentaa pyyntö lähes identtisesti kuin lähetin sen ChatGPT:lle.

Mutta tässä on jotain pohdittavaa: Muistin sisällyttää käsittelijärivin, vaikka en tajunnutkaan, että siinä oli virhe. Testinä yritin myös pyytää ChatGPT:ltä ongelmani diagnosointia promptissa, jossa en sisällyttänyt käsittelijäriviä, eikä se pystynyt auttamaan. Joten ChatGPT:llä on hyvin selvät rajat sille, mitä se voi tehdä vianetsinnän suhteen juuri nyt vuonna 2023.

Lisäksi: Parhaat tekoäly-chatbotit kokeiltavaksi

Käytännössä sinun täytyy tietää, miten esittää oikeat kysymykset oikealla tavalla, ja näiden kysymysten täytyy olla riittävän tiiviitä, jotta ChatGPT voi käsitellä koko asian yhdellä kyselyllä. Se vaatii ohjelmointitietoa ja kokemusta, jotta osaa tehdä sen.

Olisinko voinut korjata virheen itse? Tottahan toki. Minulla ei ole koskaan ollut virhettä, jota en olisi pystynyt korjaamaan. Mutta olisiko siihen kulunut kaksi tuntia vai kaksi päivää (ja pizzan, kiroilun ja paljon kofeiinin juomisen lisäksi) monista keskeytyksistä huolimatta, sitä en tiedä. Voin kertoa, että ChatGPT korjasi sen muutamassa minuutissa, säästäen minulta valtavasti aikaa ja turhautumista.

Katsominen kohti (mahdollisesti dystooppista) tulevaisuutta

Näen erittäin mielenkiintoisen tulevaisuuden, jossa on mahdollista syöttää ChatGPT:lle kaikki 153 tuhatta riviä koodia ja pyytää sitä kertomaan, mitä korjattavaa on. Microsoft (jolla on Github) työskentelee jo "copilot" työkalun parissa auttamaan ohjelmoijia koodin rakentamisessa. Microsoft on myös sijoittanut miljardeja dollareita OpenAI:lle, jotka ovat ChatGPT:n kehittäjät.

Vaikka palvelu saattaa olla rajoitettu Microsoftin omiin kehitysympäristöihin, voin kuvitella tulevaisuuden, jossa tekoälyllä on pääsy kaikkeen koodiin Githubissa ja siten kaikkeen koodiin missä tahansa projektissa, jonka lähetät Githubiin.

Lisäksi: Pyydin ChatGPT:tä kirjoittamaan lyhyen Star Trek -jakson. Se todellakin onnistui

With how well ChatGPT identified my error from the code I provided, I can certainly envision a future where programmers can simply ask ChatGPT (or a Microsoft-branded equivalent) to locate and fix bugs in whole projects.

Ja tässä on kohta, jossa vien tämän keskustelun hyvin tummaan paikkaan.

Kuvittele, että voit pyytää ChatGPT:ää tutkimaan Github-repositoriotasi tietylle projektille ja löytämään sekä korjaamaan bugeja. Yksi tapa voisi olla, että se esittää löytämänsä jokaisen bugin sinulle hyväksyttäväksi, jotta voit tehdä korjaukset.

Mutta entä tilanne, jossa pyydät ChatGPT:ltä vain virheiden korjaamista ja annat sen tehdä sen ilman että tarkastelet koodia itse? Voisiko se upottaa jotain ikävää koodiisi?

Lisäksi: Bard vs. ChatGPT: Voiko Bard auttaa sinua koodaamaan?

Ja mitä sanot tilanteesta, jossa äärimmäisen kyvykäs tekoälyllä on pääsy lähes kaikkeen maailman koodiin Githubin varastossa? Mitä se voisi piilotella kaikessa tuossa koodissa? Mitä ilkeämielisiä vahinkoja se voisi aiheuttaa maailman infrastruktuurille, jos se pääsee käsiksi kaikkeen meidän koodiimme?

Asetetaan ajatustasolla yksinkertainen peli. Mitä jos tekoäly saisi Asimovin ensimmäisen säännön ohjeeksi. Se kuuluu "robotti ei saa vahingoittaa ihmistä tai jättää toimimatta siten, että ihminen joutuu vaaraan". Eikö se voisi päätellä, että kaikki infrastruktuurimme aiheuttaa meille haittaa? Saamalla pääsyn kaikkeen koodiimme, se voisi yksinkertaisesti päättää pelastaa meidät itsemme aiheuttamalta haitalta lisäämällä takaportteja, jotka mahdollistaisivat esimerkiksi sähköverkon, lentokoneiden ja tieliikenteen lamauttamisen.

Olen täysin tietoinen siitä, että yllä oleva skenaario on liioiteltu ja alarmistinen. Mutta se on myös mahdollista. Loppujen lopuksi vaikka ohjelmoijat katsovatkin koodiaan Githubissa, kenenkään ei ole mahdollista tarkastella kaikkia rivejä kaikissa heidän koodeissaan.

Lisäksi: Kuinka käyttää ChatGPT: tä Excel-kaavojen kirjoittamiseen

Mitä minuun tulee, aion yrittää olla ajattelematta sitä liikaa. En halua viettää loppua 2020-lukua sikiöasennossa lattialla edestakaisin keinuen. Sen sijaan käytän välillä ChatGPT:tä auttamaan minua kirjoittamaan ja korjaamaan pieniä rutiineja, keskityn omaan tekemiseeni ja toivon, etteivät tulevat tekoälyt tapa meitä kaikkia pyrkimyksessään "estää ihmistä kärsimästä".

Löydätkö sen hyödyllisenä tai pelottavana, että ChatGPT pystyy suorittamaan vianmääritystä? Uskotko, että tekoälyt murhaavat meidät yöllä, vai uskotko, että tulemme todistamaan tuhoamme silmät selällään? Vai ajatteletko, kuten minä, että yrität olla ajattelematta sitä liikaa, koska se saa pään särkemään? Kerro mielipiteesi alla olevissa kommenttiosioissa. Kun vielä voit.

Liittyvät artikkelit

Näytä lisää >>

Avaa tekoälyn voima HIX.AI:lla!