Tervezési minták soros következtetésekhez az Amazon SageMaker PlatoBlockchain Data Intelligence-en. Függőleges keresés. Ai.

Tervezési minták soros következtetésekhez az Amazon SageMakeren

Ahogy a gépi tanulás (ML) általánossá válik, és egyre szélesebb körben elterjed, az ML-alapú alkalmazások egyre gyakoribbak számos összetett üzleti probléma megoldására. Ezeknek az összetett üzleti problémáknak a megoldása gyakran több ML modell használatát igényli. Ezek a modellek szekvenciálisan kombinálhatók különféle feladatok elvégzésére, mint például az előfeldolgozás, az adatátalakítás, a modellválasztás, a következtetések generálása, a következtetések konszolidációja és az utófeldolgozás. A szervezeteknek rugalmas lehetőségekre van szükségük ezeknek az összetett ML-munkafolyamatoknak a lebonyolításához. A soros következtetési folyamatok egy olyan tervezési minta, amely ezeket a munkafolyamatokat lépések sorozatába rendezi, és minden egyes lépés gazdagítja vagy tovább feldolgozza az előző lépések által generált kimenetet, és továbbítja a kimenetet a folyamat következő lépéséhez.

Ezenkívül ezeknek a soros következtetési csővezetékeknek a következőket kell biztosítaniuk:

  • Rugalmas és testreszabott megvalósítás (függőségek, algoritmusok, üzleti logika stb.)
  • Megismételhető és következetes a gyártási megvalósításhoz
  • Differenciálatlan nehézemelés az infrastruktúra kezelésének minimalizálásával

Ebben a bejegyzésben megvizsgáljuk a soros következtetési folyamatok néhány gyakori felhasználási esetét, és áttekintünk néhány megvalósítási lehetőséget ezekhez a használati esetekhez Amazon SageMaker. Megvitatjuk az egyes megvalósítási lehetőségek szempontjait is.

Az alábbi táblázat összefoglalja a soros következtetések különböző használati eseteit, a megvalósítási szempontokat és a lehetőségeket. Ezekről lesz szó ebben a bejegyzésben.

Használja az ügyet Használati eset leírása Elsődleges szempontok Általános megvalósítási komplexitás Ajánlott megvalósítási lehetőségek Mintakód műtermékek és jegyzetfüzetek
Soros következtetési folyamat (előfeldolgozási és utófeldolgozási lépésekkel) A következtetési folyamatnak elő kell feldolgoznia a bejövő adatokat, mielőtt meghívna egy betanított modellt következtetések generálására, majd a generált következtetéseket utólag kell feldolgoznia, hogy azokat a későbbi alkalmazások könnyen felhasználhassák. Könnyű a végrehajtás Elő/Utó Következtetési tároló a SageMaker Inference Toolkit segítségével Telepítsen egy betanított PyTorch-modellt
Soros következtetési folyamat (előfeldolgozási és utófeldolgozási lépésekkel) A következtetési folyamatnak elő kell feldolgoznia a bejövő adatokat, mielőtt meghívna egy betanított modellt következtetések generálására, majd a generált következtetéseket utólag kell feldolgoznia, hogy azokat a későbbi alkalmazások könnyen felhasználhassák. Leválasztás, egyszerűsített üzembe helyezés és frissítések közepes SageMaker következtetési folyamat Következtetési folyamat egyedi tárolókkal és xgBoost-tal
Sorozatmodell együttes A következtetési folyamatnak több modellt egymás után kell tárolnia és elrendeznie, hogy minden modell javítsa az előző által generált következtetést, mielőtt létrehozná a végső következtetést. Leválasztás, egyszerűsített telepítés és frissítés, rugalmasság a modell keretrendszer kiválasztásában közepes SageMaker következtetési folyamat Következtetési csővezeték Scikit-learn és Linear Learner segítségével
Soros következtetési folyamat (célzott modellhívással egy csoportból) A következtetési folyamatnak az előfeldolgozási és utófeldolgozási feladatokon kívül egy adott testreszabott modellt kell meghívnia a telepített modellek csoportjából, a kérés jellemzői alapján vagy költségoptimalizálás céljából. Költségoptimalizálás és testreszabás Magas SageMaker következtetési folyamat többmodell végpontokkal (MME) Amazon SageMaker többmodell végpontok a Linear Learner segítségével

A következő szakaszokban minden felhasználási esetet részletesebben tárgyalunk.

Soros következtetési csővezeték következtetési tárolókkal

A soros következtetési folyamatok használati eseteinek előfeltételei a bejövő adatok előfeldolgozása, mielőtt egy előre betanított ML-modellt meghívnának következtetések generálására. Ezenkívül bizonyos esetekben előfordulhat, hogy a generált következtetéseket tovább kell feldolgozni, hogy a későbbi alkalmazások könnyen felhasználhassák azokat. Ez egy gyakori forgatókönyv olyan használati esetekre, amikor egy streaming adatforrást valós időben kell feldolgozni, mielőtt modellt illeszthetnének rá. Ez a használati eset azonban kötegelt következtetésre is megnyilvánulhat.

A SageMaker lehetőséget biztosít a következtetési tárolók testreszabására és soros következtetési folyamat létrehozására. A következtetéstárolók a SageMaker Inference Toolkit és arra épülnek SageMaker Multi Model Server (MMS), amely rugalmas mechanizmust biztosít az ML modellek kiszolgálásához. A következő diagram egy referenciamintát mutat be egy soros következtetési folyamat megvalósításához következtetéstárolók használatával.

A SageMaker MMS olyan Python-szkriptet vár el, amely a következő függvényeket valósítja meg a modell betöltéséhez, a bemeneti adatok előfeldolgozásához, előrejelzések lekéréséhez a modelltől és a kimeneti adatok utófeldolgozásához:

  • input_fn() – Felelős a bemeneti adatok deszerializálásáért és előfeldolgozásáért
  • model_fn() – Felelős a betanított modell betöltéséért a műtárgyakból Amazon egyszerű tárolási szolgáltatás (Amazon S3)
  • előre_fn() – Felelős a modellből következtetések levonásáért
  • output_fn() - Felelős a kimeneti adatok (következtetések) sorosításáért és utófeldolgozásáért

A következtetési tároló testreszabásának részletes lépéseiért lásd: Saját következtetési tároló adaptálása.

A következtetési konténerek ideális tervezési mintát jelentenek soros következtetési csővezeték-használati esetekben, a következő elsődleges szempontokkal:

  • Magas kohézió – A feldolgozási logika és a hozzá tartozó modell egyetlen üzleti funkcionalitást hajt végre, és ezeket együtt kell elhelyezni
  • Alacsony általános késleltetés – A következtetési kérés elküldése és a válasz beérkezése között eltelt idő

Egy soros következtetési folyamatban a feldolgozási logika és a modell ugyanabban a tárolóban van beágyazva, így a meghívóhívások nagy része a tárolóban marad. Ez segít csökkenteni az ugrások teljes számát, ami jobb általános késleltetést és a folyamat érzékenységét eredményezi.

Azokban a felhasználási esetekben is, amikor a könnyű implementáció fontos kritérium, a következtetési tárolók segíthetnek, mivel a csővezeték különböző feldolgozási lépései ugyanazon a tárolón belül helyezkednek el.

Soros következtetési folyamat SageMaker következtetési folyamat segítségével

A soros következtetési folyamat egy másik változata a folyamat különböző lépései (mint például az adatok előfeldolgozása, a következtetések generálása, az adatok utófeldolgozása, valamint a formázás és szerializálás) közötti egyértelműbb szétválasztást követeli meg. Ennek számos oka lehet:

  • függetlenítés – A csővezeték különböző lépéseinek világosan meghatározott célja van, és a mögöttes függőségek miatt külön konténereken kell őket futtatni. Ez azt is segíti, hogy a csővezeték jól felépített legyen.
  • keretek – A csővezeték különböző lépései speciális, a célnak megfelelő keretrendszereket használnak (mint például a scikit vagy a Spark ML), ezért külön konténereken kell futtatni őket.
  • Erőforrások elkülönítése – A csővezeték különböző lépései eltérő erőforrás-felhasználással rendelkeznek, ezért külön konténereken kell futtatni a nagyobb rugalmasság és irányítás érdekében.

Ezenkívül a kissé bonyolultabb soros következtetési folyamatok esetében több lépés is szükséges lehet a kérés feldolgozásához és a következtetés létrehozásához. Ezért működési szempontból előnyös lehet ezeket a lépéseket külön tárolókban tárolni a jobb funkcionális elkülönítés, valamint a könnyebb frissítések és fejlesztések megkönnyítése érdekében (egy lépés módosítása más modellek vagy feldolgozási lépések befolyásolása nélkül).

Ha a használati eset megfelel e megfontolások némelyikének, a SageMaker következtetési folyamat egyszerű és rugalmas lehetőséget kínál egy soros következtetési folyamat létrehozására. A következő diagram egy referenciamintát mutat be egy soros következtetési folyamat megvalósításához, több lépéssel, amelyeket dedikált tárolókban tárolnak egy SageMaker következtetési folyamat segítségével.

ml9154-következtetési csővezeték

A SageMaker következtetési folyamat 2–15 konténerből álló lineáris sorozatból áll, amelyek feldolgozzák az adatokra vonatkozó következtetési kéréseket. A következtetési folyamat lehetőséget biztosít előre betanított SageMaker beépített algoritmusok vagy Docker-tárolókba csomagolt egyéni algoritmusok használatára. A tárolók ugyanazon az alapul szolgáló példányon vannak tárolva, ami segít csökkenteni a teljes várakozási időt és minimalizálni a költségeket.

A következő kódrészlet bemutatja, hogyan lehet több feldolgozási lépést és modellt kombinálni egy soros következtetési folyamat létrehozásához.

Kezdjük a Spark ML és XGBoost alapú modellek felépítésével és megadásával, amelyeket a folyamat részeként kívánunk használni:

from sagemaker.model import Model
from sagemaker.pipeline_model import PipelineModel
from sagemaker.sparkml.model import SparkMLModel
sparkml_data = 's3://{}/{}/{}'.format(s3_model_bucket, s3_model_key_prefix, 'model.tar.gz')
sparkml_model = SparkMLModel(model_data=sparkml_data)
xgb_model = Model(model_data=xgb_model.model_data, image=training_image)

A modellek ezután sorban vannak elrendezve a folyamatmodell-definíción belül:

model_name = 'serial-inference-' + timestamp_prefix
endpoint_name = 'serial-inference-ep-' + timestamp_prefix
sm_model = PipelineModel(name=model_name, role=role, models=[sparkml_model, xgb_model])

A következtetési folyamat ezután egy végpont mögé kerül telepítésre valós idejű következtetéshez a gazdagép ML-példányok típusának és számának megadásával:

sm_model.deploy(initial_instance_count=1, instance_type='ml.c4.xlarge', endpoint_name=endpoint_name)

A teljes összeállított következtetési folyamat egy SageMaker modellnek tekinthető, amellyel valós idejű előrejelzéseket készíthet, vagy közvetlenül, külső előfeldolgozás nélkül dolgozhat fel kötegelt átalakításokat. Egy következtetési folyamatmodellben a SageMaker a meghívásokat külső alkalmazásból származó HTTP-kérések sorozataként kezeli. A folyamat első tárolója kezeli a kezdeti kérést, végrehajt bizonyos feldolgozást, majd a közbenső választ kérésként elküldi a folyamatban lévő második tárolónak. Ez a folyamatban lévő minden egyes tárolónál megtörténik, és végül visszaküldi a végső választ a hívó ügyfélalkalmazásnak.

A SageMaker következtetési folyamatok teljes mértékben felügyeltek. A folyamat üzembe helyezésekor a SageMaker telepíti és futtatja az összes meghatározott tárolót mindegyiken Amazon rugalmas számítási felhő (Amazon EC2) példányok, amelyek a végpont vagy a kötegelt átalakítási feladat részeként vannak kiépítve. Továbbá, mivel a tárolók egy helyen vannak, és ugyanazon az EC2-példányon vannak tárolva, a folyamat teljes késése csökken.

Soros modell együttes SageMaker következtetési folyamat segítségével

Az ensemble modell egy olyan megközelítés az ML-ben, ahol több ML-modellt kombinálnak, és a következtetési folyamat részeként használják fel a végső következtetések előállítására. Az ensemble modellek motivációi többek között a pontosság javítása, a modell érzékenységének csökkentése bizonyos bemeneti jellemzőkkel szemben, valamint az egyedi modell torzításának csökkentése lehet. Ebben a bejegyzésben a soros modell-együtteshez kapcsolódó használati esetekre összpontosítunk, ahol több ML-modellt szekvenciálisan kombinálnak egy soros következtetési folyamat részeként.

Nézzünk egy konkrét példát egy soros modell együtteshez, ahol csoportosítanunk kell a felhasználó feltöltött képeit bizonyos témák vagy témák alapján. Ez a folyamat három ML modellből állhat:

  • Model 1 – Képet fogad be bemenetként, és a képfelbontás, tájolás és egyebek alapján értékeli a képminőséget. Ez a modell ezután megpróbálja felskálázni a képminőséget, és elküldi a feldolgozott képeket, amelyek megfelelnek egy bizonyos minőségi küszöbértéknek, a következő modellnek (2. modell).
  • Model 2 – Elfogadja a Model 1-en keresztül érvényesített képeket és végrehajtja képfelismerés tárgyak, helyek, emberek, szövegek és egyéb egyéni műveletek és fogalmak azonosítása a képeken. A 2. modell kimenete, amely azonosított objektumokat tartalmaz, elküldésre kerül a 3. modellnek.
  • Model 3 – Elfogadja a 2. modell kimenetét, és természetes nyelvi feldolgozási (NLP) feladatokat hajt végre, például témamodellezést a képek témák alapján történő csoportosításához. Például a képeket hely vagy azonosított személyek alapján csoportosíthatjuk. A kimenet (csoportosítások) visszaküldésre kerül az ügyfélalkalmazásnak.

A következő diagram egy referenciamintát mutat be, hogyan valósíthat meg több soros modell együttesen tárolt ML-modellt egy SageMaker következtetési folyamat segítségével.

ml9154-modell-együttes

Amint azt korábban tárgyaltuk, a SageMaker következtetési folyamatot menedzseljük, ami lehetővé teszi, hogy az ML modell kiválasztására és fejlesztésére összpontosítson, miközben csökkenti a soros ensemble pipeline felépítésével járó differenciálatlan nehézemelést.

Ezen túlmenően a korábban tárgyalt megfontolások a szétválasztással, a modellfejlesztés algoritmus- és keretrendszer-választásával, valamint a telepítéssel kapcsolatban itt is relevánsak. Például mivel minden modell egy külön tárolóban van tárolva, rugalmasan választhatja ki az egyes modellekhez és az általános használati esethez legjobban illeszkedő ML keretrendszert. Ezenkívül a szétválasztás és a működés szempontjából sokkal könnyebben folytathatja az egyes lépések frissítését vagy módosítását anélkül, hogy ez más modelleket érintene.

A SageMaker következtetési folyamat szintén integrálva van a SageMaker modellnyilvántartás modellkatalógus, verziószámítás, metaadat-kezelés és szabályozott üzembe helyezés termelési környezetekben a következetes működési bevált gyakorlatok támogatása érdekében. A SageMaker következtetési folyamat szintén integrálva van amazonfelhőóra lehetővé teszi a többkonténeres modellek megfigyelését a következtetési folyamatokban. Láthatóságot is kaphat valós idejű mérőszámok hogy jobban megértsük a folyamatban lévő egyes tárolók meghívását és késleltetését, ami segít a hibaelhárításban és az erőforrás-optimalizálásban.

Soros következtetési folyamat (célzott modellhívással egy csoportból) SageMaker következtetési folyamat segítségével

SageMaker többmodell végpontok (MME) költséghatékony megoldást kínál nagyszámú ML-modell egyetlen végpont mögé történő telepítéséhez. A többmodelles végpontok használatának motivációi közé tartozhat egy konkrét, testreszabott modell meghívása a kérés jellemzői alapján (például származás, földrajzi hely, felhasználó személyre szabása stb.), vagy egyszerűen több modell tárolása ugyanazon végpont mögött a költségoptimalizálás érdekében.

Ha több modellt telepít egyetlen többmodell-kompatibilis végponton, az összes modell megosztja a számítási erőforrásokat és a modellkiszolgáló tárolót. A SageMaker következtetési folyamat egy MME-n telepíthető, ahol a folyamatban lévő egyik tároló dinamikusan képes kiszolgálni a kéréseket a konkrét meghívott modell alapján. A folyamat szempontjából a modellek azonos előfeldolgozási követelményekkel rendelkeznek, és ugyanazt a szolgáltatáskészletet várják el, de úgy vannak kiképezve, hogy egy adott viselkedéshez igazodjanak. A következő diagram egy referenciamintát mutat be az integrált csővezeték működésére.

ml9154-mme

Az MME-k esetében az ügyfélalkalmazásból származó következtetési kérésnek meg kell határoznia a meghívandó célmodellt. A folyamat első tárolója kezeli a kezdeti kérést, végrehajt bizonyos feldolgozást, majd a közbenső választ kérésként elküldi a folyamatban lévő második tárolónak, amely több modellt is tartalmaz. A következtetési kérésben megadott célmodell alapján a modell meghívásra kerül, hogy következtetést generáljon. Az előállított következtetés a folyamatban lévő következő tárolóba kerül további feldolgozásra. Ez megtörténik a folyamatban lévő minden egyes tárolónál, és végül a SageMaker visszaküldi a végső választ a hívó ügyfélalkalmazásnak.

Egy S3 tárolóban több modellműtermék található. Egy adott modell meghívásakor a SageMaker dinamikusan betölti azt a végpontot tároló tárolóba. Ha a modell már be van töltve a konténer memóriájába, az hívás gyorsabb, mert a SageMakernek nem kell letöltenie a modellt az Amazon S3-ról. Ha a példánymemória kihasználtsága magas, és egy új modellt hívnak meg, és ezért be kell tölteni, a nem használt modellek kikerülnek a memóriából. A ki nem töltött modellek azonban a példány tárolókötetében maradnak, és később újra betölthetők a tároló memóriájába anélkül, hogy újra letöltenék őket az S3 tárolóból.

Az MME-k használata során az egyik legfontosabb szempont a modellhívási késleltetési viselkedés megértése. Amint azt korábban tárgyaltuk, a modellek meghívásakor dinamikusan betöltődnek a végpontot tároló példány tárolójának memóriájába. Ezért a modellhívás tovább tarthat, amikor először hívják meg. Ha a modell már a példánytároló memóriájában van, a következő hívások gyorsabbak. Ha egy példány memória kihasználtsága magas, és új modellt kell betölteni, a nem használt modellek betöltődnek. Ha a példány tárolókötete megtelt, a nem használt modellek törlődnek a tárolókötetről. A SageMaker teljes mértékben kezeli a modellek be- és kirakodását anélkül, hogy Önnek bármilyen konkrét intézkedést kellene tennie. Fontos azonban megérteni ezt a viselkedést, mert hatással van a modell hívási késleltetésére, és így az általános végpontok közötti késleltetésre.

Pipeline hosting lehetőségek

A SageMaker többféle lehetőséget biztosít példány típusa választható lehetőségek az ML-modellek telepítéséhez és a következtetési folyamatok kiépítéséhez, a használati eset, az átviteli sebesség és a költségigények alapján. Választhat például CPU-ra vagy GPU-ra optimalizált példányokat soros következtetési folyamatok létrehozásához, egyetlen tárolón vagy több tárolón keresztül. Vannak azonban olyan követelmények, amelyek esetében szükség van rugalmasságra és támogatásra a modellek CPU- vagy GPU-alapú példányokon való futtatásához ugyanazon a folyamaton belül a további rugalmasság érdekében.

Mostantól az NVIDIA Triton Inference Server segítségével modelleket szolgálhat ki következtetésekhez a SageMakerben heterogén számítási követelmények esetén. Nézze meg Telepítsen gyors és méretezhető mesterséges intelligenciát az NVIDIA Triton Inference Server segítségével az Amazon SageMakerben további részletekért.

Következtetés

Ahogy a szervezetek felfedezik és kiépítik az ML által hajtott új megoldásokat, az ezekhez a folyamatokhoz szükséges eszközöknek kellően rugalmasnak kell lenniük ahhoz, hogy egy adott használati eset alapján támogassák, miközben egyszerűsítik és csökkentik a folyamatos működési költségeket. A SageMaker többféle lehetőséget kínál ezeknek a soros következtetési munkafolyamatoknak a tervezésére és felépítésére, az Ön igényei alapján.

Várjuk, hogy megtudja, milyen használati eseteket épít fel soros következtetési folyamatokkal. Ha kérdése vagy visszajelzése van, kérjük, ossza meg őket a megjegyzésekben.


A szerzőkről

Tervezési minták soros következtetésekhez az Amazon SageMaker PlatoBlockchain Data Intelligence-en. Függőleges keresés. Ai. Rahul Sharma az AWS Data Lab vezető megoldástervezője, aki segít az AWS ügyfeleinek AI/ML megoldások tervezésében és kivitelezésében. Mielőtt csatlakozott az AWS-hez, Rahul több évet töltött a pénzügyi és biztosítási szektorban, segítve ügyfeleit adat- és elemzési platformok felépítésében.

Tervezési minták soros következtetésekhez az Amazon SageMaker PlatoBlockchain Data Intelligence-en. Függőleges keresés. Ai. Anand Prakash az AWS Data Lab vezető megoldási építésze. Az Anand arra összpontosít, hogy segítse ügyfeleit AI/ML, adatelemzési és adatbázis-megoldások tervezésében és felépítésében, hogy felgyorsítsák a termelés felé vezető utat.

Tervezési minták soros következtetésekhez az Amazon SageMaker PlatoBlockchain Data Intelligence-en. Függőleges keresés. Ai. Dhawal Patel az AWS vezető gépi tanulási építésze. Az elosztott számítástechnikával és a mesterséges intelligenciával kapcsolatos problémákon a nagyvállalatoktól a közepes méretű induló vállalkozásokig szervezetekkel dolgozott együtt. A mély tanulásra összpontosít, beleértve az NLP és a Computer Vision tartományokat. Segít az ügyfeleknek abban, hogy a SageMaker-en nagy teljesítményű modellkövetkeztetést érjenek el.

Tervezési minták soros következtetésekhez az Amazon SageMaker PlatoBlockchain Data Intelligence-en. Függőleges keresés. Ai. Saurabh Trikande az Amazon SageMaker Inference vezető termékmenedzsere. Szenvedélye az ügyfelekkel való együttműködés és a gépi tanulás hozzáférhetőbbé tétele. Szabadidejében Saurabh szeret túrázni, innovatív technológiákat tanulni, követi a TechCrunch-ot és a családjával tölt időt.

Időbélyeg:

Még több AWS gépi tanulás