Autor: Siergiej Łukjanikow, inżynier konsultant w InterSystems
Wyzwania obliczeniowe AI/ML w czasie rzeczywistym
Rozpocznijmy od przykładów z doświadczeń praktyki Data Science w firmie InterSystems:
- Portal klienta obciążony jest podłączony do online'owego systemu rekomendacji. Czeka nas restrukturyzacja działań promocyjnych w skali sieci detalicznej (przypuśćmy, że zamiast 'płaskiej' linii promocji, teraz będzie stosowana macierz 'segment-taktyka'). Co się dzieje z mechanizmami rekomendacyjnymi? Co się dzieje z przekazywaniem i aktualizacją danych w mechanizmie rekomendacyjnym (objętość danych wejściowych wzrosła 25000 razy)? Co się dzieje z generowaniem rekomendacji (konieczność tysięcznego obniżenia progu filtrowania reguł rekomendacyjnych w związku z tysięcznym wzrostem ich liczby i 'asortymentu')?
- Istnieje system monitorowania prawdopodobieństwa wystąpienia defektów w węzłach sprzętowych. Do systemu monitorowania podłączono SCADA, przesyłającą tysiące parametrów procesu technologicznego co sekundę. Co się dzieje z systemem monitorowania, który wcześniej działał na 'ręcznych próbkach' (czy jest w stanie zapewnić monitorowanie prawdopodobieństwa co sekundę)? Co się stanie, jeśli w danych wejściowych pojawi się nowy blok liczący kilkaset kolumn z odczytami czujników, które niedawno wprowadzono do SCADA (czy system monitorowania będzie musiał być zatrzymany i na jak długo, aby uwzględnić w analizie dane z nowych czujników)?
- Stworzono zespół mechanizmów AI/ML (rekomendacyjne, monitorujące, prognozujące), które wykorzystują wyniki pracy innych. Ile godzin roboczych jest potrzebnych co miesiąc na dostosowanie pracy tego zespołu do zmian w danych wejściowych? Jakie jest całkowite 'spowolnienie' wspomagane przez zespół podejmowania decyzji zarządczych (częstość pojawiania się w nim nowej informacji wspierającej w stosunku do częstości pojawiania się nowych danych wejściowych)?
Podsumowując te oraz wiele innych przykładów, doszliśmy do sformułowania wyzwań związanych z przejściem do wykorzystania mechanizmów uczenia maszynowego i sztucznej inteligencji w czasie rzeczywistym:
- Czy odpowiada nam szybkość tworzenia i dostosowywania (do zmieniającej się sytuacji) rozwiązań AI/ML w naszej firmie?
- Na ile nasze rozwiązania AI/ML wspierają zarządzanie biznesem w czasie rzeczywistym?
- Czy nasze rozwiązania AI/ML potrafią samodzielnie (bez programistów) dostosowywać się do zmian w danych i praktykach zarządzania biznesem?
Nasz artykuł to szczegółowy przegląd możliwości platformy InterSystems IRIS w zakresie uniwersalnego wsparcia dla wdrażania mechanizmów AI/ML, integracji rozwiązań AI/ML oraz uczenia (testowania) rozwiązań AI/ML na intensywnych strumieniach danych. Odniesiemy się do badań rynkowych, praktycznych przykładów rozwiązań AI/ML oraz koncepcyjnych aspektów tego, co w tym artykule nazywamy platformą AI/ML w czasie rzeczywistym.
Co wiadomo z badań: aplikacje w czasie rzeczywistym
Wyniki , przeprowadzonego w 2019 roku wśród około 800 profesjonalistów IT przez firmę Lightbend, mówią same za siebie:

Rysunek 1 Wiodący konsumenci danych w czasie rzeczywistym
Zacytujmy istotne fragmenty raportu z wynikami tej ankiety w naszym tłumaczeniu:
„… Tendencje popularności narzędzi integracji strumieni danych oraz jednoczesne wsparcie obliczeń w kontenerach dają synergistyczny odzew na zapotrzebowanie rynku na bardziej operacyjne, racjonalne i dynamiczne oferowanie efektywnych rozwiązań. Strumienie danych pozwalają na szybsze przekazywanie informacji niż tradycyjne dane pakietowe. Dodatkowo możliwość bieżącego stosowania metod obliczeniowych, takich jak na przykład rekomendacje oparte na AI/ML, tworzy przewagi konkurencyjne poprzez zwiększenie satysfakcji klientów. Wyścig o szybkość wpływa również na wszystkie role w paradygmacie DevOps – zwiększając efektywność tworzenia i wdrażania aplikacji. … Ośmiuset czterech specjalistów IT dostarczyło informacje na temat wykorzystania strumieni danych w ich organizacjach. Respondenci byli głównie z krajów zachodnich (41% w Europie i 37% w Ameryce Północnej) i byli niemal równomiernie rozdzieleni pomiędzy małe, średnie i duże firmy. …
Sztuczna inteligencja to nie tylko chwilowa moda. Pięćdziesiąt osiem procent użytkowników, którzy już stosują przetwarzanie strumieni danych w aplikacjach AI/ML, potwierdza, że ich zastosowanie w AI/ML przyniesie największy wzrost w przyszłym roku (w porównaniu do innych aplikacji).
- Według większości ankietowanych, zastosowanie strumieni danych w scenariuszach AI/ML przyniesie największy wzrost w przyszłym roku.
- Zastosowanie w AI/ML będzie wzrastać nie tylko dzięki stosunkowo nowym typom scenariuszy, ale także dzięki tradycyjnym scenariuszom, w których dane w czasie rzeczywistym są coraz intensywniej wykorzystywane.
- Oprócz AI/ML, poziom entuzjazmu wśród użytkowników pipeline'ów danych IoT jest imponujący — 48% z tych, którzy już zintegrowali dane IoT, twierdzi, że wdrożenie scenariuszy opartych na tych danych przyniesie znaczący wzrost w najbliższej przyszłości. … »
Z tego ciekawego badania wynika, że postrzeganie scenariuszy uczenia maszynowego i sztucznej inteligencji jako liderów w zużyciu strumieni danych jest już „na horyzoncie”. Jednak nie mniej istotnym spostrzeżeniem jest postrzeganie AI/ML w czasie rzeczywistym przez pryzmat DevOps: tutaj można już mówić o transformacji dominującej dotychczas kultury „jednorazowego AI/ML z całkowicie dostępnym zestawem danych.”
Koncepcja platformy AI/ML w czasie rzeczywistym.
Jednym z typowych obszarów zastosowania AI/ML w czasie rzeczywistym jest zarządzanie procesami technologicznymi w produkcji. Na tym przykładzie i w kontekście wcześniejszych przemyśleń sformułujemy koncepcję platformy AI/ML w czasie rzeczywistym.
Użycie sztucznej inteligencji i uczenia maszynowego w zarządzaniu procesami technologicznymi ma szereg szczególnych cech:
- Dane o stanie procesu technologicznego napływają intensywnie: z dużą częstotliwością i w szerokim zakresie parametrów (nawet do dziesiątek tysięcy wartości parametrów przesyłanych na sekundę z systemów automatyki przemysłowej).
- Dane o wykrywaniu defektów, nie mówiąc już o danych o ich rozwoju, są natomiast skąpe i nieregularne, charakteryzują się niewystarczającą typizacją defektów i ich lokalizacją w czasie (często przedstawiane są w postaci zapisów na papierze).
- Z praktycznego punktu widzenia, do nauki i zastosowania modeli dostępne jest jedynie „okno aktualności” danych źródłowych, które odzwierciedla dynamikę procesu technologicznego w rozsądnym interwale przesuwającym się, kończącym się na ostatnio odczytanych wartościach parametrów procesu.
Te cechy zmuszają nas do równoległego przeprowadzania przyjmowania i podstawowej obróbki w czasie rzeczywistym intensywnego „szerokopasmowego sygnału przychodzącego” z procesu technologicznego, a także do wdrażania, szkolenia i kontroli jakości wyników pracy modeli AI/ML – również w czasie rzeczywistym. Ten „kadr”, który nasze modele „widzą” w przesuwającym się oknie aktualności, ciągle się zmienia – a wraz z nim zmienia się jakość wyników pracy modeli AI/ML, które zostały wytrenowane na jednym z „kadrów” w przeszłości. W przypadku pogorszenia jakości wyników pracy modeli AI/ML (np. wartość błędu klasyfikacji „alarm-norma” przekroczyła ustalone przez nas granice) powinno automatycznie zostać uruchomione dodatkowe szkolenie modeli na bardziej aktualnym „kadrze” – a wybór momentu do uruchomienia dodatkowego szkolenia powinien uwzględniać zarówno czas trwania samego szkolenia, jak i dynamikę pogarszania się jakości pracy bieżącej wersji modeli (ponieważ bieżące wersje modeli są nadal stosowane, podczas gdy modele są szkolone, aż do momentu, gdy zostaną utworzone ich „ponownie wytrenowane” wersje).
InterSystems IRIS posiada kluczowe możliwości platformowe do zapewnienia działania rozwiązań AI/ML w zarządzaniu procesami technologicznymi w czasie rzeczywistym. Możliwości te można podzielić na trzy główne grupy:
- Ciągłe wdrażanie (Continuous Deployment/Delivery, CD) nowych lub dostosowanych istniejących mechanizmów AI/ML do produktywnego rozwiązania funkcjonującego w czasie rzeczywistym na platformie InterSystems IRIS.
- Ciągła integracja (Continuous Integration, CI) w ramach jednego produktywnego rozwiązania napływających danych procesu technologicznego, kolejek danych do zastosowania/szkolenia/kontroli jakości pracy mechanizmów AI/ML oraz wymiany danych/kodu/sterujących działań ze środowiskami symulacji matematycznej, które są orkiestracją realizowaną w czasie rzeczywistym przez platformę InterSystems IRIS.
- Ciągłe (samo-)uczenie (Continuous Training, CT) mechanizmów AI/ML odbywa się w środowiskach modelowania matematycznego z wykorzystaniem danych, kodu i oddziaływań kontrolnych ("podejmowanych decyzji"), przekazywanych przez platformę InterSystems IRIS
Klasyfikacja możliwości platform w kontekście uczenia maszynowego i sztucznej inteligencji w tych grupach nie jest przypadkowa. Zacytujmy metodologię firmy Google, która dostarcza podstawy koncepcyjne dla tej klasyfikacji, w naszym tłumaczeniu:
„… Popularna dzisiaj koncepcja DevOps obejmuje rozwój i eksploatację dużych systemów informatycznych. Korzyści z wprowadzenia tej koncepcji obejmują skrócenie czasu cyklu rozwoju, przyspieszenie wdrażania projektów oraz elastyczność w planowaniu wydań. Aby uzyskać te korzyści, DevOps zakłada wprowadzenie co najmniej dwóch praktyk:
- Ciągła integracja (Continuous Integration, CI)
- Ciągła dostawa (Continuous Delivery, CD)
Te praktyki są również stosowane w platformach AI/ML – w celu zapewnienia niezawodnej i wydajnej konstrukcji efektywnych rozwiązań AI/ML.
Platformy AI/ML różnią się od innych systemów informatycznych w następujących aspektach:
- Kompetencje zespołu: podczas tworzenia rozwiązań AI/ML zespół zazwyczaj obejmuje data scientistów lub ekspertów - „akademików” w dziedzinie badań danych, którzy przeprowadzają analizę danych, rozwijają i testują modele. Uczestnicy zespołu mogą nie być profesjonalnymi programistami efektywnego kodu produkcyjnego.
- Rozwój: mechanizmy AI/ML są z natury eksperymentalne. Aby rozwiązać problem w najbardziej efektywny sposób, konieczne jest przetestowanie różnych kombinacji zmiennych wejściowych, algorytmów, metod modelowania i parametrów modelu. Złożoność tego przeszukiwania polega na śledzeniu „co zadziałało/nic nie zadziałało”, zapewnieniu reprodukcji epizodów, generalizacji opracowań dla powtarzających się implementacji.
- Testowanie: testowanie mechanizmów AI/ML wymaga szerszego zakresu testów niż większość innych rozwinięć. Oprócz standardowych testów jednostkowych i integracyjnych testowane są ważność danych oraz jakość wyników zastosowania modelu na zbiorach uczących i kontrolnych.
- Wdrożenie: wdrożenie rozwiązań AI/ML nie ogranicza się do usług predykcyjnych, które stosują jednorazowo wytrenowany model. Rozwiązania AI/ML opierają się na wieloetapowych pipeline'ach, które wykonują zautomatyzowane uczenie i zastosowanie modeli. Wdrożenie takich pipeline'ów wiąże się z automatyzacją nietrywialnych działań, które tradycyjnie były wykonywane ręcznie przez data scientistów, aby umożliwić trenowanie i testowanie modeli.
- Produktywność: mechanizmy AI/ML mogą cierpieć na niedobór wydajności nie tylko z powodu nieefektywnego programowania, ale także w wyniku stale zmieniającego się charakteru danych wejściowych. Innymi słowy, wydajność mechanizmów AI/ML może ulegać degradacji z szerszego zakresu przyczyn niż wydajność tradycyjnych rozwiązań. To prowadzi do konieczności monitorowania (w trybie „online”) wydajności naszych mechanizmów AI/ML, a także do wysyłania powiadomień lub odrzucania wyników, jeśli wskaźniki wydajności nie spełniają oczekiwań.
Platformy AI/ML są podobne do innych systemów informacyjnych w tym sensie, że i jedne, i drugie wymagają ciągłej integracji kodu z kontrolą wersji, testowania modułowego, testowania integracyjnego, ciągłego wdrażania rozwiązań. Niemniej jednak, w przypadku AI/ML, istnieje kilka ważnych różnic:
- CI (Continuous Integration, ciągła integracja) nie ogranicza się już tylko do testowania i walidacji kodu wdrażanych komponentów – obejmuje również testowanie i walidację danych oraz modeli AI/ML.
- CD (Continuous Delivery/Deployment, ciągłe wdrażanie) nie odnosi się wyłącznie do pisania i wydawania paczek lub usług, lecz oznacza platformę do kompozycji, uczenia i zastosowania rozwiązań AI/ML.
- CT (Continuous Training, ciągłe uczenie) – nowy element [przyp. autora artykułu: nowy element w stosunku do tradycyjnej koncepcji DevOps, w której CT to zazwyczaj Continuous Testing], charakterystyczny dla platform AI/ML, odpowiedzialny za autonomiczne zarządzanie mechanizmami uczenia i zastosowania modeli AI/ML. …
Możemy stwierdzić, że uczenie maszynowe i sztuczna inteligencja działające na danych w czasie rzeczywistym wymagają szerszego zestawu narzędzi i kompetencji (od programowania po orkiestrację środowisk modelowania matematycznego), ściślejszej integracji pomiędzy wszystkimi obszarami funkcjonalnymi i tematycznymi oraz efektywniejszej organizacji zasobów ludzkich i maszynowych.
Scenariusz w czasie rzeczywistym: rozpoznawanie rozwoju defektów w pompach do żywności.
Kontynuując przykład z obszaru zarządzania procesami technologicznymi, rozważmy konkretne zadanie (już wspomniane na początku): wymagana jest w czasie rzeczywistym kontrola rozwoju defektów w pompach na podstawie przepływu wartości parametrów procesu technologicznego oraz raportów personelu serwisowego o stwierdzonych defektach.

Rysunek 2 Sformułowanie zadania monitorowania rozwoju defektów.
Cechą większości podobnych zadań w praktyce jest to, że regularność i pilność napływających danych (ASUTP) muszą być rozpatrywane w kontekście epizodyczności i nieregularności występowania (i rejestracji) defektów różnych typów. Innymi słowy: dane z ASUTP napływają co sekundę, są poprawne i dokładne, natomiast o defektach sporządzane są zapisy ołówkiem chemicznym z datą w ogólnej notatniku w zakładzie (na przykład: „12.01 – wyciek przy pokrywie z strony 3. łożyska”).
W ten sposób można uzupełnić sformułowanie zadania o kolejne istotne ograniczenie: „znacznik” defektu konkretnego typu mamy tylko jeden (to znaczy: przykład defektu konkretnego typu przedstawiony jest danymi z ASUTP na konkretną datę – a więcej przykładów defektu tego typu już nie mamy). To ograniczenie natychmiast wyprowadza nas poza ramy klasycznego uczenia maszynowego (uczenie nadzorowane), dla którego „znaczników” powinno być wiele.

Rysunek 3 Doprecyzowanie zadania monitorowania rozwoju defektów.
Czy możemy jakoś „sklonować” naszą jedyną dostępną „etykietę”? Tak, możemy. Aktualny stan pompy charakteryzuje stopień podobieństwa zarejestrowanym defektom. Nawet bez zastosowania metod ilościowych, na poziomie percepcji wzrokowej, obserwując dynamikę wartości danych pochodzących z systemu zarządzania procesami, można już wiele wywnioskować:

Rysunek 4 Dynamika stanu pompy w kontekście „etykiety” defektu określonego typu
Jednak percepcja wzrokowa (przynajmniej na razie) nie jest najlepszym generatorem „etykiet” w naszym szybko zmieniającym się scenariuszu. Będziemy oceniać podobieństwo aktualnego stanu pompy do zarejestrowanych defektów przy pomocy testu statystycznego.

Rysunek 5 Zastosowanie testu statystycznego do danych przychodzących w kontekście „etykiety” defektu
Test statystyczny określa prawdopodobieństwo, że zapisy z wartościami parametrów procesu technologicznego w otrzymanym z systemu zarządzania procesami „strumieniu-pakiecie” są podobne do zapisów „etykiety” defektu określonego typu. Wartość prawdopodobieństwa obliczona w wyniku zastosowania testu statystycznego przekształca się do wartości 0 lub 1, stając się „etykietą” do uczenia maszynowego w każdym konkretnym zapisie w badanym pakiecie. Tzn. po przetworzeniu nowo przybyłego pakietu zapisów stanu pompy testem statystycznym mamy możliwość (a) dodania tego pakietu do zbioru treningowego dla uczenia modelu AI/ML oraz (b) przeprowadzenia kontroli jakości działania bieżącej wersji modelu przy jego zastosowaniu do tego pakietu.

Rysunek 6 Zastosowanie modelu uczenia maszynowego do danych przychodzących w kontekście „etykiety” defektu
W jednym z naszych wcześniejszych Pokazujemy i wyjaśniamy, w jaki sposób platforma InterSystems IRIS umożliwia wdrożenie dowolnych mechanizmów AI/ML w postaci nieprzerwalnie realizowanych procesów biznesowych, które kontrolują prawdziwość wyników symulacji i dostosowują parametry modeli. Przy realizacji prototypu naszego scenariusza z pompami korzystamy z całej funkcjonalności InterSystems IRIS przedstawionej podczas webinaru – implementując w procesie analizatora w ramach naszego rozwiązania nie klasyczne uczenie nadzorowane, ale raczej uczenie ze wzmocnieniem (reinforcement learning), które automatycznie zarządza próbą do uczenia modeli. Do próbki do uczenia trafiają rekordy, na których dochodzi do „konsensusu detekcji” po zastosowaniu zarówno testu statystycznego, jak i bieżącej wersji modelu – tzn. zarówno test statystyczny (po zastosowaniu indeksu podobieństwa do 0 lub 1), jak i model dały na tych rekordach wynik 1. Podczas nowego uczenia modelu, podczas jego walidacji (ponownie wytrenowany model jest stosowany do własnej próbki treningowej, wcześniej stosowanej do niej testu statystycznego), rekordy, które „nie utrzymały” po przetwarzaniu testu statystycznego wyniku 1 (z powodu stałej obecności w próbce treningowej rekordów z pierwotną „metką” defektu), są usuwane z próbki treningowej, a nowa wersja modelu uczy się na „metce” defektu oraz na „utrzymanych” rekordach z strumienia.

Rysunek 7 Robotyzacja obliczeń AI/ML w InterSystems IRIS
W przypadku, gdy zaistnieje potrzeba uzyskania swego rodzaju „drugiej opinii” na temat jakości detekcji uzyskiwanej podczas lokalnych obliczeń w InterSystems IRIS, tworzy się proces-adwokat do przeprowadzenia uczenia-stosowania modeli na kontrolnym zbiorze danych z wykorzystaniem usług chmurowych (np. Microsoft Azure, Amazon Web Services, Google Cloud Platform itp.):

Rysunek 8 „Druga opinia” z Microsoft Azure pod orchestracją InterSystems IRIS
Prototyp naszego scenariusza w InterSystems IRIS wykonany jest w postaci systemu agentów procesów analitycznych, które nawiązują interakcje z obiektem sprzętowym (pompą), środowiskami modelowania matematycznego (Python, R i Julia) i zapewniają samouczenie wszystkich zaangażowanych mechanizmów AI/ML – na strumieniach danych w czasie rzeczywistym.

Rysunek 9 Główna funkcjonalność rozwiązania AI/ML w czasie rzeczywistym w InterSystems IRIS
Praktyczny wynik pracy naszego prototypu:
- Wzorzec wady rozpoznany przez model (12 stycznia):

- Rozwijająca się wada, nieujęta w wzorcu, rozpoznana przez model (11 września, sama wada została potwierdzona przez ekipę serwisową dopiero dwa dni później – 13 września):

Symulacja na rzeczywistych danych zawierających kilka epizodów tej samej wady pokazała, że nasze rozwiązanie, zrealizowane na platformie InterSystems IRIS, pozwala na wykrycie rozwoju wad tego typu kilka dni przed momentem ich zauważenia przez ekipę serwisową.
InterSystems IRIS – uniwersalna platforma AI/ML obliczeń w czasie rzeczywistym
Platforma InterSystems IRIS upraszcza rozwój, wdrażanie i eksploatację rozwiązań opartych na danych w czasie rzeczywistym. InterSystems IRIS jest w stanie jednocześnie wykonywać analizy transakcyjne i analityczne; wspierać synchronizowane widoki danych zgodnie z różnymi modelami (w tym relacyjnym, hierarchicznym, obiektowym i dokumentowym); pełnić rolę platformy integracyjnej dla szerokiego spektrum źródeł danych i aplikacji; dostarczać zaawansowaną analitykę w czasie rzeczywistym na danych strukturalnych i niestrukturalnych. InterSystems IRIS oferuje również mechanizmy do stosowania zewnętrznych narzędzi analitycznych, umożliwia elastyczne łączenie chmury z lokalnymi serwerami.
Aplikacje oparte na platformie InterSystems IRIS zostały wdrożone w różnych branżach, pomagając firmom osiągnąć znaczące korzyści ekonomiczne w perspektywie strategicznej i operacyjnej, zwiększając świadomość podczas podejmowania decyzji i eliminując "luki" między zdarzeniem, analizą a działaniem.

Rysunek 10 Architektura InterSystems IRIS w kontekście AI/ML w czasie rzeczywistym
Podobnie jak na poprzednim diagramie, poniższy diagram łączy nowy "system współrzędnych" (CD/CI/CT) z schematem przepływów informacji między elementami roboczymi platformy. Wizualizacja zaczyna się od makromechanizmu CD i kontynuuje przez makromechanizmy CI i CT.

Rysunek 11 Schemat przepływów informacji między elementami AI/ML platformy InterSystems IRIS
Istota mechanizmu CD w InterSystems IRIS: użytkownicy platformy (twórcy rozwiązań AI/ML) dostosowują już istniejące i/lub tworzą nowe rozwinięcia AI/ML za pomocą specjalistycznego edytora kodu programistycznego mechanizmów AI/ML: Jupyter (pełna nazwa: Jupyter Notebook; czasami dla skrótu nazywane są także dokumenty stworzone w tym edytorze). W Jupyter programista ma możliwość napisania, debugowania i upewnienia się co do funkcjonalności (w tym przy użyciu grafiki) konkretnego rozwinięcia AI/ML przed jego umieszczeniem („wdrożeniem”) w InterSystems IRIS. Oczywiste jest, że nowo tworzone rozwinięcie w ten sposób otrzyma jedynie podstawowe wsparcie debugowe (ponieważ Jupyter nie obsługuje strumieni danych w czasie rzeczywistym) – to w porządku, ponieważ głównym celem tworzenia w Jupyter jest potwierdzenie zasadniczej funkcjonalności pojedynczego mechanizmu AI/ML („na podstawie zbioru danych pokazuje oczekiwany wynik”). Podobnie, już umieszczony w platformie mechanizm (patrz następne makromekanizmy) przed debugowaniem w Jupyter może wymagać „powrotu” do „przedplatformowej” wersji (odczyt danych z plików, praca z danymi przez xDBC zamiast tabel, bezpośrednia interakcja z globalnymi – wielowymiarowymi tablicami danych InterSystems IRIS – itd.).
Waży aspekt implementacji CD właśnie w InterSystems IRIS: między platformą a Jupyter realizowana jest dwukierunkowa integracja, która umożliwia przenoszenie do platformy (a następnie przetwarzanie w platformie) treści w językach Python, R i Julia (wszystkie trzy są językami programowania w odpowiednich wiodących środowiskach open-source modelowania matematycznego). Dzięki temu twórcy treści AI/ML mają możliwość przeprowadzania „ciągłego wdrażania” tej treści w platformie, pracując w znanym sobie edytorze Jupyter, z dostępnymi w Pythonie, R, Julii bibliotekami oraz wykonując podstawowe wsparcie debugowe (jeśli zajdzie taka potrzeba) poza platformą.
Przechodzimy do makromekanizmu CI w InterSystems IRIS. Na diagramie przedstawiony jest makroproces działania "robotyzatora czasu rzeczywistego" (kompleks danych, procesów biznesowych oraz fragmentów kodu orkiestrujących je w językach matśred i ObjectScript – natywnym języku programowania InterSystems IRIS). Zadaniem tego makroprocesu jest utrzymanie niezbędnych do działania mechanizmów AI/ML kolejek danych (na podstawie strumieni danych przesyłanych do platformy w czasie rzeczywistym), podejmowanie decyzji o kolejności zastosowania oraz "asortymencie" mechanizmów AI/ML (zwanych również "algorytmami matematycznymi", "modelami" itd. – mogą mieć różne nazwy w zależności od konkretnej realizacji i preferencji terminologicznych), oraz utrzymanie aktualnych struktur danych do analizy wyników działania mechanizmów AI/ML (kostki, tabele, wielowymiarowe tablice danych itd. – dla raportów, pulpitów nawigacyjnych itd.).
Waźny aspekt implementacji CI w InterSystems IRIS: między platformą a środowiskami modelowania matematycznego zrealizowano dwustronną integrację, która umożliwia wykonywanie treści umieszczonej w platformie w językach Python, R i Julia w ich odpowiednich środowiskach, z uzyskaniem wyników wykonania. Ta integracja zrealizowana jest zarówno w "trybie terminala" (tj. treść AI/ML formułowana jest jako kod w ObjectScript, wykonujący wywołania matśred), jak i w "trybie procesu biznesowego" (tj. treść AI/ML formułowana jest jako proces biznesowy za pomocą edytora graficznego lub czasami za pomocą Jupyter, lub za pomocą IDE – IRIS Studio, Eclipse, Visual Studio Code). Dostępność procesów biznesowych do edycji w Jupyter jest odzwierciedlona poprzez połączenie między IRIS na poziomie CI a Jupyter na poziomie CD. Szczegółowy przegląd integracji ze środowiskami modelowania matematycznego zostanie przedstawiony dalej. Na tym etapie, naszym zdaniem, istnieją wszelkie podstawy do stwierdzenia, że platforma posiada wszystkie niezbędne narzędzia do realizacji "ciągłej integracji" rozwoju AI/ML (pochodzącego z "ciągłego wdrażania") w rozwiązania AI/ML czasu rzeczywistego.
Główny makromekanizm: CT. Bez niego nie można stworzyć platformy AI/ML (choć «czas rzeczywisty» zostanie zaimplementowany poprzez CD/CI). Istotą CT jest praca platformy z «artefaktami» uczenia maszynowego i sztucznej inteligencji bezpośrednio w roboczych sesjach środowisk matematycznego modelowania: modelami, tabelami rozkładów, wektorami-macierzami, warstwami sieci neuronowych itp. Niniejsza «praca», w większości przypadków, polega na tworzeniu wspomnianych artefaktów w środowiskach (w przypadku modeli, na przykład, «tworzenie» składa się z ustalenia specyfikacji modelu i następnego dobierania wartości jego parametrów – tzw. «uczenia» modelu), ich zastosowaniu (dla modeli: obliczenia za ich pomocą «modelowych» wartości zmiennych docelowych – prognoz, przynależności do kategorii, prawdopodobieństwa wystąpienia zdarzenia itp.) oraz doskonaleniu już stworzonych i zastosowanych artefaktów (na przykład, redefinicja zestawu zmiennych wejściowych modelu na podstawie wyników zastosowania – w celu zwiększenia dokładności prognozowania, jako wariant). Kluczowym aspektem w zrozumieniu roli CT jest jego «abstrakcyjność» od rzeczywistości CD i CI: CT będzie implementować wszystkie artefakty, kierując się wyliczeniową i matematyczną specyfiką rozwiązania AI/ML w ramach możliwości, które oferują konkretne środowiska. Odpowiedzialność za «dostarczanie danych wejściowych» i «dostarczanie wyników» będą ponosić CD i CI.
Ważny aspekt wdrożenia CT w InterSystems IRIS: wykorzystując wcześniej wspomnianą integrację z środowiskami modelowania matematycznego, platforma ma możliwość wyciągania z sesji roboczych, które przebiegają pod jej kontrolą w środowiskach matematycznych, tych specyficznych artefaktów i (co najważniejsze) przekształcania ich w obiekty danych platformy. Na przykład, tabela rozkładu, która właśnie powstała w sesji roboczej Python, może być (bez zatrzymywania sesji w Pythonie) przeniesiona na platformę w postaci, na przykład, globalnej (wielowymiarowej tablicy danych InterSystems IRIS) – i wykorzystana do obliczeń w innym mechanizmie AI/ML (zrealizowanym już w języku innego środowiska – na przykład, w R) – lub jako wirtualna tabela. Inny przykład: równolegle z „normalnym trybem” pracy modelu (w sesji roboczej Python) na jej danych wejściowych przeprowadzane jest „auto-ML”: automatyczny dobór optymalnych zmiennych wejściowych i wartości parametrów. A wraz z „normalnym” uczeniem się, produktywny model w czasie rzeczywistym otrzymuje również „propozycję optymalizacji” swojej specyfikacji – w której zmienia się zestaw zmiennych wejściowych, zmieniają się wartości parametrów (już nie w wyniku uczenia w Pythonie, a w wyniku uczenia „alternatywnej” wersji samego siebie, na przykład, w stosie H2O), co pozwala ogólnemu rozwiązaniu AI/ML autonomicznie radzić sobie z nieprzewidzianymi zmianami w charakterze danych wejściowych i modelowanych zjawisk.
Przyjrzyjmy się bliżej funkcjonalności AI/ML platformy InterSystems IRIS na przykładzie realnie istniejącego prototypu.
Na poniższej diagramie, po lewej stronie slajdu znajduje się część procesu biznesowego, która implementuje wykonanie skryptów w Pythonie i R. W centralnej części znajdują się wizualne logi wykonania niektórych z tych skryptów, odpowiednio w Pythonie i R. Zaraz za nimi przykłady treści w jednym i drugim języku, które zostały przekazane do wykonania w odpowiednich środowiskach. Na końcu po prawej stronie znajdują się wizualizacje, oparte na wynikach wykonania skryptów. Wizualizacje u góry zostały przygotowane w IRIS Analytics (dane zostały pobrane z Pythona do platformy danych InterSystems IRIS i wyświetlone na dashboardzie za pomocą narzędzi platformy), natomiast te na dole zostały stworzone bezpośrednio w sesji roboczej R i wyeksportowane do plików graficznych. Ważny aspekt: zaprezentowany fragment w prototypie odpowiada za uczenie modelu (klasyfikacja stanów urządzeń) na danych, które napływają w czasie rzeczywistym z procesu-imitatora urządzenia, według polecenia z procesu-monitorowania jakości klasyfikacji, obserwowanego podczas zastosowania modelu. O implementacji rozwiązania AI/ML w postaci zestawu interaktywnych procesów („agentów”) mowa będzie później.

Rysunek 12 Interakcja z Pythonem, R i Julią w InterSystems IRIS
Procesy platformowe (znane również jako „procesy biznesowe”, „procesy analityczne”, „pipeline’y” itp. – w zależności od kontekstu), przede wszystkim, są edytowane w graficznym edytorze procesów biznesowych w samej platformie, w taki sposób, że jednocześnie tworzy się ich schemat blokowy oraz odpowiadający mechanizm AI/ML (kod programowy). Mówiąc o tym, że „powstaje mechanizm AI/ML”, od początku zakładamy hybrydowość (w ramach jednego procesu): treści w językach środowisk modelowania matematycznego współistnieją z treściami w SQL (w tym z rozszerzeniami od ), w InterSystems ObjectScript, z innymi wspieranymi językami. Co więcej, proces platformy daje bardzo szerokie możliwości do „rysowania” w postaci hierarchicznie zagnieżdżonych fragmentów (jak widać na przykładzie przedstawionym na poniższym diagramie), co pozwala efektywnie organizować nawet bardzo złożoną treść, nie „wypadając” z formatu graficznego (w „niegraficzne” metody/klasy/procedury itp.). Tzn. w razie potrzeby (a ta przewiduje się w większości projektów) absolutnie wszystkie rozwiązania AI/ML mogą być implementowane w graficznym samodokumentującym się formacie. Zwracamy uwagę na to, że w centralnej części poniższego diagramu, na którym przedstawiony jest wyższy „poziom zagnieżdżenia”, widać, że oprócz samej pracy nad nauką modelu (przy użyciu Pythona i R), dodawana jest analiza tzw. krzywej ROC wytrenowanego modelu, pozwalająca wizualnie (i obliczeniowo również) ocenić jakość szkolenia – a ta analiza realizowana jest w języku Julia (wykonywana zatem w środowisku mat. Julia).

Rysunek 13 Wizualne środowisko kompozycji rozwiązań AI/ML w InterSystems IRIS
Jak już wcześniej wspomniano, wstępny rozwój i (w niektórych przypadkach) adaptacja już zaimplementowanych w platformie mechanizmów AI/ML będą/mogą być prowadzone poza platformą w edytorze Jupyter. Na poniższym diagramie widzimy przykład adaptacji istniejącego procesu platformowego (tego samego, co na diagramie powyżej) – tak wygląda w Jupyter ten jego fragment, który odpowiada za naukę modelu. Treść w języku Python jest dostępna do edytowania, debugowania, wyprowadzania grafiki bezpośrednio w Jupyter. Zmiany (w razie potrzeby) mogą być dokonywane z natychmiastową synchronizacją w procesie platformowym, w tym w jego wersji produkcyjnej. Analogicznie nowa treść może być również przekazywana do platformy (automatycznie tworzy się nowy proces platformowy).

Rysunek 14 Zastosowanie Jupyter Notebook do edytowania mechanizmu AI/ML w platformie InterSystems IRIS
Dostosowanie procesu platformy może być realizowane nie tylko w formacie graficznym czy notebookowym, ale także w „całościowym” formacie IDE (Integrated Development Environment). Takimi IDE są IRIS Studio (natywne studio IRIS), Visual Studio Code (rozszerzenie InterSystems IRIS dla VSCode) oraz Eclipse (plugin Atelier). W niektórych przypadkach możliwe jest jednoczesne używanie wszystkich trzech IDE przez zespół deweloperów. Na diagramie poniżej zaprezentowano przykład edytowania tego samego procesu w studio IRIS, Visual Studio Code i Eclipse. Do edycji dostępna jest cała zawartość: zarówno Python/R/Julia/SQL, jak i ObjectScript, oraz proces biznesowy.

Rysunek 15 Opracowanie procesu biznesowego InterSystems IRIS w różnych IDE
Osobnego wspomnienia wymagają narzędzia do opisu i wykonania procesów biznesowych InterSystems IRIS w języku Business Process Language (BPL). BPL umożliwia korzystanie w procesach biznesowych z „gotowych komponentów integracyjnych” (activities) – co, w gruncie rzeczy, stanowi pełne podstawy do stwierdzenia, że w InterSystems IRIS zrealizowano „ciągłą integrację”. Gotowe komponenty procesu biznesowego (aktywności i powiązania między nimi) są potężnym akceleratorem budowy rozwiązań AI/ML. I nie tylko budowy: dzięki aktywnościom i powiązaniom między nimi nad rozrzuconymi projektami AI/ML i mechanizmami powstaje „autonomiczna warstwa zarządzająca”, zdolna podejmować decyzje adekwatnie do sytuacji, w czasie rzeczywistym.

Rysunek 16 Gotowe komponenty procesów biznesowych dla ciągłej integracji (CI) na platformie InterSystems IRIS
Koncepcja systemów agentowych (tzw. „systemy wieloagentowe”) ma silną pozycję w robotyzacji, a platforma InterSystems IRIS naturalnie ją wspiera poprzez konstrukcję „produkt-proces”. Oprócz nieograniczonych możliwości „wypełnienia” każdego procesu konieczną funkcjonalnością dla ogólnego rozwiązania, nadanie właściwości „agencji” systemowi procesów platformowych pozwala tworzyć efektywne rozwiązania dla skrajnie niestabilnych modelowanych zjawisk (zachowanie systemów społecznych/biologicznych, częściowo obserwowalnych procesów technologicznych itd.).

Rysunek 16 Działanie rozwiązania AI/ML w postaci systemu agentowego procesów biznesowych w InterSystems IRIS
Kontynuujemy nasz przegląd InterSystems IRIS, omawiając zastosowania platformy do rozwiązywania całych klas zadań w czasie rzeczywistym (szczegółowe zapoznanie z niektórymi najlepszymi praktykami platformowego AI/ML na InterSystems IRIS znajduje się w jednym z naszych wcześniejszych materiałów). ).
Na „gorąco” po poprzednim diagramie, poniżej znajduje się bardziej szczegółowy diagram systemu agentów. Na diagramie przedstawiono ten sam prototyp, na którym widoczne są cztery procesy-agenci: GENERATOR – zajmuje się tworzeniem danych przez czujniki, BUFFER – zarządza kolejkami danych, ANALYZER – przeprowadza samo uczenie maszynowe, MONITOR – kontroluje jakość uczenia maszynowego i sygnalizuje potrzebę ponownego uczenia modelu.

Rysunek 17 Kompozycja rozwiązania AI/ML w formie systemu agentów procesów biznesowych w InterSystems IRIS.
Na diagramie poniżej zilustrowano autonomiczne działanie już innego zrobotyzowanego prototypu (rozpoznawanie emocjonalnego zabarwienia tekstów) przez pewien czas. Na górze przedstawiona jest ewolucja wskaźnika jakości uczenia modelu (jakość rośnie), na dole – dynamika wskaźnika jakości zastosowania modelu oraz fakty ponownego uczenia (czerwone paski). Jak widać, rozwiązanie skutecznie i autonomicznie się nauczyło oraz działa na zadanym poziomie jakości (wartości wskaźnika jakości nie spadają poniżej 80%).

Rysunek 18 Ciągłe (samo-)uczenie (CT) na platformie InterSystems IRIS.
O „auto-ML” wspomnieliśmy również wcześniej, ale na poniższym wykresie zastosowanie tej funkcjonalności jest przedstawione szczegółowo na przykładzie innego prototypu. Na graficznej schemacie fragmentu procesu biznesowego pokazano aktywność uruchamiającą modelowanie w stosie H2O, a także rezultaty tego modelowania (wyraźne dominowanie uzyskanej modelu nad „wytworzonymi” modelami, zgodnie ze porównawczym wykresem krzywych ROC oraz zautomatyzowane wykrywanie „najbardziej wpływowych zmiennych” spośród dostępnych w oryginalnym zbiorze danych). Ważnym aspektem jest oszczędność czasu i zasobów eksperckich, która osiągana jest dzięki „auto-ML”: to, co nasz proces platformowy robi w pół minuty (znajdowanie i szkolenie optymalnego modelu), u eksperta może zająć od tygodnia do miesiąca.

Rysunek 19 Integracja „auto-ML” w rozwiązaniu AI/ML na platformie InterSystems IRIS
Poniższy diagram nieco „obniża napięcie”, ale to dobry sposób na zakończenie opowieści o klasach rozwiązywanych zadań w czasie rzeczywistym: przypominamy, że pomimo wszystkich możliwości platformy InterSystems IRIS, uczenie modeli pod jej zarządzaniem nie jest obowiązkowe. Platforma może otrzymać zewnętrzną tzw. specyfikację PMML modelu, wyuczonego w narzędziu, które nie jest zarządzane przez platformę – i stosować ten model w czasie rzeczywistym od momentu jego importu. . Ważne jest, aby wziąć pod uwagę, że nie wszystkie artefakty AI/ML mogą zostać sprowadzone do specyfikacji PMML, nawet jeśli większość najczęściej spotykanych artefaktów na to pozwala. W ten sposób platforma InterSystems IRIS ma „otwartą strukturę” i nie oznacza „platformowego niewolnictwa” dla użytkowników.

Rysunek 20 Integracja „auto-ML” w rozwiązaniu AI/ML na platformie InterSystems IRIS
Wymieńmy dodatkowe zalety platformy InterSystems IRIS (dla jasności, w kontekście zarządzania procesami technologicznymi), które mają istotne znaczenie przy automatyzacji sztucznej inteligencji i uczenia maszynowego w czasie rzeczywistym:
- Zaawansowane narzędzia integracji z dowolnymi źródłami i odbiorcami danych (ASUWP/SCADA, sprzęt, TPM, ERP itd.)
- Wbudowana dla wysoko wydajnego przetwarzania transakcyjno-analitycznego (Hybrid Transaction/Analytical Processing, HTAP) wszelkich ilości danych procesów technologicznych
- Narzędzia deweloperskie do ciągłego wdrażania mechanizmów AI/ML w rozwiązaniach w czasie rzeczywistym opartych na Pythonie, R, Juli
- Adaptacyjne procesy biznesowe do ciągłej integracji i (samo)uczenia się mechanizmów AI/ML w rozwiązaniach w czasie rzeczywistym
- Wbudowane narzędzia Business Intelligence do wizualizacji danych procesów technologicznych oraz wyników działania rozwiązań AI/ML
- do dostarczania wyników działania rozwiązań AI/ML do SCADA/ACMS, systemów informacyjno-analitycznych, powiadomień itp.
Rozwiązania AI/ML na platformie InterSystems IRIS łatwo integrują się z istniejącą infrastrukturą IT. Platforma InterSystems IRIS zapewnia wysoką niezawodność rozwiązań AI/ML dzięki wsparciu konfiguracji odpornych na awarie oraz katastrofy, a także elastycznemu wdrażaniu w środowiskach wirtualnych, na serwerach fizycznych, w chmurach prywatnych i publicznych oraz w kontenerach Docker.
W ten sposób InterSystems IRIS jest wszechstronną platformą obliczeń AI/ML w czasie rzeczywistym. Wszechstronność naszej platformy potwierdza brak de facto ograniczeń dotyczących złożoności realizowanych obliczeń, zdolność InterSystems IRIS do łączenia (w czasie rzeczywistym) przetwarzania scenariuszy z różnych branż oraz wyjątkową adaptowalność wszelkich funkcji i mechanizmów platformy do specyficznych potrzeb użytkowników.

Rysunek 21 InterSystems IRIS — wszechstronna platforma AI/ML w czasie rzeczywistym
Aby bardziej szczegółowo współdziałać z tymi z naszych czytelników, którzy są zainteresowani przedstawionym tutaj materiałem, zachęcamy do nieograniczania się do jego lektury i kontynuowania dialogu „na żywo”. Chętnie udzielimy wsparcia w formułowaniu scenariuszy AI/ML w czasie rzeczywistym dostosowanych do specyfiki Państwa firmy, przeprowadzimy wspólne prototypowanie na platformie InterSystems IRIS, stworzymy i zrealizujemy praktyczną mapę drogową wdrożenia sztucznej inteligencji oraz uczenia maszynowego w Państwa procesach produkcyjnych i zarządzających. Adres e-mail naszej zespołu ekspertów AI/ML – .
Źródło: habr.com
