ChatGPT, Bard a ďalšie významné veľké jazykové modely (LLM) dominovali našim spravodajským kanálom v minulom roku. A je to tak správne. Tieto vzrušujúce technológie nám ponúkajú pohľad do budúcnosti, silu a možnosti umelej inteligencie.
Aj keď sa verejnosť sústredila na vytváranie textu, obrázkov a videa, tieto nástroje sa dajú použiť v mnohých ďalších oblastiach, napríklad pri automatizácii softvéru.
Tento článok bude slúžiť ako hlboký ponor do toho, ako nám môže promptné inžinierstvo pomôcť pri automatizácii softvéru. V prvom rade by sme však mali preskúmať samotné pohotové inžinierstvo.
Čo je to pohotové inžinierstvo?
Veľké jazykové modely ako ChatGPT vytvárajú výstupy na základe podnetov alebo viet, ktoré im poskytneme. Výsledky sa však výrazne líšia v závislosti od slov alebo pokynov, ktoré používame. Keď zadávame nejasné a nepresné pokyny, výstup nemusí byť presný.
Promptné inžinierstvo sa vzťahuje na premyslený návrh vstupov, ktoré pomáhajú získať presnejší, presnejší a v konečnom dôsledku použiteľnejší obsah z týchto zaujímavých systémov umelej inteligencie.
Systémy LLM (Large Language Model) používajú na interpretáciu výrokov, ktoré im zadávame, spracovanie prirodzeného jazyka (NLP). Stroje tieto otázky alebo pokyny (t. j. výzvy) premenia na kód a spustia ich cez svoje rozsiahle úložiská údajov, aby vytvorili obsah v nami určenom formáte (t. j. text, obrázky, kód).
ChatGPT bol vyškolený na viac ako
570 GB údajov
. Školiace materiály pozostávajú z kníh, článkov, webových textov atď. Inými slovami, tieto súbory údajov obsahujú nepredstaviteľné množstvo poznatkov.
Aj keď môžeme rozumieť tomuto procesu, väčšina toho, čo sa deje pod kapotou týchto systémov, sa odohráva mimo nášho dohľadu. Iste, kontrolujeme vstupy a výstupy a trénujeme systém, ale ako presne tieto algoritmy fungujú a rozhodujú, je stále záhadou. Podľa slov Sama Bowmana, profesora umelej inteligencie na Newyorskej univerzite, „Postavili sme ho, vycvičili sme ho, ale nevieme, čo robí.“
Promptné inžinierstvo nám pomáha zvládať tento chaos pomocou výstupov, ktoré prinášajú predvídateľné a použiteľné výsledky. Ponúkajú nám cestu k odomknutiu obrovského množstva poznatkov v týchto aplikáciách.
Táto disciplína sa stáva novou kariérou
, pričom všade vznikajú kurzy, pretože podniky zisťujú, ako môžu využiť túto výkonnú technológiu.
Ako môže pomôcť rýchle inžinierstvo
s automatizáciou softvéru?
Automatizácia softvéru a LLM majú veľa spoločného. Obe ponúkajú pohľad na budúcnosť, v ktorej stroje rozšíria ľudskú kreativitu a vytvoria rýchlejšie a produktívnejšie pracoviská.
Existuje niekoľko zaujímavých oblastí, v ktorých sa môžu obe tieto technológie zbližovať. Tu sú tri spôsoby, ako môžeme využiť promptné inžinierstvo pri automatizácii softvéru.
#1. Generovanie kódu
Písanie kódu je jednou z najsľubnejších aplikácií veľkých jazykových modelov. Programy LLM v oblasti umelej inteligencie sú v plienkach. V nasledujúcich rokoch by sa táto technológia mala zlepšiť, pretože sa pridá viac prostriedkov na výpočtovú techniku aj na odbornú prípravu.
Z dlhodobého hľadiska by tieto pokroky mohli viesť k tomu, že umelá inteligencia bude písať celé programy s obmedzeným alebo žiadnym ľudským zásahom. V súčasnosti však majú programy LLM určité obmedzenia. Kvalita výstupu kódovania LLM závisí najmä od kvality vstupu. Ako sa hovorí, odpadky dnu, odpadky von.
Samozrejme, prekážkou nie je len účinná pohotová technika. Ako sa navrhuje v ChatGPT a veľké jazykové modely v akademickom prostredí: Príležitosti a výzvy (Meyer, 2023): „V súčasnosti je pravdepodobnejšie, že ChatGPT bude úspešný pri presnom písaní menších blokov kódu, zatiaľ čo jeho spoľahlivosť pri písaní väčších/zložitejších programov (napr. softvérového balíka) je otázna.“
Okrem toho v nedávnom článku v časopise Nature niektorí počítačoví vedci varovali, že by sme mali pristupovať k tvorbe kódu pomocou LLM s určitou opatrnosťou. Ďalší súčasný dokument,
Veľké jazykové modely a jednoduché, hlúpe chyby
(Jesse, 2023), ukázal, ako populárny LLM Codex, ktorý používa dodávateľ Copilot, produkuje „známe, doslovné SStuB až 2x pravdepodobnejšie ako známy, doslovne správny kód“.
Hoci tieto problémy nemožno ignorovať, stále existuje veľa oprávneného nadšenia z toho, ako tieto programy môžu pomôcť demokratizovať vývoj softvéru podporou technických aj netechnických tímov.
Azda najpôsobivejšie je, že nástroje ako ChatGPT dokážu veľmi rýchlo vytvoriť funkčný kód. Vďaka správnej výzve môžu inžinieri skrátiť čas potrebný na naprogramovanie určitých typov kódu, čím sa zabezpečí rýchlejší životný cyklus vývoja softvéru.
Koncom roka 2022 sa v populárnom programovacom centre
Stack Overflow zakázalo generovať umelú inteligenciu
odpovede na svojom fóre. Uvádzali vysokú chybovosť a nepresnosti spojené s aplikáciou. Táto technológia je však v počiatočnom štádiu a navyše nespokojnosť s výsledkami generovanými umelou inteligenciou je spôsobená rovnako zlým pohotovým inžinierstvom ako samotnou technológiou.
Napriek obavám z tejto technológie, a
nedávny článok spoločnosti McKinsey
poukazuje na vplyv, ktorý už má pohotové inžinierstvo na svet programovania. Poradenská spoločnosť Stav umelej inteligencie v roku 2023: Generatívna umelá inteligencia v prelomovom roku sa podelili o dva zaujímavé trendy. Po prvé, 7 % organizácií, ktoré investovali do umelej inteligencie, zamestnáva pohotových inžinierov. Po druhé, spoločnosti, ktoré využívajú AI, znížili počet pracovných pozícií v oblasti softvérového inžinierstva súvisiacich s AI z 38 % na 28 %.
Jedným zo spôsobov interpretácie týchto trendov je, že podniky sú s týmto nastavením spokojné a sú pripravené odovzdať automatizáciu softvéru svojim strojom. Hoci tieto čísla môžu súčasných inžinierov zaskočiť, z prieskumu spoločnosti McKinsey vyplýva, že „len 8 % z nich tvrdí, že počet ich zamestnancov sa zníži o viac ako pätinu“. Inžinieri sa budú musieť celkovo rekvalifikovať, aby využili trend automatizácie softvéru generovaného umelou inteligenciou.
Jednou zo zrejmých aplikácií pre automatizáciu softvéru generovanú umelou inteligenciou je vytváranie automatizačných botov. Hoci je promptné inžinierstvo vďaka svojmu zameraniu na konverzáciu zdanlivo užívateľsky prívetivé rozhranie, ešte sa len ukáže, či dokáže nahradiť existujúce riešenia.
Softvér ako ZAPTEST už v mnohých ohľadoch demokratizoval trh s automatizáciou softvéru. Teraz sú tu nástroje bez kódu, ktoré umožňujú netechnickým tímom vytvárať vysokokvalitné roboty RPA. Hoci softvér ako ChatGPT dokáže vytvárať botov, implementácia a údržba by mohla byť zložitá pre každého, kto nie je softvérový inžinier, a dokonca aj pre tých, ktorí sú.
Zaznamenávanie interakcií medzi človekom a počítačom z grafického používateľského rozhrania a prevod týchto pohybov do kódu je pre používateľa oveľa jednoduchšie ako používanie výziev. V kombinácii s potenciálom LLM vytvárať nestabilný a chybový kód možno povedať, že softvér RPA sa v dohľadnej budúcnosti nikam neposunie.
#2. Konverzia neštruktúrovaných údajov
Neštruktúrované údaje nie sú silnou stránkou robotickej automatizácie procesov. Táto technológia nebola vytvorená na spracovanie takých vecí, ako sú e-maily, obrázky, zvuk a ďalšie. Nástroje RPA potrebujú preddefinované dátové modely s usporiadanými štruktúrami.
Veľká časť neštruktúrovaných údajov zahŕňa text v prirodzenom jazyku. Na „pochopenie“ týchto informácií a extrahovanie sémantického významu z nich sa vytvárajú veľké jazykové modely. To vytvára značnú príležitosť pre tímy, ktoré chcú tieto texty interpretovať a konvertovať do formátu prijateľného pre nástroje RPA.
Mnohé tímy už roky využívajú spracovanie prirodzeného jazyka (NLP), ktoré im pomáha pri analýze nálad. Tento proces, známy aj ako prieskum verejnej mienky, pomáha organizáciám udržať si prehľad o pocitoch a postojoch spotrebiteľov k značkám. Vo väčšine prípadov sa tieto nástroje používajú na zisťovanie pozitívnych, negatívnych a neutrálnych nálad v texte. Táto technológia je však schopná aj oveľa podrobnejšej detekcie emócií.
Hoci na trhu existuje niekoľko nástrojov, ktoré túto funkciu ponúkajú, LLM poskytuje cestu k všestrannejšiemu využitiu, ktoré presahuje pochopenie toho, ako sa ľudia cítia v súvislosti s produktom alebo službou. V posledných rokoch sa napríklad prudko zvýšila popularita dátovej analýzy. Big Data poskytujú spoločnostiam výhodu, pretože im umožňujú získať poznatky a porozumenie, ktoré pomáhajú pri rozhodovaní založenom na údajoch.
So zhromažďovaním údajov môžu pomôcť nástroje robotickej automatizácie procesov. Ako sme však spomenuli vyššie, majú problémy s určitými typmi informácií. V spojení s nástrojmi umelej inteligencie, ktoré využívajú veľké jazykové modely, však RPA dokáže zhromažďovať veľké množstvo údajov a využívať ich na generovanie informácií potrebných pre nástroje Business Intelligence (BI).
Jedným z najzaujímavejších aspektov generatívnej umelej inteligencie je jej schopnosť vytvárať zmysel dátových vstupov. Vďaka správnemu inžinierstvu podnetov môžu tímy premeniť tieto údaje na formát, ktorý funguje pre ich nástroje RPA.
RPA môže pomôcť zefektívniť pracovné postupy s veľkými dátami. Na začiatok ho môžete použiť na pomoc pri zadávaní aj extrakcii údajov. Najcennejšie a najzaujímavejšie prípady použitia však zahŕňajú využitie nástrojov RPA na transformáciu, čistenie a načítanie údajov alebo zabezpečenie rýchlej, efektívnej a presnej migrácie údajov.
Ďalším dôležitým bodom je správa údajov. Automatizácia požiadaviek na údaje pomáha organizáciám dodržiavať predpisy a udržiava údaje mimo dohľadu manuálnych pracovníkov.
#3. Automatizácia testovania
Automatizácia testovania sa v kruhoch vývoja softvéru ujala, pretože poskytuje rýchlejší spôsob overovania softvéru. Testovanie a zabezpečenie kvality sú tradične nákladné a časovo náročné procesy; automatizácia testovania poskytuje riešenie oboch týchto problémov.
Jednou z prvých vecí, ktoré môže promptné inžinierstvo urobiť, je zlepšiť kvalitu testovacích prípadov. So správnymi pokynmi môžu tieto stroje analyzovať testovacie prípady a identifikovať problémy a nápravné opatrenia. Tento proces môže rozšíriť rozsah testovacích prípadov a viesť ku komplexnejším testom.
Napríklad kód veľkého jazykového modelu môžete zadávať rovnakým spôsobom ako ľudskému recenzentovi. Tieto stroje dokážu rýchlo prejsť kód a odhaliť chyby, nedostatky a dokonca identifikovať problémy s výkonom. Možno ešte zaujímavejšie je, že LLM ponúka aj možnosť dokončiť kód testovacieho prípadu z jednoduchých fragmentov, čím sa urýchľuje tvorba testovacích prípadov.
Promptné inžinierstvo sa zameriava na riešenie mnohých problémov, ktoré viedli k vzniku agilného prístupu k vývoju softvéru. Inžinieri chcú efektívne, ľahko opakovateľné testy, ktoré dokážu odhaliť problémy ešte pred nasadením aplikácií. Ide o to, že uvoľnením času sa vývojári softvéru môžu sústrediť na kreatívnejšie úlohy, ktoré sú zamerané na hodnotu.
Ako sa uvádza v klasickom dokumente,
Technický dlh v automatizácii testovania
(K. Wiklund, 2012), tímy vyvíjajúce softvér sa môžu dostať do problémov, ak strávia príliš veľa času manuálnym testovaním a overovaním svojho softvéru. K týmto spomaleniam môžu prispieť počiatočné náklady na riešenia na automatizáciu testovania, nedostatok skúseností s automatizáciou a dokonca aj uprednostňovanie starších metód.
Jeden z najzaujímavejších aspektov agilného vývoja softvéru zahŕňa
vývoj riadený správaním (BDD).
Tento koncept sa vzťahuje na vývoj softvéru s očakávaným správaním používateľov. Hoci zavedenie tohto prístupu môže jednoznačne ušetriť čas, mnohé tímy majú problém s uvedením tejto automatizácie do života. Riešenie však môžu poskytnúť programy LLM.
Medzi najčastejšie príznaky technického dlhu patrí nedostatočná dokumentácia a nedostatočné testovanie. Tieto problémy môžu pomôcť vyriešiť súčasní študenti LLM. Ďalšie významné príznaky, ako napríklad refaktorovanie, sú však pre súčasnú generatívnu umelú inteligenciu príliš zložité a nemusia viesť k úspore času.
Záverečné myšlienky
Generatívne aplikácie AI majú obrovský potenciál. Používateľsky prívetivé konverzačné rozhranie však môže byť zavádzajúce. Mnohí ľudia sa domnievajú, že je jednoduché vytvárať kvalitné výstupy z týchto strojov. Vynikajúce pohotové inžinierstvo je však zložitejšie, než by ste možno očakávali.
Účinné rýchle inžinierstvo si vyžaduje veľa pokusov a omylov. Takisto si vyžaduje veľa predvídavosti zo strany inžiniera, aby sa zabezpečilo, že odpovede budú užitočné. Nakoniec, kontrola a opätovná kontrola práce je dôležitá vzhľadom na dobre známu možnosť vzniku chýb.
Aj keď počet pracovných miest v oblasti pohotového inžinierstva rastie, nie každý je o tom presvedčený. Oguz A. Acar v časopise Harvard Business Review uvádza fascinujúci argument, že „budúce generácie systémov umelej inteligencie budú intuitívnejšie a zručnejšie v porozumení prirodzenému jazyku, čím sa zníži potreba starostlivo navrhnutých pokynov.“
Nech už budúcnosť prinesie čokoľvek, generatívna umelá inteligencia bude súčasťou tejto zmesi. Hoci je rýchle inžinierstvo veľmi sľubné, je ťažké s istotou povedať, akú presnú úlohu bude zohrávať.
Je zaujímavé, že softvér na automatizáciu testovania softvéru je už teraz plný prípadov použitia a úspešných príkladov, ktoré dokazujú jeho vhodnosť na urýchlenie vývoja softvéru bez toho, aby sa znížila presnosť alebo komplexné overenie aplikácií.
Nástroje ako ZAPTEST už umožňujú vývojárom riešiť problémy, ako je nedostatok času a zdrojov, technický dlh, dokumentácia a komplexné testovanie a RPA. Tieto nástroje sú navyše používateľsky prívetivejšie ako nástroje na rýchle inžinierstvo, takže sú oveľa vhodnejšou voľbou pre netechnické tímy. Ako vždy, skutočný potenciál sa skrýva v priesečníku týchto zaujímavých automatizačných technológií.