Na letošním veletrhu Hannover Messe bylo jedním z hlavních témat stánku společnosti Siemens využití generativní umělé inteligence. Umělá inteligence nebyla jen tématem pro společnost Siemens, ale objevovala se snad v každé veletržní expozici. Co je to generativní umělá inteligence, co dokáže a jaká jsou její úskalí? Co je to Siemens Industrial Copilot? A není dnes pojem „umělá inteligence“ jen další marketingová nálepka? Na to jsem se ptal Tomáše Froňka, vedoucího oddělení průmyslové automatizace a managementu partnerů společnosti Siemens.
Pojem umělá inteligence dnes používají snad všichni, ale mnozí mu pramálo rozumejí. Pojďme si napřed definovat, co to vlastně je.
Dnes se budeme bavit o tom, co je to Siemens Industrial Copilot, to znamená o využití velkých jazykových modelů v průmyslovém prostředí, v přípravě výroby i ve vlastním provozu. Ovšem to je jen jedna ze součástí umělé inteligence (AI – Artificial Intelligence) využívaná v průmyslové praxi. Systém umělé inteligence lze obecně charakterizovat jako systémy, které se dokážou učit a přizpůsobovat se měnícím se podmínkám.
Jaké úlohy může umělá inteligence v průmyslu plnit?
V průmyslu se většinou bavíme o neuronových sítích a hlubokém učení. Například máme měnící se vstupy, signály nebo obrazové informace a z nich dokážeme vytvořit binární výstup: je vyrobená součástka v pořádku, nebo není? Je ložisko v pořádku, nebo se musí vyměnit? To nebyla vždy jednoduchá úloha a umělá inteligence zde může hodně pomoci, ale na druhou stranu si myslím, že není třeba všechno hned řešit umělou inteligencí, protože existuje mnoho klasických metod zpracování signálů. Například klasické metody zpracování obrazu dávají často dobré výsledky a nejsou tak výpočetně a datově náročné jako umělá inteligence.
Obr. 1. Siemens Industrial Copilot spolupracuje se softwarem TIA Portal
Zrovna nedávno jsem oponoval výzkumný projekt založený na gaussovských procesech. To je klasická statistika, žádná AI, a dává velmi dobré výsledky.
S uvedením velkých jazykových modelů a ChatGPT v roce 2018 se z umělé inteligence stal marketingový pojem. Tak se teď dostáváme do situace, kdy jsou jako systémy AI označovány takové systémy, které s AI nemají nic společného.
Stanovit hranice AI je těžké. Zmiňoval jste statistické metody založené na Gaussově rozdělení. Ale co třeba bayesovská statistika? Je to umělá inteligence, nebo není? Nebo dříve populární fuzzy logika. Byla doba, kdy se fuzzy regulátory implementovaly i na procesy, kde to nebylo vhodné, protože fuzzy logika byla v módě – ale mnohdy to byla jen seminární cvičení pro studenty, bez významu v praxi. Fuzzy logika je umělá inteligence, nebo není?
Přiznám se, že na to neznám odpověď, a hlavně si myslím, že ani není důležitá. Umělá inteligence je nálepka, která se dnes dává na kde co, co nemá s umělou inteligencí mnoho společného.
Pojďme se vrátit k velkým jazykovým modelům. K čemu jsou dobré a k čemu jsou dobré v průmyslu? Je copilot jen inteligentní vyhledávač, nebo má širší možnosti?
Konkrétně náš Siemens Industrial Copilot jsme uvedli na loňském veletrhu SPS a na Hannover Messe jsme ho představili jako hotový produkt, který už mohou zákazníci využívat. Oblasti využití jsou dvě: engineering, to je projektování, konstruování, programování, uvádění do provozu, a operations, provoz, výroba.
V oblasti inženýrských prací copilot funguje velice podobně jako třeba copilot pro GitHub. Na základě promptů a přirozeného jazyka poskytne uživateli výstup, který mu pomůže při programování, tvorbě vizualizací, psaní dokumentace nebo komentářů k programům a tak dále. To znamená, že ulehčuje a urychluje práci programátorům. To je velmi důležité, protože se dá čekat, že z trhu práce v nejbližších letech odejde velké množství programátorů PLC. Hodně jich je ve věku, který se blíží šedesátce. Tyto programátory nebude možné nahradit, protože současný demografický vývoj tomu nenahrává a nenahrává tomu ani to, co dnes mladí lidé studují. V průmyslu přitom téměř všechno běží na programovatelných automatech, takže potřeba programátorů naopak roste. Jednou z možností, jak situaci řešit, je práci programátorům co nejvíce usnadnit, zvýšit jejich efektivitu. Přesně tohle copilot dokáže. Siemens Industrial Copilot běží paralelně se softwarem TIA Portal a napojuje se na jeho API. Vysvětlím proč. Jestli už používáte ChatGPT, asi jste si všimli, že systém mnohdy vrací na pohled rozumnou odpověď, ale ve skutečnosti nesmyslnou. Tomu se říká, že systém halucinuje. Napojení nástroje Siemens Industrial Copilot na TIA Portal dokáže halucinacím z velké části zabránit.
Jak konkrétně copilot programátorovi pomůže?
Představte si, že máte několik bloků programu a v každém potřebujete upravit několik stejných proměnných. Musíte každý blok otevřít pro editaci, změny udělat, zkontrolovat je po sobě a uložit. Ručně na tom strávíte dvacet minut, ale když napíšete správný prompt pro copilot, budete mít hotovo za dvacet sekund.
Obr. 2. Simens Industrial Copilot usnadňuje práci programátorům PLC
Ještě větší úspory dosáhnete při tvorbě dokumentace, testování a validaci programů. Dříve se často stávalo, že v programu se vyznal jen sám programátor, a po nějaké době už ani on. Proto dáváme programátorům doporučení, jak má program vypadat a jak má být opatřený komentáři, aby byl čitelný a srozumitelný. To významně zjednodušuje změny a další vývoj. Copilot může program zkontrolovat a upozornit programátora na místa, která nejsou podle zadaných směrnic, kde jsou například špatně pojmenované proměnné nebo chybějí komentáře. Přehledný kód je výhodou i pro samotného programátora, protože přehlednost snižuje pravděpodobnost chyby.
Další věc je generování vizualizací. Testovací verzi vizualizace vygeneruje copilot na dva prompty.
Siemens Industrial Copilot je ale navázán na TIA Portal, to znamená výhradně na produkty od firmy Siemens, je to tak?
To je pravda, ale pro uživatele to má mnoho výhod. Pokud jde o programování, tak například to, že máte k dispozici předem připravené funkce a funkční bloky a že je všechno kompatibilní, nemusíte odlaďovat žádná rozhraní.
Další funkcí copilotu ale může být to, že výrazně zjednoduší přechod od jiného dodavatele nebo ze staré verze. Pro copilot už v současné době není problém, aby vám text v jazyce C přepsal třeba do Pythonu. Převést program vytvořený pro jedno PLC na program pro jiné PLC není pro copilot nic složitého.
I copilot pro programování na GitHubu má podobné funkce a nutí programátora, aby psal programy přehledně a srozumitelně. Současně je mu i průvodcem: když si programátor není jistý, vysvětlí mu, k čemu je ta která funkce dobrá. Můžete se třeba zeptat, co dělá FB064, a copilot vám řekne, odkud tato funkce vezme informace, co s nimi udělá a kam je převede. Nebo se ho zeptáte, co se stane, když změníte určitý parametr, a copilot vám v okamžiku odpoví. Je to, jako by vedle vás seděl kolega, který má všechny informace světa, a vy jste se ho mohli ptát.
No, všechny informace ne, protože Siemens Industrial Copilot je přece připojený na TIA Portal a odjinud informace nezískává.
To pozor, to není pravda. Siemens Industrial Copilot používá OpenAI Services na Microsoft Azure, takže ví to samé, co ChatGPT 4.0, ale kromě toho je integrovaný do softwaru TIA Portal. V podstatě to funguje tak, že k vašemu promptu přidá systémový prompt, aby výsledek byl kompatibilní s TIA Portal. Copilot vlastně váš dotaz „učeše“, doplní tam své systémové prompty, abyste se dostali ke správné odpovědi. To je známé i uživatelům ChatGPT, že kdo chce dostat dobrou odpověď, musí se napřed dobře zeptat. No a copilot vlastně vašemu dotazu dodá kontext: proč se na to asi ptáte, na co jste se ptal dříve, s jakou odpovědí jste byl spokojen... Siemens Industrial Copilot jako kontext dodává to, že se pohybujete ve světě průmyslové automatizace od firmy Siemens, a podle toho se snaží rozhodnout, co vlastně potřebujete vědět. Takže Siemens Industrial Copilot má přístup k ChatGPT, má přístup k datům SIOS (Siemens Industry Online Support) a je integrován se softwarem TIA Portal.
To znamená, že programátor se dnes učí programovací jazyky, ale v budoucnu už je nebude potřebovat znát, ale bude muset umět správně formulovat prompty?
Co je královská disciplína programátora, ne v budoucnu, ale už v současné době? Umět správně formulovat problém. Musí pochopit, co se po něm chce, a to potom převést do řeči PLC. Programátor není ten, kdo umí programovací jazyky, ale ten, kdo umí správně definovat strukturu problému a navrhnout jeho řešení. Programátor není ten, kdo si sedne ke klávesnici a začne chrlit řádky kódu, ale ten, kdo se umí zamyslet nad algoritmem řešení.
Obr. 3. Propojení s rozhraním TIA Portal Openess usnadňuje práci programátorům malých a středních firem
My se pořád potýkáme s tím, že se zákazníci snaží do malého PLC implementovat řešení rozsáhlého problému a ušetřit tím pár desítek eur, ale přitom tím stráví celý den. To není zrovna efektivní. Lidé by si měli víc vážit svého času, a inženýři a programátoři zvláště.
Programátoři by si měli vážit svého času, ale také by si ho měli vážit jejich zaměstnavatelé. Jenže, zvlášť u velkých firem, jdou náklady na pořízení hardwaru z jiného šuplíku než náklady na práci programátora.
To máte jako s metodami sdílení dat GET a PUT. Firmy to stále používají, přestože se všeobecně ví, že to není bezpečné a zneužít to dovede i hacker-začátečník. Jenže k tomu není třeba žádná licence, je to jednoduché a snadné, a dokud se nic nestane, komu vadí, že to není zabezpečené? Když použijete šifrovanou komunikaci prostřednictvím OPC UA, strávíte na tom trochu víc času, možná budete kvůli komunikaci potřebovat o něco výkonnější PLC, ale máte komunikaci zabezpečenou. Kdo používá metodu PUT/GET a bude muset vyhovět směrnici NIS2, může svoje projekty vzít a hodit do koše.
Abych se komunikace GET trochu zastal, když potřebujete třeba číst data z teploměru, abyste zkontroloval, jak mám doma teplo a jestli není třeba trochu přitopit, tak je asi tato komunikace postačující, ne?
Ale tady se nebavíme o bazénu, tady se bavíme o průmyslové automatizaci a o nutnosti vyhovět NIS2.
No ale když nepotřebuji vyhovět NIS2?
Tak si vezměte, že se vám dítě od sousedů vláme do WiFi, to dnes ve většině domácností není žádný velký problém, napíše malý program, který vašemu kotli jen tak pro zábavu sdělí, že máte doma +60 °C – to s pomocí umělé inteligence také zvládne za pár minut, a kotel vám přestane v zimě topit, zrovna když jste odjeli na týden na dovolenou. Když je venku opravdu zima, může to skončit popraskanými rozvody vody a topení a škodou ve statisících a těžko kdy zjistíte, co se vlastně stalo.
Co přináší Siemens Industrial Copilot malým a středním firmám?
Podle mě je v Siemens Industrial Copilotu velmi užitečné to, že otevírá rozhraní API v TIA Portal s názvem TIA Portal Openess pro komunikaci v otevřené řeči. Rozhraní Openess dosud nebylo v oblibě mezi malými firmami a jejich programátory, protože moc nedávalo smysl vytvářet rozhraní založená na Openess pro jednoúčelové a malosériové stroje. Jakmile můžete využít copilot, tvorba rozhraní se výrazně zrychlí a vyplatí se i pro tento segment výrobců strojů a zařízení.
Na veletrhu SPS jste Siemens Industrial Copilot představovali prostřednictvím společného projektu s firmou Schaeffler. Co bylo předmětem a cílem společného projektu?
Já bych to přirovnal k tomu, kdybyste chtěl konkurovat Wordu a vytvářel vlastní textový editor. Můžete v tom být opravdu dobrý, ale nakonec budete potřebovat někoho, kdo píše šedesát knih ročně, tlustých i tenkých, s obrázky i bez nich, a řekne vám, co od textového editoru potřebuje, co ještě zlepšit a co je třeba zbytečné.
Obr. 4. Část Operations pomáhá operátorům strojů a pracovníkům údržby řešit problémy vzniklé při provozu stroje
A právě k tomu jsme navázali partnerství s firmou Schaeffler. Jsou to výrobci strojů, od velkosériově vyráběných po jednoúčelové stroje v kusových sériích. Oni byli ochotní se nám plně otevřít, sdílet s námi svoje zkušenosti a ukázat nám svoje procesy. Řekli nám, jak vlastně jejich programátoři pracují, co využívají a co od copilotu očekávají. To je pro nás velmi cenné, protože Siemens pochopitelně není výrobce strojů a nemáme jak získat jejich zkušenosti. Takže Siemens Industrial Copilot je naše společné dítě.
To bylo loni na podzim. Jaký je stav softwaru Siemens Industrial Copilot dnes?
Simens Industrial Copilot už je produkt dostupný všem zákazníkům. Pořád je to pilotní projekt, na který chceme dohlížet, protože velké jazykové modely mají tendenci halucinovat, na některé prompty mohou dávat nesmyslné výsledky. Proto Simens Industrial Copilot stále monitorujeme, zákazníkům poskytujeme podporu a školíme je, aby znali vlastnosti a omezení tohoto systému. Nechceme se dostat do situace, že zákazník zadá špatný prompt, dostane špatný výsledek a bude tvrdit, že náš copilot je k ničemu. Popravdě, zázračný systém to není, výsledek je tak dobrý, jak dobrý je prompt. V Česku máme několik pilotních zákazníků, od nichž zjišťujeme jako zpětnou vazbu, co a jak používají, co jim vyhovuje, co méně. Ale už na podzim, od konce srpna, by to měl být zcela volně dostupný produkt. Každý si bude moci stáhnout TIA Portal a současně i copilot a obojí používat současně.
Teď systém prochází fází „předpromptování“, to znamená, že se vytváří dostatečná kontextová základna, aby dával očekávané výsledky.
Peněžní ústavy také používají generativní umělou inteligenci, ale jejich systémy mívají rozlišené role tazatelů: zaměstnanec banky se může ptát na jiné věci než klient nebo na stejný dotaz dostane každý jinou odpověď. Má něco podobného Siemens Industrial Copilot?
Ano, řešíme stejný problém. V případě inženýrinku můžete tvořit programy a nahrávat je do PLC, včetně bezpečnostních funkcí. Jenže část operations, tedy copilot určený pro operátory stroje nebo údržbu, tohle umožnit nesmí. Takže i v copilotu řešíme, kdo co může nastavovat a měnit, na co se kdo může ptát a jakou odpověď smí dostat.
Problém je i v tom, že velké jazykové modely běží v cloudu. Zatím nejsou k dispozici jazykové modely, které by spolehlivě běžely přímo ve stroji, v jeho řídicím systému. Jenže pusťte si velký jazykový model do stroje ve výrobě. Zaprvé potřebujete velkou šířku přenosového pásma, což je drahé, zadruhé musíte stroj připojit přímou linkou na internet, což většina firem nedovolí. Vyřešit přidělování rolí lze systémovým promptem: když se uživatel zaloguje, heslem, biometrickými údaji nebo přístupovou kartou, systémový prompt dá jazykovému modelu vědět, že je to například operátor výroby, může se ptát na řešení provozních závad toho konkrétního stroje, ale nesmí měnit řídicí program. Jenže jde o velký jazykový model a všichni víme, že s ním lze všelijak pracovat a přesvědčit ho, aby dělal i to, co nesmí.
Nemělo by smysl, aby měli zákazníci své vlastní copiloty?
Vždyť to už dnes jde. Můžete si vytvořit svou vlastní verzi ChatGPT, natrénovat ji na svých datech o svých strojích a máte skvělého spolupracovníka. Jenže to má jeden velký háček: aby to fungovalo, musíte svá data poskytnout velkému jazykovému modelu, a když se někdo umí správně zeptat, to znamená vytvoří správný prompt, tak se na ta data dostane. Proto my jako Siemens velký jazykový model v žádném případě nepoužíváme na data úrovně utajení confidetal a přísnější. Můžeme mu poskytnout jen volně přístupná data nebo data úrovně restricted, to je druhá nejnižší úroveň utajení. Protože velký jazykový model nemáme pod kontrolou a nemůžeme tušit, komu naše data nasdílí.
Děkuji Vám za rozhovor.
(Rozhovor vedl Petr Bartošík.)
(Grafika: Siemens)