ChatGPT, Bard un citi pazīstami lielie valodas modeļi (LLM) pēdējā gada laikā ir dominējuši mūsu ziņu plūsmās. Un tas ir pareizi. Šīs aizraujošās tehnoloģijas sniedz ieskatu mākslīgā intelekta nākotnē, tā jaudā un iespējās.
Lai gan sabiedrībā liela uzmanība tiek pievērsta teksta, attēlu un video izveidei, šos rīkus var izmantot arī daudzās citās jomās, piemēram, programmatūras automatizācijā.
Šajā rakstā tiks padziļināti aplūkots, kā ātrā inženierija var palīdzēt mums ar programmatūras automatizāciju. Tomēr vispirms mums būtu jāpārbauda pati ātrās inženierijas sistēma.
Kas ir ātrā inženierija?
Lieli valodas modeļi, piemēram, ChatGPT, rada rezultātus, pamatojoties uz mūsu sniegtajiem ieteikumiem vai teikumiem. Tomēr rezultāti ievērojami atšķiras atkarībā no izmantotajiem vārdiem vai norādījumiem. Ja mēs ievadām neskaidrus un neprecīzus norādījumus, rezultāts var nebūt precīzs.
Ar “Prompt engineering” apzīmē pārdomātu ievades datu izstrādi, kas palīdz no šīm aizraujošajām mākslīgā intelekta sistēmām iegūt precīzāku, precīzāku un galu galā lietojamu saturu.
Lielo valodas modeļu (LLM) sistēmas izmanto dabiskās valodas apstrādi (NLP), lai interpretētu mūsu sniegtos paziņojumus. Mašīnas šos jautājumus vai norādījumus (t. i., pamudinājumus) pārvērš kodos un apstrādā tos savos milzīgajos datu krātuvēs, lai radītu saturu mūsu norādītajā formātā (t. i., tekstu, attēlus, kodu).
ChatGPT tika apmācīts vairāk nekā
570 GB datu
. Mācību materiālus veido grāmatas, raksti, tīmekļa teksti utt. Citiem vārdiem sakot, šajās datu kopās ir neiedomājami daudz zināšanu.
Lai gan mēs varam saprast šo procesu, liela daļa no tā, kas notiek zem šo sistēmu pārsega, notiek ārpus mūsu redzesloka. Protams, mēs kontrolējam ieejas un izejas datus un apmācām sistēmu, taču tas, kā tieši šie algoritmi darbojas un pieņem lēmumus, joprojām ir noslēpums. Ņujorkas Universitātes mākslīgā intelekta profesors Sems Bovmens (Sam Bowman) saka, “Mēs to uzbūvējām, mēs to apmācījām, bet nezinām, ko tas dara.”
Ātrā inženierija palīdz mums pārvaldīt šo haosu, izmantojot rezultātus, kas nodrošina paredzamus un izmantojamus rezultātus. Tās piedāvā mums iespēju atklāt milzīgo zināšanu apjomu, kas ir šajās lietojumprogrammās.
Šī disciplīna kļūst par jaunu karjeras virzienu
, kur visur tiek organizēti kursi, jo uzņēmumi cenšas noskaidrot, kā viņi var izmantot šo spēcīgo tehnoloģiju.
Kā var palīdzēt tūlītēja inženiertehniskā palīdzība
ar programmatūras automatizāciju?
Programmatūras automatizācijai un LLM ir daudz kopīga. Abi šie uzņēmumi piedāvā ieskatu nākotnē, kurā mašīnas papildinās cilvēku radošumu, lai radītu ātrākas un produktīvākas darbavietas.
Ir vairākas aizraujošas jomas, kurās abas šīs tehnoloģijas var saplūst. Šeit ir trīs veidi, kā programmatūras automatizācijā varam izmantot tūlītēju inženieriju.
#1. Koda ģenerēšana
Koda rakstīšana ir viens no daudzsološākajiem lielo valodas modeļu lietojumiem. Mākslīgā intelekta LLM ir tikai sākumstadijā. Turpmākajos gados šai tehnoloģijai vajadzētu uzlaboties, jo tiks palielināti gan skaitļošanas, gan apmācības resursi.
Ilgtermiņā šie sasniegumi varētu ļaut mākslīgajam intelektam rakstīt veselas programmas ar ierobežotu cilvēka iejaukšanos vai bez tās. Tomēr pagaidām LLM ir daži ierobežojumi. LLM kodēšanas izejas kvalitāte galvenokārt ir atkarīga no ievades kvalitātes. Kā mēdz teikt, atkritumi iekšā, atkritumi ārā.
Protams, ne tikai efektīva ātrās reaģēšanas inženierija ir šķērslis, kas kavē ceļu. Kā ierosināts ChatGPT un lieli valodas modeļi akadēmiskajā vidē: Iespējas un izaicinājumi (Meyer, 2023): “Pašlaik ChatGPT ir veiksmīgāks, precīzi rakstot mazākus koda blokus, bet tā uzticamība, rakstot lielākas/sarežģītākas programmas (piemēram, programmatūras paketi), ir apšaubāma.”
Turklāt nesen žurnālā Nature publicētajā rakstā daži datorzinātnieki brīdināja, ka kodu ģenerēšanai, izmantojot LLM, būtu jāpieiet piesardzīgi. Vēl viens laikmetīgs dokuments,
Lieli valodas modeļi un vienkāršas, muļķīgas kļūdas
(Jesse, 2023) demonstrēja, kā populārais LLM, Codex, ko izmanto ražotājs Copilot, rada “zināmus, burtiski pareizus SStuB, kas ir 2 reizes biežāk nekā zināms, burtiski pareizs kods”.
Lai gan šīs problēmas nevar ignorēt, joprojām ir daudz pamatota satraukuma par to, kā šīs programmas var palīdzēt demokratizēt programmatūras izstrādi, atbalstot gan tehniskās, gan netehniskās komandas.
Iespējams, visiespaidīgākais ir tas, ka tādi rīki kā ChatGPT spēj ļoti ātri radīt funkcionālu kodu. Izmantojot pareizo palīgrīku, inženieri var samazināt laiku, kas nepieciešams, lai programmētu noteikta veida kodu, tādējādi nodrošinot ātrāku programmatūras izstrādes dzīves ciklu.
2022. gada beigās populārais programmēšanas centrs
Stack Overflow aizliedza mākslīgā intelekta radītu
atbildes tās forumā. Viņi norādīja uz lielo kļūdu īpatsvaru un neprecizitātēm, kas saistītas ar šo lietojumprogrammu. Tomēr šī tehnoloģija vēl ir tikai attīstības stadijā, turklāt neapmierinātība ar mākslīgā intelekta radītajiem rezultātiem ir saistīta gan ar sliktu tūlītēju izstrādi, gan ar pašu tehnoloģiju.
Neraugoties uz bažām par tehnoloģiju, a
McKinsey nesen publicētajā darbā
uzsver, kādu ietekmi programmēšanas pasaulē jau tagad atstāj tūlītējā inženierija. Konsultāciju uzņēmuma Mākslīgā intelekta stāvoklis 2023. gadā: Ģeneratīvā mākslīgā intelekta izrāviena gads dalījās ar divām interesantām tendencēm. Pirmkārt, 7 % organizāciju, kas ir ieguldījušas mākslīgā intelekta attīstībā, nodarbina ātros inženierus. Otrkārt, uzņēmumi, kas izmanto mākslīgo intelektu, ir samazinājuši ar mākslīgo intelektu saistīto programmatūras inženieru amatu skaitu no 38% līdz 28%.
Viens no veidiem, kā interpretēt šīs tendences, ir tāds, ka uzņēmumi ir apmierināti ar šo iestatījumu un ir gatavi nodot programmatūras automatizāciju savām iekārtām. Lai gan šie skaitļi varētu pārsteigt esošos inženierus, McKinsey aptauja liecina, ka “tikai 8 procenti no tiem apgalvo, ka viņu darbinieku skaits samazināsies vairāk nekā par piektdaļu”. Kopumā inženieriem, visticamāk, būs jāpārkvalificējas, lai izmantotu mākslīgā intelekta radītās programmatūras automatizācijas tendenci.
Viens no acīmredzamiem mākslīgā intelekta radītas programmatūras automatizācijas lietojumiem ir automatizācijas robotu izveide. Tomēr, lai gan, pateicoties savam uzsvaram uz sarunām, ātrā inženierija ir šķietami lietotājam draudzīga saskarne, vēl nav skaidrs, vai tā spēs aizstāt esošos risinājumus.
Daudzējādā ziņā tāda programmatūra kā ZAPTEST jau ir demokratizējusi programmatūras automatizācijas tirgu. Tagad ir pieejami nekodēšanas rīki, kas ļauj komandām, kuras nav tehniskas personas, izveidot augstas kvalitātes RPA robotus. Lai gan ar tādu programmatūru kā ChatGPT var izveidot robotus, to ieviešana un uzturēšana var izrādīties sarežģīta ikvienam, kurš nav programmatūras inženieris, un pat tiem, kuri ir.
Cilvēka un datora mijiedarbības ierakstīšana no jūsu grafiskās saskarnes un šo kustību pārvēršana kodā ir daudz draudzīgāka lietotājam nekā uzvedņu izmantošana. Ņemot vērā LLM potenciālu radīt nestabilu un kļūdu pilnu kodu, var apgalvot, ka RPA programmatūra tuvākajā nākotnē nekur nepazudīs.
#2. Nestrukturētu datu konvertēšana
Nestrukturizēti dati nav robotu procesu automatizācijasstiprā puse. Tehnoloģijas nebija paredzētas tādu lietu apstrādei kā e-pasti, attēli, audio un citas. RPA rīkiem ir nepieciešami iepriekš definēti datu modeļi ar organizētām struktūrām.
Liela daļa nestrukturētu datu ir saistīti ar dabiskās valodas tekstu. Tiek veidoti lieli valodas modeļi, lai “saprastu” šo informāciju un iegūtu no tās semantisko nozīmi. Tādējādi tas rada ievērojamas iespējas komandām, kas vēlas interpretēt šos tekstus un pārvērst tos formātā, kas ir pieņemams RPA rīkiem.
Daudzas komandas jau gadiem ilgi izmanto dabiskās valodas apstrādi (NLP), lai palīdzētu veikt noskaņojuma analīzi. Šis process, ko dēvē arī par viedokļu izpēti, palīdz organizācijām sekot līdzi patērētāju jūtām un attieksmei pret zīmoliem. Vairumā gadījumu šie rīki tiek izmantoti, lai tekstā noteiktu pozitīvus, negatīvus un neitrālus noskaņojumus. Tomēr šī tehnoloģija spēj noteikt arī daudz detalizētākas emocijas.
Lai gan tirgū ir vairāki rīki, kas piedāvā šādu funkcionalitāti, LLM piedāvā iespēju izmantot to daudzpusīgāk, ne tikai lai saprastu, kā cilvēki jūtas par produktu vai pakalpojumu. Piemēram, pēdējos gados ir strauji pieaugusi datu analītikas popularitāte. Lielie dati sniedz uzņēmumiem priekšrocības, ļaujot tiem gūt ieskatu un izpratni, kas palīdz pieņemt uz datiem balstītus lēmumus.
Robotizēto procesu automatizācijas rīki var palīdzēt apkopot datus. Tomēr, kā jau minējām iepriekš, viņiem ir grūtības ar noteikta veida informāciju. Tomēr, apvienojumā ar mākslīgā intelekta rīkiem, kas izmanto lielos valodas modeļus, RPA var apkopot lielu datu apjomu un izmantot to, lai ģenerētu informāciju, kas nepieciešama biznesa inteliģences (BI) rīkiem.
Viens no aizraujošākajiem ģeneratīvā mākslīgā intelekta aspektiem ir tā spēja veidot datu ievades jēgu. Izmantojot pareizo tūlītējo inženierijas metodi, komandas var pārvērst šos datus formātā, kas ir piemērots RPA rīkiem.
RPA var palīdzēt padarīt efektīvākas lielo datu darba plūsmas. Vispirms varat to izmantot, lai palīdzētu gan ievadīt, gan iegūt datus. Tomēr, iespējams, vērtīgākie un intriģējošākie izmantošanas gadījumi ir saistīti ar RPA rīku izmantošanu datu pārveidošanai, tīrīšanai un ielādei vai datu migrācijas ātrai, efektīvai un precīzai veikšanai.
Vēl viens svarīgs aspekts ir datu pārvaldība. Datu pieprasījumu automatizēšana palīdz organizācijām saglabāt atbilstību un pasargā datus no manuāli strādājošo redzesloka.
#3. Testēšanas automatizācija
Programmatūras izstrādes aprindās testēšanas automatizācija ir kļuvusi populāra, jo tā nodrošina ātrāku programmatūras pārbaudes veidu. Testēšana un kvalitātes nodrošināšana tradicionāli ir bijuši dārgi un laikietilpīgi procesi; testēšanas automatizācija piedāvā risinājumu abām šīm problēmām.
Viena no pirmajām lietām, ko var izdarīt ātrā inženierija, ir uzlabot testa gadījumu kvalitāti. Izmantojot pareizos norādījumus, šīs iekārtas var analizēt testēšanas gadījumus un identificēt problēmas un to novēršanas līdzekļus. Šis process var paplašināt testa gadījumu darbības jomu un radīt visaptverošākus testus.
Piemēram, lielam valodas modeļa kodam varat ievadīt kodu līdzīgi kā cilvēkam, kas veic pārskatīšanu. Šīs iekārtas var ātri pārbaudīt kodu un pamanīt kļūdas, kļūdas un pat noteikt veiktspējas problēmas. Iespējams, vēl intriģējošāk ir tas, ka LLM piedāvā arī iespēju pabeigt testa gadījumu kodu no vienkāršiem fragmentiem, tādējādi paātrinot testa gadījumu izveidi.
Prompt engineering mērķis ir risināt daudzas no problēmām, kas ir veicinājušas Agile/DevOps pieejas rašanos programmatūras izstrādē. Inženieri vēlas efektīvus, viegli atkārtojamus testus, kas ļauj atklāt problēmas pirms lietojumprogrammu izvietošanas. Ideja ir tāda, ka, atbrīvojot laiku, programmatūras izstrādātāji var koncentrēties uz radošākiem un uz vērtību orientētiem uzdevumiem.
Kā izklāstīts klasiskajā dokumentā,
Tehniskais parāds testēšanas automatizācijā
(K. Wiklund, 2012), programmatūras izstrādes komandas var saskarties ar problēmām, ja tās pārāk daudz laika tērē manuālai programmatūras testēšanai un verifikācijai. Šo palēnināšanos var veicināt testēšanas automatizācijas risinājumu sākotnējās izmaksas, automatizācijas pieredzes trūkums un pat vēlme izmantot vecākas metodes.
Viens no interesantākajiem Agile programmatūras izstrādes aspektiem ir saistīts ar
uz uzvedību orientētu izstrādi (Behavior-Driven Development – BDD).
Šis jēdziens attiecas uz programmatūras izstrādi, ņemot vērā paredzamo lietotāja uzvedību. Lai gan šādas pieejas ieviešana var ietaupīt laiku, daudzas komandas saskaras ar grūtībām, lai īstenotu šo automatizāciju. Tomēr LLM var piedāvāt risinājumu.
Daži no visbiežāk sastopamajiem tehniskā parāda simptomiem ir slikta dokumentācija un nepietiekami rūpīga testēšana. Šīs ir problēmas, kuras mūsdienās var palīdzēt atrisināt LLM. Tomēr citi ievērojami simptomi, piemēram, refaktorizācija, ir pārāk sarežģīti pašreizējam ģeneratīvajam mākslīgajam intelektam un var nenodrošināt laika ietaupījumu.
Nobeiguma domas
Ģeneratīvā mākslīgā intelekta lietojumiem ir milzīgs potenciāls. Tomēr lietotājam draudzīgā, sarunvalodas saskarne var būt maldinoša. Daudzi cilvēki uzskata, ka ir vienkārši radīt kvalitatīvu produkciju no šīm iekārtām. Tomēr izcila ātrās reaģēšanas inženierija ir sarežģītāka, nekā jūs varētu gaidīt.
Efektīvai tūlītējai inženierijai ir nepieciešams daudz izmēģinājumu un kļūdu. Inženierim ir arī daudz jādomā, lai nodrošinātu, ka atbildes ir noderīgas. Visbeidzot, darba pārbaude un atkārtota pārbaude ir svarīga, ņemot vērā plaši izziņoto kļūdu iespējamību.
Lai gan ātrās inženierijas darbavietu skaits, iespējams, pieaug, ne visi ir pārliecināti par to. Oguz A. Acar Harvard Business Review raksta aizraujošu argumentu, ka “nākamo paaudžu mākslīgā intelekta sistēmas kļūs intuitīvākas un prasmīgāk sapratīs dabisko valodu, tādējādi samazinot nepieciešamību pēc rūpīgi izstrādātiem ieteikumiem.”
Lai kāda būtu nākotne, ģeneratīvais mākslīgais intelekts būs tās sastāvdaļa. Lai gan ātrā inženierija ir daudzsološa, ir grūti precīzi noteikt, kāda būs tās loma.
Interesanti, ka programmatūras testēšanas automatizācijas programmatūra jau ir pilna ar izmantošanas gadījumiem un veiksmes stāstiem, kas apliecina tās piemērotību programmatūras izstrādes paātrināšanai, nemazinot precizitāti vai visaptverošu lietojumprogrammu pārbaudi.
Tādi rīki kā ZAPTEST jau tagad ļauj izstrādātājiem risināt tādas problēmas kā nepietiekams laiks un resursi, tehniskais parāds, dokumentācija, kā arī visaptveroša testēšana un RPA. Turklāt šie rīki ir lietotājam draudzīgāki nekā ātrās inženierijas rīki, tāpēc tie ir daudz piemērotāki arī komandām, kas nav tehniskas personas. Kā vienmēr, reālais potenciāls slēpjas šo aizraujošo automatizācijas tehnoloģiju krustpunktā.