:

Szerző: HIRDETÉS

2022. november 16. 11:29

Machine learning mikroszervizek ERP rendszerekhez

A gabonakereskedelemmel és logisztikával foglalkozó Sygnus fejlesztőcsapata elhatározta, hogy Node.js-ben írt, folyamatosan fejlesztett ERP rendszerét ML/AI funkciókkal erősíti meg.

A projektet 2017-ben kezdte tervezni a cég, amikor már elérhető volt a Tensorflow és a Pytorch is, azonban a hardversemlegesség miatt akkor az Arrayfire mellett döntöttek a szakemberek.  A tervezési szakaszban még nem volt releváns javascript alapú ML/AI eszköz, de később sem tervezték, hogy monolitikusan beépítsék ezeket a szolgáltatásokat az ERP rendszerbe.

A projektet végrehajtása a GINOP-2.1.2.-8-1-4-16-2017-00236 pályázat keretében 2019 októberében kezdődött meg. Ekkora már nyilvánvalóvá váltak a fő irányok az ML/AI területén. A python szinte kikerülhetetlen nyelvvé vált.

A kereskedelmi és logisztikai tevékenység leginkább gráfként modellezhető. A gráf felépítéséhez azonban számos kisebb nagyobb funkcióra van szükség. Például a partnerek várható megrendeléseit node-okként szerepeltetik a gráfban, de mivel ezek jövőbeni események, egy becslést/előrejelzést kell készíteni rá. A minták relatíve alacsony száma miatt egy gépi tanulási modell sem adott életszerű eredményt, ezért feature engineeringbe kezdtek a fejlesztők,  például clusterezték a partnereket és a kérdéses szerződéseket is. Ezekhez a feladatokat a leghatékonyabb scikit-learn szerű könyvtárak segítségével megoldani.

Ezeket a modelleket fastApi mikroszervizekkel kötötték össze a cég saját ERP rendszerével. Ezek a modellek sokszor túl lassúak egy http-kérés azonnali megválaszolásához, ezért egy Celery és Redis alapú feldolgozó rendszer is létrejött a társaságnál. 

sygnus-mi-rajz-4-3

A komplexebb modellek, például a távolsággal nem lineárisan változó és szezonális fuvardíjak előrejelzése úgy lett megvalósítva, hogy az ERP-rendszer a tény adatokkal meghívja a fit végpontot, amire az csak egy model-id-t ad vissza, melyet letárolnak az ERP oldalon.  Az előrejelzések a predict végpont, távolság, időszak és model-id-val való meghívása után érkeznek meg az ERP rendszerbe, ahol listázzák azokat a felhasználók számára. Új tény adatok rögzítése után tetszőleges időpontban, de akár ütemezetten is végrehajtható a modell frissítése a fit végponton keresztül.

A teljes tevékenységi modell egy gráfot alkot, aminek egy-egy pontját vagy élét a mikroszervizek álltal adott adatok adják.

A gráf feldolgozásnál a fejlesztők visszatértek az C++ koncepcióhoz, de már Pytorch Libtorch verzióját használva.

A modellt gRPC-n keresztül érik el. 

A fenti megoldások lehetővé tették a vállalat szakemberei számára, hogy egy hagyományos monolitikus ERP rendszert, függetlenül fejleszthető, akár GPU-val is gyorsítható mesterséges intelligencia szolgáltatásokkal egészítsenek ki.

[Az Sygnus Kft. megbízásából készített, fizetett anyag.]

Az Amszterdamban élő Orosz Gergővel, a globális szoftverfejlesztői közösség egyik legismertebb szerzőjével beszélgettünk.

a címlapról