Luo tilien välinen MLOps-työnkulku käyttämällä Amazon SageMaker -mallirekisteriä PlatoBlockchain Data Intelligenceä. Pystysuuntainen haku. Ai.

Luo tilien välinen MLOps-työnkulku Amazon SageMaker -mallirekisterin avulla

Hyvin suunniteltu CI/CD-putkilinja on välttämätön minkä tahansa ohjelmistokehityksen työnkulun tehokkaalle skaalaamiselle. Tuotannon CI/CD-putkistoja suunniteltaessa AWS suosittelee useiden tilien hyödyntämistä resurssien eristämiseksi, tietoturvauhkien torjumiseksi ja laskutuksen yksinkertaistamiseksi – ja datatieteen putkistot eivät eroa toisistaan. Jatkamme AWS:ssä innovaatioita yksinkertaistaaksemme MLOps-työnkulkua.

Tässä viestissä käsittelemme joitain uudempia tilien välisiä ominaisuuksia Amazon Sage Maker joiden avulla voit paremmin jakaa ja hallita malliryhmiä sekä hallita malliversioita. Seurattava esimerkki tilirakenteesta organisaatioyksiköiden parhaat käytännöt Jos haluat isännöidä malleja, jotka käyttävät SageMaker-päätepisteitä eri tileillä, katso MLOps Workload Orchestrator.

Ratkaisun yleiskatsaus

Seuraava kaavio havainnollistaa jaettua mallirekisteriarkkitehtuuriamme.

Muutamia huomioitavia asioita edellisessä arkkitehtuurissa:

Seuraavat vaiheet vastaavat kaaviota:

  1. Datatieteilijä rekisteröi mallin datatieteen tililtä jaettujen palvelujen SageMaker-mallirekisteriin a PendingManualApproval osavaltio. Mallin artefakti luodaan jaettujen palvelujen tilille Amazonin yksinkertainen tallennuspalvelu (Amazon S3)-kauha.
  2. Uuden malliversion rekisteröinnin yhteydessä jonkun, jolla on valtuudet hyväksyä malli mittareiden perusteella, tulee hyväksyä tai hylätä malli.
  3. Kun malli on hyväksytty, käyttöönottotilillä oleva CI/CD-putki on laukaistiin käyttöön päivitetyt mallin tiedot laadunvarmistustilillä ja päivitä vaihe QA:na.
  4. Kun testausprosessi on läpäissyt, voit joko valita manuaalisen hyväksymisvaiheen CI/CD-prosessissasi tai antaa CI/CD-putkilinjasi ottaa mallin suoraan käyttöön tuotantoon ja päivittää vaiheen Prod.
  5. Tuotantoympäristö viittaa hyväksyttyyn malliin ja koodiin, ehkä tekee an A/B-testi tuotannossa. Jos sinulla on tarkastus tai jokin malliin liittyvä ongelma, voit käyttää Amazon SageMaker ML -linjan seuranta. Se luo ja tallentaa tietoja koneoppimisen (ML) työnkulun vaiheista tietojen valmistelusta mallin käyttöönottoon. Seurantatietojen avulla voit toistaa työnkulun vaiheet, seurata mallin ja tietojoukon sukulinjaa ja luoda mallin hallinta- ja tarkastusstandardeja.

Jaettu mallirekisteri säilyttää vanhemmat malliversiot koko prosessin ajan. Tämä antaa tiimille mahdollisuuden peruuttaa muutoksia tai jopa isännöidä tuotantoversiot.

Edellytykset

Varmista, että sinulla on seuraavat edellytykset:

  • Varattu usean tilin rakenne – Katso ohjeet Parhaat käytännöt AWS-organisaatioiden organisaatioyksiköille. Käytämme tätä blogia varten seuraavia tilejä:
    • Datatieteen tili – Tili, jolla datatieteilijät pääsevät käsiksi koulutustietoihin ja voivat luoda malleja.
    • Jaetut palvelut tili – Keskitetty tili malliartefaktien tallentamiseen (kuten arkkitehtuurikaaviossa näkyy), jotta niitä voidaan käyttää eri työmäärätileillä.
    • Käyttöönottotili – Tili, joka vastaa eri tilien muutosten käyttöönotosta.
    • Työmäärätilit – Nämä ovat yleensä laadunvarmistus- ja tuoteympäristöjä, joissa ohjelmistosuunnittelijat pystyvät rakentamaan sovelluksia kuluttamaan ML-mallia.
  • Käyttöönottotili, jolla on asianmukaiset käyttöoikeudet – Lisätietoja usean tilin OU-rakenteen parhaista käytännöistä on osoitteessa Käyttöönotto OU. Tämä tili on vastuussa työmäärätilien osoittamisesta haluttuun malliin jaetun palvelun tilin mallirekisterissä.

Määritä tilien väliset käytännöt

Vähiten etuoikeuksien periaatetta noudattaen meidän on ensin lisättävä tilien väliset resurssikäytännöt jaettujen palvelujen resursseihin, jotta voimme myöntää käyttöoikeudet muilta tileiltä.

Koska mallin artefaktit on tallennettu jaetun palvelun tilin S3-alueeseen, datatieteen tili tarvitsee Amazon S3:n luku-/kirjoitusoikeuden siirtääkseen koulutetut mallit Amazon S3:een. Seuraava koodi havainnollistaa tätä käytäntöä, mutta älä lisää sitä vielä jaettujen palvelujen tiliin:

#Data Science account's policy to access Shared Services' S3 bucket
 {
    'Version': '2012-10-17',
    'Statement': [{
        'Sid': 'AddPerm',
        'Effect': 'Allow',
        'Principal': {
            'AWS': 'arn:aws:iam:::root'
        }, 
        "Action": [ 
            's3:PutObject', 
            's3:PutObjectAcl',
            's3:GetObject', 
            's3:GetObjectVersion'
        ], #read/write
        'Resource': 'arn:aws:s3:::/*'
    }]
}

Käyttöönottotilille on myönnettävä vain lukuoikeus S3-alueelle, jotta se voi käyttää mallin artefakteja ottaakseen käyttöön SageMaker-päätepisteisiin. Meidän on myös liitettävä seuraava käytäntö jaettujen palvelujen S3-alueeseen:

#Deployment account's policy to access Shared Services' S3 bucket
 {
    'Version': '2012-10-17',
    'Statement': [{
        'Sid': 'AddPerm',
        'Effect': 'Allow',
        'Principal': {
            'AWS': 'arn:aws:iam:::root'
        },
        'Action': [ 
            's3:GetObject', 
            's3:GetObjectVersion'
        ], #read
        'Resource': 'arn:aws:s3:::/*'
    }]
}

Yhdistämme molemmat käytännöt saadaksemme seuraavan lopullisen käytännön. Luo tämä käytäntö jaettujen palvelujen tilille sen jälkeen, kun olet korvannut asianmukaiset tilitunnukset:

{
  "Version": "2012-10-17",
  "Statement": [{
    "Sid": "AddPerm",
    "Effect": "Allow",
    "Principal": {
      "AWS": "arn:aws:iam:::root"    
    },
    "Action": [
      "s3:PutObject",
      "s3:PutObjectAcl",
      "s3:GetObject",
      "s3:GetObjectVersion"    ],
    "Resource": "arn:aws:s3:::/*"  
    },
    {
      "Sid": "AddPermDeployment",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam:::root"      
      },
      "Action": [
        "s3:GetObject",
        "s3:GetObjectVersion"      ], 
      "Resource": "arn:aws:s3:::/*"    
    }
  ]
}

Voidakseen ottaa käyttöön eri tilillä luodun mallin, käyttäjällä on oltava rooli, jolla on pääsy SageMaker-toimintoihin, kuten rooli AmazonSageMakerFullAccess hallittua politiikkaa. Viitata Ota malliversio käyttöön toisesta tilistä lisätietoja.

Meidän on määritettävä malliryhmä, joka sisältää malliversiot, jotka haluamme ottaa käyttöön. Haluamme myös myöntää lupia datatieteen tilille. Tämä voidaan suorittaa seuraavilla vaiheilla. Viittaan tileihin seuraavasti:

  • jaetut_palvelut_tilin_tunnus – Tili, jossa mallirekisteri on ja missä haluamme mallin olevan
  • data_science_account_id – Tili, jolla harjoittelemme ja luomme siten todellisen malliartefaktin
  • käyttöönottotilin_tunnus – Tili, jolla haluamme isännöidä tämän mallin päätepistettä

Ensin meidän on varmistettava, että mallipakettiryhmät ovat olemassa. Voit käyttää Boto3-sovellusliittymiä seuraavan esimerkin mukaisesti tai voit käyttää AWS-hallintakonsoli mallipaketin luomiseen. Viitata Luo mallipakettiryhmä Lisätietoja. Tämä olettaa, että sinulla on Boto3 asennettuna.

model_package_group_name = "cross-account-example-model"
sm_client = boto3.Session().client("sagemaker")

create_model_package_group_response = sm_client.create_model_package_group(
    ModelPackageGroupName=model_package_group_name,
    ModelPackageGroupDescription="Cross account model package group",
    Tags=[
          {
              'Key': 'Name',
              'Value': 'cross_account_test'
          },
      ]

)

print('ModelPackageGroup Arn : {}'.format(create_model_package_group_response['ModelPackageGroupArn']))

Tämän mallipakettiryhmän käyttöoikeuksia varten voit luoda JSON-asiakirjan, joka muistuttaa seuraavaa koodia. Korvaa todelliset tilitunnukset ja mallipakettiryhmän nimi omilla arvoillasi.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AddPermModelPackageGroupCrossAccount",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam:::root"      
      },
      "Action": [
        "sagemaker:DescribeModelPackageGroup"      
        ],
      "Resource": "arn:aws:sagemaker:::model-package-group/"    
    },
    {
      "Sid": "AddPermModelPackageVersionCrossAccount",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam:::root"      
      },
      "Action": [
        "sagemaker:DescribeModelPackage",
        "sagemaker:ListModelPackages",
        "sagemaker:UpdateModelPackage",
        "sagemaker:CreateModelPackage",
        "sagemaker:CreateModel"      
      ],
      "Resource": "arn:aws:sagemaker:::model-package//*"    
    }
  ]
}

Käytä lopuksi käytäntöä mallipakettiryhmään. Et voi liittää tätä käytäntöä pakettiryhmään konsolin kautta. Tarvitset SDK:n tai AWS-komentoriviliitäntä (AWS CLI) pääsy. Esimerkiksi seuraava koodi käyttää Boto3:a:

# Convert the policy from JSON dict to string
model_package_group_policy = dict( )
model_package_group_policy = json.dumps(model_package_group_policy)

# Set the new policy
sm_client = boto3.Session().client("sagemaker")
response = sm_client.put_model_package_group_policy(
    ModelPackageGroupName = model_package_group_name,
    ResourcePolicy = model_package_group_policy)

Tarvitsemme myös mukautuksen AWS-avainhallintapalvelu (AWS KMS) -avain mallin salaamiseen samalla kun se tallennetaan Amazon S3:een. Tämä on tehtävä datatieteen tilillä. Siirry AWS KMS -konsolissa kohtaan Määritä avainten käyttöoikeudet sivu. Vuonna Muut AWS-tilit osiossa, valitse Lisää toinen AWS-tili. Anna käyttöönottotilin AWS-tilinumero. Käytät tätä KMS-avainta SageMaker-koulutustyössä. Jos et määritä KMS-avainta harjoitustyölle, SageMaker käyttää oletuksena Amazon S3 -palvelinpuolen salausavainta. Amazon S3 -palvelinpuolen oletussalausavainta ei voi jakaa toisen AWS-tilin kanssa tai käyttää sitä.

Käytäntö ja käyttöoikeudet noudattavat tätä mallia:

  • kohdassa määritelty Amazon S3 -käytäntö shared_services_account antaa luvat datatieteen tilille ja käyttöönottotilille
  • kohdassa määritetty KMS-avainkäytäntö shared_services_account antaa luvat datatieteen tilille ja käyttöönottotilille

Meidän on varmistettava, että jaetuilla palvelutilillä ja käyttöönottotilillä on pääsy Docker-kuviin, joita käytettiin mallin koulutuksessa. Näitä kuvia ylläpidetään yleensä AWS-tileillä, ja tilisi järjestelmänvalvoja voi auttaa sinua saamaan käyttöoikeudet, jos sinulla ei vielä ole käyttöoikeutta. Tätä viestiä varten emme luo mukautettuja Docker-kuvia mallin harjoittamisen jälkeen, joten emme tarvitse kuville erityisiä Amazon ECR -käytäntöjä.

Työmäärätileissä (QA tai prod) meidän on luotava kaksi AWS-henkilöllisyyden ja käyttöoikeuksien hallinta (IAM) käytännöt, jotka ovat samankaltaisia ​​kuin seuraavat. Nämä ovat sisäisiä käytäntöjä, mikä tarkoittaa, että ne on upotettu IAM-identiteettiin. Tämä antaa näille tileille pääsyn mallirekisteriin.

Ensimmäinen sisäinen käytäntö sallii roolin käyttää Amazon S3 -resurssia jaettujen palveluiden tilillä, joka sisältää malliartefaktin. Anna S3-kauhan nimi ja mallisi:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::/sagemaker//output/model.tar.gz"
        }
    ]
}

Toinen sisäinen käytäntö sallii myöhemmin luomamme roolin käyttää KMS-avainta jaettujen palvelujen tilissä. Määritä jaetun palvelun tili ja KMS-avaimen tunnus:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowUseOfTheKey",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1::key/{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"
            ]
        }
    ]
}

Lopuksi meidän täytyy luo IAM-rooli SageMakerille. Tällä roolilla on AmazonSageMakerFullAccess liitteenä. Sitten liitämme nämä kaksi sisäistä käytäntöä luomaan rooliin. Jos käytät olemassa olevaa SageMaker-suoritusroolia, liitä nämä kaksi käytäntöä kyseiseen rooliin. Katso ohjeet kohdasta Roolien luominen ja käytäntöjen liittäminen (konsoli).

Nyt kun olemme määrittäneet kunkin tilin käytännöt, katsotaanpa esimerkkiä, miten se toimii.

Rakenna ja kouluta malli SageMaker-putkilinjan avulla

Luomme ensin SageMaker-putken datatieteen tilille tietojenkäsittelyä, mallin koulutusta ja arviointia varten. Käytämme StatLib-kirjastosta saatua Kalifornian asuntotietoaineistoa. Seuraavassa koodinpätkässä käytämme mukautettua esikäsittelyohjelmaa preprocess.py suorittaaksesi joitain yksinkertaisia ​​ominaisuusmuunnoksia, kuten ominaisuuden skaalaus, joka voidaan luoda käyttämällä seuraavaa muistikirja. Tämä skripti myös jakaa tietojoukon koulutus- ja testitietojoukoiksi.

Luomme SKLearnProcessor objekti suorittaa tämän esikäsittelyohjelman. SageMaker-liukuhihnassa luomme käsittelyvaiheen (ProcessingStep) suorittaaksesi käsittelykoodin käyttämällä SKLearnProcessor. Tätä käsittelykoodia kutsutaan, kun SageMaker-liukuhihna alustetaan. Koodi, joka luo SKLearnProcessor ja ProcessingStep näkyvät seuraavassa koodissa. Huomaa, että kaikki tässä osiossa oleva koodi suoritetaan datatieteen tilillä.

# Useful SageMaker variables - Create a Pipeline session which will lazy init resources
session = PipelineSession()

framework_version = "0.23-1"

# Create SKlearn processor object,
# The object contains information about what instance type to use, the IAM role to use etc.
# A managed processor comes with a preconfigured container, so only specifying version is required.
sklearn_processor = SKLearnProcessor(
    framework_version=framework_version,
    role=role,
    instance_type=processing_instance_type,
    instance_count=1,
    base_job_name="tf2-california-housing-processing-job",
    sagemaker_session=session
)

# Use the sklearn_processor in a SageMaker pipelines ProcessingStep
step_preprocess_data = ProcessingStep(
    name="Preprocess-California-Housing-Data",
    processor=sklearn_processor,
    inputs=[
        ProcessingInput(source=input_data, destination="/opt/ml/processing/input"),
    ],
    outputs=[
        ProcessingOutput(output_name="train", source="/opt/ml/processing/train"),
        ProcessingOutput(output_name="test", source="/opt/ml/processing/test"),
    ],
    code="preprocess.py",
)

Tarvitsemme mukautetun KMS-avaimen mallin salaamiseen samalla, kun tallennamme sen Amazon S3:een. Katso seuraava koodi:

kms_client = boto3.client('kms')
response = kms_client.describe_key(
    KeyId='alias/sagemaker/outkey',
)
key_id = response['KeyMetadata']['KeyId']

Mallin kouluttamiseksi luomme TensorFlow-estimaattoriobjektin. Välitämme sille KMS-avaintunnuksen koulutusskriptimme kanssa train.py, koulutusesiintymän tyyppi ja lukumäärä. Luomme myös a TrainingStep lisätään putkistoamme ja lisää siihen TensorFlow-estimaattori. Katso seuraava koodi:

model_path = f"s3://{bucket}/{prefix}/model/"

hyperparameters = {"epochs": training_epochs}
tensorflow_version = "2.4.1"
python_version = "py37"

tf2_estimator = TensorFlow(
    source_dir="code",
    entry_point="train.py",
    instance_type=training_instance_type,
    instance_count=1,
    framework_version=tensorflow_version,
    role=role,
    base_job_name="tf2-california-housing-train",
    output_path=model_path,
    output_kms_key=key_id,
    hyperparameters=hyperparameters,
    py_version=python_version,
    sagemaker_session=session
)

# Use the tf2_estimator in a SageMaker pipelines ProcessingStep.
# NOTE how the input to the training job directly references the output of the previous step.
step_train_model = TrainingStep(
    name="Train-California-Housing-Model",
    estimator=tf2_estimator,
    inputs={
        "train": TrainingInput(
            s3_data=step_preprocess_data.properties.ProcessingOutputConfig.Outputs[
                "train"
            ].S3Output.S3Uri,
            content_type="text/csv",
        ),
        "test": TrainingInput(
            s3_data=step_preprocess_data.properties.ProcessingOutputConfig.Outputs[
                "test"
            ].S3Output.S3Uri,
            content_type="text/csv",
        ),
    },
)

Harjoittelun lisäksi meidän on suoritettava mallin arviointi, johon tässä esimerkissä käytämme mittarina keskineliövirhettä (MSE). The aikaisempi muistikirja myös tuottaa evaluate.py, jota käytämme mallin arvioimiseen MSE:n avulla. Luomme myös a ProcessingStep alustaaksesi mallin arviointikomentosarjan käyttämällä a SKLearnProcessor esine. Seuraava koodi luo tämän vaiheen:

from sagemaker.workflow.properties import PropertyFile

# Create SKLearnProcessor object.
# The object contains information about what container to use, what instance type etc.
evaluate_model_processor = SKLearnProcessor(
    framework_version=framework_version,
    instance_type=processing_instance_type,
    instance_count=1,
    base_job_name="tf2-california-housing-evaluate",
    role=role,
    sagemaker_session=session
)

# Create a PropertyFile
# A PropertyFile is used to be able to reference outputs from a processing step, for instance to use in a condition step.
# For more information, visit https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-propertyfile.html
evaluation_report = PropertyFile(
    name="EvaluationReport", output_name="evaluation", path="evaluation.json"
)

# Use the evaluate_model_processor in a SageMaker pipelines ProcessingStep.
step_evaluate_model = ProcessingStep(
    name="Evaluate-California-Housing-Model",
    processor=evaluate_model_processor,
    inputs=[
        ProcessingInput(
            source=step_train_model.properties.ModelArtifacts.S3ModelArtifacts,
            destination="/opt/ml/processing/model",
        ),
        ProcessingInput(
            source=step_preprocess_data.properties.ProcessingOutputConfig.Outputs[
                "test"
            ].S3Output.S3Uri,
            destination="/opt/ml/processing/test",
        ),
    ],
    outputs=[
        ProcessingOutput(output_name="evaluation", source="/opt/ml/processing/evaluation"),
    ],
    code="evaluate.py",
    property_files=[evaluation_report],
)

Mallin arvioinnin jälkeen tarvitsemme myös vaiheen mallin rekisteröimiseksi mallirekisteriin, jos mallin suorituskyky täyttää vaatimukset. Tämä näkyy seuraavassa koodissa käyttämällä RegisterModel askel. Tässä meidän on määritettävä mallipaketti, jonka olimme ilmoittaneet jaettujen palvelujen tilillä. Korvaa Alue-, tili- ja mallipaketti arvoillasi. Tässä käytetty mallinimi on modeltest, mutta voit käyttää mitä tahansa valitsemaasi nimeä.

# Create ModelMetrics object using the evaluation report from the evaluation step
# A ModelMetrics object contains metrics captured from a model.
model_metrics = ModelMetrics(
    model_statistics=MetricsSource(
        s3_uri=evaluation_s3_uri,
        content_type="application/json",
    )
)

# Create a RegisterModel step, which registers the model with SageMaker Model Registry.
model = Model(
    image_uri=tf2_estimator.training_image_uri(),
    model_data=training_step.properties.ModelArtifacts.S3ModelArtifacts,
    source_dir=tf2_estimator.source_dir,
    entry_point=tf2_estimator.entry_point,
    role=role_arn,
    sagemaker_session=session
)

model_registry_args = model.register(
    content_types=['text/csv'],
    response_types=['application/json'],
    inference_instances=['ml.t2.medium', 'ml.m5.xlarge'],
    transform_instances=['ml.m5.xlarge'],
    model_package_group_name=model_package_group_name,
    approval_status='PendingManualApproval',
    model_metrics=model_metrics
)

 step_register_model= ModelStep(
    name='RegisterModel',
    step_args=model_registry_args
)

Meidän on myös luotava mallin artefaktit, jotta se voidaan ottaa käyttöön (toisella tilillä). Mallin luomista varten luomme a CreateModelStep, kuten seuraavassa koodissa esitetään:

from sagemaker.inputs import CreateModelInput 
from sagemaker.workflow.model_step import ModelStep 
step_create_model = ModelStep( 
    name="Create-California-Housing-Model", 
    step_args=model.create(instance_type="ml.m5.large",accelerator_type="ml.eia1.medium"),
 )

Ehtojen lisääminen putkilinjaan tehdään komennolla a ConditionStep. Tässä tapauksessa haluamme rekisteröidä uuden malliversion mallirekisteriin vain, jos uusi malli täyttää tarkkuusehdon. Katso seuraava koodi:

from sagemaker.workflow.conditions import ConditionLessThanOrEqualTo
from sagemaker.workflow.condition_step import (
    ConditionStep,
    JsonGet,
)

# Create accuracy condition to ensure the model meets performance requirements.
# Models with a test accuracy lower than the condition will not be registered with the model registry.
cond_lte = ConditionLessThanOrEqualTo(
    left=JsonGet(
        step=step_evaluate_model,
        property_file=evaluation_report,
        json_path="regression_metrics.mse.value",
    ),
    right=accuracy_mse_threshold,
)

# Create a SageMaker Pipelines ConditionStep, using the preceding condition.
# Enter the steps to perform if the condition returns True / False.
step_cond = ConditionStep(
    name="MSE-Lower-Than-Threshold-Condition",
    conditions=[cond_lte],
    if_steps=[step_register_model, step_create_model],
    else_steps=[step_higher_mse_send_email_lambda],
)

Lopuksi haluamme organisoida kaikki liukuhihnan vaiheet, jotta liukuhihna voidaan alustaa:

from sagemaker.workflow.pipeline import Pipeline

# Create a SageMaker Pipeline.
# Each parameter for the pipeline must be set as a parameter explicitly when the pipeline is created.
# Also pass in each of the preceding steps.
# Note that the order of execution is determined from each step's dependencies on other steps,
# not on the order they are passed in.
pipeline = Pipeline(
    name=pipeline_name,
    parameters=[
        processing_instance_type,
        training_instance_type,
        input_data,
        training_epochs,
        accuracy_mse_threshold,
        endpoint_instance_type,
    ],
    steps=[step_preprocess_data, step_train_model, step_evaluate_model, step_cond],
)

Ota malliversio käyttöön toisesta tilistä

Nyt kun malli on rekisteröity jaettujen palvelujen tilille, meidän on otettava käyttöön työkuormitileihimme käyttämällä käyttöönottotilin CI/CD-putkia. Olemme jo määrittäneet roolin ja käytännön aiemmassa vaiheessa. Käytämme mallipakettia ARN mallin käyttöönottoon mallirekisteristä. Seuraava koodi suoritetaan käyttöönottotilillä, ja sitä käytetään hyväksyttyjen mallien käyttöönottoon laadunvarmistuksessa ja tuotannossa:

from sagemaker import ModelPackage
from time import gmtime, strftime

sagemaker_session = sagemaker.Session(boto_session=sess)

model_package_arn = 'arn:aws:sagemaker:::/modeltest/version_number'
model = ModelPackage(role=role, 
                     model_package_arn=model_package_arn, 
                     sagemaker_session=sagemaker_session)
model.deploy(initial_instance_count=1, instance_type='ml.m5.xlarge')

Yhteenveto

Tässä viestissä osoitimme, kuinka määritetään käytännöt, joita tarvitaan usean tilin määrittämiseen ML:ssä vähiten etuoikeuksien periaatteella. Sitten näytimme mallien rakentamis- ja koulutusprosessin datatieteen tilillä. Lopuksi käytimme käyttöönottotilin CI/CD-liukulinjaa hyväksyttyjen mallien uusimman version käyttöönottamiseksi laadunvarmistus- ja tuotantotileille. Lisäksi voit tarkastella mallien käyttöönottohistoriaa ja rakentaa laukaisimia in AWS CodeBuild.

Voit skaalata tämän viestin käsitteitä isännöimään malleja Amazonin elastinen laskentapilvi (Amazon EC2) tai Amazonin elastisten kuberneettien palvelu (Amazon EKS), sekä rakentaa eräpäätelmäputki.

Saat lisätietoja erillisistä tileistä, jotka rakentavat ML-malleja AWS:ssä, katso Parhaat käytännöt AWS-organisaatioiden organisaatioyksiköille ja Päivitä tuotannossa olevat mallit turvallisesti.


Tietoja Tekijät

Luo tilien välinen MLOps-työnkulku käyttämällä Amazon SageMaker -mallirekisteriä PlatoBlockchain Data Intelligenceä. Pystysuuntainen haku. Ai.Sandeep Verma on vanhempi prototyyppiarkkitehti AWS:llä. Hän nauttii sukeltamisesta syvälle asiakkaiden haasteisiin ja prototyyppien rakentamiseen asiakkaille innovaation nopeuttamiseksi. Hänellä on AI/ML-tausta, New Knowledge -yrityksen perustaja ja yleensä intohimoinen tekniikka. Vapaa-ajallaan hän rakastaa matkustamista ja hiihtoa perheen kanssa.

Mani Khanuja  Mani Khanuja on tekoälyn ja koneoppimisen asiantuntija SA Amazon Web Servicesissä (AWS). Hän auttaa koneoppimista käyttäviä asiakkaita ratkaisemaan liiketoimintahaasteensa AWS: n avulla. Hän viettää suurimman osan ajastaan ​​sukeltamalla syvälle ja opettamalla asiakkaita tekoäly- / ML-projekteihin, jotka liittyvät tietokonenäköön, luonnollisen kielen käsittelyyn, ennustamiseen, ML: n reunaan ja muuhun. Hän on intohimoisesti ML: stä kärjessä, joten hän on luonut oman laboratorionsa, jossa on itse ajavat sarjat ja prototyyppien valmistuslinja, jossa hän viettää paljon vapaa-aikaa.

Luo tilien välinen MLOps-työnkulku käyttämällä Amazon SageMaker -mallirekisteriä PlatoBlockchain Data Intelligenceä. Pystysuuntainen haku. Ai.Saumitra Vikram on Amazon SageMaker -tiimin ohjelmistokehittäjä ja sen kotipaikka on Chennaissa, Intiassa. Työn ulkopuolella hän viettää mielellään aikaa juosten, vaeltaen ja moottoripyörällä Himalajan halki.

Luo tilien välinen MLOps-työnkulku käyttämällä Amazon SageMaker -mallirekisteriä PlatoBlockchain Data Intelligenceä. Pystysuuntainen haku. Ai.Sreedevi Srinivasan on AWS SageMakerin suunnittelujohtaja. Hän on intohimoinen ja innostunut mahdollistamaan ML:n alustana, joka muuttaa jokapäiväistä elämää. Tällä hetkellä hän keskittyy SageMaker Feature Storeen. Vapaa-ajallaan hän viettää mielellään aikaa perheensä kanssa.

Luo tilien välinen MLOps-työnkulku käyttämällä Amazon SageMaker -mallirekisteriä PlatoBlockchain Data Intelligenceä. Pystysuuntainen haku. Ai. Rupinder Grewal on AWS:n Sr Ai/ML Specialist Solutions -arkkitehti. Tällä hetkellä hän keskittyy mallien ja MLO:iden tarjoamiseen SageMakerissa. Ennen tätä roolia hän on työskennellyt koneoppimisinsinöörinä mallien rakentamisessa ja isännöinnissa. Työn ulkopuolella hän pelaa tennistä ja pyöräilee vuoristopoluilla.

Luo tilien välinen MLOps-työnkulku käyttämällä Amazon SageMaker -mallirekisteriä PlatoBlockchain Data Intelligenceä. Pystysuuntainen haku. Ai.Farooq Sabir on AWS:n vanhempi tekoäly- ja koneoppimisen asiantuntijaratkaisuarkkitehti. Hänellä on tohtorin ja MS:n tutkinnot sähkötekniikasta Texasin yliopistosta Austinista ja MS-tutkinto tietojenkäsittelytieteestä Georgia Institute of Technologysta. AWS:ssä hän auttaa asiakkaita muotoilemaan ja ratkaisemaan liiketoimintaongelmiaan datatieteen, koneoppimisen, tietokonenäön, tekoälyn, numeerisen optimoinnin ja niihin liittyvien alojen aloilla. Hänellä on yli 16 vuoden työkokemus, ja hän on myös apulaishenkilöstö Teksasin yliopistossa Dallasissa, jossa hän opettaa Applied Machine Learningin jatkokurssia. Hän asuu Dallasissa, Texasissa, ja hän ja hänen perheensä rakastavat matkustamista ja pitkiä matkoja.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen