ChatGPT, Bard a další významné velké jazykové modely (LLM) v uplynulém roce dominovaly našim zpravodajským kanálům. A je to tak správně. Tyto vzrušující technologie nám nabízejí pohled do budoucnosti, síly a možností umělé inteligence.
Ačkoli se většina veřejného nadšení soustředí na vytváření textu, obrázků a videa, tyto nástroje lze použít v mnoha dalších oborech, například při automatizaci softwaru.
Tento článek bude sloužit jako hluboký ponor do toho, jak nám může promptní inženýrství pomoci s automatizací softwaru. Nejdříve bychom však měli prozkoumat samotné pohotové inženýrství.
Co je to pohotové inženýrství?
Velké jazykové modely, jako je ChatGPT, vytvářejí výstupy na základě námi zadaných podnětů nebo vět. Výsledky se však značně liší v závislosti na slovech nebo pokynech, které používáme. Pokud zadáváme vágní a nepřesné pokyny, výstup nemusí být přesný.
Promptní inženýrství se týká promyšleného návrhu vstupů, které pomáhají získat přesnější, přesnější a nakonec použitelnější obsah z těchto zajímavých systémů umělé inteligence.
Systémy LLM (Large Language Model) využívají zpracování přirozeného jazyka (NLP) k interpretaci výroků, které jim zadáváme. Stroje tyto otázky nebo pokyny (tj. výzvy) převedou na kód a projdou je svými rozsáhlými úložišti dat, aby vytvořily obsah v námi určeném formátu (tj. text, obrázky, kód).
ChatGPT byl vyškolen na více než
570 GB dat
. Školící materiály se skládají z knih, článků, internetových textů atd. Jinými slovy, tyto soubory dat obsahují nepředstavitelné množství znalostí.
Ačkoli tomuto procesu rozumíme, většina toho, co se děje pod kapotou těchto systémů, se odehrává mimo náš dohled. Jistě, kontrolujeme vstupy a výstupy a trénujeme systém, ale jak přesně tyto algoritmy pracují a rozhodují, je stále záhadou. Slovy Sama Bowmana, profesora umělé inteligence na New York University, “Postavili jsme ho, vycvičili jsme ho, ale nevíme, co dělá.”
Promptní inženýrství nám pomáhá zvládat tento chaos pomocí výstupů, které přinášejí předvídatelné a použitelné výsledky. Nabízejí nám cestu, jak odemknout obrovské množství znalostí, které se v těchto aplikacích skrývají.
Tento obor se stává novou profesní oblastí
, všude vznikají kurzy, protože podniky řeší, jak tuto výkonnou technologii využít.
Jak může pomoci pohotové inženýrství
s automatizací softwaru?
Automatizace softwaru a programy LLM mají mnoho společného. Obě nabízejí pohled do budoucnosti, kdy stroje doplní lidskou kreativitu a vytvoří rychlejší a produktivnější pracoviště.
Existuje několik zajímavých oblastí, kde se obě tyto technologie mohou sbližovat. Zde jsou tři způsoby, jak můžeme v automatizaci softwaru využít inženýrství podnětů.
#1. Generování kódu
Psaní kódu je jednou z nejslibnějších aplikací velkých jazykových modelů. Studium AI LLM je teprve v plenkách. V příštích několika letech by se tato technologie měla zdokonalit, protože bude přidáno více prostředků na výpočetní techniku i na školení.
V dlouhodobém horizontu by tyto pokroky mohly vést k tomu, že umělá inteligence bude psát celé programy s omezeným nebo žádným zásahem člověka. Prozatím však mají LLM určitá omezení. Kvalita výstupu kódování LLM závisí především na kvalitě vstupu. Jak se říká, odpadky dovnitř, odpadky ven.
Samozřejmě, že překážkou není jen účinná pohotová technika. Jak je navrženo v ChatGPT a velké jazykové modely v akademickém prostředí: Příležitosti a výzvy (Meyer, 2023): “V současné době je ChatGPT úspěšný spíše při přesném zápisu menších bloků kódu, zatímco jeho spolehlivost při zápisu větších/složitějších programů (např. softwarového balíku) je sporná.”
V nedávném článku v časopise Nature navíc někteří počítačoví vědci varovali, že bychom měli ke generování kódu pomocí LLM přistupovat s určitou opatrností. Další současný dokument,
Velké jazykové modely a jednoduché, hloupé chyby
(Jesse, 2023), ukázal, jak populární LLM Codex, který používá dodavatel Copilot, produkuje “známé, doslovné SStuB až 2x pravděpodobnější než známý, doslovně správný kód”.
Přestože tyto problémy nelze ignorovat, stále panuje oprávněné nadšení z toho, jak tyto programy mohou pomoci demokratizovat vývoj softwaru tím, že podpoří jak technické, tak netechnické týmy.
Nejpůsobivější je asi to, že nástroje jako ChatGPT dokáží velmi rychle vytvořit funkční kód. Díky správné výzvě mohou inženýři zkrátit dobu potřebnou k naprogramování určitých typů kódu a zajistit tak rychlejší životní cyklus vývoje softwaru.
Na konci roku 2022 bude oblíbený programový uzel
Stack Overflow zakázal umělou inteligencí generované
odpovědi na svém fóru. Jako důvod uvedli vysokou chybovost a nepřesnosti spojené s aplikací. Tato technologie je však teprve v počáteční fázi a navíc nespokojenost s výsledky generovanými umělou inteligencí je způsobena jak špatným pohotovým inženýrstvím, tak samotnou technologií.
Navzdory obavám z této technologie, a
McKinsey
zdůrazňuje dopad, který má promptní inženýrství na svět programování. Poradenská firma Stav umělé inteligence v roce 2023: Generativní umělá inteligence v roce 2023: přelomový rok sdílel dva zajímavé trendy. Zaprvé, 7 % organizací, které investovaly do AI, najímá pohotové inženýry. Za druhé, společnosti, které využívají umělou inteligenci, snížily počet pracovních pozic softwarových inženýrů souvisejících s umělou inteligencí z 38 % na 28 %.
Jedním ze způsobů, jak tyto trendy interpretovat, je, že podniky jsou s tímto nastavením spokojeny a jsou připraveny předat automatizaci softwaru svým strojům. Ačkoli by tato čísla mohla stávající inženýry zaskočit, průzkum společnosti McKinsey naznačuje, že “pouze 8 % z nich tvrdí, že se počet jejich zaměstnanců sníží o více než pětinu”. Celkově budou inženýři pravděpodobně muset změnit kvalifikaci, aby využili trend automatizace softwaru generovaného umělou inteligencí.
Jednou ze zřejmých aplikací pro automatizaci softwaru generovanou umělou inteligencí je vytváření automatizačních botů. Ačkoli je prompt engineering díky svému zaměření na konverzaci zdánlivě uživatelsky přívětivým rozhraním, teprve se ukáže, zda dokáže nahradit stávající řešení.
Software jako ZAPTEST již v mnoha ohledech demokratizoval trh s automatizací softwaru. Nyní jsou zde nástroje bez kódování, které umožňují netechnickým týmům vytvářet vysoce kvalitní roboty RPA. Software, jako je ChatGPT, sice umí vytvářet roboty, ale jejich implementace a údržba by mohla být složitá pro každého, kdo není softwarový inženýr, a dokonce i pro ty, kteří jím jsou.
Zaznamenávání interakcí mezi člověkem a počítačem z grafického uživatelského rozhraní a převod těchto pohybů do kódu je pro uživatele mnohem přívětivější než používání výzev. V kombinaci s potenciálem LLM vytvářet nestabilní a chybový kód lze říci, že software RPA se v dohledné době nikam neposune.
#2. Převod nestrukturovaných dat
Nestrukturovaná data nejsou silnou stránkou robotické automatizace procesů. Tato technologie nebyla vytvořena tak, aby zvládala věci, jako jsou e-maily, obrázky, zvuk a další. Nástroje RPA potřebují předdefinované datové modely s uspořádanými strukturami.
Velkou část nestrukturovaných dat tvoří text v přirozeném jazyce. Pro “porozumění” těmto informacím a extrakci sémantického významu z nich se vytvářejí rozsáhlé jazykové modely. To vytváří značnou příležitost pro týmy, které chtějí tyto texty interpretovat a převést je do formátu přijatelného pro nástroje RPA.
Mnoho týmů již léta využívá zpracování přirozeného jazyka (NLP), které jim pomáhá s analýzou sentimentu. Tento proces, známý také jako opinion mining, pomáhá organizacím udržet si přehled o pocitech a postojích spotřebitelů ke značkám. Ve většině případů se tyto nástroje používají k detekci pozitivních, negativních a neutrálních nálad v textu. Tato technologie je však schopna detekovat i mnohem podrobnější emoce.
Na trhu existuje několik nástrojů, které tuto funkci nabízejí, LLM však nabízí cestu k všestrannějšímu využití, které přesahuje porozumění tomu, jak lidé vnímají produkt nebo službu. V posledních letech například vzrostla popularita datové analytiky. Big Data poskytují společnostem výhodu, protože jim umožňují získat poznatky a porozumění, které pomáhají při rozhodování založeném na datech.
Se sběrem dat mohou pomoci nástroje robotické automatizace procesů. Jak jsme se však zmínili výše, mají problémy s určitými typy informací. Ve spojení s nástroji umělé inteligence, které využívají velké jazykové modely, však může RPA shromažďovat velké množství dat a využívat je k vytváření informací, které jsou potřebné pro nástroje Business Intelligence (BI).
Jedním z nejzajímavějších aspektů generativní umělé inteligence je její schopnost dávat smysl vstupním datům. Díky správnému inženýrství podnětů mohou týmy tato data převést do formátu, který bude fungovat pro jejich nástroje RPA.
RPA může pomoci zefektivnit pracovní postupy s velkými objemy dat. Pro začátek vám může pomoci se zadáváním i extrakcí dat. Asi nejcennější a nejzajímavější případy použití však zahrnují využití nástrojů RPA pro transformaci, čištění a načítání dat nebo zajištění rychlé, efektivní a přesné migrace dat.
Dalším důležitým bodem je správa dat. Automatizace požadavků na data pomáhá organizacím dodržovat předpisy a udržuje data mimo dohled manuálních pracovníků.
#3. Automatizace testování
Automatizace testování se v kruzích vývojářů softwaru prosadila, protože poskytuje rychlejší způsob ověřování softwaru. Testování a zajišťování kvality jsou tradičně nákladné a časově náročné procesy; automatizace testování představuje řešení obou těchto problémů.
Jednou z prvních věcí, kterou může promptní inženýrství udělat, je zlepšit kvalitu testovacích případů. Tyto stroje mohou na základě správných pokynů analyzovat testovací případy a identifikovat problémy a způsoby nápravy. Tento proces může rozšířit rozsah testovacích případů a vést ke komplexnějším testům.
Například velký jazykový model můžete krmit kódem podobně jako lidského recenzenta. Tyto stroje dokáží rychle projít kód a odhalit chyby, nedodělky, a dokonce identifikovat problémy s výkonem. Možná ještě zajímavější je, že LLM nabízí také možnost doplnit kód testovacího případu z pouhých fragmentů, což urychluje tvorbu testovacích případů.
Promptní inženýrství se snaží řešit mnoho problémů, které vedly ke vzniku agilního přístupu k vývoji softwaru (Agile/DevOps). Inženýři chtějí efektivní, snadno opakovatelné testy, které odhalí problémy ještě před nasazením aplikací. Myšlenka spočívá v tom, že díky uvolnění času se vývojáři softwaru mohou soustředit na kreativnější úkoly, které mají větší hodnotu.
Jak je uvedeno v klasickém dokumentu,
Technický dluh v automatizaci testování
(K. Wiklund, 2012), mohou týmy vyvíjející software narazit na problémy, pokud věnují příliš mnoho času manuálnímu testování a ověřování svého softwaru. K těmto zpomalením mohou přispět počáteční náklady na řešení pro automatizaci testů, nedostatek zkušeností s automatizací a dokonce i preference starších metod.
Jeden z nejzajímavějších aspektů agilního vývoje softwaru zahrnuje
vývoj řízený chováním (BDD).
Tento koncept se týká vývoje softwaru s očekávaným chováním uživatelů. Přestože zavedení tohoto přístupu může jednoznačně ušetřit čas, mnoho týmů má problémy s uvedením této automatizace do života. Řešení však mohou poskytnout programy LLM.
Mezi nejčastější příznaky technického dluhu patří špatná dokumentace a nedostatečné testování. To jsou problémy, které dnešní LLM mohou pomoci vyřešit. Další pozoruhodné příznaky, jako je refaktoring, jsou však pro současnou generativní umělou inteligenci příliš složité a nemusí vést k časovým úsporám.
Závěrečné myšlenky
Generativní aplikace umělé inteligence mají obrovský potenciál. Uživatelsky přívětivé konverzační rozhraní však může být zavádějící. Mnoho lidí se domnívá, že je jednoduché z těchto strojů generovat kvalitní výstupy. Vynikající pohotová technika je však složitější, než byste možná čekali.
Efektivní pohotové inženýrství vyžaduje mnoho pokusů a omylů. Inženýr musí také hodně přemýšlet, aby odpovědi byly užitečné. V neposlední řadě je důležitá kontrola a překontrolování práce vzhledem k dobře známé možnosti vzniku chyb.
Ačkoli počet pracovních míst v oblasti pohotového inženýrství roste, ne všichni jsou o tom přesvědčeni. Oguz A. Acar v časopise Harvard Business Review uvádí fascinující argument, že “budoucí generace systémů umělé inteligence budou stále intuitivnější a budou lépe rozumět přirozenému jazyku, což sníží potřebu pečlivě navržených pokynů.”
Ať už budoucnost přinese cokoli, generativní umělá inteligence bude součástí tohoto mixu. I když je pohotové inženýrství slibné, je těžké s jistotou říci, jakou roli bude přesně hrát.
Je zajímavé, že software pro automatizaci testování softwaru je již nyní plný případů použití a úspěšných příkladů, které dokazují jeho vhodnost pro urychlení vývoje softwaru, aniž by to bylo na úkor přesnosti nebo komplexního ověření aplikací.
Nástroje jako ZAPTEST již umožňují vývojářům řešit problémy, jako je nedostatek času a zdrojů, technický dluh, dokumentace a komplexní testování a RPA. Tyto nástroje jsou navíc uživatelsky přívětivější než nástroje pro promptní inženýrství, takže jsou mnohem vhodnější pro netechnické týmy. Jako vždy se skutečný potenciál skrývá v průsečíku těchto zajímavých automatizačních technologií.