Zamiast typowego wstępu zacznę od osobistej uwagi. Siadając do tego artykułu, od razu miałem w głowie kilka zasadniczych pytań.
- Czy faktycznie język pomaga robotom w jakimś stopniu zrozumieć świat?
- Co z tego wynika?
- Czy język powinien w jakimkolwiek stopniu być integrowany z robotami?
- Jeśli tak, to jaki?
Zapraszam zatem w podróż na granicy matematyki stosowanej, filozofii, interakcji ludzkich oraz zaawansowanej technologii. Będzie o tyle ciekawa, że nie opuścimy nawet terenu fabryki.
Semiotyka a logika formalna
Zarówno dla nas, jak i robotów, jako maszyn operujących na logice cyfrowej, język jest naturalną formą komunikacji. To czy komunikujemy się w bitach czy za pomocą alfabetu łacińskiego nie ma znaczenia. Ważny jest sposób wykorzystania języka oraz fundament jego założeń.
W przypadku komunikacji międzyludzkiej, niezależnie od jej natury bądź poziomu sformalizowania, badamy:
- jak wykorzystane znaki są używanie do przekazania informacji,
- jak są interpretowane przez drugą stronę.
Sposób prowadzenia komunikacji wpływa częściowo na jej wynik. Robot jak każda inna maszyna operująca na algebrze boolowskiej (czyli mogącej przyjąć wyłącznie wartości „prawda” lub „fałsz”) koncentruje się na strukturze i poprawności wnioskowania. Upraszczając: może wyciągnąć konkretne wnioski na podstawie konkretnych danych.
Jeżeli chcemy, aby maszyna mogła komunikować się z człowiekiem lub spróbowała zrozumieć nasz świat (a co za tym idzie przystosowanego pod potrzeby komunikacyjne człowieka), musimy wykorzystać hybrydowe podejście, składające się z dwóch elementów. Są to:
- Analiza semiotyczna w logice formalnej
Służy do zrozumienia tego, jak symbole są używane do reprezentowania pojęć. - Logika formalna w semiotyce
Służy do analizy poprawności wnioskowania w kontekście semiotyki.
Oba podejścia pozwalają w sposób naturalny przygotować model komunikacji i wykorzystywać go dalej w robotyce przemysłowej.
Teoria działania: NLP, NLG i LLM
Terminy takie jak:
- Natural Language Processing (NLP),
- Natural Language Generation (NLG),
- Large Language Model (LLM)
są obecne w technologiach użytkowych od lat. Mimo że często są używane zamiennie, różnice w ich działaniu oraz możliwościach są znaczące. Wyjaśnijmy to.
Natural Language Processing (NLP)
Pozwala jednostkom obliczeniowym na rozumienie języka używanego przez ludzi zarówno w formie pisanej, jak i mówionej. Mechanizm działania polega na znajdowaniu relacji pomiędzy składowymi częściami języka – począwszy od liter, poprzez słowa, aż po zdania (zarówno w rozumieniu logicznym, jak i interpunkcyjnym). Mamy tutaj do czynienia z analizą semantyczną, która stara się wydobyć znaczenie tekstu poprzez identyfikację struktury i kontekstu.
NLP obejmuje szereg technologii i technik, takich jak:
- Tokenizacja – proces dzielenia tekstu na mniejsze jednostki, zwane tokenami, które mogą być pojedynczymi słowami, frazami lub znakami.
- Lematacja i stemming – techniki przekształcania słów do ich podstawowej lub kanonicznej formy (np. “biegać” do “bieg”).
- Rozpoznawanie jednostek nazewniczych (NER) – identyfikacja nazw własnych w tekście, takich jak imiona, miejsca czy organizacje.
- Analiza składniowa (parsing) – określanie struktury gramatycznej zdań.
- Analiza sentymentu – ocena emocjonalnego tonu tekstu, np. czy jest pozytywny, negatywny czy neutralny.
- Rozumienie języka naturalnego (NLU) – proces interpretacji znaczenia tekstu i ekstrakcji istotnych informacji.
Proces znajdowania tych relacji ujawnia pierwszą różnicę w rozumieniu języka pomiędzy ludźmi a maszynami. Ludzie bazują na rozumieniu kontekstu wypowiedzi, podczas gdy maszyny preferują tokenizację rozumowania. Chodzi tu o dzielenie tekstu na mniejsze jednostki zwane tokenami, które są następnie analizowane i przetwarzane.
Natural Language Generation (NLG)
Wspomniany proces można wykorzystać zarówno do przetwarzania, jak i generowania tekstu. W przypadku generowania tekstu mówimy o technologii NLG. Polega to na tworzeniu przez maszynę tekstu w języku naturalnym bazując na danych wejściowych i regułach językowych.
Technologie NLG znajdują zastosowanie w różnych dziedzinach, takich jak:
- raportowanie i tworzenie sprawozdań: finansowych, podsumowań danych czy analiz.
- tworzenie treści: artykułów, wpisów na blogi czy opisów produktów.
- automatyzacja obsługi klienta: odpowiedzi na zapytania klientów w oparciu o analizę wcześniej zgromadzonych danych.
Large Language Models (LLM)
LLM stanowi swojego rodzaju nową generację modeli NLP. Jak nazwa wskazuje, są to ogromne modele trenowane na dużej ilości zbiorów tekstowych. W odróżnieniu od tradycyjnych modeli NLP, mamy tutaj do czynienia z architekturą transformatorów.
Co to takiego?
Transformatory to np. modele takie jak GPT (Generative Pre-trained Transformer). Pozwalają na bardziej efektywne przetwarzanie i generowanie tekstu poprzez uwzględnienie kontekstu na poziomie całych zdań czy nawet akapitów.
W dużym uproszczeniu, model LLM stara się przewidywać kolejne słowa w generowanej przez siebie wypowiedzi na podstawie całościowego kontekstu dostarczonego w treści. Z perspektywy człowieka, bardziej naturalną formą tworzenia wypowiedzi jest ta wykorzystywana przez LLM. W porównaniu do tradycyjnych modeli NLP, potrafią one tworzyć bardziej złożone i spójne wypowiedzi.
LLM wykorzystują kilka kluczowych technik i technologii:
- architektura transformatorów – wprowadzenie mechanizmu uwagi (attention), który pozwala modelom na efektywne przetwarzanie długich sekwencji tekstu.
- transfer learning – modele są najpierw trenowane na ogromnych zbiorach danych tekstowych (pretraining), a następnie dostrajane (fine-tuning) do specyficznych zadań.
- contextual embeddings – reprezentacje słów, które uwzględniają kontekst, w jakim słowo się pojawia, co pozwala na bardziej precyzyjne zrozumienie znaczenia.
Przykłady LLM to aplikacje typu ChatGPT (bazujące na modelu GPT), oraz inne modele, takie jak Llama i Gemini, które możemy zaimplementować w różnych tworzonych przez nas aplikacjach, uruchamiając modele lokalnie bądź korzystając z interfejsu API. Dzięki ich zaawansowanym możliwościom, LLM znajdują zastosowanie w wielu dziedzinach, od automatyzacji obsługi klienta, przez tworzenie treści, aż po analizę danych.
Warto również wspomnieć o wyzwaniach związanych z LLM, takich jak:
- Zarządzanie zasobami obliczeniowymi – trening i uruchamianie dużych modeli wymagają ogromnych zasobów obliczeniowych i pamięciowych.
- Zagadnienia etyczne – modele mogą generować treści, które są nieodpowiednie, stronnicze lub wprowadzające w błąd.
- Bezpieczeństwo danych – konieczność ochrony danych wejściowych i wyjściowych przed nieautoryzowanym dostępem.
Podsumowując, NLP, NLG i LLM stanowią fundamentalne narzędzia we współczesnych technologiach językowych, umożliwiając zarówno zrozumienie, jak i generowanie języka naturalnego w sposób coraz bardziej zbliżony do ludzkiego. Dzięki ciągłemu rozwojowi tych technologii, ich zastosowania będą się rozszerzać, przynosząc nowe możliwości i wyzwania.
Środowisko uruchomienia modeli LLM
W poprzednim akapicie poruszyłem bardzo istotną dla przemysłu kwestię – lokalizację wdrożenia modeli. Wraz ze wzrostem popularności ChatGPT coraz ważniejsze stają się kwestie związane z prywatnością danych wprowadzanych do modelu. W przypadku wszystkich sieci neuronowych nie wiemy jak dostarczone dane zostały wykorzystane i nie możemy odwrócić procesu uczenia.
Większy problem pojawia się, gdy pracujemy z ogromnymi sieciami, które uczą się w sposób nienadzorowany (unspervised learning). W takim przypadku, nasze dane mogą zostać wykorzystane do treningu sieci, a w konsekwencji udostępnione dalej. Nie jest to kwestia złej woli firmy tworzącej dany model, jest to natura jego działania.
Możemy się przed tym zabezpieczyć na dwa sposoby. Albo wykorzystać komercyjną wersję danego systemu (np. Copilot Pro, ChatGPT for Enterprise), gdzie nasze dane wykorzystywane są tylko wewnątrz naszej instancji modelu lub zdecydować się na przetwarzanie lokalne na naszej infrastrukturze. Druga opcja daje nam znacznie większą niezależność oraz bezpieczeństwo. Oczywiście, będzie to rozwiązanie wymagające od nas nieco większych nakładów inwestycyjnych.
Idąc o krok dalej w roli naszej infrastruktury możemy umieścić centralne serwery w firmie (o ile istnieją i są przygotowane do takich zastosowań) lub rozwiązania brzegowe (Edge Computing). Wybór podejścia musimy uzależnić zarówno od posiadanych zasobów inwestycyjnych oraz charakterystyki wdrożenia.
Robotyka a modele językowe
Pozostańmy przy temacie integracji LLM i środowiska wdrożeń. W przypadku robotów przemysłowych warto rozważyć środowiska egde dla modeli językowych. Decentralizacja architektury pozwoli zwiększyć niezawodność oraz obniżyć koszty wdrożenia. Przykładem takiego rozwiązania może być połączenie robota z komputerem przemysłowym np. opartym na architekturze Nvidia Jetson lub posiadającym klasyczne rozwiązania GPU. Oczywiście, na jedno środowisko obliczeniowe może przypadać kilka robotów.
Jakie zatem korzyści można osiągnąć wdrażając LLM do swojego robota/aplikacji zrobotyzowanej?
W robotyce LLM będzie nam służyć głównie do dwustronnej komunikacji z robotem, przy wykorzystaniu języka „ludzkiego”. Obecnie, standardem jest komunikacja robota z np. sterownikiem PLC. Dane z robota są przesyłane do sterownika, gdzie są wykorzystywane do zarządzania logiką programu oraz do kontroli procesu. Następnie wybrane informacje trafiają do systemu SCADA. Operator procesu ma możliwość obserwacji tych informacji w czasie rzeczywistym. Dalej dane historyczne trafiają do systemu CRM, gdzie za ich interpretacje odpowiadają managerowie produkcji. Zazwyczaj spełnia to nasze potrzeby, ale tylko do momentu, gdy dojdzie do jakiejś anomalii.
Czy leci z nami Copilot?
Wyobraźmy sobie następujący scenariusz: złożonym procesie następuje pewne rozregulowanie, które uniemożliwia dalszą produkcję. Na podstawie ręcznej analizy kolejności i czasów występowania różnych sygnałów nie jesteśmy w stanie dojść do rzetelnych wniosków. Aby znaleźć problem musimy wykorzystać:
- mechaników do sprawdzenia jakości i stanu elementów ruchomych,
- programistów robotów do weryfikacji logów maszyny,
- technologów procesu do całościowej weryfikacji elementów składowych występujących w aplikacji.
Zaangażowanie tylu ludzi będzie bardzo kosztowne i nie gwarantuje szybkiego wznowienia produkcji.
Teraz przyjmijmy założenie, że od początku zbieraliśmy wiele różnorodnych danych w sposób ustrukturyzowany i zasilaliśmy nimi model LLM obecny na urządzeniach brzegowych oraz serwerze centralnym (na którym również pracuje system SCADA). Poza samymi danymi możemy dokonać fine-tunning modelu, dostarczając mu:
- dokumentację techniczną,
- analizę ryzyka,
- opis procesu technologicznego,
- odnośniki do kart katalogowych robotów/czujników/sterowników.
W tym scenariuszu, w przypadku rozległej awarii możemy po prostu zapytać naszej aplikacji:
Co się stało?
Co powoduje opóźnienie przy elemencie X?
Kiedy rozpoczęła się anomalia?
Kiedy odchylenie wyniku Y przekroczyło 5% od średniej z ostatnich 2 miesięcy?
Przy dużej złożoności procesu, pomoc swojego rodzaju Copilota pomoże nam skuteczniej rozwiązać problemy i zaangażować w to mniej osób.
Czy proste aplikacje są gotowe na AI?
Odpowiedz brzmi: „generalnie tak, ale to zależy”.
Przytoczona wcześniej „gra wojenna” opiera się na założeniu, że posiadamy rozbudowaną aplikację, dodatkowe systemy OT, itp. Małe aplikacje, muszą bazować na przetwarzaniu brzegowym – inaczej trudno będzie wdrożyć LLM w sposób opłacalny. Poza ceną scentralizowanej infrastruktury musimy pamiętać o kosztach związanych z utrzymaniem, konserwacją oraz zabezpieczeniem sieciowym. Tutaj dobrym kompromisem jest platforma Nvidia Jetson Orin NX w wersji przystosowanej do warunków przemysłowych (np. Advantech MIC-713). Możemy potraktować ją jako mały, lokalny serwer, który działa bez połączenia z Internetem, blisko maszyny.
Po wdrożeniu LLM do robota współpracującego operator zyskuje możliwość komunikacji z robotem w sposób bardziej naturalny. Dzięki temu, robot może informować o swoim stanie za pomocą powszechnie używanych przez ludzi zwrotów. Pozwala na prostszą komunikację. Za pomocą prostych komend w języku naturalnym możemy zmieniać zadania realizowane przez robota. Co jednak najważniejsze, maszyna ma zyskuje zdolność do interpretacji poleceń na podstawie znanego mu kontekstu oraz przebiegu aplikacji. Ogranicza to możliwość wystąpienia błędów związanych ze współpracą na linii robot – operator. To niezwykle istotne w przypadku, gdy personel nie posiada specjalistycznej wiedzy technicznej lub na temat procesu.
Przyszłość LLM w robotyce
Już teraz stosunkowo niskim kosztem możemy sprawić, że robot współpracujący (cobot) będzie umożliwiał współpracę nie tylko pod względem bezpieczeństwa, ale również komunikacji z operatorem. Jest to znacząca różnica, która na nowo zdefiniuje roboty, otwierając drzwi do bardziej intuicyjnych i dostępnych technologii.
Wprowadzenie Large Language Model (LLM) w robotyce współpracującej, pomimo początkowego braku intuicyjności pozwoli na demokratyzację wykorzystania robotów. W krótkiej perspektywie znajdziemy się w świecie, w którym:
- Nie będzie potrzeby posiadania wiedzy technicznej u operatorów
Coboty wyposażone w LLM będą w stanie rozumieć i wykonywać polecenia w naturalnym języku, co oznacza, że nawet osoby bez specjalistycznej wiedzy będą mogły z nimi pracować. Dzięki temu roboty staną się dostępne dla każdego, niezależnie od poziomu umiejętności technicznych. - Bariery językowe znikną
LLM umożliwi robotom rozumienie i komunikowanie się w różnych językach, co pozwoli na ich wykorzystanie w międzynarodowych zespołach i w różnorodnych środowiskach językowych. Robot stanie się narzędziem globalnym, przekraczającym granice językowe i kulturowe. - Intuicyjna interakcja
Coboty będą mogły uczyć się preferencji i stylu pracy swoich ludzkich współpracowników, dostosowując swoje działania do indywidualnych potrzeb i zapewniając bardziej spersonalizowane doświadczenie. To sprawi, że współpraca z robotami stanie się bardziej naturalna i efektywna.
To wszystko brzmi interesująco? Porozmawiajmy!
Elmark Automatyka to oficjalny dystrybutor Universal Robots. Działamy w modelu VAD dzieląc się naszą wiedzą i doświadczeniem. Pomagamy uwolnić potencjał, jaki tkwi w cobotach, tak aby przyniósł Ci maksymalny zysk.
Jeśli chcesz porozmawiać o robotyzacji ze specjalistą, zapraszam do kontaktu.
Tycjan Kołecki
605-095-207
roboty@elmark.com.pl