Telepítse és kezelje a gépi tanulási folyamatokat a Terraform segítségével az Amazon SageMaker PlatoBlockchain Data Intelligence segítségével. Függőleges keresés. Ai.

Telepítse és kezelje a gépi tanulási folyamatokat a Terraform segítségével az Amazon SageMaker segítségével

Az AWS-ügyfelek az Infrastructure as Code (IaC) szolgáltatásra támaszkodnak felhő-infrastruktúra tervezése, fejlesztése és kezelése során. Az IaC biztosítja, hogy az ügyfelek infrastruktúrája és szolgáltatásai konzisztensek, skálázhatók és reprodukálhatók legyenek, miközben követni tudja a fejlesztési műveletek (DevOps) területén bevált gyakorlatokat.

Az AWS infrastruktúra és szolgáltatások IaC-vel történő kezelésének egyik lehetséges módja az Terraform, amely lehetővé teszi a fejlesztők számára, hogy infrastruktúrájukat újrafelhasználható kódmodulokba rendezzék. Ez a szempont egyre nagyobb jelentőséget kap a gépi tanulás (ML) területén. Az ML-folyamatok fejlesztése és kezelése, beleértve a Terraform mint IaC-vel való képzést és következtetéseket, lehetővé teszi, hogy könnyedén méretezhet több ML-használati esetet vagy régiót anélkül, hogy az infrastruktúrát a semmiből kellene fejlesztenie. Ezenkívül konzisztenciát biztosít az infrastruktúra számára (például a példány típusa és mérete) a betanításhoz és a következtetésekhez az ML folyamat különböző megvalósításai között. Ez lehetővé teszi, hogy a kéréseket és a bejövő forgalmat különböző országokba irányítsa Amazon SageMaker végpontok.

Ebben a bejegyzésben bemutatjuk, hogyan telepíthet és kezelhet ML-folyamatokat a Terraform és az Amazon SageMaker segítségével.

Megoldás áttekintése

Ez a bejegyzés kódot tartalmaz, és végigvezeti az AWS-infrastruktúra telepítéséhez szükséges lépéseken az ML-folyamatokhoz a Terraform segítségével a modellképzéshez és az Amazon SageMaker segítségével történő következtetésekhez. Az ML-folyamat ezen keresztül kezelhető AWS lépésfunkciók az ML folyamatban megvalósított különböző lépések hangszereléséhez, amint azt a következő ábra szemlélteti.

Lépés Funkció Lépések

A Step Functions elindítja a AWS Lambda funkciót, egyedi feladatazonosítót generál, amelyet azután egy SageMaker képzési feladat indításakor használ fel. A Step Functions modellt, végpont-konfigurációt és következtetésekhez használt végpontot is létrehoz. További források a következők:

Az ML-hez kapcsolódó kód a Docker-képekkel való betanításhoz és következtetésekhez főként a következőkben meglévő munkákra támaszkodik GitHub tárház.

Az alábbi ábra szemlélteti a megoldás architektúráját:

Építészeti diagram

Végigvezetjük a következő magas szintű lépéseken:

  1. Telepítse AWS infrastruktúráját a Terraform segítségével.
  2. Tolja be a Docker-képet az Amazon ECR-be.
  3. Futtassa az ML folyamatot.
  4. Hívja elő a végpontját.

Repository szerkezet

A bejegyzéshez használt kódot és adatokat tartalmazó tárat az alábbiakban találja GitHub tárház.

A tárház a következő könyvtárakat tartalmazza:

  • /terraform – A következő almappákból áll:
    • ./infrastructure – Tartalmazza a main.tf fájlt, amely meghívja az ML folyamatmodult, valamint az infrastruktúra telepítéséhez használt változódeklarációkat
    • ./ml-pipeline-module – Tartalmazza a Terraform ML pipeline modult, amit újra felhasználhatunk
  • /src – A következő almappákból áll:
    • ./container – Példakódot tartalmaz a betanításhoz és a Docker-kép definícióiból való következtetéshez
    • ./lambda_function – Tartalmazza a Lambda függvényt generáló konfigurációk Python kódját, például a SageMaker képzési feladat egyedi feladatazonosítóját
  • /data – A következő fájlt tartalmazza:
    • ./iris.csv – Adatokat tartalmaz az ML modell betanításához

Előfeltételek

Ehhez az áttekintéshez a következő előfeltételekkel kell rendelkeznie:

Telepítse AWS infrastruktúráját a Terraform segítségével

Az ML folyamat üzembe helyezéséhez módosítania kell néhány változót és nevet az Ön igényei szerint. Ennek a lépésnek a kódja a /terraform könyvtárban.

Az első inicializáláskor nyissa meg a fájlt terraform/infrastructure/terraform.tfvars és állítsa be a változót Projekt neve a projekt nevére, a változón kívül vidék ha egy másik Régióban szeretne telepíteni. Módosíthat további változókat is, például példánytípusokat a betanításhoz és a következtetéshez.

Ezután a következő parancsokkal telepítse az infrastruktúrát a Terraform segítségével:

export AWS_PROFILE=<your_aws_cli_profile_name>
cd terraform/infrastructure
terraform init
terraform plan
terraform apply

Ellenőrizze a kimenetet, és győződjön meg arról, hogy a tervezett erőforrások megfelelően jelennek meg, és erősítse meg az igennel az alkalmazási szakaszban, ha minden helyes. Ezután lépjen az Amazon ECR konzolra (vagy ellenőrizze a Terraform kimenetét a terminálban), és szerezze be a Terraformon keresztül létrehozott ECR-tárhely URL-címét.

A kimenetnek a következő megjelenített kimenethez hasonlóan kell kinéznie, beleértve az ECR-tárhely URL-jét is:

Apply complete! Resources: 19 added, 0 changed, 0 destroyed. Outputs: ecr_repository_url = <account_number>.dkr.ecr.eu-west-1.amazonaws.com/ml-pipeline-terraform-demo

Tolja be a Docker-képet az Amazon ECR-be

Ahhoz, hogy az ML-folyamat és a SageMaker taníthasson és biztosítson egy SageMaker-végpontot a következtetéshez, meg kell adnia egy Docker-képet, és el kell tárolnia az Amazon ECR-ben. Példát találhat a könyvtárban src/container. Ha már alkalmazta az AWS infrastruktúrát a korábbi lépésből, akkor a leírtak szerint leküldheti a Docker-képet. A Docker-kép létrehozása után a következő műveleteket hajthatja végre, és elküldheti az Amazon ECR-nek (igazsága szerint módosíthatja az Amazon ECR URL-címét):

cd src/container
export AWS_PROFILE=<your_aws_cli_profile_name>
aws ecr get-login-password --region eu-west-1 | docker login --username AWS --password-stdin <account_number>.dkr.ecr.eu-west-1.amazonaws.com
docker build -t ml-training .
docker tag ml-training:latest <account_number>.dkr.ecr.eu-west-1.amazonaws.com/<ecr_repository_name>:latest
docker push <account_number>.dkr.ecr.eu-west-1.amazonaws.com/<ecr_repository_name>

Ha már alkalmazta az AWS infrastruktúrát a Terraform segítségével, akkor a kód és a Docker-kép módosításait közvetlenül az Amazon ECR-re küldheti anélkül, hogy újra telepítené a Terraformon keresztül.

Futtassa az ML folyamatot

Az ML folyamat betanításához és futtatásához lépjen a Step Functions konzolra, és indítsa el a megvalósítást. Az állapotgép vizualizációjában minden egyes lépés előrehaladását ellenőrizheti. Ellenőrizheti a SageMaker képzési munka előrehaladását és a SageMaker végpont állapotát is.

Indítsa el a Lépés funkciót

Miután sikeresen futtatta az állapotgépet a Step Functions alkalmazásban, láthatja, hogy a SageMaker végpont létrejött. A SageMaker konzolon válassza a lehetőséget Következtetés a navigációs ablakban, majd Végpontok. Mindenképpen várja meg, amíg az állapot InService-re vált.

SageMaker végpont állapota

Hívja elő a végpontját

A végpont meghívásához (ebben a példában az írisz adatkészlethez) használhatja a következő Python-szkriptet a AWS SDK Pythonhoz (Boto3). Ezt megteheti egy SageMaker notebookból, vagy beágyazhatja a következő kódrészletet egy Lambda függvénybe:

import boto3
from io import StringIO
import pandas as pd client = boto3.client('sagemaker-runtime') endpoint_name = 'Your endpoint name' # Your endpoint name.
content_type = "text/csv"   # The MIME type of the input data in the request body. payload = pd.DataFrame([[1.5,0.2,4.4,2.6]])
csv_file = StringIO()
payload.to_csv(csv_file, sep=",", header=False, index=False)
payload_as_csv = csv_file.getvalue() response = client.invoke_endpoint(
EndpointName=endpoint_name,
ContentType=content_type,
Body=payload_as_csv
) label = response['Body'].read().decode('utf-8')
print(label)

Tisztítsuk meg

A Terraform által létrehozott infrastruktúrát megsemmisítheti a terraform rombolás paranccsal, de először törölnie kell az S3 vödrökben lévő adatokat és fájlokat. Ezenkívül a SageMaker végpont (vagy több SageMaker végpont, ha többször fut) a Step Functions segítségével jön létre, és nem a Terraformon keresztül kezeli. Ez azt jelenti, hogy a telepítés az ML folyamat Step Functions funkcióval történő futtatásakor történik. Ezért feltétlenül törölje a Step Functions ML folyamaton keresztül létrehozott SageMaker végpontot vagy végpontokat is, hogy elkerülje a szükségtelen költségeket. Hajtsa végre a következő lépéseket:

  1. Az Amazon S3 konzolon törölje az adatkészletet az S3 képzési tárolóból.
  2. Törölje az összes modellt, amelyet az ML folyamaton keresztül betanított az S3-modellek tárolójában, akár az Amazon S3 konzolon, akár az AWS CLI-n keresztül.
  3. A Terraform által létrehozott infrastruktúra megsemmisítése:
    cd terraform/infrastructure
    terraform destroy

  4. Törölje a Step Functions segítségével létrehozott SageMaker-végpontokat, végpont-konfigurációt és modelleket, akár a SageMaker-konzolon, akár az AWS parancssori felületén keresztül.

Következtetés

Gratulálunk! Ön telepített egy ML folyamatot a SageMaker with Terraform segítségével. Ez a példamegoldás bemutatja, hogyan telepítheti újra az AWS-infrastruktúrát és -szolgáltatásokat az ML-folyamatokhoz, újrafelhasználható módon. Ez lehetővé teszi több felhasználási esethez vagy régióhoz való méretezést, és lehetővé teszi az ML-modellek egy kattintással történő következetes képzését és telepítését. Ezenkívül az ML folyamatot többször is lefuttathatja, például ha új adatok állnak rendelkezésre, vagy módosítani szeretné az algoritmus kódját. Azt is választhatja, hogy a kéréseket vagy a forgalmat különböző SageMaker-végpontokhoz irányítja.

Javasoljuk, hogy fedezze fel a biztonsági funkciók hozzáadását és a legjobb biztonsági gyakorlatok alkalmazását az igényeinek és a lehetséges vállalati szabványoknak megfelelően. Ezen túlmenően, ha beágyazza ezt a megoldást a CI/CD-folyamataiba, további lehetőségeket kaphat a DevOps legjobb gyakorlatainak és szabványainak átvételében és kialakításában az Ön igényei szerint.


A szerzőről

Telepítse és kezelje a gépi tanulási folyamatokat a Terraform segítségével az Amazon SageMaker PlatoBlockchain Data Intelligence segítségével. Függőleges keresés. Ai.Olivér Zollikofer az Amazon Web Services adatkutatója. Lehetővé teszi a globális vállalati ügyfelek számára a gépi tanulási modellek építését, betanítását és üzembe helyezését, valamint az ML modell életciklusának kezelését az MLOp-okkal. Továbbá kapcsolódó felhőmegoldásokat épít és tervez.

Időbélyeg:

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