W jednym z naszych artykułów z 2017 roku pisaliśmy o tym, że AI przejmuje zadania programistów. Czy znaczy to, że sztuczna inteligencja będzie mogła napisać jeszcze lepszą sztuczną inteligencję, która stworzy kolejną i tak dalej, aż przekroczy to możliwości zrozumienia przez człowieka? Spokojnie, aż tak dobrze (albo źle — w zależności od perspektywy) jeszcze nie jest. Póki co sztuczna inteligencja Microsoftu faktycznie potrafi pisać kod prostych programów w oparciu o dane przekazane przez człowieka w naturalny sposób, ale nie są to gigantyczne projekty, do których potrzeba całych zespołów deweloperskich. Technologia wciąż jednak zalicza postępy na tej ścieżce, a jednym z nich jest adaptacja GPT-3 — technologii świetnie sobie radzącej w rozumieniu języka naturalnego.
Nie ma raczej wątpliwości, że sztuczna inteligencja będzie mogła w najbliższych dekadach przejąć wiele zadań wykonywanych do tej pory przez ludzi. Chodzi nie tylko o powtarzalne czynności fizyczne, w których człowieka mogą wyręczyć roboty, ale również pracę intelektualną, taką jak programowanie. Czynność ta wymaga od programisty znajomości języka programowania, na który tłumaczy on instrukcje wydawane komputerowi. Sam komputer nie jest w stanie zrozumieć instrukcji wydawanych językiem naturalnym (czyli zwykłą mową, jakiej używamy do komunikacji międzyludzkiej), ale... sztuczna inteligencja już tak. Faktycznie, w ostatnich latach AI biła kolejne rekordy zarówno w rozpoznawaniu, jak i rozumieniu mowy ludzkiej, wliczając w to "odgadywanie" kontekstu i intencji z mowy potocznej. To właśnie "językowa" sztuczna inteligencja sprawi, że osoby nieznające języków programowania będą mogły tworzyć programy poprzez wydawanie poleceń w naturalny, wygodny dla siebie sposób, bez przejmowania się składnią i regułami rządzącymi danym językiem.
Aby sztuczna inteligencja mogła zrozumieć człowieka, potrzebuje do tego modelu językowego. Trudno tu o lepszego reprezentanta niż GPT-3, model rozwijany i powiększany od kilku lat przez OpenAI i Microsoft. W niektórych zadaniach jest jego wyniki są prawie zawsze nie do odróżnienia od ludzkich. O jego integracji z Power Platform wypowiadał się w zeszłym tygodniu Satya Nadella, który skwitował to stwierdzeniem, że "kod pisze się sam". Ta konkretna implementacja nosi nazwę Power Apps Ideas i jest częścią szerzej zakrojonych starań Microsoftu i innych firm. Jak wyjaśniają twórcy:
Wytrenowany ze 175 miliardami parametrów, GPT-3 jest zaawansowanym modelem AI języka naturalnego, który implementuje deep learning, by móc zarówno rozumieć, jak i produkować tekst podobny ludzkiemu w oparciu o podpowiedzi w języku naturalnym. Microsoft ma strategiczną współpracę z OpenAI, deweloperami GPT-3, by móc zaaplikować ten model w produktach, takich jak Power Apps.
Poprzez dostrajanie GPT-3, aby rozumiał, jak konstruowane są formuły Power Fx, możemy wykorzystać istniejące silne strony modelu w obsłudze wprowadzania języka naturalnego, aby dać twórcom Power Apps możliwość opisywania logiki, tak jakby to robili przyjacielowi lub współpracownikowi, a następnie uzyskania odpowiedniej formuły dla ich aplikacji.
— Ryan Cunningham, Director PM w Power Apps, Microsoft
Microsoft przedstawił przykład takiej aplikacji. Użytkownik wprowadza polecenie językiem naturalnym: "Pokaż 10 zamówień, które mają 'stroller' w nazwie produktu i posortuj je według daty zakupu z najnowszymi na górze". Sztuczna inteligencja zwraca następujący kod: "FirstN(Sort(Search(‘BC Orders’, “stroller”, “aib_productname”), ‘Purchase Date’, Descending)". W oparciu o polecenie i kontekst w aplikacji Power Apps wygeneruje kilka najbardziej odpowiednich formuł Power Fx, z których możemy wybrać jedną lub więcej. Odfiltrowane będą te wyniki, które nie mogą przejść sprawdzania składni formuły. O ile podejście low-code już od początku wpisane było w zasady języka Power Fx, o tyle dzięki GPT-3 nabiera to jeszcze głębszego znaczenia.
Jeszcze innym podejściem do programowania bez pisania kodu jest programowanie poprzez przykład (programming by example — PBE). Umożliwia ono użytkownikom tworzenie skryptów na podstawie przykładów wejścia-wyjścia. AI wspomaga zarządzanie i manipulowanie danymi z galerii i tabel danych, aplikując wzory lub formuły na oryginalnej wartości. Zamiast pisać skomplikowaną formułę, użytkownik może po prostu zaprogramować model, pokazując mu przykłady. Jeśli dane wejściowe i wyjściowe są dobrze sformatowane, jeden przykład może być wystarczający, by AI załapała, na czym polega zmiana i jak ma przetwarzać dane. W przeciwnym razie może być konieczne pokazanie jej większej ilości przykładów.
Powyższe umiejętności sztucznej inteligencji są imponujące, ale w pytaniu o to, gdzie leży obecnie jej kres możliwości, odpowiedź nie będzie już tak sensacyjna. Owszem, AI potrafi programować, ale tylko skrypty. Na poważne projekty programistyczne przyjdzie czas — w to nie wątpimy, ale do tego jeszcze długa droga.