MLOps at the edge with Amazon SageMaker Edge Manager and AWS IoT Greengrass PlatoBlockchain Data Intelligence. Vertical Search. Ai.

MLOps la margine cu Amazon SageMaker Edge Manager și AWS IoT Greengrass

Internetul lucrurilor (IoT) a permis clienților din mai multe industrii, cum ar fi producția, industria auto și energia, să monitorizeze și să controleze mediile din lumea reală. Prin implementarea unei varietăți de dispozitive IoT de vârf, cum ar fi camere, termostate și senzori, puteți colecta date, le puteți trimite în cloud și puteți construi modele de învățare automată (ML) pentru a prezice anomalii, defecțiuni și multe altele. Cu toate acestea, dacă cazul de utilizare necesită predicție în timp real, trebuie să vă îmbogățiți soluția IoT cu capabilități ML la margine (ML@Edge). ML@Edge este un concept care decuplă ciclul de viață al modelului ML de ciclul de viață al aplicației și vă permite să rulați o conductă ML de la capăt la capăt care include pregătirea datelor, construirea modelelor, compilarea și optimizarea modelului, implementarea modelului (la o flotă de dispozitive de vârf), execuția modelului și monitorizarea și guvernarea modelului. Implementați aplicația o dată și rulați conducta ML de câte ori aveți nevoie.

As you can imagine, to implement all the steps proposed by the ML@Edge concept is not trivial. There are many questions that developers need to address in order to implement a complete ML@Edge solution, for example:

  • How do I operate ML models on a fleet (hundreds, thousands, or millions) of devices at the edge?
  • Cum îmi securizez modelul în timp ce îl implementez și îl rulez la margine?
  • Cum monitorizez performanța modelului meu și îl reantrenez, dacă este necesar?

În această postare, înveți cum să răspunzi la toate aceste întrebări și să construiești o soluție completă pentru automatizarea conductei ML@Edge. Vei vedea cum se folosește Amazon SageMaker Edge Manager, Amazon SageMaker Studio, și AWS IoT Greengrass v2 to create an MLOps (ML Operations) environment that automates the process of building and deploying ML models to large fleets of edge devices.

În secțiunile următoare, prezentăm o arhitectură de referință care detaliază toate componentele și fluxurile de lucru necesare pentru a construi o soluție completă pentru MLOps axată pe sarcinile de lucru edge. Apoi ne aprofundăm în pașii pe care îi rulează automat această soluție pentru a construi și a pregăti un nou model. De asemenea, vă arătăm cum să pregătiți dispozitivele de vârf pentru a începe implementarea, rularea și monitorizarea modelelor ML și vă demonstrăm cum să monitorizați și să întrețineți modelele ML implementate în flota dvs. de dispozitive.

Prezentare generală a soluțiilor

Producția de modele ML robuste necesită colaborarea mai multor persoane, cum ar fi oamenii de știință de date, inginerii ML, inginerii de date și părțile interesate de afaceri, sub o infrastructură semi-automatizată în urma unor operațiuni specifice (MLOps). De asemenea, modularizarea mediului este importantă pentru a oferi tuturor acestor persoane diferite flexibilitatea și agilitatea de a dezvolta sau îmbunătăți (independent de fluxul de lucru) componenta pentru care sunt responsabile. Un exemplu de astfel de infrastructură este format din mai multe conturi AWS care permit această colaborare și producție a modelelor ML atât în ​​cloud, cât și pe dispozitivele edge. În următoarea arhitectură de referință, arătăm cum am organizat mai multe conturi și servicii care compun această platformă MLOps end-to-end pentru construirea modelelor ML și implementarea lor la margine.

This solution consists of the following accounts:

  • Cont Data Lake – Inginerii de date ingerează, stochează și pregătesc date din mai multe surse de date, inclusiv baze de date on-premise și dispozitive IoT.
  • Cont de scule – IT operators manage and check CI/CD pipelines for automated continuous delivery and deployment of ML model packages across the pre-production and production accounts for remote edge devices. Runs of CI/CD pipelines are automated through the usage of Amazon EventBridge, care monitorizează evenimentele privind starea modificării modelelor și țintelor ML AWS CodePipeline.
  • Cont de experimentare și dezvoltare – Oamenii de știință de date pot efectua cercetări și experimenta cu mai multe tehnici și algoritmi de modelare pentru a rezolva problemele de afaceri bazate pe ML, creând soluții de dovadă a conceptului. Inginerii ML și oamenii de știință de date colaborează pentru a scala o dovadă de concept, creând fluxuri de lucru automatizate folosind Pipelines Amazon SageMaker să pregătească datele și să construiască, să antreneze și să împacheteze modele ML. Implementarea conductelor este condusă prin conducte CI/CD, în timp ce controlul versiunilor modelelor este realizat folosind Registrul modelului Amazon SageMaker. Oamenii de știință de date evaluează valorile mai multor versiuni de model și solicită promovarea celui mai bun model la producție prin declanșarea conductei CI/CD.
  • Cont de pre-producție – Înainte de promovarea modelului în mediul de producție, modelul trebuie testat pentru a asigura robustețea într-un mediu de simulare. Prin urmare, mediul de pre-producție este un simulator al mediului de producție, în care punctele finale ale modelului SageMaker sunt implementate și testate automat. Metodele de testare pot include un test de integrare, un test de stres sau teste specifice ML cu privire la rezultatele inferenței. În acest caz, mediul de producție nu este un punct final al modelului SageMaker, ci un dispozitiv de vârf. Pentru a simula un dispozitiv de margine în pre-producție, sunt posibile două abordări: utilizați un Cloud Elastic de calcul Amazon (Amazon EC2) cu aceleași caracteristici hardware sau utilizați un banc de testare în laborator format din dispozitivele reale. Cu această infrastructură, conducta CI/CD implementează modelul pe simulatorul corespunzător și efectuează multiple teste automat. După ce testele rulează cu succes, conducta CI/CD necesită aprobare manuală (de exemplu, din partea părților interesate IoT pentru a promova modelul în producție).
  • Contul de producție – În cazul găzduirii modelului pe AWS Cloud, conducta CI/CD implementează un punct final al modelului SageMaker în contul de producție. În acest caz, mediul de producție este format din mai multe flote de dispozitive de vârf. Prin urmare, conducta CI/CD utilizează Edge Manager pentru a implementa modelele în flota corespunzătoare de dispozitive.
  • Dispozitive Edge – Remote edge devices are hardware devices that can run ML models using Edge Manager. It allows the application on those devices to manage the models, run inference against the models, and capture data securely into Serviciul Amazon de stocare simplă (Amazon S3).

proiecte SageMaker help you to automate the process of provisioning resources inside each of these accounts. We don’t dive deep into this feature, but to learn more about how to build a SageMaker project template that deploys ML models across accounts, check out Implementarea modelului cu mai multe conturi cu Amazon SageMaker Pipelines.

Cont de pre-producție: geamăn digital

După procesul de instruire, modelul rezultat trebuie evaluat. În contul de pre-producție, aveți un dispozitiv Edge simulat. Acesta reprezintă digital twin a dispozitivului de margine pe care rulează modelul ML în producție. Acest mediu are dublu scop de a efectua testele clasice (precum unitate, integrare și fum) și de a fi un loc de joacă pentru echipa de dezvoltare. Acest dispozitiv este simulat folosind o instanță EC2 în care au fost implementate toate componentele necesare pentru a gestiona modelul ML.

Serviciile implicate sunt urmatoarele:

  • AWS IoT Core - Folosim AWS IoT Core pentru a crea obiecte AWS IoT, pentru a crea o flotă de dispozitive, pentru a înregistra flota de dispozitive astfel încât să poată interacționa cu cloudul, pentru a crea certificate X.509 pentru a autentifica dispozitivele edge la AWS IoT Core, pentru a asocia alias-ul rolului cu AWS IoT Core care a fost generat atunci când flota creată, obțineți un punct final specific contului AWS pentru furnizorul de acreditări, obțineți un fișier oficial Amazon Root CA și încărcați fișierul Amazon CA pe Amazon S3.
  • Amazon Sagemaker Neo – Sagemaker Neo optimizează automat modelele de învățare automată pentru ca inferența să ruleze mai rapid, fără pierderi de precizie. Acceptă modelul de învățare automată deja construit cu DarkNet, Keras, MXNet, PyTorch, TensorFlow, TensorFlow-Lite, ONNX sau XGBoost și instruit în Amazon SageMaker sau oriunde altundeva. Apoi alegeți platforma hardware țintă, care poate fi o instanță de găzduire SageMaker sau un dispozitiv edge bazat pe procesoare de la Ambarella, Apple, ARM, Intel, MediaTek, Nvidia, NXP, Qualcomm, RockChip, Texas Instruments sau Xilinx.
  • Edge Manager – Folosim Edge Manager pentru a înregistra și gestiona dispozitivul edge în cadrul flotelor Sagemaker. Flotele sunt colecții de dispozitive grupate logic pe care le puteți utiliza pentru a colecta și analiza date. În plus, pachetul Edge Manager împachetează modelul optimizat și creează o componentă AWS IoT Greengrass V2 care poate fi implementată direct. Puteți utiliza Edge Manager pentru a opera modele ML pe o flotă de camere inteligente, difuzoare inteligente, roboți și alte flote de dispozitive SageMaker.
  • AWS IoT Greengrass V2 - AWS IoT Greengrass vă permite să implementați componente în dispozitivele simulate folosind o instanță EC2. Folosind agentul AWS IoT Greengrass V2 în instanțele EC2, putem simplifica accesul, gestionarea și implementarea agentului și modelului Edge Manager pe dispozitive. Fără AWS IoT Greengrass V2, configurarea dispozitivelor și a flotelor pentru a utiliza Edge Manager necesită să copiați manual agentul dintr-o gamă de lansare S3. Cu integrarea AWS IoT Greengrass V2 și Edge Manager, este posibil să utilizați componentele AWS IoT Greengrass V2. Componentele sunt module software prefabricate care pot conecta dispozitive de vârf la servicii AWS sau la servicii terțe prin AWS IoT Greengrass.
  • Agent Edge Manager – Agentul Edge Manager este implementat prin AWS IoT Greengrass V2 în instanța EC2. Agentul poate încărca mai multe modele simultan și poate face inferențe cu modelele încărcate pe dispozitivele de vârf. Numărul de modele pe care agentul le poate încărca este determinat de memoria disponibilă pe dispozitiv.
  • Amazon S3 – Folosim o găleată S3 pentru a stoca datele capturate de inferență de la agentul Edge Manager.

Putem defini un cont de pre-producție ca un geamăn digital pentru testarea modelelor ML înainte de a le muta în dispozitive edge reale. Aceasta oferă următoarele beneficii:

  • Agilitate și flexibilitate – Oamenii de știință de date și inginerii ML trebuie să valideze rapid dacă modelul ML și scripturile asociate (scripturi de preprocesare și inferență) vor funcționa pe marginea dispozitivului. Cu toate acestea, departamentele IoT și știința datelor din întreprinderile mari pot fi entități diferite. Prin replicarea identică a stivei de tehnologie în cloud, oamenii de știință de date și inginerii ML pot repeta și consolida artefactele înainte de implementare.
  • Evaluarea riscului și timpul de producție accelerat – Implementarea pe dispozitivul de margine este etapa finală a procesului. După ce validați totul într-un mediu izolat și autonom, asigurați-l pentru a respecta specificațiile cerute de edge în ceea ce privește calitatea, performanța și integrarea. Acest lucru ajută la evitarea implicării ulterioare a altor persoane în departamentul IoT pentru a remedia și a repeta versiunile de artefact.
  • Improved team collaboration and enhanced quality and performance – Echipa de dezvoltare poate evalua imediat impactul modelului ML analizând valorile hardware de vârf și măsurând nivelul interacțiunilor cu instrumente terțe (de exemplu, rata I/O). Apoi, echipa IoT este responsabilă doar de implementarea în mediul de producție și poate avea încredere că artefactele sunt exacte pentru un mediu de producție.
  • Loc de joacă integrat pentru testare – Având în vedere ținta modelelor ML, mediul de pre-producție într-un flux de lucru tradițional ar trebui să fie reprezentat de un dispozitiv de vârf în afara mediului cloud. Aceasta introduce un alt nivel de complexitate. Sunt necesare integrări pentru a colecta valori și feedback. În schimb, prin utilizarea mediului digital simulat, interacțiunile sunt reduse și timpul de lansare pe piață este scurtat.

Production account and edge environment

După ce testele sunt finalizate și stabilitatea artefactului este atinsă, puteți trece la implementarea producției prin conducte. Implementarea artefactului are loc în mod programatic după ce un operator a aprobat artefactul. Cu toate acestea, accesul la Consola de administrare AWS este acordat operatorilor în modul numai citire pentru a putea monitoriza metadatele asociate flotelor și, prin urmare, pentru a avea o perspectivă asupra versiunii modelului ML implementat și a altor valori asociate cu ciclul de viață.

Flotele de dispozitive Edge aparțin contului de producție AWS. Acest cont are configurații specifice de securitate și de rețea pentru a permite comunicarea între dispozitivele cloud și edge. Principalele servicii AWS implementate în contul de producție sunt Edge Manager, care este responsabil pentru gestionarea tuturor flotelor de dispozitive, colectarea datelor și operarea modelelor ML, și AWS IoT Core, care gestionează obiecte IoT, certificate, alias de rol și puncte finale.

În același timp, trebuie să configuram un dispozitiv edge cu serviciile și componentele pentru a gestiona modelele ML. Componentele principale sunt următoarele:

  • AWS IoT Greengrass V2
  • Un agent Edge Manager
  • Certificate AWS IoT
  • Application.py, which is responsible for orchestrating the inference process (retrieving information from the edge data source and performing inference using the Edge Manager agent and loaded ML model)
  • O conexiune la Amazon S3 sau la contul lacului de date pentru a stoca date deduse

Conductă ML automatizată

Now that you know more about the organization and the components of the reference architecture, we can dive deeper into the ML pipeline that we use to build, train, and evaluate the ML model inside the development account.

O conductă (construită folosind Amazon SageMaker Model Building Pipelines) este o serie de pași interconectați care sunt definiți de o definiție a conductei JSON. Această definiție de conductă codifică o conductă folosind un grafic aciclic direcționat (DAG). Acest DAG oferă informații despre cerințele și relațiile dintre fiecare pas al conductei dvs. Structura DAG-ului unei conducte este determinată de dependențele de date dintre pași. Aceste dependențe de date sunt create atunci când proprietățile ieșirii unui pas sunt transmise ca intrare la un alt pas.

Pentru a permite echipelor de știință a datelor să automatizeze cu ușurință crearea de noi versiuni de modele ML, este important să se introducă pași de validare și date automatizate pentru alimentarea și îmbunătățirea continuă a modelelor ML, precum și strategii de monitorizare a modelelor pentru a permite declanșarea pipelinei. Următoarea diagramă prezintă un exemplu de conductă.

MLOps at the edge with Amazon SageMaker Edge Manager and AWS IoT Greengrass PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Pentru a activa automatizările și capabilitățile MLOps, este important să se creeze componente modulare pentru crearea artefactelor de cod reutilizabile care pot fi partajate în diferiți pași și cazuri de utilizare ML. Acest lucru vă permite să mutați rapid implementarea de la o fază de experimentare la o fază de producție prin automatizarea tranziției.

Pașii pentru definirea unei conducte ML pentru a permite formarea continuă și versiunea modelelor ML sunt următorii:

  • preprocesare – Procesul de curățare a datelor, ingineria caracteristicilor și crearea setului de date pentru antrenarea algoritmului ML
  • Pregătire – Procesul de antrenare a algoritmului ML dezvoltat pentru generarea unei noi versiuni a artefactului modelului ML
  • Evaluare – The process of evaluation of the generated ML model, for extracting key metrics related to the model behavior on new data not seen during the training phase
  • Înscriere – The process of versioning the new trained ML model artifact by linking the metrics extracted with the generated artifact

Puteți vedea mai multe detalii despre cum să construiți o conductă SageMaker în cele ce urmează caiet.

Trigger CI/CD pipelines using EventBridge

Când terminați de construit modelul, puteți începe procesul de implementare. Ultimul pas al conductei SageMaker definită în secțiunea anterioară înregistrează o nouă versiune a modelului în grupul de registru de model SageMaker specific. Implementarea unei noi versiuni a modelului ML este gestionată folosind starea registrului modelului. Prin aprobarea sau respingerea manuală a unei versiuni de model ML, acest pas generează un eveniment care este capturat de EventBridge. Acest eveniment poate începe apoi o nouă conductă (CI/CD de data aceasta) pentru crearea unei noi versiuni a componentei AWS IoT Greengrass, care este apoi implementată în conturile de pre-producție și producție. Următoarea captură de ecran arată regula noastră EventBridge definită.

MLOps at the edge with Amazon SageMaker Edge Manager and AWS IoT Greengrass PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Această regulă monitorizează grupul de pachete model SageMaker căutând actualizări ale pachetelor model în stare Approved or Rejected.

Regula EventBridge este apoi configurată pentru a viza CodePipeline, care pornește fluxul de lucru al creării unei noi componente AWS IoT Greengrass prin utilizarea Amazon SageMaker Neo și Edge Manager.

Optimizați modelele ML pentru arhitectura țintă

Neo vă permite să optimizați modelele ML pentru a efectua inferențe pe dispozitivele de vârf (și în cloud). Optimizează automat modelele ML pentru o performanță mai bună pe baza arhitecturii țintă și decuplează modelul de cadrul original, permițându-vă să-l rulați pe un timp de rulare ușor.

Consultați următoarele caiet for an example of how to compile a PyTorch Resnet18 model using Neo.

Build the deployment package by including the AWS IoT Greengrass component

Edge Manager vă permite să gestionați, să securizați, să implementați și să monitorizați modele pentru o flotă de dispozitive de vârf. În cele ce urmează caiet, puteți vedea mai multe detalii despre cum să construiți o flotă minimalistă de dispozitive de vârf și să efectuați câteva experimente cu această funcție.

După ce configurați flota și compilați modelul, trebuie să rulați un job de ambalare Edge Manager, care pregătește modelul pentru a fi implementat în flotă. Puteți începe o lucrare de ambalare utilizând SDK-ul Boto3. Pentru parametrii noștri, folosim modelul optimizat și metadatele modelului. Adăugând următorii parametri la OutputConfig, jobul pregătește și o componentă AWS IoT Greengrass V2 cu modelul:

  • PresetDeploymentType
  • PresetDeploymentConfig

Consultați următorul cod:

import boto3
import time

SageMaker_client = boto3.client('SageMaker')

SageMaker_client.create_edge_packaging_job(
    EdgePackagingJobName="mlops-edge-packaging-{}".format(int(time.time()*1000)),
    CompilationJobName=compilation_job_name,
    ModelName="PytorchMLOpsEdgeModel",
    ModelVersion="1.0.0",
    RoleArn=role,
    OutputConfig={
        'S3OutputLocation': 's3://{}/model/'.format(bucket_name),
        "PresetDeploymentType": "GreengrassV2Component",
        "PresetDeploymentConfig": json.dumps(
            {"ComponentName": component_name, "ComponentVersion": component_version}
        ),
    }
)

Implementați modele ML la margine la scară

Acum este timpul să implementați modelul în flota dvs. de dispozitive de vârf. În primul rând, trebuie să ne asigurăm că avem necesarul Gestionarea identității și accesului AWS (EU SUNT) permisiuni pentru a furniza dispozitivele noastre IoT și pentru a putea implementa componente pe acesta. Avem nevoie de două elemente de bază pentru a începe integrarea dispozitivelor în platforma noastră IoT:

  • Politica IAM – Această politică permite furnizarea automată a unor astfel de dispozitive, atașate utilizatorului sau rolului care efectuează furnizarea. Ar trebui să aibă permisiuni de scriere IoT pentru a crea obiectul și grupul IoT, precum și pentru a atașa politicile necesare dispozitivului. Pentru mai multe informații, consultați Politica IAM minimă pentru instalator pentru a furniza resurse.
  • Rolul IAM – acest rol este atașat lucrurilor și grupurilor IoT pe care le creăm. Puteți crea acest rol la momentul aprovizionării cu permisiuni de bază, dar îi vor lipsi funcții precum accesul la Amazon S3 sau AWS Service Management Service (AWS KMS) care ar putea fi necesar mai târziu. Puteți crea acest rol în prealabil și îl puteți reutiliza atunci când furnizăm dispozitivul. Pentru mai multe informații, consultați Authorize core devices to interact with AWS.

Instalarea și furnizarea AWS IoT Greengrass

După ce avem politica și rolul IAM în vigoare, suntem pregătiți instalați software-ul AWS IoT Greengrass Core cu furnizarea automată a resurselor. Although it’s possible to provision the IoT resources following manual steps, there is the convenient procedure of automatically provisioning these resources during the installation of the AWS IoT Greengrass v2 nucleus. This is the preferred option to quickly onboard new devices into the platform. Besides default-jdk, este necesar să fie instalate alte pachete, cum ar fi curl, unzip, și python3.

Când furnizam dispozitivul nostru, numele obiectului IoT trebuie să fie exact același cu dispozitivul edge definit în Edge Manager, altfel datele nu vor fi capturate în compartimentul S3 de destinație.

Programul de instalare poate crea rolul și aliasul AWS IoT Greengrass în timpul instalării, dacă acestea nu există. Cu toate acestea, acestea vor fi create cu permisiuni minime și vor necesita adăugarea manuală a mai multor politici pentru a interacționa cu alte servicii, cum ar fi Amazon S3. Vă recomandăm să creați aceste resurse IAM în prealabil, așa cum s-a arătat mai devreme, apoi să le reutilizați pe măsură ce introduceți dispozitive noi în cont.

Ambalarea modelului și a componentelor de inferență

După ce codul nostru a fost dezvoltat, putem implementa atât codul (pentru deducere) cât și modelele noastre ML ca componente în dispozitivele noastre.

After the ML model is trained in SageMaker, you can optimize the model with Neo using a Sagemaker compilation job. The resulting compiled model artifacts, can then be packaged into a GreenGrass V2 component using the Edge Manager packager. Then, it can be registered as a custom component in the Componentele mele secțiunea din consola AWS IoT Greengrass. Această componentă conține deja comenzile necesare ciclului de viață pentru a descărca și decomprima artefactul model în dispozitivul nostru, astfel încât codul de inferență să îl poată încărca pentru a trimite imaginile capturate prin intermediul acestuia.

În ceea ce privește codul de inferență, trebuie să creăm o componentă folosind consola sau Interfața liniei de comandă AWS (AWS CLI). În primul rând, împachetăm codul de inferență sursă și dependențele necesare la Amazon S3. După ce încărcăm codul, ne putem crea componenta folosind o rețetă în .yaml sau JSON, cum ar fi următorul exemplu:

---
RecipeFormatVersion: 2020-01-25
ComponentName: dummymodel.inference
ComponentVersion: 0.0.1
ComponentDescription: Deploys inference code to a client
ComponentPublisher: Amazon Web Services, Inc.
ComponentDependencies:
  aws.GreenGrass.TokenExchangeService:
    VersionRequirement: '>=0.0.0'
    DependencyType: HARD
  dummymodel:
    VersionRequirement: '>=0.0.0'
    DependencyType: HARD
Manifests:
  - Platform:
      os: linux
      architecture: "*"
    Lifecycle:
      install: |-
        apt-get install python3-pip
        pip3 install numpy
        pip3 install sysv_ipc
        pip3 install boto3
        pip3 install grpcio-tools
        pip3 install grpcio
        pip3 install protobuf
        pip3 install SageMaker
        tar xf {artifacts:path}/sourcedir.tar.gz
      run:
        script: |-
          sleep 5 && sudo python3 {work:path}/inference.py 
    Artifacts:
      - URI: s3://BUCKET-NAME/path/to/inference/sourcedir.tar.gz
        Permission:
          Execute: OWNER

Acest exemplu de rețetă arată numele și descrierea componentei noastre, precum și cerințele preliminare necesare înainte de executarea comenzii noastre de script. Rețeta despachetează artefactul într-un mediu de folder de lucru din dispozitiv și folosim acea cale pentru a rula codul nostru de inferență. Comanda AWS CLI pentru a crea o astfel de rețetă este:

aws greengrassv2 create-component-version --region $REGION 
                                          --inline-recipe fileb://path/to/recipe.yaml

Acum puteți vedea această componentă creată pe consola AWS IoT Greengrass.

Atenție la faptul că versiunea componentei contează și trebuie specificată în fișierul rețetei. Repetarea aceluiași număr de versiune va returna o eroare.

După ce modelul și codul nostru de inferență au fost configurate ca componente, suntem gata să le implementăm.

Implementați aplicația și modelul folosind AWS IoT Greengrass

În secțiunile anterioare, ați învățat cum să pachetați codul de inferență și modelele ML. Acum putem crea o implementare cu mai multe componente care includ atât componente, cât și configurații necesare pentru ca codul nostru de inferență să interacționeze cu modelul din dispozitivul de margine.

Agentul Edge Manager este componenta care ar trebui instalată pe fiecare dispozitiv Edge pentru a activa toate capabilitățile Edge Manager. Pe consola SageMaker, avem o flotă de dispozitive definită, care are asociată o găleată S3. Toate dispozitivele edge asociate cu flota își vor captura și raporta datele către această cale S3. Agentul poate fi implementat ca componentă în AWS IoT Greengrass v2, ceea ce face mai ușor de instalat și configurat decât dacă agentul ar fi implementat în mod independent. Când implementăm agentul ca componentă, trebuie să specificăm parametrii de configurare ai acestuia, și anume flota de dispozitive și calea S3.

Creăm o configurație de implementare cu componentele personalizate pentru modelul și codul pe care tocmai le-am creat. Această configurare este definită într-un fișier JSON care listează numele și ținta implementării, precum și componentele din implementare. Putem adăuga și actualiza parametrii de configurare ai fiecărei componente, cum ar fi în agentul Edge Manager, unde specificăm numele flotei și compartimentul.

{
    "targetArn": "targetArn",
    "deploymentName": "dummy-deployment",
    "components": {
        "aws.GreenGrass.Nucleus": {
            "version": "2.5.3",
        },
        "aws.GreenGrass.Cli": {
            "version": "2.5.3"
        },
        "aws.GreenGrass.SageMakerEdgeManager": {
            "version": 1.1.0,
            "configurationUpdate": {
                "merge": {
                "DeviceFleetName": "FLEET-NAME",
                "BucketName": "BUCKET-NAME-URI"
                }
            }
        },
        "dummymodel.inference": {
            "version": "0.0.1"
        },
        "dummymodel": {
            "version": "0.0.1"
        }
    }
}

Este de remarcat faptul că am adăugat nu numai modelul, componentele de inferență și agentul, ci și CLI și nucleul AWS IoT Greengrass ca componente. Primul poate ajuta la depanarea anumitor implementări la nivel local pe dispozitiv. Acesta din urmă este adăugat în implementare pentru a configura accesul la rețea necesar de pe dispozitivul însuși, dacă este necesar (de exemplu, setările proxy) și, de asemenea, în cazul în care doriți să efectuați o actualizare OTA a nucleului AWS IoT Greengrass v2. Nucleul nu este implementat deoarece este instalat în dispozitiv și se va aplica doar actualizarea de configurare (cu excepția cazului în care există o actualizare). Pentru implementare, trebuie pur și simplu să rulăm următoarea comandă peste configurația anterioară. Nu uitați să configurați ARN-ul țintă căruia i se va aplica implementarea (un lucru IoT sau un grup IoT). De asemenea, putem implementa aceste componente din consolă.

aws greengrassv2 create-deployment --region $REGION 
                                   --cli-input-json file://path/to/deployment.json

Monitorizați și gestionați modelele ML implementate la margine

Acum că aplicația dvs. rulează pe dispozitivele de vârf, este timpul să înțelegeți cum să monitorizați flota pentru a îmbunătăți guvernanța, întreținerea și vizibilitatea. Pe consola SageMaker, alegeți Edge Manager în panoul de navigare, apoi alegeți Flote de dispozitive Edge. De aici, alege-ți flota.

MLOps at the edge with Amazon SageMaker Edge Manager and AWS IoT Greengrass PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Pe pagina de detalii a flotei, puteți vedea câteva metadate ale modelelor care rulează pe fiecare dispozitiv al flotei dvs. Raportul flotei este generat la fiecare 24 de ore.

MLOps at the edge with Amazon SageMaker Edge Manager and AWS IoT Greengrass PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Datele capturate de fiecare dispozitiv prin intermediul Edge Agent sunt trimise într-o găleată S3 în format json lines (JSONL). Procesul de trimitere a datelor capturate este gestionat din punct de vedere al aplicației. Prin urmare, sunteți liber să decideți dacă trimiteți aceste date, cum și cât de des.

MLOps at the edge with Amazon SageMaker Edge Manager and AWS IoT Greengrass PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Puteți utiliza aceste date pentru multe lucruri, cum ar fi monitorizarea derivării datelor și a calității modelului, construirea unui nou set de date, îmbogățirea unui lac de date și multe altele. Un exemplu simplu de utilizare a acestor date este atunci când identificați o deviere a datelor în modul în care utilizatorii interacționează cu aplicația dvs. și trebuie să pregătiți un nou model. Apoi creați un nou set de date cu datele capturate și îl copiați înapoi în contul de dezvoltare. Acest lucru poate porni automat o nouă rulare a mediului dvs. care construiește un nou model și îl redistribuie în întreaga flotă pentru a menține performanța soluției implementate.

Concluzie

In this post, you learned how to build a complete solution that combines MLOps and ML@Edge using AWS services. Building such a solution is not trivial, but we hope the reference architecture presented in this post can inspire and help you build a solid architecture for your own business challenges. You can also use just the parts or modules of this architecture that integrate with your existing MLOps environment. By prototyping one single module at a time and using the appropriate AWS services to address each piece of this challenge, you can learn how to build a robust MLOps environment and also further simplify the final architecture.

Ca pas următor, vă încurajăm să încercați Sagemaker Edge Manager pentru a vă gestiona ciclul de viață ML la edge. Pentru mai multe informații despre cum funcționează Edge Manager, consultați Implementați modele la margine cu SageMaker Edge Manager .


Despre autori

MLOps at the edge with Amazon SageMaker Edge Manager and AWS IoT Greengrass PlatoBlockchain Data Intelligence. Vertical Search. Ai.Bruno Pistone este un arhitect specializat în soluții AI/ML pentru AWS cu sediul în Milano. Lucrează cu clienții de orice dimensiune pentru a-i ajuta să-și înțeleagă în profunzime nevoile tehnice și să proiecteze soluții de AI și de învățare automată care să folosească cel mai bine AWS Cloud și stiva Amazon Machine Learning. Domeniul său de expertiză sunt Machine Learning end to end, Machine Learning Industrialization și MLOps. Îi place să petreacă timpul cu prietenii săi și să exploreze locuri noi, precum și să călătorească către noi destinații.

MLOps at the edge with Amazon SageMaker Edge Manager and AWS IoT Greengrass PlatoBlockchain Data Intelligence. Vertical Search. Ai.Matteo Calabrese is an AI/ML Customer Delivery Architect in AWS Professional Services team. He works with EMEA large enterprises on AI/ML projects, helping them in proposition, design, deliver, scale, and optimize ML production workloads. His main expertise are ML Operation (MLOps) and Machine Learning at Edge. His goal is shortening their time to value and accelerate business outcomes by providing AWS best practices. In his spare time, he enjoys hiking and traveling.

MLOps at the edge with Amazon SageMaker Edge Manager and AWS IoT Greengrass PlatoBlockchain Data Intelligence. Vertical Search. Ai.Raúl Díaz García este un Data Scientist senior în echipa AWS Professional Services. Lucrează cu clienți mari întreprinderi din EMEA, unde îi ajută să activeze soluții legate de Computer Vision și Machine Learning în spațiul IoT.

MLOps at the edge with Amazon SageMaker Edge Manager and AWS IoT Greengrass PlatoBlockchain Data Intelligence. Vertical Search. Ai.Sokratis Kartakis este arhitect senior de soluții de specialitate în învățare automată pentru Amazon Web Services. Sokratis se concentrează pe a permite clienților întreprinderi să-și industrializeze soluțiile de învățare automată (ML) prin exploatarea serviciilor AWS și modelarea modelului lor de operare, adică fundația MLOps și foaia de parcurs de transformare, valorificând cele mai bune practici de dezvoltare. A petrecut peste 15 ani inventând, proiectând, conducând și implementând soluții inovatoare de ML și Internet of Things (IoT) end-to-end la nivel de producție în domeniile energiei, retailului, sănătății, finanțelor/bancarului, sporturilor cu motor etc. Lui Sokratis îi place să-și petreacă timpul liber cu familia și prietenii sau cu motocicletele.

MLOps at the edge with Amazon SageMaker Edge Manager and AWS IoT Greengrass PlatoBlockchain Data Intelligence. Vertical Search. Ai.Samir Araújo este un arhitect de soluții AI / ML la AWS. El îi ajută pe clienți să creeze soluții AI / ML care să-și rezolve provocările de afaceri folosind AWS. El a lucrat la mai multe proiecte AI / ML legate de viziunea pe computer, procesarea limbajului natural, prognoză, ML la margine și multe altele. Îi place să se joace cu hardware și proiecte de automatizare în timpul liber și are un interes deosebit pentru robotică.

Timestamp-ul:

Mai mult de la Învățare automată AWS