Is it artificial intelligence or machine learning?

27 kwietnia 2023
Jakub Rojek Jakub Rojek
Photo by Pavel Danilyuk from Pexels (https://www.pexels.com/pl-pl/zdjecie/mezczyzna-kubek-technologia-trzymajacy-8439093/)
Kategorie: Branża, Nauka

Nie będę odkrywczy, gdy ogłoszę, że najgorętszym tematem technologicznym w Internecie w 2022 i na początku (a prawdopodobnie w całym) 2023 roku jest ChatGPT oraz inne narzędzia korzystające ze sztucznej inteligencji (ang. artificial intelligence). Sam termin AI (lub po polsku SI) jest znany od dawna, zarówno w środowisku naukowym, jak i tworach z nurtów science-fiction lub cyberpunk, także to pojęcie nie jest obce ludzkości. Natomiast do niedawna sądzono, że może coś tam już jest możliwe do zrobienia, ale cały czas jest to przyszłość. A tutaj okazało się, że przyszłość nadeszła, wyrwała drzwi z framugi, wyrzuciła kota z fotela i rozgościła się w salonie.

Szybko ujawniło się, że narzędzia w rodzaju generowania grafik na podstawie tekstowego opisu (np. DALL-E 2, Midjourney) to ledwie rozgrzewka. Pojawiło się ChatGPT będące jednocześnie rozmówcą, poradnikiem, doradcą, jak i moralizatorem. Co więcej, szał stał się tak wielki, że nagle inne firmy zaczęły naśladować firmę OpenAI i tworzyć własne narzędzia, z których bardzo obiecująco wygląda np. asystent Binga wykreowany przez Microsoft. Pojawiają się doniesienia o wykorzystaniu sztucznej inteligencji w różnych gałęziach przemysłu, w podpowiadaniu użytkownikom, w rozwiązywaniu codziennych problemów technicznych... Nagle wszystko, co modne, musi posiadać etykietę "AI". Istnieją nawet gotowe systemy do AI, które można uruchomić na swoim serwerze. Oczywiście, w tym samym czasie pojawiły się problemy moralne i dyskusja o bezpieczeństwie tej technologii, gdy już weszła do powszechnego użycia. Skupmy się jednak na tym, że sama sztuczna inteligencja wyszła już poza laboratoria badawcze i jest dostępna na wyciągnięcie ręki.

Pytanie, czy to faktycznie sztuczna inteligencja. W końcu do tej pory takim "oczkiem w głowie" systemów, zwłaszcza tych starających się o dofinansowanie, było uczenie maszynowe (ang. machine learning, ML), które było osiągalne i odpowiednio dobrze wykorzystane faktycznie robiło wrażenie, oszczędzając też pracę ludzi odpowiedzialnych za algorytmy (ale dodającej jej innym osobom). I nie ukrywam, że w którymś momencie w moim zwichrowanym umyśle pojawiła się chęć wyjaśnienia tego, jak to jest z tym porównaniem AI do ML i czy faktycznie mamy do czynienia z rewolucją. Spoiler: mamy.

Jak działa uczenie maszynowe?

Zacznijmy od najważniejszej rzeczy - jest to poddziedzina sztucznej inteligencji. A więc AI i ML nie są rozłącznymi obszarami, tylko jeden zawiera się w drugim. Natomiast samo ML, jak w skrócie będziemy nazywać machine learning, polega na odkrywaniu w danych pewnych wzorców, które pozwalają je agregować, grupować, klasyfikować itd. Przykładowo, na pewno kojarzycie rekomendacje wyświetlane w sklepach internetowych lub w serwisach z newsami - w tym momencie prawdopodobnie macie do czynienia z metodą uczenia maszynowego (na podstawie historii przeglądanych artykułów lub produktów), a konkretnie znajdowaniem reguł asocjacyjnych. To zagadnienie w praktyce możecie też spotkać np. przy zaawansowanym filtrowaniu spamu, ale także w bardzo poważnych zagadnieniach jak diagnostyka medyczna, dająca wskazówkę, czy na podanym zdjęciu rentgenowskim widać niepokojące zmiany nowotworowe, czy nie.

Ktoś w tym momencie może powiedzieć, że przecież istnieje algorytmika i to wszystko można zapisać w postaci odpowiednich warunków, pętli itd. W końcu tak naprawdę pod spodem uczenie maszynowe właśnie tak działa - można powiedzieć, że tworzy sobie wewnętrzne instrukcje, jak reagować w danym przypadku. Wszystko dobrze, tylko tutaj chodzi o poziom złożoności. Jawne instrukcje człowiek może przygotowywać w przypadku, kiedy np. decyzja o zaklasyfikowaniu osoby do danej grupy wynika z jasnych kryteriów (np. dana liczba punktów oznacza odpowiednią ocenę ze sprawdzianu). Z kolei uczenie maszynowe przydaje się w momencie, kiedy chcemy przetwarzać dane i odkrywać pewne reguły, ale nie wiemy, jak to zrobić oraz nie dowiemy się tego łatwo przy ogromnej puli informacji, które mamy do dyspozycji. Jednak ta pula daje nam przypadki, który wynikają z życia lub opisał je ekspert - jest to zbiór uczący, który posłuży danej metodzie ML do utworzenia wewnętrznego modelu wykorzystywanego w faktycznej pracy. Nie jest to aż takie proste - badacz nadal musi określić np. parametry, które opisują dany przypadek i mogą przydać się klasyfikatorowi, a nie zawsze są to wprost podane informacje w rodzaju prawdy, fałszu czy liczby. Nie są to też zwykle 3 atrybuty, ale prędzej 30, 300 lub nawet 3000 czy więcej. W dodatku zbiór wejściowy musi być na tyle zróżnicowany i "rozsądny", aby powstałe reguły faktycznie pozwalały na ocenienie jak największej liczby przypadków. Jednak to wszystko można jeszcze skomplikować - zbiór uczący nie może być za duży, aby nie "przeuczyć" modelu, który nagle w bardzo prostych sprawach zacznie się gubić i oceniać jako specyficzne przypadki.

Podsumowując ten fragment, uczenie maszynowe pozwala w łatwiejszy sposób interpretować złożone dane w celu automatycznego wysnuca wniosków. Oczywiście, nie zawsze działa to idealnie, ale na pewno może bardzo usprawnić pracę w wielu dziedzinach i o ile jest trudne, to nie jest nieosiągalne, zwłaszcza, że istnieją gotowe biblioteki implementujące poszczególne metody (zwłaszcza w języku Python, ale też JavaScripcie, PHP i innych technologiach). Rolą inżyniera jest tutaj bardziej dobranie odpowiedniej metody, zbioru uczącego oraz przygotowanie atrybutów, które go opisują i pomogą prawidłowo wykształcić wynikowy model.

Co to sztuczna inteligencja?

Każdy z nas intuicyjnie czuje, że termin AI odnosi się do zachowania maszyn i programów w taki sposób, jakby posiadały swoją inteligencję. W praktyce oznacza to symulowanie sposobu myślenia prawdziwego człowieka, a raczej próba odwzorowania takiego procesu. Pojęcie jest bardzo rozległe i tak, jak pisałem wcześniej, jest tematem wykraczającym poza naukę - pojawia się w wielu dziedzinach i rozważaniach, także tych fabularyzowanych (jak choćby HAL 9000 z "2001: Odysei kosmicznej").

Gracze komputerowi bez wątpienia znają pojęcie AI w kontekście zachowania przeciwników. W praktyce nie jest to do końca sztuczna inteligencja, ponieważ postępowanie wrogów czy nawet NPC-ów jest oskryptowane, tj. programiści sami konstruują modele (np. w postaci automatów skończonych), które w zależności od sytuacji (opisanej zmiennymi, np. liczba punktów zdrowia czy odległość od gracza) wydają komunikaty w rodzaju "atakuj", "uciekaj", "zażyj miksturę" itp. Zresztą, dotyczy to nie tylko gier wideo - także w tradycyjnych grach typu szachy istnieją silniki, które wykorzystują reguły, drzewa i inne techniki w celu wskazywania najlepszych ruchów czy przewidywania szans danego gracza.

Jednak sztuczna inteligencja wykracza znacznie dalej - są to także właśnie wcześniej opisane metody uczenia maszynowego czy metody analizujące i syntetyzujące język naturalny (tzw. NLP, czyli Natural Language Processing). I właśnie te ostatnie robią ostatnio największe wrażenie w postaci ChatGPT, a wcześniej pod postacią różnych mniej zaawansowanych czatbotów (które jednak mogły też korzystać z tzw. systemów eksperckich czy po prostu predefiniowanych reguł). Oczywiście, NLP samo w sobie jest dziedziną z wieloma rozgałęzieniami, badająca konstrukcję danego języka w celu dalszego przetworzenia. Jak możecie się domyślać, metody najlepiej działają zwykle z językiem angielskim, a np. w przypadku języka polskiego sprawa bardzo się komplikuje ze względu na odmiany, szyk zdania itd. Tym niemniej, jak najbardziej można też automatycznie analizować i tworzyć zdania w mowie potomków Piastów.

Wiele osób kojarzy też ten obszar z użyciem sieci neuronowych, czyli struktur, które mają w założeniu imitować ludzki proces myślowy. Wątpliwe jest, czy faktycznie to czynią, ale są jednymi z najbardziej znanych typów modeli wykorzystywanych w AI, skłądającymi się z neuronów połączonych ze sobą w celu stopniowego przekazywania wniosków i dociekania do danej informacji oraz zwrócenia jej. Podobnie, jak cebula lub ogry, składają się z warstw, ale w tym przypadku należy mówić raczej o poziomach - od liczby neuronów oraz "pięter" zależy złożoność i skuteczność danej sieci. Co więcej, może ona w sobie zawierać elementy rekurencji, a więc powrotu do już wcześniej odwiedzonych węzłów w celu ponownego przetworzenia informacji w innym kontekście. Dużą zaletą sieci neuronowych jest ich odporność na błędy czy braki oraz równoległość. Duże sieci są też podstawą poddziedziny uczenia maszynowego nazywaną uczeniem głębokim (ang. deep learning). Możecie znać jeden z serwisów, którego działanie na tym się opiera - to DeepL, automatyczny tłumacz uznawany przez wielu za lepszy w konkretnych zastosowaniach niż Google Translate.

Jednak to, co stanowi "prawdziwą" sztuczną inteligencję, to fakt, że model potrafi również sam się uczyć. Przykładowo, w tradycyjnym uczeniu maszynowym klasyfikatory potrafią przydzielać tylko klasy, o których wiedzą. Jeśli mogą wystawić ocenę od 1 do 6, to nie znajdzie się przypadek, w którym pojawi się wynik 7 - co najwyżej metoda zgłosi brak możliwości przydzielenia odpowiedniej oceny. Natomiast jeśli pozwolimy programowi na samodzielne uczenie się na podstawie dalszych przypadków, to zaczyna być to możliwe - widać to właśnie na przykładzie ChatGPT, który potrafi zdobywać wiedzę od użytkowników. Oczywiście, jest to niebezpieczne - zarówno ze względu na żartownisiów, jak i zwyczajnie błędne informacje lub takie nacechowane odpowiednimi poglądami. Tym niemniej, przy odpowiednio ogromnym zbiorze uczącym może mieć to mniejszy wpływ negatywny, a większy pozytywny, uzupełniający.

A jaki był zbiór uczący ChatGPT w wersji 3 (w chwili, gdy piszę te słowa, jest już dostępna "czwórka")? Gigantyczny, bo było to 570 GB danych (a wiemy, że pliki tekstowe same w sobie są dość niewielkich rozmiarów) oraz 176 miliardów parametrów opisujących informacje. Te dane, jak i wyjaśnienie modelu znajdziecie w tym artykule, który opisuje wszystko właśnie od strony metod sztucznej inteligencji. Na tym przykładzie można zobaczyć, że to naprawdę ogromne przedsięwzięcie, wymagające naukowców, ale również dużych mocy obliczeniowych, które nareszcie stały się dostępne.

Podsumowanie

A zatem ChatGPT oraz inne narzędzia stosujące AI od OpenAI faktycznie można określić mianem sztucznej inteligencji. Oczywiście, nadal nie jest to kres możliwości, a malkontenci powiedzą, że to nie jest AI i oni chcą coś lepszego. Ale czy w sumie na tym nie polega prawdziwe uczenie się, że osobie przedstawiane są materiały tekstowe i przykłady, a ta na ich podstawie uczy się i wyciąga wnioski? Kwestią jest to, kiedy technologia w tym obszarze stanie się nie tylko zachwycająca, ale też realnie niebezpieczna. A właściwie, czy czasem już tego punktu nie osiągnęliśmy, patrząc na deepfake, podkładanie głosów, twarzy czy generowanie materiałów nie do odróżnienia na pierwszy rzut oka od ludzkich tworów. To jednak temat na inne rozważania, których nie chciałem się tutaj podejmować (przepraszam tych, którzy chcieli poczytać o regulacjach prawnych, liście otwartym do m.in. OpenAI czy ChaosGPT).

Tym niemniej, warto pamiętać o tym, że popularność rozwiązań bazujących na sztucznej inteligencji sprawia, że także dość proste rozwiązania, które "same z siebie coś wnioskują" nazywa się teraz AI, bo to przyciąga tłumy lub wywołuje kontrowersje. A tak naprawdę "stare dobre" metody uczenia maszynowego, które i tak należą do dziedziny AI, nadal sprawują się całkiem nieźle w wielu obszarach i używanie frazy "sztuczna inteligencja" jest często nieco na wyrost. Pytanie, jak długo "zwykłe" ML faktycznie wystarczy.

Pozdrawiam i dziękuję - Jakub Rojek.

Piszemy nie tylko artykuły na blogu, ale też aplikacje i dokumentację dla naszych klientów. Zobacz, z kim do tej pory współpracowaliśmy.

Komentarze

Wczytywanie komentarzy...

O autorze

Jakub Rojek

Główny programista i współwłaściciel Wilda Software, z wieloletnim doświadczeniem w tworzeniu i rozwoju oprogramowania, ale także w pisaniu tekstów na różnorakich blogach. Zaprawiony w boju analityk i architekt systemów IT. Jednocześnie absolwent Politechniki Poznańskiej i okazjonalny prowadzący zajęcia na tej uczelni. W wolnych chwilach oddaje się graniu w gry wideo (głównie w karcianki), czytaniu książek, oglądaniu futbolu amerykańskiego i e-sportu, odkrywaniu cięższej muzyki oraz wytykaniu innym błędów językowych.

Jakub Rojek