ChatGPT, Bard ja teised silmapaistvad suured keelemudelid (LLM) on viimase aasta jooksul domineerinud meie uudistes. Ja õigesti. Need põnevad tehnoloogiad pakuvad meile pilguheitu tulevikku, tehisintellekti võimsusele ja võimalustele.
Kuigi suur osa avalikkuse vaimustusest on keskendunud teksti, piltide ja videote loomisele, saab neid vahendeid kasutada ka paljude teiste valdkondade, näiteks tarkvara automatiseerimise jaoks.
See artikkel on sügavuti sissejuhatus sellesse, kuidas kiireloomuline projekteerimine võib meid aidata tarkvara automatiseerimisel. Kuid meie esimene sihtpunkt peaks olema kiire tehnika enda uurimine.
Mis on kiire projekteerimine?
Suured keelemudelid, nagu ChatGPT, toodavad väljundeid meie poolt antud käskude või lausete põhjal. Tulemused varieeruvad siiski suuresti sõltuvalt sellest, milliseid sõnu või juhiseid me kasutame. Kui me sisestame ebamääraseid ja ebatäpseid juhiseid, ei pruugi väljund tabada eesmärki.
Prompt engineering viitab selliste sisendite läbimõeldud kavandamisele, mis aitavad neist põnevatest tehisintellekti süsteemidest välja tuua täpsema, täpsema ja lõppkokkuvõttes kasutatavama sisu.
Suured keelemudelisüsteemid (LLM) kasutavad loomuliku keeletöötluse (NLP) võimalusi, et tõlgendada neile esitatud avaldusi. Masinad muudavad need küsimused või juhised (s.t. juhised) koodiks ja käivitavad need läbi oma tohutute andmehoidlate, et toota sisu mis tahes vormis (s.t. tekst, pildid, kood).
ChatGPT on koolitatud üle
570 GB andmeid
. Koolitusmaterjal koosneb raamatutest, artiklitest, veebitekstidest jne. Teisisõnu, need andmekogumid sisaldavad kujuteldamatult palju teadmisi.
Kuigi me võime mõista protsessi, toimub suur osa sellest, mis toimub nende süsteemide kapoti all, meie nägemata. Muidugi, me kontrollime sisendeid ja väljundeid ning treenime süsteemi, kuid see, kuidas need algoritmid täpselt töötavad ja otsuseid teevad, on endiselt mõistatus. New Yorgi ülikooli tehisintellekti professori Sam Bowmani sõnul, “Me ehitasime selle, me õpetasime seda, aga me ei tea, mida see teeb.”
Prompt engineering aitab meil seda kaost hallata, kasutades väljundeid, mis annavad prognoositavaid ja kasutatavaid tulemusi. Nad pakuvad meile teed, et avada nende rakenduste sees olevad tohutud teadmised.
See distsipliin on kujunemas uueks karjääriks
, kus kõikjal tekivad kursused, kuna ettevõtted töötavad välja, kuidas nad saavad seda võimsat tehnoloogiat kasutada.
Kuidas saab kiiret inseneriabi aidata
tarkvara automatiseerimisega?
Tarkvara automatiseerimisel ja LLM-idel on palju ühist. Mõlemad pakuvad pilguheitu tulevikku, kus masinad täiendavad inimeste loovust, et luua kiiremaid ja produktiivsemaid töökohti.
On mitmeid põnevaid valdkondi, kus need kaks tehnoloogiat saavad kokku puutuda. Siin on kolm võimalust, kuidas me saame tarkvaraautomaatikas kasutada kiiret projekteerimist.
#1. Koodide genereerimine
Koodi kirjutamine on üks paljulubavamaid suurte keelemudelite rakendusi. Tehisintellekti LLM on alles lapsekingades. Lähiaastatel peaks see tehnoloogia paranema, sest nii arvutite kui ka koolituse jaoks lisatakse rohkem ressursse.
Pikemas perspektiivis võivad need edusammud tuua kaasa selle, et tehisintellekt võib kirjutada terveid programme, milles inimene ei sekku üldse või ainult osaliselt. Praegu on elukestva õppe magistriõppe programmidel siiski mõned piirangud. LLM-kodeerimise tulemuse kvaliteet sõltub peamiselt sisendi kvaliteedist. Nagu öeldakse, prügi sisse, prügi välja.
Loomulikult ei ole takistuseks mitte ainult tõhus kiiret inseneritehnikat. Nagu on soovitatud dokumendis ChatGPT ja suured keelemudelid akadeemilistes asutustes: Võimalused ja väljakutsed (Meyer, 2023): “Praegu on ChatGPT tõenäolisemalt edukas väiksemate koodiplokkide täpses kirjutamises, samas kui selle usaldusväärsus suuremate/komplekssemate programmide (nt tarkvarapaketi) kirjutamisel on küsitav.”
Lisaks hoiatasid mõned arvutiteadlased hiljutises artiklis ajakirjas Nature, et me peaksime lähenema koodide genereerimisele LLM-ide abil teatud ettevaatusega. Veel üks kaasaegne paber,
Suured keelemudelid ja lihtsad, rumalad vead
(Jesse, 2023) näitas, kuidas populaarne LLM, Codex, mida kasutab müüja Copilot, toodab “tuntud, sõna-sõnaliselt korrektset SStuBi koguni 2x tõenäolisemalt kui tuntud, sõna-sõnaliselt korrektset koodi”.
Kuigi neid probleeme ei saa eirata, on siiski palju õigustatud põnevust selle üle, kuidas need programmid võivad aidata demokratiseerida tarkvaraarendust, toetades nii tehnilisi kui ka mittetehnilisi meeskondi.
Kõige muljetavaldavam on ehk see, et sellised tööriistad nagu ChatGPT suudavad väga kiiresti toota funktsionaalset koodi. Õigete nõuannete abil saavad insenerid vähendada teatud tüüpi koodide programmeerimiseks kuluvat aega, tagades kiirema tarkvaraarenduse elutsükli.
2022. aasta lõpus on populaarne programmeerimiskeskuse
Stack Overflow keelas tehisintellekti loodud
vastused oma foorumis. Nad viitasid rakendusega seotud kõrgele veamäärale ja ebatäpsustele. Tehnoloogia on siiski alles algusjärgus; lisaks sellele on rahulolematus tehisintellekti abil loodud toodanguga tingitud nii kehvast kiirustehnoloogiast kui ka tehnoloogiast endast.
Hoolimata tehnikaga seotud kahtlustest, on
McKinsey hiljutine töö
toob esile mõju, mida kiireloomuline insenerlus juba avaldab programmeerimismaailmas. Konsultatsioonifirma Tehisintellekti olukord aastal 2023: Generatiivse tehisintellekti läbimurde aasta jagas kahte huvitavat suundumust. Esiteks, 7% tehisintellekti investeerinud organisatsioonidest võtab tööle kiireid insenere. Teiseks on tehisintellekti kasutavad ettevõtted vähendanud tehisintellektiga seotud tarkvaratehnika ametikohti 38%-lt 28%-le.
Üks võimalus neid suundumusi tõlgendada on see, et ettevõtted on selle seadistusega rahul ja valmis andma tarkvara automatiseerimise oma masinatele üle. Kuigi need arvud võivad olemasolevaid insenere ehmatada, näitab McKinsey uuring, et “ainult 8 protsenti ütleb, et nende töötajate arv väheneb rohkem kui viiendiku võrra”. Üldiselt peavad insenerid tõenäoliselt ümberõppima, et kasutada ära tehisintellekti poolt loodud tarkvara automatiseerimise suundumust.
Üks ilmne rakendus tehisintellekti abil loodud tarkvara automatiseerimiseks on automaatrobotite loomine. Kuigi prompt engineering on näiliselt kasutajasõbralik kasutajaliides tänu oma keskendumisele vestlusele, jääb siiski lahtiseks, kas see suudab olemasolevad lahendused välja tõrjuda.
Paljudel juhtudel on tarkvara nagu ZAPTEST juba demokratiseerinud tarkvara automatiseerimise turu. Nüüd on olemas koodita tööriistad, mis võimaldavad tehnikavälistel meeskondadel luua kvaliteetseid RPA-roboteid. Kuigi selline tarkvara nagu ChatGPT võib luua robotid, võib rakendamine ja hooldus osutuda keeruliseks kõigile, kes ei ole tarkvarainsener, ja isegi neile, kes seda on.
Inimese ja arvuti vahelise suhtluse salvestamine kasutajaliidesest ja nende liigutuste teisendamine koodiks on palju kasutajasõbralikum kui käskluste kasutamine. Koos LLMi potentsiaaliga toota ebastabiilset ja vigadest kubisevat koodi, võib öelda, et RPA tarkvara ei lähe lähitulevikus kuhugi.
#2. Struktureerimata andmete teisendamine
Struktureerimata andmed ei ole robotiseeritud protsesside automatiseerimisetugev külg. Tehnoloogia ei ole loodud selliste asjade nagu e-kirjad, pildid, heli ja muu käitlemiseks. RPA tööriistad vajavad eelnevalt määratletud andmemudeleid, millel on organiseeritud struktuurid.
Suur osa struktureerimata andmetest hõlmab loomulikku keelelist teksti. Selle teabe “mõistmiseks” ja selle semantilise tähenduse väljavõtmiseks luuakse suured keelemudelid. See loob märkimisväärse võimaluse meeskondadele, kes soovivad neid tekste tõlgendada ja konverteerida need RPA vahenditele vastuvõetavasse vormingusse.
Paljud meeskonnad on juba aastaid kasutanud loomulikku keeletöötlust (NLP), et aidata neid emotsioonianalüüsis. See protsess, mida tuntakse ka arvamuse kaevandamise nime all, aitab organisatsioonidel jälgida tarbijate tundeid ja hoiakuid kaubamärkide suhtes. Enamasti kasutatakse neid vahendeid positiivsete, negatiivsete ja neutraalsete tunnete tuvastamiseks tekstis. Tehnoloogia on aga võimeline ka märksa detailsemaks emotsioonide tuvastamiseks.
Kuigi turul on mitmeid tööriistu, mis pakuvad seda funktsiooni, pakub LLM tee mitmekülgsemaks kasutamiseks peale selle, kuidas inimesed toote või teenuse kohta arvamust avaldavad. Näiteks on andmeanalüüside populaarsus viimastel aastatel plahvatuslikult kasvanud. Suurandmed annavad ettevõtetele eelise, võimaldades neil saada teadmisi ja arusaamu, mis aitavad andmetel põhinevatel otsustusprotsessidel.
Robootiliste protsesside automatiseerimise vahendid võivad aidata andmete kogumisel. Kuid nagu me eespool mainisime, on neil raske toime tulla teatud tüüpi teabega. Kui aga RPA on ühendatud tehisintellekti vahenditega, mis kasutavad suuri keelemudeleid, saab RPA koguda suuri andmehulki ja kasutada neid äriintellekti (BI) vahendite jaoks vajaliku teabe genereerimiseks.
Generatiivse tehisintellekti üks põnevamaid aspekte on selle võime andmesisendite mõtestamiseks. Õige kiirendusega saavad meeskonnad muuta need andmed oma RPA-vahenditele sobivasse vormingusse.
RPA võib aidata muuta suurte andmete töövooge tõhusamaks. Alustuseks saate seda kasutada nii andmete sisestamisel kui ka väljavõtete tegemisel. Võib-olla kõige väärtuslikumad ja intrigeerivamad kasutusjuhud hõlmavad siiski RPA-vahendite kasutamist andmete teisendamiseks, puhastamiseks ja laadimiseks või andmete kiire, tõhusa ja täpse migratsiooni tagamiseks.
Teine oluline punkt on andmete haldamine. Andmepäringute automatiseerimine aitab organisatsioonidel jääda nõuetele vastavaks ja hoiab andmed käsitsi töötavate töötajate silmist eemal.
#3. Testimise automatiseerimine
Testi automatiseerimine on tarkvaraarenduse ringkondades hoogustunud, sest see võimaldab tarkvara kiiremat kontrollimist. Testimine ja kvaliteedi tagamine on traditsiooniliselt olnud kallis ja aeganõudev protsess; testide automatiseerimine pakub lahendust mõlemale probleemile.
Üks esimesi asju, mida saab teha kiire projekteerimine, on testjuhtumite kvaliteedi parandamine. Õigete juhiste abil saavad need masinad analüüsida testjuhtumeid ning tuvastada probleemid ja parandusmeetmed. See protsess võib suurendada testjuhtumite ulatust ja viia ulatuslikumate testideni.
Näiteks saab suure keelemudeli koodiga toita samamoodi nagu inimkontrollija. Need masinad suudavad koodi kiiresti läbi töötada ja tuvastada vead, vead ja isegi jõudlusprobleemid. Võib-olla veelgi intrigeerivam on see, et LLM-id pakuvad ka võimalust testjuhtumite koodi täiendamiseks lihtsatest katkenditest, mis kiirendab testjuhtumite loomist.
Prompt engineeringi eesmärk on lahendada paljud probleemid, mis on ajendanud Agile/DevOps lähenemise tekkimist tarkvaraarendusele. Insenerid soovivad tõhusaid, kergesti korratavaid teste, mis võimaldavad tuvastada probleeme enne rakenduste kasutuselevõttu. Selle idee seisneb selles, et vabastades aega, saavad tarkvaraarendajad keskenduda loovamatele ja väärtuspõhisematele ülesannetele.
Nagu on kirjeldatud ühes klassikalises dokumendis,
Tehniline võlg testautomaatikas
(K. Wiklund, 2012), võivad tarkvaraarendusmeeskonnad sattuda probleemidesse, kui nad kulutavad liiga palju aega oma tarkvara käsitsi testimisele ja kontrollimisele. Testide automatiseerimise lahenduste esialgsed kulud, automatiseerimiskogemuse puudumine ja isegi vanemate meetodite eelistamine võivad sellistele aeglustumistele kaasa aidata.
Üks kõige huvitavamaid aspekte agiilses tarkvaraarenduses on see, et
käitumispõhine arendus (BDD).
Mõiste viitab tarkvara arendamisele koos kasutajate oodatava käitumisega. Kuigi selle lähenemisviisi rakendamine võib selgelt aega säästa, on paljudel meeskondadel raske seda automatiseerimist ellu viia. Siiski võivad elukestva õppe programmid pakkuda lahendust.
Tehnilise võlgnevuse kõige levinumad sümptomid on kehv dokumentatsioon ja vähene testimine. Need on probleemid, mida tänapäeva elukestva õppejõud saavad aidata lahendada. Kuid teised märkimisväärsed sümptomid, nagu refaktooring, on praeguse Generative AI jaoks liiga keerulised ja ei pruugi anda ajasäästu.
Lõplikud mõtted
Geneeriva tehisintellekti rakendustel on tohutu potentsiaal. Kasutajasõbralik, vestluslik kasutajaliides võib aga olla eksitav. Paljud inimesed usuvad, et nende masinate abil on lihtne luua kvaliteetseid väljundeid. Suurepärane kiire projekteerimine on siiski keerulisem, kui te arvata oskate.
Efektiivne kiireloomuline projekteerimine nõuab palju katsetamist ja eksimusi. Samuti vajab see insenerilt palju ettenägelikkust, et tagada vastuste kasulikkus. Lõpuks on töö kontrollimine ja korduvkontroll oluline, sest vigade esinemise võimalus on hästi teada.
Kuigi kiire inseneri töökohad võivad olla tõusuteel, ei ole kõik veendunud. Harvard Business Review’s kirjutab Oguz A. Acar põnevalt, et “tulevaste põlvkondade tehisintellekti süsteemid muutuvad intuitiivsemaks ja osavamaks loomulikust keelest arusaamisel, vähendades vajadust hoolikalt väljatöötatud käskluste järele.”
Mida iganes tulevik ka ei tooks kaasa, geneeriline tehisintellekt on seal olemas. Ehkki kiireloomuline insenerlus on väga paljulubav, on raske öelda, millist rolli see täpselt mängib.
Huvitaval kombel on tarkvara testimise automatiseerimise tarkvara juba täis kasutusjuhtumeid ja edulugusid, mis näitavad selle sobivust tarkvaraarenduse kiirendamiseks, ilma et see kahjustaks rakenduste täpsust või terviklikku kontrollimist.
Tööriistad nagu ZAPTEST võimaldavad arendajatel juba praegu tegeleda selliste probleemidega nagu ebapiisav aeg ja ressursid, tehniline võlg, dokumentatsioon ning põhjalik testimine ja RPA. Veelgi enam, need vahendid on kasutajasõbralikumad kui prompt engineering, mis teeb need palju sobivamaks valikuks ka mittetehnilistele meeskondadele. Nagu alati, peitub tõeline potentsiaal nende põnevate automatiseerimistehnoloogiate ristumiskohas.