fbpx

ChatGPT, Bard in drugi pomembni veliki jezikovni modeli (LLM) so v zadnjem letu prevladovali v naših novicah. In to upravičeno. Te vznemirljive tehnologije nam ponujajo vpogled v prihodnost, moč in možnosti umetne inteligence.

Čeprav je bilo v javnosti veliko navdušenja nad ustvarjanjem besedila, slik in videoposnetkov, se ta orodja lahko uporabljajo tudi na številnih drugih področjih, na primer pri avtomatizaciji programske opreme.

V tem članku se bomo poglobili v to, kako nam lahko hitri inženiring pomaga pri avtomatizaciji programske opreme. Vendar pa bi morali najprej preučiti sam hitri inženiring.

 

Kaj je hitri inženiring?

 

Veliki jezikovni modeli, kot je ChatGPT, ustvarjajo rezultate na podlagi namigov ali stavkov, ki jim jih posredujemo. Vendar se rezultati zelo razlikujejo glede na besede ali navodila, ki jih uporabljamo. Ko vnesemo nejasna in nenatančna navodila, se lahko zgodi, da rezultat ne bo ustrezen.

Promptni inženiring se nanaša na premišljeno oblikovanje vnosov, ki pomagajo iz teh zanimivih sistemov umetne inteligence izvabiti natančnejšo, točnejšo in na koncu uporabnejšo vsebino.

Sistemi z velikim jezikovnim modelom (LLM) uporabljajo obdelavo naravnega jezika (NLP) za razlago izjav, ki jim jih posredujemo. Stroji ta vprašanja ali navodila (tj. pozive) spremenijo v kodo in jih uporabijo v svojih obsežnih zbirkah podatkov, da ustvarijo vsebino v obliki, ki jo določimo (tj. besedilo, slike, koda).

ChatGPT je bil usposobljen na več kot
570 GB podatkov
. Učno gradivo je sestavljeno iz knjig, člankov, spletnih besedil itd. Z drugimi besedami, ti podatkovni nizi vsebujejo nepredstavljivo veliko znanja.

Čeprav lahko razumemo proces, se večina dogajanja pod pokrovom teh sistemov dogaja zunaj našega vidnega polja. Seveda nadzorujemo vhodne in izhodne podatke ter usposabljamo sistem, vendar je natančno delovanje in odločanje teh algoritmov še vedno nekakšna skrivnost. Sam Bowman, profesor umetne inteligence na Univerzi v New Yorku, pravi, “Zgradili smo ga, usposobili, vendar ne vemo, kaj počne.”

Hitri inženiring nam pomaga obvladovati ta kaos z uporabo izhodov, ki dajejo predvidljive in uporabne rezultate. Ponujajo nam pot do odpiranja ogromnih količin znanja, ki se skriva v teh aplikacijah.
Ta disciplina se razvija kot nova poklicna pot.
s tečaji, ki nastajajo povsod, saj se podjetja trudijo, da bi izkoristila to zmogljivo tehnologijo.

Kako lahko hitro inženirstvo pomaga

z avtomatizacijo programske opreme?

uporaba chatcpg za različne naloge avtomatizacije programske opreme in rpa

Avtomatizacija programske opreme in magisterij izobrazbe imajo veliko skupnega. Oba ponujata vpogled v prihodnost, v kateri bodo stroji dopolnili človeško ustvarjalnost in ustvarili hitrejša in produktivnejša delovna mesta.

Obstaja več zanimivih področij, na katerih se lahko obe tehnologiji združita. V nadaljevanju so predstavljeni trije načini, kako lahko pri avtomatizaciji programske opreme uporabimo hitri inženiring.

 

#1. Ustvarjanje kode

generiranje kode s hitrim inženiringom pri avtomatizaciji testiranja

Pisanje kode je ena od najbolj obetavnih aplikacij velikih jezikovnih modelov. Magistrski študij umetne inteligence je še v povojih. V naslednjih nekaj letih se bo ta tehnologija izboljšala, saj bo na področju računalništva in usposabljanja namenjenih več sredstev.

Dolgoročno bi ta napredek lahko omogočil, da bi umetna inteligenca pisala celotne programe z omejenim človeškim posredovanjem ali brez njega. Vendar pa imajo programi LLM za zdaj nekaj omejitev. Kakovost izhoda kodiranja LLM je odvisna predvsem od kakovosti vhoda. Smeti noter, smeti ven, kot pravijo.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Seveda pa ovira ni le učinkovit hitri inženiring. Kot je predlagano v ChatGPT in veliki jezikovni modeli v akademski sferi: Priložnosti in izzivi (Meyer, 2023): “Trenutno je ChatGPT bolj uspešen pri natančnem pisanju manjših blokov kode, medtem ko je njegova zanesljivost pri pisanju večjih/kompleksnejših programov (npr. programskega paketa) vprašljiva.”

Poleg tega so v nedavnem članku v reviji Nature nekateri računalniški znanstveniki opozorili, da bi se morali ustvarjanja kode z LLM lotevati previdno. Še en sodoben dokument,
Veliki jezikovni modeli in preproste, neumne napake
(Jesse, 2023) je prikazal, kako priljubljeni LLM, Codex, ki ga uporablja prodajalec Copilot, proizvaja “znane, dobesedne SStuB-je kar 2x bolj verjetno kot znano, dobesedno pravilno kodo”.

Čeprav teh težav ni mogoče zanemariti, je še vedno veliko upravičenega navdušenja nad tem, kako lahko ti programi pomagajo demokratizirati razvoj programske opreme s podporo tako tehničnim kot netehničnim ekipam.

Morda je najbolj impresiven podatek, da lahko orodja, kot je ChatGPT, zelo hitro ustvarijo funkcionalno kodo. S pravim pozivom lahko inženirji skrajšajo čas, ki je potreben za programiranje določenih vrst kode, kar zagotavlja hitrejši življenjski cikel razvoja programske opreme.

Konec leta 2022 bo priljubljeno programsko vozlišče
Stack Overflow prepovedal uporabo umetne inteligence
odgovore na svojem forumu. Navedli so visoko stopnjo napak in netočnosti, povezanih z aplikacijo. Vendar je tehnologija še v začetni fazi, poleg tega pa je nezadovoljstvo z rezultati, ki jih ustvarja umetna inteligenca, v enaki meri posledica slabega hitrega inženiringa kot same tehnologije.

Kljub pomislekom glede tehnologije je
McKinsey nedavno objavil članek
poudarja vpliv, ki ga ima hitri inženiring na svet programiranja. Svetovalno podjetje Stanje umetne inteligence v letu 2023: Leto preboja generativne umetne inteligence je delil dva zanimiva trenda. Prvič, 7 % organizacij, ki vlagajo v umetno inteligenco, zaposluje hitre inženirje. Drugič, podjetja, ki uporabljajo umetno inteligenco, so zmanjšala število delovnih mest, povezanih z umetno inteligenco, z 38 % na 28 %.

Te trende si lahko razlagamo tako, da so podjetja zadovoljna s to nastavitvijo in so pripravljena prenesti avtomatizacijo programske opreme na svoje stroje. Čeprav bi te številke lahko presenetile obstoječe inženirje, McKinseyjeva raziskava kaže, da “le 8 odstotkov meni, da se bo število njihovih zaposlenih zmanjšalo za več kot petino”. Na splošno bodo inženirji najverjetneje potrebovali nova znanja in spretnosti, da bodo lahko izkoristili trend avtomatizacije programske opreme, ki jo ustvarja umetna inteligenca.

Ena od očitnih aplikacij za avtomatizacijo programske opreme, ki jo ustvarja umetna inteligenca, je ustvarjanje robotov za avtomatizacijo. Čeprav je hitri inženiring navidezno uporabniku prijazen vmesnik, saj se osredotoča na pogovor, pa še ni jasno, ali lahko nadomesti obstoječe rešitve.

Programska oprema, kot je ZAPTEST, je v mnogih pogledih že demokratizirala trg avtomatizacije programske opreme. Na voljo so orodja brez kode, ki netehničnim ekipam omogočajo izdelavo visokokakovostnih robotov RPA. Programska oprema, kot je ChatGPT, sicer omogoča izgradnjo botov, vendar se lahko implementacija in vzdrževanje izkažeta za težavna za vse, ki niso inženirji programske opreme, in tudi za tiste, ki so.

Snemanje interakcij med človekom in računalnikom iz grafičnega vmesnika in pretvorba teh gibov v kodo je veliko bolj prijazno do uporabnika kot uporaba pozivov. V kombinaciji z možnostjo, da LLM ustvarja nestabilno kodo, ki je polna napak, lahko rečemo, da programska oprema RPA v bližnji prihodnosti ne bo nikamor odšla.

 

#2. Pretvarjanje nestrukturiranih podatkov

kontrolni seznam uat, orodja za testiranje spletnih aplikacij, avtomatizacija in drugo

Nestrukturirani podatki niso močna stran robotske avtomatizacije procesov. Tehnologija ni bila zasnovana za obdelavo stvari, kot so e-pošta, slike, zvok in drugo. Orodja RPA potrebujejo vnaprej določene podatkovne modele z organiziranimi strukturami.

Velik del nestrukturiranih podatkov vključuje besedilo v naravnem jeziku. Za “razumevanje” teh informacij in pridobivanje semantičnega pomena iz njih so zgrajeni veliki jezikovni modeli. To je velika priložnost za ekipe, ki želijo ta besedila interpretirati in jih pretvoriti v obliko, sprejemljivo za orodja RPA.

Številne ekipe že leta uporabljajo obdelavo naravnega jezika (NLP), ki jim pomaga pri analizi čustev. Ta postopek, znan tudi kot raziskovanje mnenj, pomaga organizacijam spremljati občutke in stališča potrošnikov do blagovnih znamk. V večini primerov se ta orodja uporabljajo za zaznavanje pozitivnih, negativnih in nevtralnih čustev v besedilu. Vendar je tehnologija sposobna tudi veliko bolj podrobnega zaznavanja čustev.

Čeprav je na trgu več orodij, ki ponujajo to funkcionalnost, pa LLM omogoča bolj vsestransko uporabo, ki presega razumevanje občutkov ljudi o izdelku ali storitvi. V zadnjih letih je na primer zelo priljubljena podatkovna analitika. Veliki podatki dajejo podjetjem prednost, saj jim omogočajo pridobivanje vpogledov in razumevanja, ki pomagajo pri sprejemanju odločitev na podlagi podatkov.

Pri zbiranju podatkov vam lahko pomagajo orodja za robotsko avtomatizacijo procesov. Vendar pa imajo, kot smo omenili zgoraj, težave z določenimi vrstami informacij. Vendar lahko RPA v povezavi z orodji umetne inteligence, ki uporabljajo velike jezikovne modele, zbere velike količine podatkov in jih uporabi za ustvarjanje informacij, ki so potrebne za orodja poslovne inteligence (BI).

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Eden od zanimivejših vidikov generativne umetne inteligence je njena sposobnost osmišljanja vhodnih podatkov. Z ustreznim inženiringom lahko ekipe te podatke spremenijo v obliko, ki je primerna za orodja RPA.

RPA lahko pomaga povečati učinkovitost delovnih postopkov z velikimi podatki. Za začetek si lahko z njim pomagate pri vnosu in pridobivanju podatkov. Vendar pa so morda najbolj dragoceni in zanimivi primeri uporabe povezani z uporabo orodij RPA za preoblikovanje, čiščenje in nalaganje podatkov ali zagotavljanje hitre, učinkovite in natančne migracije podatkov.

Druga pomembna točka je upravljanje podatkov. Avtomatizacija zahtevkov za podatke pomaga organizacijam, da ostanejo skladne s predpisi, in ohranja podatke pred očmi ročnih delavcev.

 

#3. Avtomatizacija testiranja

Avtomatizacija testiranja je v krogih razvijalcev programske opreme zelo priljubljena, saj omogoča hitrejše preverjanje programske opreme. Testiranje in zagotavljanje kakovosti sta tradicionalno draga in dolgotrajna postopka; avtomatizacija testiranja je rešitev za oba izziva.

Ena od prvih stvari, ki jih lahko naredi hitri inženiring, je izboljšanje kakovosti testnih primerov. S pravimi pozivi lahko ti stroji analizirajo testne primere ter ugotovijo težave in načine za njihovo odpravo. Ta postopek lahko izboljša obseg testnih primerov in privede do obsežnejših testov.

Velikemu jezikovnemu modelu lahko na primer posredujete kodo na enak način kot človeškemu pregledovalcu. Ti stroji lahko hitro pregledajo kodo in odkrijejo napake, hrošče in celo težave z zmogljivostjo. Morda še bolj zanimivo je, da programi LLM ponujajo tudi možnost dopolnitve kode testnega primera iz preprostih utrinkov, kar pospeši ustvarjanje testnih primerov.

Cilj hitrega inženiringa je reševanje številnih vprašanj, zaradi katerih se je pojavil pristop Agile/DevOps k razvoju programske opreme. Inženirji želijo učinkovite in enostavno ponovljive teste, s katerimi lahko odkrijejo težave, še preden se aplikacije začnejo uporabljati. Ideja je, da se lahko razvijalci programske opreme s sprostitvijo časa osredotočijo na bolj ustvarjalne naloge, ki temeljijo na vrednosti.

Kot je opisano v klasičnem dokumentu,
Tehnični dolg pri avtomatizaciji testiranja
(K. Wiklund, 2012), lahko ekipe za razvoj programske opreme naletijo na težave, če porabijo preveč časa za ročno testiranje in preverjanje svoje programske opreme. Začetni stroški rešitev za avtomatizacijo testiranja, pomanjkanje izkušenj z avtomatizacijo in celo prednost starejšim metodam lahko prispevajo k tem upočasnitvam.

Eden od najbolj zanimivih vidikov agilnega razvoja programske opreme vključuje
razvoj, ki temelji na vedenju (BDD).
Koncept se nanaša na razvoj programske opreme s pričakovanim vedenjem uporabnikov. Medtem ko lahko izvajanje tega pristopa prihrani čas, ima veliko ekip težave pri izvajanju te avtomatizacije. Vendar pa je lahko rešitev v obliki mehanizmov vseživljenjskega učenja.

Med najpogostejšimi simptomi tehničnega dolga sta slaba dokumentacija in pomanjkanje temeljitega testiranja. To so težave, ki jih lahko pomagajo reševati današnji magistri prava. Vendar so drugi pomembni simptomi, kot je refaktorizacija, preveč zapleteni za sedanjo generativno umetno inteligenco in morda ne bodo prinesli prihranka časa.

 

Zaključne misli

alfa testiranje proti beta testiranju

Generativne aplikacije umetne inteligence imajo ogromen potencial. Vendar je uporabniku prijazen pogovorni vmesnik lahko zavajajoč. Veliko ljudi meni, da je enostavno ustvariti kakovostne rezultate iz teh strojev. Vendar je odličen hiter inženiring bolj zapleten, kot bi morda pričakovali.

Učinkovit hitri inženiring zahteva veliko poskusov in napak. Prav tako je potrebno veliko premisleka inženirja, da zagotovi uporabnost odgovorov. In končno, preverjanje in ponovno preverjanje dela je pomembno zaradi možnosti napak, o katerih se veliko govori.

Čeprav je število hitrih inženirskih delovnih mest v porastu, o tem niso prepričani vsi. Oguz A. Acar v reviji Harvard Business Review navaja zanimivo trditev, da “prihodnje generacije sistemov umetne inteligence bodo vedno bolj intuitivne in spretne pri razumevanju naravnega jezika, kar bo zmanjšalo potrebo po skrbno zasnovanih napotkih.”

Ne glede na prihodnost bo generativna umetna inteligenca vključena v dogajanje. Čeprav hitri inženiring veliko obeta, je težko natančno določiti, kakšno vlogo bo imel.

Zanimivo je, da je programska oprema za avtomatizacijo testiranja programske opreme že polna primerov uporabe in zgodb o uspehu, ki dokazujejo njeno primernost za pospešitev razvoja programske opreme, ne da bi pri tem ogrozili natančnost ali celovito preverjanje aplikacij.

Orodja, kot je ZAPTEST, razvijalcem že omogočajo reševanje težav, kot so neustrezen čas in viri, tehnični dolg, dokumentacija ter celovito testiranje in RPA. Poleg tega so ta orodja uporabniku prijaznejša od hitrega inženiringa, zato so veliko bolj primerna za netehnične ekipe. Kot vedno se pravi potencial skriva na stičišču teh vznemirljivih tehnologij avtomatizacije.

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post

Virtual Expert

ZAPTEST

ZAPTEST Logo