„ChatGPT”, „Bard” ir kiti žinomi didieji kalbos modeliai (LLM) per pastaruosius metus dominavo mūsų naujienų kanaluose. Ir teisingai. Šios įdomios technologijos leidžia mums pažvelgti į ateitį, dirbtinio intelekto galią ir galimybes.
Nors visuomenė daugiausia džiaugsmo sukėlė teksto, vaizdų ir vaizdo įrašų kūrimas, šiuos įrankius galima naudoti ir daugelyje kitų sričių, pavyzdžiui, programinės įrangos automatizavimo srityje.
Šiame straipsnyje bus gilinamasi į tai, kaip greitoji inžinerija gali padėti mums automatizuoti programinę įrangą. Tačiau pirmiausia turėtume išnagrinėti pačią greitąją inžineriją.
Kas yra greitoji inžinerija?
Dideli kalbos modeliai, tokie kaip ChatGPT, sukuria rezultatus pagal mūsų pateiktas užuominas arba sakinius. Tačiau rezultatai labai skiriasi priklausomai nuo to, kokius žodžius ar nurodymus naudojame. Kai įvedame neaiškius ir netikslius nurodymus, rezultatas gali būti netikslus.
Greitoji inžinerija – tai apgalvotas įvesties projektavimas, padedantis šioms įdomioms dirbtinio intelekto sistemoms išgauti tikslesnį, tikslesnį ir galiausiai naudingesnį turinį.
Didelės kalbos modelio (LLM) sistemos naudoja natūralios kalbos apdorojimą (NLP), kad interpretuotų mūsų pateiktus teiginius. Mašinos šiuos klausimus ar nurodymus (t. y. užklausas) paverčia kodu ir, naudodamosi didžiulėmis duomenų saugyklomis, sukuria turinį mūsų nurodytu formatu (t. y. tekstą, vaizdus, kodą).
„ChatGPT” buvo apmokyta daugiau nei
570 GB duomenų
. Mokomąją medžiagą sudaro knygos, straipsniai, interneto tekstai ir pan. Kitaip tariant, šiuose duomenų rinkiniuose sukaupta neįsivaizduojamai daug žinių.
Nors galime suprasti procesą, daug kas, kas vyksta po šių sistemų gaubtu, vyksta mums nematant. Žinoma, kontroliuojame įvesties ir išvesties duomenis ir mokome sistemą, tačiau kaip tiksliai šie algoritmai veikia ir priima sprendimus, vis dar yra paslaptis. Niujorko universiteto dirbtinio intelekto profesoriaus Semo Bowmano žodžiais tariant, „Mes jį sukūrėme, apmokėme, bet nežinome, ką jis daro.”
Skubi inžinerija padeda mums suvaldyti šį chaosą, naudojant rezultatus, kurie yra nuspėjami ir tinkami naudoti. Jie suteikia mums galimybę atskleisti didžiulį žinių kiekį, esantį šiose programose.
Ši disciplina tampa nauja karjeros sritimi
, visur atsiranda kursai, nes įmonės aiškinasi, kaip galima panaudoti šią galingą technologiją.
Kaip gali padėti greitoji inžinerija
su programinės įrangos automatizavimu?
Programinės įrangos automatizavimas ir LLM turi daug bendro. Jie abu žvilgsnis į ateitį, kurioje mašinos papildys žmogaus kūrybiškumą ir padės kurti greitesnes ir produktyvesnes darbo vietas.
Yra kelios įdomios sritys, kuriose abi šios technologijos gali susilieti. Pateikiame tris būdus, kaip galime naudoti greitąją inžineriją programinės įrangos automatizavimo srityje.
#1. Kodo generavimas
Kodo rašymas yra vienas iš perspektyviausių didelės kalbos modelių taikymo būdų. dirbtinio intelekto magistrantūros studijos dar tik pradedamos rengti. Per ateinančius kelerius metus ši technologija turėtų būti tobulinama, nes bus skiriama daugiau išteklių tiek kompiuteriams, tiek mokymams.
Ilgainiui ši pažanga gali padėti dirbtiniam intelektui rašyti ištisas programas, kai žmogaus įsikišimas bus ribotas arba jo visai nebus. Tačiau kol kas LLM turi tam tikrų apribojimų. LLM kodavimo išvesties kokybė daugiausia priklauso nuo įvesties kokybės. Kaip sakoma, šiukšlės įeina, šiukšlės išeina.
Žinoma, ne tik veiksminga greitoji inžinerija yra kliūtis. Kaip siūloma ChatGPT ir dideli kalbos modeliai akademinėje aplinkoje: Galimybės ir iššūkiai (Meyer, 2023), „Šiuo metu ChatGPT yra labiau tikėtina, kad ji bus sėkminga tiksliai rašant mažesnius kodo blokus, o jos patikimumas rašant didesnes ir sudėtingesnes programas (pvz., programinės įrangos paketą) yra abejotinas.”
Be to, neseniai žurnale „Nature” išspausdintame straipsnyje kai kurie kompiuterių mokslininkai įspėjo, kad į kodo generavimą naudojant LLM turėtume žiūrėti atsargiai. Kitas šiuolaikinis dokumentas,
Dideli kalbos modeliai ir paprastos, kvailos klaidos
(Jesse, 2023), parodė, kaip populiarus LLM, Codex, kurį naudoja pardavėjas Copilot, sukuria „žinomus, pažodinius SStuB net 2 kartus dažniau nei žinomą, pažodinį teisingą kodą”.
Nors šių problemų negalima ignoruoti, vis dar pagrįstai džiaugiamasi, kad šios programos gali padėti demokratizuoti programinės įrangos kūrimą ir padėti tiek techninėms, tiek netechninėms komandoms.
Bene didžiausią įspūdį daro tai, kad tokios priemonės kaip ChatGPT gali labai greitai sukurti funkcinį kodą. Naudodami tinkamą raginimą inžinieriai gali sutrumpinti tam tikrų tipų kodų programavimo laiką ir taip užtikrinti greitesnį programinės įrangos kūrimo gyvavimo ciklą.
2022 m. pabaigoje populiarus programavimo centras
Stack Overflow uždraudė dirbtinio intelekto generuojamą
atsakymus savo forume. Jie nurodė didelį klaidų skaičių ir netikslumus, susijusius su programa. Tačiau ši technologija dar tik kuriama, be to, nepasitenkinimas dirbtinio intelekto sukuriamais rezultatais kyla tiek dėl prastos greitosios inžinerijos, tiek dėl pačios technologijos.
Nepaisant nuogąstavimų dėl technologijų, a
McKinsey neseniai paskelbtame straipsnyje
pabrėžia greitosios inžinerijos poveikį programavimo pasauliui. Konsultacinės įmonės Dirbtinio intelekto būklė 2023 m: Generatyvinio dirbtinio intelekto proveržio metai pasidalijo dviem įdomiomis tendencijomis. Pirma, 7 proc. organizacijų, investavusių į dirbtinį intelektą, samdo greituosius inžinierius. Antra, dirbtinį intelektą naudojančios įmonės sumažino su dirbtiniu intelektu susijusių programinės įrangos inžinerijos pareigybių skaičių nuo 38 proc. iki 28 proc.
Vienas iš būdų interpretuoti šias tendencijas yra tai, kad įmonės jaučiasi patogiai ir yra pasirengusios perduoti programinės įrangos automatizavimą savo mašinoms. Nors šie skaičiai gali išgąsdinti esamus inžinierius, „McKinsey” apklausa rodo, kad „tik 8 proc. teigia, kad jų darbuotojų skaičius sumažės daugiau nei penktadaliu”. Apskritai inžinieriams tikriausiai reikės persikvalifikuoti, kad galėtų pasinaudoti dirbtinio intelekto sukurtos programinės įrangos automatizavimo tendencija.
Vienas akivaizdus dirbtinio intelekto sukurtos programinės įrangos automatizavimo pritaikymas yra automatizavimo robotų kūrimas. Tačiau nors greitoji inžinerija yra tariamai patogi sąsaja, nes joje daugiausia dėmesio skiriama pokalbiams, dar neaišku, ar ji gali pakeisti esamus sprendimus.
Daugeliu atžvilgių tokia programinė įranga kaip ZAPTEST jau demokratizavo programinės įrangos automatizavimo rinką. Dabar jau yra įrankių be kodo, kurie leidžia ne techninių specialistų komandoms kurti aukštos kokybės RPA robotus. Nors tokia programinė įranga kaip „ChatGPT” gali sukurti botus, jų diegimas ir priežiūra gali būti sudėtinga visiems, kurie nėra programinės įrangos inžinieriai, ir net tiems, kurie jais yra.
Žmogaus ir kompiuterio sąveikos įrašymas iš grafinės sąsajos ir šių judesių konvertavimas į kodą yra daug patogesnis nei raginimų naudojimas. Kartu su LLM potencialu kurti nestabilų ir klaidų kupiną kodą, galima teigti, kad artimiausioje ateityje RPA programinė įranga niekur nedings.
#2. Nestruktūrizuotų duomenų konvertavimas
Nestruktūrizuoti duomenys nėra stiprioji robotų procesų automatizavimopusė. Ši technologija nebuvo sukurta tokiems dalykams kaip el. laiškai, nuotraukos, garso įrašai ir kt. RPA įrankiams reikia iš anksto nustatytų duomenų modelių su organizuotomis struktūromis.
Didelę nestruktūrizuotų duomenų dalį sudaro natūralios kalbos tekstas. Šiai informacijai „suprasti” ir semantinei reikšmei iš jos išgauti kuriami dideli kalbos modeliai. Tai suteikia daug galimybių komandoms, norinčioms interpretuoti šiuos tekstus ir paversti juos į RPA įrankiams priimtiną formatą.
Daugelis komandų jau daugelį metų naudoja natūralios kalbos apdorojimą (NLP), kuris padeda atlikti nuotaikų analizę. Šis procesas, dar vadinamas nuomonių gavyba, padeda organizacijoms nuolat stebėti vartotojų jausmus ir požiūrį į prekių ženklus. Dažniausiai šios priemonės naudojamos teigiamoms, neigiamoms ir neutralioms nuotaikoms tekste aptikti. Tačiau šia technologija galima nustatyti ir daug smulkesnes emocijas.
Nors rinkoje yra keletas šią funkciją siūlančių įrankių, LLM suteikia galimybę įvairiapusiškiau naudoti ne tik tam, kad suprastumėte, kaip žmonės vertina produktą ar paslaugą. Pavyzdžiui, pastaraisiais metais labai išpopuliarėjo duomenų analizė. Didieji duomenys suteikia bendrovėms pranašumą, nes leidžia joms gauti įžvalgų ir supratimo, kurie padeda priimti duomenimis pagrįstus sprendimus.
Robotizuotų procesų automatizavimo įrankiai gali padėti rinkti duomenis. Tačiau, kaip jau minėjome, jie susiduria su tam tikrais informacijos tipais. Tačiau sujungus su dirbtinio intelekto įrankiais, kuriuose naudojami didelės kalbos modeliai, RPA gali surinkti didelius duomenų kiekius ir panaudoti juos verslo žvalgybos (BI) įrankiams reikalingai informacijai generuoti.
Vienas iš įdomesnių generatyvinio dirbtinio intelekto aspektų yra jo gebėjimas suprasti įvestų duomenų prasmę. Naudodamos tinkamą greitąją inžineriją, komandos gali paversti šiuos duomenis formatu, kuris tinka jų RPA įrankiams.
RPA gali padėti efektyvinti didžiųjų duomenų darbo eigą. Pirmiausia galite naudoti ją duomenų įvedimui ir ištraukimui. Tačiau bene vertingiausi ir labiausiai intriguojantys naudojimo atvejai yra susiję su RPA įrankių naudojimu duomenims transformuoti, valyti ir įkelti arba užtikrinti, kad duomenų migracija vyktų greitai, efektyviai ir tiksliai.
Kitas svarbus dalykas – duomenų valdymas. Duomenų užklausų automatizavimas padeda organizacijoms išlaikyti atitiktį reikalavimams ir saugo duomenis nuo rankinio darbo darbuotojų akių.
#3. Testavimo automatizavimas
Programinės įrangos kūrimo aplinkoje testavimo automatizavimas tapo populiarus, nes jis suteikia galimybę greičiau patikrinti programinę įrangą. Testavimas ir kokybės užtikrinimas tradiciškai yra brangūs ir daug laiko reikalaujantys procesai; testavimo automatizavimas padeda išspręsti abu šiuos iššūkius.
Vienas pirmųjų dalykų, kuriuos gali padaryti greitoji inžinerija, yra pagerinti testavimo atvejų kokybę. Gavusios tinkamus nurodymus, šios mašinos gali analizuoti bandymų atvejus ir nustatyti problemas bei jų sprendimo būdus. Šis procesas gali padidinti testavimo atvejų apimtį ir padėti atlikti išsamesnius testus.
Pavyzdžiui, didelės apimties kalbos modeliui galite pateikti kodą taip pat, kaip ir žmogui recenzentui. Šios mašinos gali greitai peržiūrėti kodą ir aptikti klaidų, klaidų ir net nustatyti našumo problemas. Galbūt dar labiau intriguoja tai, kad LLM taip pat suteikia galimybę užbaigti testavimo atvejo kodą iš paprastų fragmentų, taip pagreitinant testavimo atvejų kūrimą.
„Prompt engineering” siekia išspręsti daugelį problemų, dėl kurių atsirado ” Agile/DevOps” požiūris į programinės įrangos kūrimą. Inžinieriai nori efektyvių, lengvai pakartojamų testų, kuriais būtų galima nustatyti problemas prieš diegiant programas. Idėja ta, kad atlaisvindami laiką programinės įrangos kūrėjai gali sutelkti dėmesį į kūrybiškesnes ir vertingesnes užduotis.
Kaip aprašyta klasikiniame dokumente,
Techninė skola testavimo automatizavime
(K. Wiklund, 2012), programinės įrangos kūrimo komandos gali susidurti su problemomis, jei per daug laiko skirs rankiniam programinės įrangos testavimui ir tikrinimui. Pradinės bandymų automatizavimo sprendimų sąnaudos, automatizavimo patirties stoka ir netgi pirmenybė senesniems metodams gali lemti tokį sulėtėjimą.
Vienas iš įdomiausių „Agile” programinės įrangos kūrimo aspektų yra
į elgseną orientuotą kūrimą (BDD).
Ši sąvoka susijusi su programinės įrangos kūrimu atsižvelgiant į numatomą naudotojo elgesį. Nors taikant šį metodą galima sutaupyti laiko, daugelis komandų susiduria su sunkumais, norėdamos įgyvendinti šį automatizavimą. Tačiau LLM gali būti sprendimas.
Vieni iš dažniausiai pasitaikančių techninių skolų požymių yra prasta dokumentacija ir patikimo testavimo trūkumas. Šias problemas šiandien gali padėti išspręsti LLM. Tačiau kiti pastebimi simptomai, pavyzdžiui, refaktoringas, yra pernelyg sudėtingi dabartiniam generatyviniam dirbtiniam intelektui ir gali nepadėti sutaupyti laiko.
Galutinės mintys
Generatyvinės dirbtinio intelekto programos turi didžiulį potencialą. Tačiau vartotojui patogi, su juo bendraujanti sąsaja gali būti klaidinanti. Daugelis žmonių mano, kad iš šių mašinų lengva gauti kokybišką produkciją. Tačiau puiki greitoji inžinerija yra sudėtingesnė, nei galima tikėtis.
Veiksminga greitoji inžinerija reikalauja daug bandymų ir klaidų. Be to, inžinierius turi daug ką apgalvoti, kad atsakymai būtų naudingi. Galiausiai, svarbu tikrinti ir pakartotinai tikrinti darbą, nes gerai žinoma, kad gali būti padaryta klaidų.
Nors greitų inžinerinių darbų skaičius gali didėti, ne visi tuo įsitikinę. Oguzas A. Acaras žurnale „Harvard Business Review” pateikia įdomų argumentą, kad „būsimos kartos dirbtinio intelekto sistemos taps intuityvesnės ir geriau supras natūralią kalbą, todėl sumažės kruopščiai sukurtų užuominų poreikis.”
Kad ir kokia būtų ateitis, generatyvinis dirbtinis intelektas bus jos dalis. Nors greitoji inžinerija teikia daug vilčių, sunku tiksliai pasakyti, kokį vaidmenį ji atliks.
Įdomu tai, kad programinės įrangos testavimo automatizavimo programinė įranga jau turi daugybę naudojimo atvejų ir sėkmės istorijų, įrodančių, kad ji tinka pagreitinti programinės įrangos kūrimą, nesumažinant tikslumo ar visapusiško programų patikrinimo.
Tokie įrankiai kaip ZAPTEST jau leidžia kūrėjams spręsti tokias problemas kaip nepakankamas laikas ir ištekliai, techninė skola, dokumentacija, išsamus testavimas ir RPA. Be to, šios priemonės yra patogesnės naudoti nei greitoji inžinerija, todėl jos kur kas tinkamesnės ne techninio profilio komandoms. Kaip visada, tikrasis potencialas slypi šių įdomių automatizavimo technologijų sankirtoje.