W naszym artykule chcielibyśmy skupić się na kwestiach związanych z potencjałem niezbędnym do „wejścia” w rozwiązana sztucznej inteligencji. W obszarze tym należy rozróżnić cele biznesowe implementacji. My wyodrębniliśmy cztery.
Dobór narzędzi wspierających wdrożenie algorytmów AI będzie zdeterminowany wyborem obszaru, który mają wspierać. Bezpośrednią konsekwencją będzie też konieczność zdefiniowania minimalnych wymagań, które wprost przełożą się na budżety kompetencji, zasobów obliczeniowych (sprzętowych i aplikacyjnych), organizacyjny, operacyjny i ostatni – nie najmniej ważny – finansowy. Na potrzeby artykułu przyjęliśmy hipotezę systematycznego spadku kosztów wprowadzenia AI w organizacji, przy jednoczesnym wzroście ilości problemów adresowanych przez algorytmy.
WCZORAJ
Hybrid computing i prawo Moore’a
Już w 2000 roku, dostrzeżono (a dokładnie prof. John Poulton, Department of Medicine, Division of Nephrology and Hypertension, University of North Carolina), że skalowanie wydajności rozwiązań graficznych jest wyższe niż wynikałoby to z tzw. pierwszego prawa Moore’a. Mianowicie, wzrost wydajności w skali roku wynosił ~2,4 w przeciwieństwie do przewidywanego, wynikającego ze zdwajania ilości tranzystorów, wzrostu wydajności wynoszącego ~1,7.
Obserwacja ta, a w zasadzie trend – wynikał z architektury, w jakiej projektowano sprzęt graficzny, przeznaczony do masowego zrównoleglania obliczeń. Wynikających z kolei z opisu trójwymiarowej przestrzeni i sposobu jej procesowania, czyli działań na macierzach i wektorach. Dzięki temu architektura ta została naturalnie zaadaptowana do rozwiązywania potrzeb wymagających większej mocy obliczeniowej, niż dostępne procesory ogólnego przeznaczenia, typowo działające na strumieniach instrukcji. Nie oferujące więc wysokiej wydajności.
Otwarcie tych możliwości i szeroka adaptacja pchnęły rozwój sprzętu graficznego w kierunku unifikacji wewnątrz samych procesorów graficznych, uelastyczniających dalsze, szerokie zastosowanie. Odejście od sztywnej architektury, odpowiadającej za obliczanie krawędzi trójkątów oraz nakładania tekstur do rozwiązania zbudowanego w oparciu o tzw. shadery, czyli programowalne jednostki renderujące, udało się stworzyć podwaliny uniwersalnych, programowalnych narzędzi. Kolejnym krokiem była ewolucja shaderów, do zunifikowanych procesorów obsługujących w jednej programowalnej strukturze subprogramy przeliczające geometrię, rasteryzację, pixele itp.
W ten sposób narodziła się koncepcja hybrid computing – wykorzystująca jednocześnie silne strony zarówno GPU, jak i CPU. Uzupełnienie takiej architektury o środowisko programistyczne wspierające zrównoleglanie (np. NVIDIA CUDA), otworzyło rozdział upowszechniający także tworzenie dedykowanych narzędzi.
AI może posłużyć za narzędzie do:
• tworzenia nowych elementów portfolio,
• rozwoju istniejących usług i produktów,
• polepszenia procesów operacyjnych – od planowania i prognozowania przez obsługę klienta, aż po organizację logistyki czy też magazynowania,
• zwiększenia bezpieczeństwa pracy, fizycznego i cybernetycznego.
Sprzęt
Wraz z pojawianiem się na rynku coraz mocniejszych rozwiązań sprzętowych oraz narzędzi programistycznych, przed IT i nauką otworzyły się nowe możliwości. Pierwotnie ciężkie w realnym użyciu metody wykorzystujące sieci neuronowe, konkurujące z dużo lżejszymi modelami SVM, nabrały wiatru w żagle.
Upowszechnianie się zastosowań – a co za tym idzie rynku – spowodowało kolejny etap rozwoju narzędzi. Tym razem, polegający na dostarczaniu platform dedykowanych do zastosowań wykorzystujących sieci neuronowe, lub będących kolejnymi ewolucjami dobrze przyjętych rozwiązań:
- Google wprowadził w 2016 roku TPU, obecnie dostępne w GCP w 4. generacji (TPUv4).
- Graphcore wprowadził w 2017 roku rozwiązanie, Colossus mk 1, będące kolejną ewolucją chipów AI, tzw. IPU.
- NVIDIA wprowadziła w 2018 roku rdzenie tensor, odpowiadające za macierzowe operacje typu multiply-add.
- Cerebras wprowadził na rynek w 2020 roku chip pierwszej generacji WSE-1, będący skalę większy od największych akceleratorów typu GPGPU (posiada 1,2 bln tranzystorów, podczas gdy H100 – 80 mld).
Oprogramowanie
Podobnie jak część sprzętowa, również oprogramowanie przeszło długą drogę w celu zwiększenia efektywności i bezpieczeństwa rozwiązań AI. Inaczej jednak niż w przypadku sprzętu, w tej domenie prym wiodą użytkownicy. Dlatego postępująca zmiana jest zjawiskiem bardziej ewolucji niż rewolucji.
Pewne rozwiązania już wiele lat temu wyznaczyły kierunek rozwoju narzędzi. Postępująca adopcja pozwoliła im zdeklasować konkurencję, a otwartość kodu źródłowego przyciągała coraz większą rzeszę ludzi chcących rozwijać technologie tak, aby stała się bardziej przystępna dla wszystkich.
Tutaj warto zwrócić uwagę na dwa aspekty: platformy oraz narzędzia. Jeszcze 3 lata temu – kiedy zespoły były małe, a ilość badanych problemów zamykała się w grupie dziedzinowej – nikt nie potrzebował orkiestracji w przypadku narzędzi AI. Jupyter notebook lub nawet skrypty Pythona były uruchamiane bezpośrednio na systemie operacyjnym maszyny wyposażonej w akceleratory graficzne.
Większość problemów z dostępnością zasobów rozwiązywało się poprzez współdzielony kalendarz lub telefon do kolegi czy koleżanki, którzy akurat „siedzieli na maszynie”. Sprawy zaczynały komplikować się kiedy ktoś z zespołu potrzebował skorzystać z innej wersji bibliotek Tensorflow czy Pytorch, która jeszcze na dodatek nie była wspierana przez zainstalowanego na serwerze Pythona.
To właśnie narzędzia, które za sprawą społeczności cały czas ewoluowały, wymusiły na zespołach pochylenie się nad architekturą samej platformy. Współdzielony storage, rezerwacja zasobów, skondensowanie ciężkich obliczeń do samodzielnych „jobów”, łatwe powoływanie konkretnych narzędzi czy wreszcie sam dostęp do coraz bardziej zawiłej sieciowo infrastruktury spowodował przeniesienie ciężaru prac na usprawnianie codziennych zadań.
Coraz więcej organizacji zaczęło sięgać po platformy, które pomogą im zapanować nad puchnącą infrastrukturą. Z pomocą nadeszła konteneryzacja, która w ramach jednego węzła obliczeniowego separowała zadania i pozwalała na zwinne iterowanie pracy co znacznie przyśpieszyło testowanie nowych rozwiązań ale również utrzymanie tych istniejących bez konieczności martwienia się o zależności związane z narzędziami.
W tym czasie na czoło wyścigu wysunął się Kuberenetes, który – jako produkt open source – rozwiązywał najważniejsze problemy. To przyciągnęło uwagę giganta – NVIDIA – i znacznie przyspieszyło rozwój platformy w kierunku adopcji akceleratorów graficznych. Na początku roku 2019 rozpoczęto pracę nad operatorem dla stosu CUDA Toolkit. Pierwszą, stabilną wersję osiągając w roku 2020. Właśnie wtedy na ugruntowanej pozycji w dziedzinie sprzętu NVIDIA zaczęła rozbudowywać wachlarz rozwiązań programowych nie tylko o biblioteki, ale również narzędzia wspomagające budowę oraz obsługę platform.
Istniejące od 2017 NGC – NVIDIA GPU Cloud – stało się standardowym wyborem naukowców oraz deweloperów w kwestii dobrze przygotowanych i dostrojonych kontenerów gotowych do pracy z akceleratorami graficznymi.
W związku z coraz szerszą adopcją i stale poszerzającym się gronem zainteresowanych gorącą technologią, zaczęła powstawać masa dobrze przygotowanej dokumentacji, zasobów do samodzielnej nauki AI czy platform rywalizacji, jak Kaggle kupione w 2017 roku przez Google. Warto nadmienić że, w tym samym czasie został dostarczony Kubernetes Device Plugins Framework, który znacznie ułatwiał zarządzanie GPU w Kubernetesie.
Tworzenie wiedzy o tym „jak robić AI” przyczyniło się do jeszcze szybszego wzrostu, a łatwy dostęp do materiałów treningowych zachęcał kolejnych użytkowników żeby dać się ponieść fantazji.
Warto zwrócić uwagę na nowe zjawisko, które pojawiło się wraz z udostępnieniem Generative AI publiczności. Promptowanie, bo o nim mowa, jest odwróceniem klasycznego modelu, gdzie opis powstaje na podstawie danych – tu dane (nawet nie dane, ale sama informacja!) powstają na bazie opisu.
DZIŚ
Obecnie, jesteśmy świadkami kolejnego etapu rozwoju, którego głównym aspektem jest specjalizacja rozwiązań już pod kątem specyficznych sieci neuronowych. Mowa tu oczywiście o bardzo popularnych, tzw. dużych modelach językowych, napędzanych przez sieci neuronowe zbudowane w oparciu o tzw. transformery.
Koronnym przykładem, jest najnowszy model akceleratora NVIDIA GPGPU – H100, który – oprócz znanych już rdzeni tensor – został wyposażony w tzw. transformer engine. Są to zmodyfikowane rdzenie tensor mogące dostosowywać precyzję obliczeń na bieżąco. Znajduje to zastosowanie w przyspieszeniu uczenia bardzo popularnych obecnie tzw. dużych modeli językowych.
Obecnie, na rynku znajdziemy – w każdym, liczącym się data center – rozwiązania niezbędne do pracy z sieciami neuronowymi. W komputerach stacjonarnych, dysponujemy kartami graficznymi (bit.ly/44bouL1) posiadającymi moc obliczeniową największego superkomputera z końca XX wieku (bit.ly/3XnP1Tu).
Cloud computing
Chmura obliczeniowa stała się jedną z ważniejszych metod wykorzystania z narzędzi AI. Głównym powodem jest umożliwienie pokonania bariery wejścia związanej z nabyciem sprzętu akcelerującego oraz dostępność tych rozwiązań na życzenie, tu i teraz.
Specyfika usług chmurowych, oferująca skalę, umożliwia dostęp do rozwiązań wspierających każdy etap prac nad rozwiązaniami AI. Od przygotowania danych i ich eksplorację, przez dopasowywanie modeli aż do zarządzania modelami.
Dzięki tej skali, narzędzia mogą być wykorzystane zarówno przez pojedynczych specjalistów, pracujących na niewielkich akcelerowanych instancjach, jak i duże grupy, korzystające z całych zintegrowanych klastrów.
Dziś nikt nie ma już złudzeń, że możliwości obliczeniowe akceleratorów graficznych znacznie przewyższają te oferowane przez klasyczne procesory. Rynek zdominowany przez NVIDIA jednak wcale nie ma zamiaru się poddawać. Do największych konkurentów – łącznie około 40% rynku – zalicza się AMD, Intel, Google oraz Graphcore.
Dostępne rozwiązania sprzętowe
Dziś nikt nie ma już złudzeń, że możliwości obliczeniowe akceleratorów graficznych znacznie przewyższają te oferowane przez klasyczne procesory. Rynek zdominowany przez NVIDIA jednak wcale nie ma zamiaru się poddawać. Konkurenci, którzy od lat usprawniają swoją technologię szukają zaczepienia oferując podzespoły skrojone pod konkretne zadania. Całkowicie przebudowują architekturę tak, aby obliczenia były jeszcze szybsze lub nawet budują urządzenia analogowe, które potencjalnie mogą pozwolić znacznie zmniejszyć zużycie energii elektrycznej podczas wykonywania ciężkich zadań obliczeniowych. Do największych konkurentów – łącznie około 40% rynku – zalicza się AMD, Intel, Google oraz Graphcore.
Aplikacyjność AI
Z pewną dozą samokontroli, bo ciężko nie wpaść w zachwyt, chciałoby się powiedzieć, że osiągnęliśmy już gwiazdy. AI jest w stanie „wymyślać” dla nas rzeczy, tworzyć muzykę, obrazy, wiersze, bajki, pisać złożony kod, który odpowiednio dostrojony może służyć do zastosowań produkcyjnych. A to wszystko za sprawą nowego podejścia do tworzenia modeli sztucznej inteligencji.
Transformery zmieniły to jak teraz patrzymy na AI. Pokazały siłę drzemiącą w rozwiązaniach znanych od lat 50 XX wieku. Zaprezentowany w artykule „Attention is All You Need” (2017) autorstwa Ashish Vaswani mechanizm „uwagi” pozwolił rozwinąć nie tyle samą część matematyczną lecz sposób postrzegania informacji przez modele sztucznej inteligencji. To właśnie na tym mechanizmie oparte zostały duże modele językowe, które stały się kamieniem milowym w aplikowalności AI.
Już dziś ciężko wyobrazić sobie świat bez udogodnień oferowanych przez naszych nowych, „osobistych” asystentów. Jeśli czegoś potrzebujemy wystarczy zadać pytanie na czacie, a otrzymana odpowiedź z dużym prawdopodobieństwie będzie dla nas zadowalająca. Co więcej na spokojnie możemy dopytać, rozszerzyć czy przetłumaczyć otrzymaną informacje na inne języki.
Programiści zaczęli kodować szybciej dzięki GitHub Copilot, który „rozumie” koncept projektu wewnątrz, którego przychodzi pisać mu kod. Kod podpowiadany przez „drugiego pilota” wygląda jak by wyszedł spod naszej ręki. Artyści szukają nowych inspiracji czy po prostu automatyzują część zadań dzięki modelom generującym obrazy czy muzykę.
Inwestorzy, maklerzy giełdowi, analitycy nie muszą przekopywać się przez tony dokumentów i stron internetowych aby zdobyć informację na temat danej spółki czy rynku. Ogólne informacje, wraz z interpretacją są dostępne od razu po zadaniu pytania. Zagregowane z wielu źródeł i podane w przystępny sposób – jak np. dane o udziale NVIDIA w rynku GPU, które zostały użyte w poprzednim rozdziale. Jeśli chcemy sięgnąć po bardziej szczegółowe dane, ale nie wiemy jak należy rozmawiać z bazami danych, nie potrzebujemy już inżyniera, który stworzy za nas kwerendę. Również może to dla nas zrobić AI.
Przemysł i kontrola jakości, zarządzanie zasobami, oszczędności z usprawniania procesów produkcyjnych te wszystkie rzeczy może zrobić dla nas AI już teraz, wystarczy tylko „nakarmić” ją odpowiednimi danymi.
Odejście od sztywnej architektury, odpowiadającej za obliczanie krawędzi trójkątów czy nakładania tekstur do rozwiązania opartego o tzw. shadery, czyli programowalne jednostki renderujące, udało się stworzyć podwaliny uniwersalnych, programowalnych narzędzi. Kolejnym krokiem była ewolucja shaderów, do zunifikowany
Wdrażanie rozwiązań AI w organizacji
Zacznijmy od rozwinięcia konceptu „karmienia” sztucznej inteligencji danymi. A raczej od zadania pytania czy to na pewno bezpieczne? Jeśli rozważamy AI w kontekście publicznie dostępnego chatGPT to odpowiedź brzmi absolutnie nie. Przekazywanie danych wrażliwych czy tajemnic przedsiębiorstwa z dużym prawdopodobieństwem skończy się ujawnieniem tych danych, jeśli ktoś zada odpowiednie pytanie w przyszłości.
Model cały czas uczy się na podstawie zadawanych pytań i naszego feedbacku o tym czy wygenerowana odpowiedź była dla nas użyteczna. Jednak obecnie istnieje już wiele rozwiązań pozwalających na uruchamianie prywatnych instancji chat GPT, chociażby w chmurze Microsoft Azure. Jak twierdzi producent, wówczas model jest w pełni izolowany i po usunięciu nic, czym został zasilony nie wyjdzie poza naszą organizację.
Istnieje również możliwość zbudowania prywatnego asystenta we własnej infrastrukturze opierając go o jeden z wielu, dostępnych obecnie modeli open source. Proces wdrażania został uproszczony do minimum, gotowe rozwiązania oferują pojedynczy kontener, który – na podstawie naszych dokumentów PDF czy baz danych – może zostać dość szybko wytrenowany tak aby z naszymi danymi można było „rozmawiać”.
Dane
Przyrostu globalnego wolumenu danych nie ma potrzeby udowadniać. Wraz z rozbudową usług w sieci Internet, powstaniu IoT (czy może nawet IoE) zwiększa się on w tempie wykładniczym. Należy jednak w tym miejscu podkreślić konsekwencję powyższego faktu. Już nie dobrą praktyką, a koniecznością, stało się zaawansowane i sformalizowane postępowanie z danymi. Procedury obszaru Data Governance operacyjnie przypominają te, które powstają w Systemach Zarządzania Bezpieczeństwem Informacji. Co zresztą nie powinno dziwić w świetle faktu, że dane stały się aktywami przedsiębiorstwa (na równi z nieruchomościami!).
Wprowadzanie formalizacji postępowania skutkuje wzrostem kosztów. O ograniczeniu ponoszonych nakładów możemy mówić zaś w obszarze przechowywania. Implementacja polityki Zero Copy polega na architektonicznym zapewnieniu dostępu dla trenowanego czy też inferującego modelu bez konieczności kopiowania data setu do infrastruktury AI.
Oprócz kwestii organizacyjnych i infrastrukturalnych należy też wspomnieć o procesie przygotowania danych do treningu. Osoby pracujące przy budowie systemów wykorzystujących sieci neuronowe podkreślają, że mniej więcej 70–75% czasu poświęcają na przygotowanie danych. Poza statystycznymi sprawdzeniami spójności danych, weryfikacją i ewentualnym poprawianiem typów (przynajmniej w większości modeli) konieczne jest rozszerzenie metadanych o anotację.
Proces opisywania danych – bez względu na ich typ – jest bardzo czasochłonny. Tu developerzy zaczęli stosować metody tagowania wspierane przez modele AI. To, co jest nowością to fakt, że dostęp do AI Assisted Annotation, zdemokratyzował się poprzez jego elastyczną implantację w ogólnodostępnych narzędziach, takich jak Label Studio czy CVAT.
Mówiąc o metadanych czy opisach danych, warto też zwrócić uwagę na zupełnie nowe zjawisko, które pojawiło się wraz z szerokim udostępnieniem Generative AI publiczności. Promptowanie, bo o nim mowa, jest niejako odwróceniem klasycznego modelu, gdzie opis powstaje na podstawie danych – tu dane (nawet nie dane, ale sama informacja!) powstają na bazie opisu.
Podsumowując, obniżenie ceny mocy obliczeniowej jest faktem. Szeroki dostęp do aplikacji, konteneryzacja i modele chmurowe przyczyniają się do demokratyzacji AI. Niemniej jednak należy pamiętać, że rozwojowi towarzyszy powstawanie nowych (czasem kosztownych) praktyk niezbędnych do prawidłowego budowania modeli i usług.
Najważniejsze wnioski można zawrzeć w trzech punktach:
- Nie musisz być właścicielem sprzętu, aby być twórcą AI.
- Nie musisz twórcą AI, by z niego korzystać.
- Powinieneś (przyjemniej rozważyć) wykorzystanie AI w celu zachowania lub uzyskania przewagi konkurencyjnej.
Dariusz Skonieczny, Dyrektor dz. R&D, Comtegra S.A.
Grzegorz Ber, AI Lob Manager, Comtegra S.A.
Jakub Zboina, Ai Platform Engineer, Comtegra S.A.