A gépi tanulás (ML) legújabb fejlesztései egyre nagyobb modellekhez vezettek, amelyek közül néhány százmilliárd paramétert igényel. Bár ezek a modellek erősebbek, az ezekre a modellekre vonatkozó képzés és következtetések jelentős számítási erőforrásokat igényelnek. A fejlett elosztott oktatókönyvtárak elérhetősége ellenére gyakori, hogy a képzési és következtetési feladatokhoz több száz gyorsítóra (GPU-kra vagy erre a célra épített ML chipekre, mint pl. AWS Trainium és a AWS Inferentia), és ezért több tíz vagy száz példány.
Az ilyen elosztott környezetekben mind a példányok, mind az ML chipek megfigyelhetősége kulcsfontosságú a modell teljesítményének finomhangolása és a költségoptimalizálás szempontjából. A mérőszámok lehetővé teszik a csapatok számára, hogy megértsék a munkaterhelés viselkedését, és optimalizálják az erőforrások elosztását és felhasználását, diagnosztizálják az anomáliákat, és növeljék az általános infrastruktúra hatékonyságát. Az adatkutatók számára az ML chipek kihasználtsága és telítettsége a kapacitástervezés szempontjából is lényeges.
Ez a bejegyzés végigvezeti Önt a Nyílt forráskódú megfigyelési minta az AWS Inferentiához, amely bemutatja, hogyan lehet nyomon követni az ML chipek teljesítményét, használt egy Amazon Elastic Kubernetes szolgáltatás (Amazon EKS) fürt, adatsík csomópontjai alapján Amazon rugalmas számítási felhő (Amazon EC2) típusú példányok Inf1 és a Inf2.
A minta része a AWS CDK megfigyelhetőségi gyorsító, véleményezett modulok készlete, amelyek segítenek beállítani a megfigyelhetőséget az Amazon EKS-fürtök számára. Az AWS CDK Observability Accelerator minták köré szerveződik, amelyek több erőforrás üzembe helyezéséhez használható újrafelhasználható egységek. A nyílt forráskódú megfigyelési minták halmaza a megfigyelhetőséget eszközli Amazon által kezelt Grafana műszerfalak, an AWS Distro az OpenTelemetry számára gyűjtő mérőszámok gyűjtéséhez, és Amazon által felügyelt szolgáltatás a Prometheus számára tárolni őket.
Megoldás áttekintése
A következő ábra a megoldás architektúráját mutatja be.
Ez a megoldás egy Amazon EKS-fürtöt telepít Inf1-példányokat tartalmazó csomópontcsoporttal.
A csomópontcsoport AMI típusa a AL2_x86_64_GPU
, amely a Amazon EKS optimalizált gyorsított Amazon Linux AMI. A szabványos Amazon EKS-optimalizált AMI konfiguráció mellett a gyorsított AMI tartalmazza a NeuronX futási idő.
Az ML chipek Kubernetesből való eléréséhez a minta telepíti a AWS Neuron eszköz plugin.
A mutatókat az Amazon Managed Service for Prometheus számára teszi közzé a neuron-monitor
A DaemonSet, amely egy minimális tárolót telepít, a Neuron eszközök telepítve. Konkrétan a neuron-monitor
A DaemonSet futtatja a neuron-monitor
parancsot a neuron-monitor-prometheus.py
kísérő szkript (mindkét parancs a tároló része):
A parancs a következő összetevőket használja:
neuron-monitor
összegyűjti a rendszeren futó Neuron alkalmazások mérőszámait és statisztikáit, és az összegyűjtött adatokat az stdout-ba továbbítja. JSON formátumneuron-monitor-prometheus.py
leképezi és felteszi a telemetriai adatokat JSON formátumból Prometheus-kompatibilis formátumba
Az adatokat az Amazon Managed Grafana programban a megfelelő irányítópult jeleníti meg.
Az Amazon Managed Service for Prometheus és az Amazon Managed Grafana metrikák összegyűjtésére és megjelenítésére szolgáló többi beállítás hasonló a más nyílt forráskódú mintákban használthoz, amelyek a AWS Observability Accelerator for CDK
GitHub adattár.
Előfeltételek
A bejegyzés lépéseinek végrehajtásához a következőkre lesz szüksége:
Állítsa be a környezetet
A környezet beállításához hajtsa végre a következő lépéseket:
- Nyisson meg egy terminálablakot, és futtassa a következő parancsokat:
- A meglévő Amazon Managed Grafana munkaterületek munkaterület-azonosítóinak lekérése:
A következő minta kimenetünk:
- Rendelje hozzá az értékeket
id
és aendpoint
a következő környezeti változókhoz:
COA_AMG_ENDPOINT_URL
tartalmaznia kell https://
.
- Hozzon létre egy Grafana API-kulcsot az Amazon Managed Grafana munkaterületéről:
- Állíts be egy titkot AWS rendszermenedzser:
A titokhoz az External Secrets bővítmény fog hozzáférni, és natív Kubernetes-titokként elérhető lesz az EKS-fürtben.
Indítsa el az AWS CDK környezetet
Az AWS CDK-telepítés első lépése a környezet rendszerindítása. Használod a cdk bootstrap
parancsot az AWS CDK parancssori felületen, hogy előkészítse a környezetet (az AWS-fiók és az AWS-régió kombinációja) az AWS CDK-nak az adott környezetben történő központi telepítéséhez szükséges erőforrásokkal. Az AWS CDK rendszerindításra minden fiókhoz és régiókombinációhoz szükség van, így ha már beindította az AWS CDK-t egy régióban, akkor nem kell megismételnie a rendszerindítási folyamatot.
Telepítse a megoldást
A megoldás üzembe helyezéséhez hajtsa végre a következő lépéseket:
- Klónozza a cdk-aws-observability-accelerator tárolót, és telepítse a függőségi csomagokat. Ez a tárhely TypeScriptben írt AWS CDK v2 kódot tartalmaz.
A Grafana irányítópult JSON-fájlok tényleges beállításait az AWS CDK-kontextusban kell megadni. Frissíteni kell context
a cdk.json
fájl, amely az aktuális könyvtárban található. A műszerfal helyét a fluxRepository.values.GRAFANA_NEURON_DASH_URL
paraméter, és neuronNodeGroup
a példány típusának, számának és számának beállítására szolgál Amazon Elastic Block Store (Amazon EBS) méretet használtak a csomópontokhoz.
- Írja be a következő kódrészletet
cdk.json
helyettesítvecontext
:
Az Inf1 példánytípust lecserélheti Inf2-re, és szükség szerint módosíthatja a méretet. A kiválasztott régióban való elérhetőség ellenőrzéséhez futtassa a következő parancsot (módosítsa Values
ahogy jónak látod):
- Telepítse a projektfüggőségeket:
- Futtassa a következő parancsokat a nyílt forráskódú megfigyelési minta telepítéséhez:
Érvényesítse a megoldást
A megoldás érvényesítéséhez hajtsa végre a következő lépéseket:
- Futtassa a
update-kubeconfig
parancs. A parancsot az előző parancs kimeneti üzenetéből kell megkapnia:
- Ellenőrizze a létrehozott erőforrásokat:
A következő képernyőkép a minta kimenetünket mutatja.
- Ellenőrizze, hogy a
neuron-device-plugin-daemonset
A DaemonSet fut:
A következő a várt eredményünk:
- Ellenőrizze, hogy a
neuron-monitor
A DaemonSet fut:
A következő a várt eredményünk:
- A Neuron eszközök és magok láthatóságának ellenőrzéséhez futtassa a
neuron-ls
és aneuron-top
parancsokat például a neuron-monitor podból (a pod nevét megkaphatja akubectl get pods -A
):
A következő képernyőkép a várt kimenetünket mutatja.
A következő képernyőkép a várt kimenetünket mutatja.
Vizualizálja az adatokat a Grafana Neuron irányítópultjával
Jelentkezzen be az Amazon Managed Grafana munkaterületére, és navigáljon a Dashboards panel. nevű irányítópultot kell látnia Neuron / Monitor.
Ha érdekes mutatókat szeretne látni a Grafana irányítópulton, a következő jegyzéket alkalmazzuk:
Ez egy minta munkaterhelés, amely összeállítja a torchvision ResNet50 modell és ismétlődő következtetéseket futtat egy hurokban a telemetriai adatok generálásához.
A pod sikeres telepítésének ellenőrzéséhez futtassa a következő kódot:
Egy elnevezett tokot kell látnod pytorch-inference-resnet50
.
Néhány perc múlva belenézett a Neuron / Monitor irányítópulton, az alábbi képernyőképekhez hasonló összegyűjtött mutatókat kell látnia.
A Grafana Operator és a Flux mindig együtt dolgozik, hogy szinkronizálja irányítópultjait a Git-tel. Ha véletlenül törli az irányítópultokat, a rendszer automatikusan újra hozzárendeli azokat.
Tisztítsuk meg
A teljes AWS CDK-vermet a következő paranccsal törölheti:
Következtetés
Ebben a bejegyzésben megmutattuk, hogyan lehet a megfigyelhetőséget nyílt forráskódú eszközökkel bevezetni egy EC2 Inf1 példányokat futtató adatsíkot tartalmazó EKS-fürtbe. Kezdetben az Amazon EKS-re optimalizált gyorsított AMI-t választottuk az adatsík csomópontjaihoz, amely magában foglalja a Neuron konténer futtatókörnyezetét, hozzáférést biztosítva az AWS Inferentia és Trainium Neuron eszközökhöz. Ezután a Neuron magok és eszközök Kubernetes számára való megjelenítéséhez telepítettük a Neuron eszközbővítményt. A telemetriai adatok tényleges gyűjtését és leképezését Prometheus-kompatibilis formátumba a neuron-monitor
és a neuron-monitor-prometheus.py
. A mutatók az Amazon Managed Service for Prometheus szolgáltatástól származnak, és az Amazon Managed Grafana Neuron irányítópultján jelennek meg.
Javasoljuk, hogy vizsgáljon meg további megfigyelhetőségi mintákat a AWS megfigyelhetőségi gyorsító CDK-hoz GitHub repó. Ha többet szeretne megtudni a Neuronról, tekintse meg a AWS Neuron dokumentáció.
A szerzőről
Riccardo Freschi az AWS Sr. Solutions Architect munkatársa, aki az alkalmazások modernizálására összpontosít. Szorosan együttműködik partnereivel és ügyfeleivel, hogy a meglévő alkalmazások átalakításával és újak építésével segítse őket informatikai környezetük átalakítására az AWS Cloud felé vezető úton.
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- PlatoData.Network Vertical Generative Ai. Erősítse meg magát. Hozzáférés itt.
- PlatoAiStream. Web3 Intelligence. Felerősített tudás. Hozzáférés itt.
- PlatoESG. Carbon, CleanTech, Energia, Környezet, Nap, Hulladékgazdálkodás. Hozzáférés itt.
- PlatoHealth. Biotechnológiai és klinikai vizsgálatok intelligencia. Hozzáférés itt.
- Forrás: https://aws.amazon.com/blogs/machine-learning/open-source-observability-for-aws-inferentia-nodes-within-amazon-eks-clusters/