Get your 6-month No-Cost Opt-Out offer for Unlimited Software Automation?

ChatGPT, Bard i drugi istaknuti modeli velikih jezika (LLM-ovi) dominirali su našim vijestima tijekom prošle godine. I to s pravom. Ove uzbudljive tehnologije nude nam uvid u budućnost, moć i mogućnosti umjetne inteligencije.

Iako se velik dio uzbuđenja javnosti usredotočio na stvaranje teksta, slika i videozapisa, ovi se alati mogu koristiti za mnoge druge discipline, poput automatizacije softvera.

Ovaj će članak djelovati kao duboki zaron u to kako nam brzi inženjering može pomoći u automatizaciji softvera. Međutim, naša prva luka poziva trebala bi biti ispitivanje samog brzog inženjeringa.

 

Što je brzi inženjering?

 

Veliki jezični modeli poput ChatGPT-a proizvode izlaze na temelju uputa ili rečenica koje im pružamo. Međutim, rezultati se uvelike razlikuju ovisno o riječima ili uputama koje koristimo. Kada unesemo nejasne i neprecizne upute, izlaz možda neće pogoditi oznaku.

Brzi inženjering odnosi se na razmatrani dizajn ulaza koji pomažu izmamiti precizniji, točniji i na kraju upotrebljiviji sadržaj iz ovih uzbudljivih sustava umjetne inteligencije.

Sustavi velikog jezičnog modela (LLM) koriste obradu prirodnog jezika (NLP) za tumačenje izjava koje im dajemo. Strojevi pretvaraju ta pitanja ili upute (tj. upite) u kôd i provlače ih kroz svoje ogromne spremišta podataka kako bi proizveli sadržaj u bilo kojem formatu koji navedemo (tj. tekst, slike, kod).

ChatGPT je obučen na više
od 570 GB podataka
. Materijal za obuku sastoji se od knjiga, članaka, web tekstova i tako dalje. Drugim riječima, ovi skupovi podataka sadrže nezamislivu količinu znanja.

Iako možda razumijemo proces, mnogo toga što se događa ispod haube ovih sustava događa se izvan našeg vidokruga. Naravno, kontroliramo ulaze i izlaze i obučavamo sustav, ali upravo kako ti algoritmi rade i donose odluke još uvijek je neka misterija. Riječima Sama Bowmana, profesora umjetne inteligencije na Sveučilištu New York, “Izgradili smo ga, obučili, ali ne znamo što radi.”

Brzi inženjering pomaže nam upravljati tim kaosom koristeći izlaze koji daju predvidljive i upotrebljive rezultate. Nude nam put za otključavanje ogromnih količina znanja unutar ovih aplikacija.
Disciplina se pojavljuje kao nova karijera
, a tečajevi niču posvuda dok tvrtke razrađuju kako mogu iskoristiti ovu moćnu tehnologiju.

Kako može zatražiti inženjersku pomoć

S automatizacijom softvera?

Korištenje CHATCPG-a za razne softverske automatizacije i RPA zadatke

Automatizacija softvera i LLM-ovi imaju mnogo zajedničkog. Oboje nude uvid u budućnost u kojoj će strojevi povećati ljudsku kreativnost kako bi stvorili brža, produktivnija radna mjesta.

Postoji nekoliko uzbudljivih područja u kojima se obje ove tehnologije mogu približiti. Evo tri načina na koje možemo koristiti brzi inženjering u automatizaciji softvera.

 

#1. Generiranje koda

Generiranje koda s brzim inženjeringom u automatizaciji ispitivanja

Pisanje koda jedna je od najperspektivnijih aplikacija velikih jezičnih modela. AI LLM-ovi su u povojima. U sljedećih nekoliko godina ta bi se tehnologija trebala poboljšati jer se računalstvu i osposobljavanju dodaje više resursa.

Dugoročno gledano, tim bi napretkom umjetna inteligencija mogla pisati cijele programe s ograničenom ili nikakvom ljudskom intervencijom. Međutim, za sada, LLM-ovi imaju neka ograničenja. Kvaliteta izlaza LLM kodiranja ovisi uglavnom o kvaliteti ulaza. Smeće unutra, smeće van, kako kažu.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Naravno, nije samo učinkovit brzi inženjering taj koji djeluje kao prepreka. Kao što je predloženo u ChatGPT i veliki jezični modeli u akademskoj zajednici: mogućnosti i izazovi (Meyer, 2023), “Trenutno je vjerojatnije da će ChatGPT biti uspješan u točnom pisanju manjih blokova koda, dok je njegova pouzdanost u pisanju većih / složenijih programa (npr. Softverski paket) upitna.”

Nadalje, u nedavnom članku u časopisu Nature, neki računalni znanstvenici upozorili su da bismo generiranju koda trebali pristupiti s LLM-ovima s određenim oprezom. Još jedan suvremeni rad,
Veliki jezični modeli i jednostavne, glupe greške
(Jesse, 2023.), pokazali su kako popularni LLM, Codex, koji koristi dobavljač Copilot, proizvodi “poznati, doslovni SStuB-ovi čak 2x koliko je vjerojatno od poznatog, doslovno ispravnog koda.”

Iako se ti problemi ne mogu zanemariti, još uvijek postoji mnogo opravdanih uzbuđenja o tome kako ti programi mogu pomoći demokratizaciji razvoja softvera podržavajući tehničke i netehničke timove.

Možda najimpresivnija stvar koju treba uzeti u obzir je da alati poput ChatGPT-a mogu vrlo brzo proizvesti funkcionalni kod. Uz pravi upit, inženjeri mogu smanjiti vrijeme potrebno za programiranje određenih vrsta koda, osiguravajući brži životni ciklus razvoja softvera.

Krajem 2022. popularno programsko središte
Stack Overflow zabranilo je stvaranje umjetne inteligencije
Odgovori na njegovom forumu. Naveli su visoku stopu pogrešaka i netočnosti povezane s aplikacijom. Međutim, tehnologija je u početnoj fazi; nadalje, nezadovoljstvo proizvodnjom generiranom umjetnom inteligencijom duguje jednako lošem brzom inženjeringu kao i samoj tehnologiji.

Unatoč nedoumicama oko tehnologije,
nedavni McKinseyjev članak
ističe utjecaj koji promptni inženjering već ima u svijetu programiranja. Konzultantska tvrtka Stanje umjetne inteligencije 2023.: Generativna godina bijega umjetne inteligencije podijelio dva zanimljiva trenda. Prvo, 7% organizacija koje su uložile u umjetnu inteligenciju zapošljavaju brze inženjere. Drugo, tvrtke koje koriste umjetnu inteligenciju smanjile su uloge softverskog inženjeringa povezane s umjetnom inteligencijom s 38% na 28%.

Jedan od načina tumačenja ovih trendova je da tvrtkama odgovara ovo postavljanje i spremne su predati automatizaciju softvera svojim strojevima. Iako bi ove brojke mogle zaprepastiti postojeće inženjere, istraživanje McKinseyja sugerira da “samo 8 posto kaže da će se veličina njihove radne snage smanjiti za više od petine”. Sve u svemu, inženjeri će se vjerojatno morati prekvalificirati kako bi iskoristili trend automatizacije softvera generirane umjetnom inteligencijom.

Jedna očita aplikacija za automatizaciju softvera generirana umjetnom inteligencijom uključuje stvaranje robota za automatizaciju. Međutim, iako je promptni inženjering prividno korisničko sučelje zahvaljujući usredotočenosti na razgovor, ostaje za vidjeti može li zamijeniti postojeća rješenja.

Na mnogo načina, softver poput ZAPTEST-a već je demokratizirao tržište automatizacije softvera. Alati bez koda sada su ovdje koji omogućuju netehničkim timovima izgradnju visokokvalitetnih RPA botova. Iako softver poput ChatGPT-a može izraditi botove, implementacija i održavanje mogli bi se pokazati lukavima za svakoga tko nije softverski inženjer, pa čak i za one koji jesu.

Snimanje interakcija između čovjeka i računala iz vašeg GUI-ja i pretvaranje tih pokreta u kôd daleko je jednostavnije za upotrebu od korištenja uputa. U kombinaciji s LLM-ovim potencijalom za proizvodnju nestabilnog koda posutog pogreškama, može se reći da RPA softver ne ide nigdje u doglednoj budućnosti.

 

#2. Pretvorba nestrukturiranih podataka

kontrolni popis uat, alati za testiranje web aplikacija, automatizacija i više

Nestrukturirani podaci nisu jača strana robotske automatizacije procesa. Tehnologija nije izgrađena za rukovanje stvarima poput e-pošte, slika, zvuka i još mnogo toga. RPA alati trebaju unaprijed definirane podatkovne modele s organiziranim strukturama.

Veliki dio nestrukturiranih podataka uključuje tekst na prirodnom jeziku. Veliki jezični modeli izgrađeni su kako bi “razumjeli” ove informacije i iz njih izvukli semantičko značenje. Kao takav, to stvara značajnu priliku za timove koji žele interpretirati te tekstove i pretvoriti ih u format prihvatljiv RPA alatima.

Mnogi timovi već godinama koriste obradu prirodnog jezika (NLP) kako bi im pomogli u analizi osjećaja. Ovaj proces, poznat i kao rudarenje mišljenja, pomaže organizacijama da prate osjećaje i stavove potrošača prema robnim markama. U većini slučajeva ti se alati koriste za otkrivanje pozitivnih, negativnih i neutralnih osjećaja unutar teksta. Međutim, tehnologija je sposobna i za daleko granularniju emocionalnu detekciju.

Iako na tržištu postoji nekoliko alata koji nude ovu funkcionalnost, LLM-ovi pružaju put do svestranije upotrebe izvan razumijevanja što ljudi misle o proizvodu ili usluzi. Na primjer, analitika podataka posljednjih je godina porasla u popularnosti. Big Data daje tvrtkama prednost omogućujući im da steknu uvide i razumijevanja koja pomažu u donošenju odluka na temelju podataka.

Robotski alati za automatizaciju procesa mogu vam pomoći u prikupljanju podataka. Međutim, kao što smo već spomenuli, bore se s određenim vrstama informacija. Međutim, kada je uparen s alatima umjetne inteligencije koji koriste velike jezične modele, RPA može prikupiti velike količine podataka i koristiti ih za generiranje informacija potrebnih za alate poslovne inteligencije (BI).

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Jedan od uzbudljivijih aspekata generativne umjetne inteligencije je njegova sposobnost da shvati unose podataka. Uz pravi promptni inženjering, timovi mogu pretvoriti ove podatke u format koji odgovara njihovim RPA alatima.

RPA može pomoći da tijekovi rada velikih podataka budu učinkovitiji. Za početak, možete ga koristiti za pomoć pri unosu podataka i ekstrakciji. Međutim, možda najvrjedniji i najintrigantniji slučajevi upotrebe uključuju korištenje RPA alata za transformaciju, čišćenje i učitavanje podataka ili osiguravanje brzog, učinkovitog i točnog odvijanja migracije podataka.

Druga važna točka je upravljanje podacima. Automatizacija zahtjeva za podacima pomaže organizacijama da ostanu usklađene i čuva podatke izvan vidokruga ručnih radnika.

 

#3. Automatizacija testiranja

Test Automation je uzletio u krugovima razvoja softvera jer pruža brži način provjere softvera. Testiranje i osiguranje kvalitete tradicionalno su bili skupi i dugotrajni procesi; Automatizacija testova pruža rješenje za oba ova izazova.

Jedna od prvih stvari koje brzi inženjering može učiniti je poboljšati kvalitetu testnih slučajeva. Uz prave upute, ovi strojevi mogu analizirati testne slučajeve i identificirati probleme i lijekove. Taj postupak može poboljšati opseg testnih slučajeva i dovesti do sveobuhvatnijih testova.

Na primjer, kod velikog jezičnog modela možete unijeti na isti način kao i ljudski pregledavatelj. Ovi strojevi mogu brzo proći kroz kod i uočiti pogreške, greške, pa čak i identificirati probleme s performansama. Možda intrigantnije, LLM-ovi također nude mogućnost popunjavanja koda testnog slučaja iz pukih isječaka, ubrzavajući stvaranje testnih slučajeva.

Brzi inženjering ima za cilj riješiti mnoga pitanja koja su potaknula pojavu Agile / DevOps pristupa razvoju softvera. Inženjeri žele učinkovite, lako ponovljive testove koji mogu uočiti probleme prije implementacije aplikacija. Ideja je da se oslobađanjem vremena programeri softvera mogu usredotočiti na kreativnije zadatke vođene vrijednošću.

Kao što je navedeno u klasičnom radu,
Tehnički dug u automatizaciji testova
(K. Wiklund, 2012.), timovi za razvoj softvera mogu naići na probleme ako troše previše vremena na ručno testiranje i provjeru svog softvera. Početni troškovi rješenja za automatizaciju testova, nedostatak iskustva automatizacije, pa čak i sklonost starijim metodama mogu pridonijeti tim usporavanjima.

Jedan od najzanimljivijih aspekata razvoja agilnog softvera uključuje
razvoj vođen ponašanjem (BDD).
Koncept se odnosi na razvoj softvera s očekivanim ponašanjem korisnika. Iako provedba ovog pristupa može jasno uštedjeti vrijeme, mnogi se timovi bore da ožive ovu automatizaciju. Međutim, LLM-ovi mogu pružiti rješenje.

Neki od najčešćih simptoma tehničkog duga uključuju lošu dokumentaciju i nedostatak robusnog testiranja. To su problemi koje LLM-ovi današnjice mogu pomoći u rješavanju. Međutim, drugi značajni simptomi, poput refaktoriranja, previše su složeni za trenutnu generativnu umjetnu inteligenciju i možda neće rezultirati uštedom vremena.

 

Završne misli

alfa testiranje vs beta testiranje

Generativne primjene umjetne inteligencije imaju ogroman potencijal. Međutim, razgovorno sučelje prilagođeno korisniku može zavarati. Mnogi ljudi vjeruju da je jednostavno generirati kvalitetne izlaze iz ovih strojeva. Međutim, izvrstan brzi inženjering složeniji je nego što biste očekivali.

Učinkovit brzi inženjering zahtijeva puno pokušaja i pogrešaka. Također je potrebno puno promišljanja u ime inženjera kako bi se osiguralo da su odgovori korisni. Konačno, provjera i ponovna provjera rada važna je zbog dobro objavljenog potencijala za pogreške.

Iako bi brzi inženjerski poslovi mogli biti u porastu, nisu svi uvjereni. Pišući u Harvard Business Reviewu, Oguz A. Acar iznosi fascinantan argument da “buduće generacije sustava umjetne inteligencije postat će intuitivnije i vještije u razumijevanju prirodnog jezika, smanjujući potrebu za pomno osmišljenim poticajima.”

Što god budućnost nosi, Generativna umjetna inteligencija će biti tu u kombinaciji. Iako brzi inženjering ima puno obećanja, teško je sa sigurnošću reći kakvu će preciznu ulogu igrati.

Zanimljivo je da je softver za automatizaciju softverskih testova već prepun slučajeva upotrebe i priča o uspjehu koji pokazuju njegovu prikladnost za ubrzavanje razvoja softvera bez ugrožavanja točnosti ili sveobuhvatne provjere aplikacija.

Alati poput ZAPTEST-a već omogućuju programerima rješavanje problema poput neadekvatnog vremena i resursa, tehničkog duga, dokumentacije i sveobuhvatnog testiranja i RPA. Štoviše, ovi su alati jednostavniji za upotrebu od brzog inženjeringa, što ih čini daleko prikladnijim opcijama za netehničke timove. Kao i uvijek, pravi potencijal leži na sjecištu ovih uzbudljivih tehnologija automatizacije.

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