fbpx

ChatGPT, Bard i inne znane duże modele językowe (LLM) zdominowały nasze kanały informacyjne w ciągu ostatniego roku. I słusznie. Te ekscytujące technologie oferują nam wgląd w przyszłość, moc i możliwości sztucznej inteligencji.

Podczas gdy większość publicznego podekscytowania koncentrowała się na tworzeniu tekstu, obrazów i wideo, narzędzia te mogą być wykorzystywane w wielu innych dyscyplinach, takich jak automatyzacja oprogramowania.

Ten artykuł będzie stanowił dogłębną analizę tego, w jaki sposób inżynieria podpowiedzi może pomóc nam w automatyzacji oprogramowania. Jednak naszym pierwszym krokiem powinno być zbadanie samej szybkiej inżynierii.

 

Czym jest szybka inżynieria?

 

Duże modele językowe, takie jak ChatGPT, generują dane wyjściowe w oparciu o podpowiedzi lub zdania, które im dostarczamy. Jednak wyniki różnią się znacznie w zależności od słów lub instrukcji, których używamy. Kiedy wprowadzamy niejasne i nieprecyzyjne instrukcje, wynik może nie trafić w cel.

Prompt engineering odnosi się do przemyślanego projektowania danych wejściowych, które pomagają uzyskać bardziej precyzyjne, dokładne i ostatecznie użyteczne treści z tych ekscytujących systemów AI.

Systemy Large Language Model (LLM) wykorzystują przetwarzanie języka naturalnego (NLP) do interpretowania wypowiedzi, które im przekazujemy. Maszyny przekształcają te pytania lub instrukcje (tj. podpowiedzi) w kod i uruchamiają je w swoich ogromnych repozytoriach danych, aby tworzyć treści w dowolnym określonym przez nas formacie (tj. tekst, obrazy, kod).

ChatGPT został przeszkolony na ponad
570 GB danych
. Materiały szkoleniowe składają się z książek, artykułów, tekstów internetowych itp. Innymi słowy, te zbiory danych zawierają niewyobrażalną ilość wiedzy.

Chociaż możemy zrozumieć ten proces, wiele z tego, co dzieje się pod maską tych systemów, dzieje się poza naszym wzrokiem. Oczywiście, kontrolujemy dane wejściowe i wyjściowe oraz szkolimy system, ale to, jak dokładnie działają te algorytmy i podejmują decyzje, wciąż pozostaje tajemnicą. Jak powiedział Sam Bowman, profesor sztucznej inteligencji na Uniwersytecie Nowojorskim, „Zbudowaliśmy go, wytrenowaliśmy, ale nie wiemy, co robi”.

Inżynieria Prompt pomaga nam zarządzać tym chaosem, wykorzystując dane wyjściowe, które dają przewidywalne i użyteczne wyniki. Oferują nam one drogę do odblokowania ogromnej ilości wiedzy zawartej w tych aplikacjach.
Dyscyplina ta staje się nową karierą
a kursy pojawiają się wszędzie, ponieważ firmy zastanawiają się, jak mogą wykorzystać tę potężną technologię.

Jak może pomóc szybka inżynieria

z automatyzacją oprogramowania?

wykorzystanie chatcpg do różnych zadań automatyzacji oprogramowania i rpa

Automatyzacja oprogramowania i LLM mają ze sobą wiele wspólnego. Obie oferują wgląd w przyszłość, w której maszyny będą wspomagać ludzką kreatywność, tworząc szybsze i bardziej produktywne miejsca pracy.

Istnieje kilka ekscytujących obszarów, w których obie te technologie mogą się ze sobą łączyć. Oto trzy sposoby wykorzystania inżynierii podpowiedzi w automatyzacji oprogramowania.

 

#1. Generowanie kodu

generowanie kodu z szybką inżynierią w automatyzacji testów

Pisanie kodu jest jednym z najbardziej obiecujących zastosowań dużych modeli językowych. Programy AI LLM są w powijakach. W ciągu najbliższych kilku lat technologia ta powinna ulec poprawie, ponieważ więcej zasobów zostanie dodanych zarówno do obliczeń, jak i szkoleń.

W dłuższej perspektywie postępy te mogą sprawić, że sztuczna inteligencja będzie w stanie pisać całe programy przy ograniczonej lub zerowej interwencji człowieka. Na razie jednak LLM mają pewne ograniczenia. Jakość danych wyjściowych kodowania LLM zależy głównie od jakości danych wejściowych. Jak to mówią, śmieci na wejściu, śmieci na wyjściu.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Oczywiście nie tylko skuteczna inżynieria podpowiedzi działa jako blokada. Jak zasugerowano w ChatGPT i duże modele językowe w środowisku akademickim: Możliwości i wyzwania (Meyer, 2023), „Obecnie ChatGPT jest bardziej skuteczny w dokładnym pisaniu mniejszych bloków kodu, podczas gdy jego niezawodność w pisaniu większych / bardziej złożonych programów (np. pakietu oprogramowania) jest wątpliwa”.

Co więcej, w niedawnym artykule opublikowanym w czasopiśmie Nature, niektórzy informatycy ostrzegli, że powinniśmy podchodzić do generowania kodu za pomocą LLM z pewną ostrożnością. Kolejny współczesny dokument,
Duże modele językowe i proste, głupie błędy
(Jesse, 2023), zademonstrował, w jaki sposób popularny LLM, Codex, który jest używany przez dostawcę Copilot, generuje „znane, dosłowne SStuB z 2x większym prawdopodobieństwem niż znany, dosłowny poprawny kod”.

Choć problemów tych nie da się zignorować, wciąż istnieje wiele uzasadnionych powodów do ekscytacji tym, w jaki sposób programy te mogą pomóc w demokratyzacji tworzenia oprogramowania poprzez wspieranie zarówno zespołów technicznych, jak i nietechnicznych.

Być może najbardziej imponującą rzeczą jest to, że narzędzia takie jak ChatGPT mogą bardzo szybko tworzyć funkcjonalny kod. Dzięki odpowiedniej podpowiedzi inżynierowie mogą skrócić czas potrzebny na zaprogramowanie określonych typów kodu, zapewniając szybszy cykl życia oprogramowania.

Pod koniec 2022 r. popularne centrum programistyczne
Stack Overflow zakazało generowanych przez sztuczną inteligencję
odpowiedzi na swoim forum. Powoływali się oni na wysoki poziom błędów i nieścisłości związanych z aplikacją. Technologia ta znajduje się jednak w początkowej fazie rozwoju; co więcej, niezadowolenie z wyników generowanych przez sztuczną inteligencję wynika w równym stopniu ze słabej inżynierii, co z samej technologii.

Pomimo obaw związanych z technologią, niedawny artykuł
przez McKinsey
podkreśla wpływ, jaki inżynieria podpowiedzi już teraz wywiera na świat programowania. Firma konsultingowa Stan sztucznej inteligencji w 2023 roku: Przełomowy rok dla generatywnej sztucznej inteligencji podzielił się dwoma interesującymi trendami. Po pierwsze, 7% organizacji, które zainwestowały w sztuczną inteligencję, zatrudnia szybkich inżynierów. Po drugie, firmy korzystające ze sztucznej inteligencji zmniejszyły liczbę ról związanych z inżynierią oprogramowania z 38% do 28%.

Jednym ze sposobów interpretacji tych trendów jest to, że firmy czują się komfortowo z tą konfiguracją i są gotowe do przekazania automatyzacji oprogramowania swoim maszynom. Podczas gdy liczby te mogą zaskoczyć obecnych inżynierów, badanie McKinsey sugeruje, że „tylko 8 procent twierdzi, że wielkość ich pracowników zmniejszy się o więcej niż jedną piątą”. Ogólnie rzecz biorąc, inżynierowie prawdopodobnie będą musieli się przekwalifikować, aby wykorzystać trend w kierunku automatyzacji oprogramowania generowanej przez sztuczną inteligencję.

Jednym z oczywistych zastosowań automatyzacji oprogramowania generowanej przez sztuczną inteligencję jest tworzenie botów automatyzujących. Jednakże, chociaż inżynieria podpowiedzi jest pozornie przyjaznym dla użytkownika interfejsem dzięki skupieniu się na konwersacji, dopiero okaże się, czy może zastąpić istniejące rozwiązania.

Pod wieloma względami oprogramowanie takie jak ZAPTEST już zdemokratyzowało rynek automatyzacji oprogramowania. Istnieją już narzędzia no-code, które umożliwiają zespołom nietechnicznym tworzenie wysokiej jakości botów RPA. Podczas gdy oprogramowanie takie jak ChatGPT może tworzyć boty, wdrożenie i utrzymanie może okazać się trudne dla każdego, kto nie jest inżynierem oprogramowania, a nawet dla tych, którzy są.

Nagrywanie interakcji człowiek-komputer z GUI i konwertowanie tych ruchów na kod jest znacznie bardziej przyjazne dla użytkownika niż korzystanie z podpowiedzi. W połączeniu z potencjałem LLM do tworzenia niestabilnego i pełnego błędów kodu, można śmiało powiedzieć, że oprogramowanie RPA nigdzie się nie wybiera w dającej się przewidzieć przyszłości.

 

#2. Konwersja nieustrukturyzowanych danych

checklist uat, narzędzia do testowania aplikacji internetowych, automatyzacja i inne

Nieuporządkowane dane nie są mocną stroną Robotic Process Automation. Technologia nie została stworzona do obsługi takich rzeczy jak e-maile, zdjęcia, dźwięk i inne. Narzędzia RPA wymagają predefiniowanych modeli danych ze zorganizowanymi strukturami.

Ogromna część nieustrukturyzowanych danych obejmuje tekst w języku naturalnym. Duże modele językowe są budowane w celu „zrozumienia” tych informacji i wyodrębnienia z nich znaczenia semantycznego. W związku z tym stwarza to znaczne możliwości dla zespołów, które chcą interpretować te teksty i konwertować je do formatu akceptowalnego dla narzędzi RPA.

Wiele zespołów od lat korzysta z przetwarzania języka naturalnego (NLP), aby pomóc im w analizie nastrojów. Proces ten, znany również jako eksploracja opinii, pomaga organizacjom być na bieżąco z odczuciami i postawami konsumentów wobec marek. W większości przypadków narzędzia te są wykorzystywane do wykrywania pozytywnych, negatywnych i neutralnych nastrojów w tekście. Technologia ta jest jednak również zdolna do znacznie bardziej szczegółowego wykrywania emocji.

Chociaż na rynku istnieje kilka narzędzi, które oferują tę funkcjonalność, LLM zapewnia ścieżkę do bardziej wszechstronnego zastosowania, wykraczającego poza zrozumienie, co ludzie myślą o produkcie lub usłudze. Na przykład, analityka danych zyskała na popularności w ostatnich latach. Big Data daje firmom przewagę, umożliwiając im uzyskanie wglądu i zrozumienia, które pomagają w podejmowaniu decyzji opartych na danych.

Narzędzia Robotic Process Automation mogą pomóc w gromadzeniu danych. Jednak, jak wspomnieliśmy powyżej, mają oni trudności z określonymi rodzajami informacji. Jednak w połączeniu z narzędziami sztucznej inteligencji, które wykorzystują duże modele językowe, RPA może gromadzić duże ilości danych i wykorzystywać je do generowania informacji wymaganych przez narzędzia Business Intelligence (BI).

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Jednym z bardziej ekscytujących aspektów generatywnej sztucznej inteligencji jest jej zdolność do nadawania sensu danym wejściowym. Dzięki odpowiedniej inżynierii podpowiedzi zespoły mogą przekształcić te dane w format, który działa dla ich narzędzi RPA.

RPA może pomóc zwiększyć wydajność procesów Big Data. Po pierwsze, można go używać zarówno do wprowadzania, jak i ekstrakcji danych. Jednak być może najbardziej wartościowe i intrygujące przypadki użycia obejmują wykorzystanie narzędzi RPA do przekształcania, czyszczenia i ładowania danych lub zapewnienia, że migracja danych przebiega szybko, wydajnie i dokładnie.

Kolejną ważną kwestią jest zarządzanie danymi. Automatyzacja żądań danych pomaga organizacjom zachować zgodność z przepisami i utrzymuje dane poza zasięgiem wzroku pracowników fizycznych.

 

#3. Automatyzacja testów

Automatyzacja testów zyskała popularność w kręgach programistów, ponieważ zapewnia szybszy sposób weryfikacji oprogramowania. Testowanie i zapewnianie jakości były tradycyjnie drogimi i czasochłonnymi procesami; automatyzacja testów zapewnia rozwiązanie obu tych wyzwań.

Jedną z pierwszych rzeczy, które może zrobić inżynieria podpowiedzi, jest poprawa jakości przypadków testowych. Dzięki odpowiednim poleceniom maszyny te mogą analizować przypadki testowe oraz identyfikować problemy i środki zaradcze. Proces ten może zwiększyć zakres przypadków testowych i prowadzić do bardziej kompleksowych testów.

Na przykład, można zasilać duży model językowy kodem w podobny sposób, jak w przypadku ludzkiego recenzenta. Maszyny te mogą szybko przeglądać kod i wykrywać błędy, a nawet identyfikować problemy z wydajnością. Być może bardziej intrygujące jest to, że LLM oferują również możliwość uzupełniania kodu przypadków testowych z samych fragmentów, co przyspiesza tworzenie przypadków testowych.

Prompt engineering ma na celu rozwiązanie wielu kwestii, które doprowadziły do pojawienia się podejścia Agile/DevOps do tworzenia oprogramowania. Inżynierowie chcą wydajnych, łatwo powtarzalnych testów, które mogą wykryć problemy przed wdrożeniem aplikacji. Pomysł polega na tym, że zwalniając czas, programiści mogą skoncentrować się na bardziej kreatywnych i wartościowych zadaniach.

Jak opisano w klasycznym artykule,
Dług techniczny w automatyzacji testów
(K. Wiklund, 2012), zespoły tworzące oprogramowanie mogą napotkać problemy, jeśli poświęcą zbyt wiele czasu na ręczne testowanie i weryfikację swojego oprogramowania. Początkowe koszty rozwiązań do automatyzacji testów, brak doświadczenia w automatyzacji, a nawet preferowanie starszych metod mogą przyczyniać się do tych spowolnień.

Jednym z najbardziej interesujących aspektów rozwoju oprogramowania Agile jest
Behavior-Driven Development (BDD).
Koncepcja ta odnosi się do tworzenia oprogramowania z oczekiwanymi zachowaniami użytkowników. Chociaż wdrożenie tego podejścia może wyraźnie zaoszczędzić czas, wiele zespołów ma trudności z wprowadzeniem tej automatyzacji w życie. LLM może jednak zapewnić rozwiązanie.

Niektóre z najczęstszych objawów długu technicznego obejmują słabą dokumentację i brak solidnych testów. Są to problemy, które dzisiejsi LLM mogą pomóc rozwiązać. Jednak inne zauważalne objawy, takie jak refaktoryzacja, są zbyt złożone dla obecnej generatywnej sztucznej inteligencji i mogą nie przynieść oszczędności czasu.

 

Końcowe przemyślenia

Testy alfa vs testy beta

Aplikacje generatywnej sztucznej inteligencji mają ogromny potencjał. Jednak przyjazny dla użytkownika, konwersacyjny interfejs może być mylący. Wiele osób uważa, że generowanie wysokiej jakości wyników z tych maszyn jest bardzo proste. Doskonała inżynieria podpowiedzi jest jednak bardziej skomplikowana, niż można by się spodziewać.

Skuteczna inżynieria podpowiedzi wymaga wielu prób i błędów. Wymaga to również od inżyniera wiele przemyślenia, aby odpowiedzi były użyteczne. Wreszcie, sprawdzanie i ponowne sprawdzanie pracy jest ważne ze względu na dobrze nagłośniony potencjał błędów.

Choć liczba miejsc pracy dla inżynierów może rosnąć, nie wszyscy są o tym przekonani. Pisząc w Harvard Business Review, Oguz A. Acar przedstawia fascynujący argument, że „Przyszłe generacje systemów sztucznej inteligencji staną się bardziej intuicyjne i biegłe w rozumieniu języka naturalnego, zmniejszając potrzebę skrupulatnie zaprojektowanych podpowiedzi”.

Niezależnie od tego, co przyniesie przyszłość, generatywna sztuczna inteligencja będzie w niej obecna. Podczas gdy szybka inżynieria jest bardzo obiecująca, trudno jest z całą pewnością stwierdzić, jaką dokładnie rolę odegra.

Co ciekawe, oprogramowanie do automatyzacji testów oprogramowania jest już pełne przypadków użycia i historii sukcesu pokazujących jego przydatność do przyspieszenia rozwoju oprogramowania bez uszczerbku dla dokładności lub kompleksowej weryfikacji aplikacji.

Narzędzia takie jak ZAPTEST już teraz pozwalają deweloperom zająć się takimi kwestiami jak niewystarczająca ilość czasu i zasobów, dług techniczny, dokumentacja oraz kompleksowe testowanie i RPA. Co więcej, narzędzia te są bardziej przyjazne dla użytkownika niż szybka inżynieria, co czyni je znacznie bardziej odpowiednimi opcjami dla zespołów nietechnicznych. Jak zawsze, prawdziwy potencjał tkwi na przecięciu tych ekscytujących technologii automatyzacji.

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

Virtual Expert

ZAPTEST

ZAPTEST Logo