Starta Amazon SageMaker Autopilot-experiment direkt från Amazon SageMaker Pipelines för att enkelt automatisera MLOps-arbetsflöden PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Starta Amazon SageMaker Autopilot-experiment direkt från Amazon SageMaker Pipelines för att enkelt automatisera MLOps-arbetsflöden

Amazon SageMaker autopilot, en lågkodad maskininlärningstjänst (ML) som automatiskt bygger, tränar och ställer in de bästa ML-modellerna baserat på tabelldata, är nu integrerad med Amazon SageMaker-rörledningar, den första specialbyggda tjänsten för kontinuerlig integration och kontinuerlig leverans (CI/CD) för ML. Detta möjliggör automatisering av ett heltäckande flöde av att bygga ML-modeller med hjälp av autopilot och integrera modeller i efterföljande CI/CD-steg.

Hittills, för att starta ett autopilotexperiment inom Pipelines, måste du bygga ett modellbyggande arbetsflöde genom att skriva anpassad integrationskod med Pipelines Lambda or Bearbetning steg. För mer information, se Flytta Amazon SageMaker Autopilot ML-modeller från experiment till produktion med Amazon SageMaker Pipelines.

Med stödet för Autopilot som ett inbyggt steg inom Pipelines kan du nu lägga till ett automatiserat träningssteg (AutoMLStep) i Pipelines och anropa ett autopilotexperiment med Ensembling av träningsläge. Om du till exempel bygger ett tränings- och utvärderings-ML-arbetsflöde för ett användningsfall för bedrägeriupptäckt med Pipelines, kan du nu starta ett Autopilot-experiment med AutoML-steget, som automatiskt kör flera försök för att hitta den bästa modellen på en given indatauppsättning . Efter att den bästa modellen har skapats med hjälp av Modellsteg, dess prestanda kan utvärderas på testdata med hjälp av Förvandla steg och en Bearbetningssteg för ett anpassat utvärderingsskript inom Pipelines. Så småningom kan modellen registreras i SageMakers modellregister med hjälp av Modellsteg i kombination med en Konditionssteg.

I det här inlägget visar vi hur man skapar ett end-to-end ML-arbetsflöde för att träna och utvärdera en SageMaker-genererad ML-modell med det nylanserade AutoML-steget i Pipelines och registrera det med SageMaker-modellregistret. ML-modellen med bäst prestanda kan distribueras till en SageMaker-slutpunkt.

Datauppsättning översikt

Vi använder det allmänt tillgängliga UCI Adult 1994 Census Income dataset att förutsäga om en person har en årsinkomst på mer än $50,000 50 per år. Detta är ett binärt klassificeringsproblem; alternativen för inkomstmålvariabeln är antingen XNUMXK.

Datauppsättningen innehåller 32,561 16,281 rader för träning och validering och 15 XNUMX rader för testning med XNUMX kolumner vardera. Detta inkluderar demografisk information om individer och class som målkolumn som anger inkomstklassen.

Kolumnnamn Beskrivning
ålder Kontinuerlig
arbetsklass Privat, Self-emp-not-inc, Self-emp-inc, Federal-gov, Local-gov, State-gov, Utan lön, Aldrig arbetat
fnlwgt Kontinuerlig
utbildning Bachelors, Some-college, 11th, HS-grad, Prof-school, Assoc-acdm, Assoc-voc, 9th, 7th-8th, 12th, Masters, 1st-4th, 10th, Doctorate, 5th-6th, Preschool
utbildning-num Kontinuerlig
civilstånd Gift-civ-make, skild, aldrig gift, separerad, änka, gift-make-frånvarande, gift-AF-make
ockupation Teknisk support, Hantverksreparation, Övrig service, Försäljning, Exec-chef, Prof-specialitet, Handlers-städare, Maskinbesiktning, Adm-kontor, Lantbruksfiske, Transport-flyttning, Priv-house-serv, Skyddstjänst, väpnade styrkor
relation Hustru, Eget-barn, Make, Ej i familj, Annan-släkt, Ogift
lopp Vit, Asian-Pac-Islander, Amer-Indian-Eskimo, Other, Black
kön Kvinna man
kapitalvinsten Kontinuerlig
kapitalförlust Kontinuerlig
timmar per vecka Kontinuerlig
hemland USA, Kambodja, England, Puerto-Rico, Kanada, Tyskland, Avlägset USA (Guam-USVI-etc), Indien, Japan, Grekland, Syd, Kina, Kuba, Iran, Honduras, Filippinerna, Italien, Polen, Jamaica , Vietnam, Mexiko, Portugal, Irland, Frankrike, Dominikanska republiken, Laos, Ecuador, Taiwan, Haiti, Columbia, Ungern, Guatemala, Nicaragua, Skottland, Thailand, Jugoslavien, El-Salvador, Trinadad&Tobago, Peru, Hong, Holland-Nederländerna
klass Inkomstklass, antingen 50K

Lösningsöversikt

Vi använder Pipelines för att orkestrera olika rörledningssteg krävs för att träna en autopilotmodell. Vi skapar och driver en Autopilotexperiment som en del av ett AutoML-steg enligt beskrivningen i denna handledning.

Följande steg krävs för denna end-to-end-utbildning för autopilot:

  • Skapa och övervaka ett träningsjobb för autopilot med hjälp av AutoMLStep.
  • Skapa en SageMaker-modell med hjälp av ModelStep. Det här steget hämtar den bästa modellens metadata och artefakter som renderats av autopiloten i föregående steg.
  • Utvärdera den tränade autopilotmodellen på en testdatauppsättning med hjälp av TransformStep.
  • Jämför resultatet från den tidigare körningen TransformStep med de faktiska måletiketterna med hjälp av ProcessingStep.
  • Registrera ML-modellen till SageMaker-modellregister med hjälp av ModelStep, om det tidigare erhållna utvärderingsmåttet överskrider en fördefinierad tröskel i ConditionStep.
  • Distribuera ML-modellen som en SageMaker-slutpunkt för teständamål.

arkitektur

Arkitekturdiagrammet nedan illustrerar de olika pipeline-stegen som krävs för att paketera alla steg i en reproducerbar, automatiserad och skalbar SageMaker Autopilot-utbildningspipeline. Datafilerna läses från S3-bucket och pipelinestegen anropas sekventiellt.

genomgång

Det här inlägget ger en detaljerad förklaring av pipelinestegen. Vi granskar koden och diskuterar komponenterna i varje steg. För att distribuera lösningen, se exempel anteckningsbok, som ger steg-för-steg-instruktioner för att implementera ett autopilot-MLOps-arbetsflöde med hjälp av pipelines.

Förutsättningar

Fyll i följande förutsättningar:

När datauppsättningen är redo att användas måste vi ställa in Pipelines för att upprätta en repeterbar process för att automatiskt bygga och träna ML-modeller med autopilot. Vi använder SageMaker SDK för att programmässigt definiera, köra och spåra en end-to-end ML-träningspipeline.

Pipeline Steg

I följande avsnitt går vi igenom de olika stegen i SageMaker-pipelinen, inklusive AutoML-träning, modellskapande, batch-inferens, utvärdering och villkorlig registrering av den bästa modellen. Följande diagram illustrerar hela rörledningsflödet.

Starta Amazon SageMaker Autopilot-experiment direkt från Amazon SageMaker Pipelines för att enkelt automatisera MLOps-arbetsflöden PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

AutoML träningssteg

An AutoML-objekt används för att definiera körningen av autopilotträningsjobbet och kan läggas till i SageMaker-pipelinen genom att använda AutoMLStep klass, som visas i följande kod. Ensembleringsträningsläget måste specificeras, men andra parametrar kan justeras efter behov. Till exempel, istället för att låta AutoML-jobbet automatiskt härleda ML problemtyp och objektivt mått, kan dessa hårdkodas genom att ange problem_type och job_objective parametrar som skickas till AutoML-objektet.

automl = AutoML(
    role=execution_role,
    target_attribute_name=target_attribute_name,
    sagemaker_session=pipeline_session,
    total_job_runtime_in_seconds=max_automl_runtime,
    mode="ENSEMBLING",
)
train_args = automl.fit(
    inputs=[
        AutoMLInput(
            inputs=s3_train_val,
            target_attribute_name=target_attribute_name,
            channel_type="training",
        )
    ]
)
step_auto_ml_training = AutoMLStep(
    name="AutoMLTrainingStep",
    step_args=train_args,
)

Steg för att skapa modell

AutoML-steget tar hand om att generera olika ML-modellkandidater, kombinera dem och erhålla den bästa ML-modellen. Modellartefakter och metadata lagras automatiskt och kan erhållas genom att anropa get_best_auto_ml_model() metod på AutoML-utbildningssteget. Dessa kan sedan användas för att skapa en SageMaker-modell som en del av modellsteget:

best_auto_ml_model = step_auto_ml_training.get_best_auto_ml_model(
    execution_role, sagemaker_session=pipeline_session
)
step_args_create_model = best_auto_ml_model.create(instance_type=instance_type)
step_create_model = ModelStep(name="ModelCreationStep", step_args=step_args_create_model)

Batchtransformering och utvärderingssteg

Vi använder Transformatorobjekt för parti slutledning på testdatauppsättningen, som sedan kan användas för utvärderingsändamål. Utgångsförutsägelserna jämförs med de faktiska eller markerade sanningsetiketterna med hjälp av en Scikit-lär statistikfunktion. Vi utvärderar våra resultat utifrån F1-poäng. Prestandamåtten sparas i en JSON-fil, som refereras till när modellen registreras i efterföljande steg.

Villkorliga registreringssteg

I det här steget registrerar vi vår nya autopilotmodell till SageMakers modellregister, om den överskrider det fördefinierade utvärderingsmåttet.

Skapa och kör pipeline

När vi har definierat stegen kombinerar vi dem till en SageMaker-pipeline:

pipeline = Pipeline(
    name="AutoMLTrainingPipeline",
    parameters=[
        instance_count,
        instance_type,
        max_automl_runtime,
        model_approval_status,
        model_package_group_name,
        model_registration_metric_threshold,
        s3_bucket,
        target_attribute_name,
    ],
    steps=[
        step_auto_ml_training,
        step_create_model,
        step_batch_transform,
        step_evaluation,
        step_conditional_registration,
    ],
    sagemaker_session=pipeline_session,
)

Stegen körs i sekventiell ordning. Pipelinen kör alla steg för ett AutoML-jobb med hjälp av Autopilot och Pipelines för utbildning, modellutvärdering och modellregistrering.

Du kan se den nya modellen genom att navigera till modellregistret på Studio-konsolen och öppna AutoMLModelPackageGroup. Välj valfri version av ett träningsjobb för att se objektiva mätvärden på Modellkvalitet fliken.

Starta Amazon SageMaker Autopilot-experiment direkt från Amazon SageMaker Pipelines för att enkelt automatisera MLOps-arbetsflöden PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Du kan se förklaringsrapporten på Förklarbarhet fliken för att förstå din modells förutsägelser.

Starta Amazon SageMaker Autopilot-experiment direkt från Amazon SageMaker Pipelines för att enkelt automatisera MLOps-arbetsflöden PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

För att se det underliggande autopilotexperimentet för alla modeller som skapats i AutoMLStep, navigera till AutoML sida och välj jobbnamnet.

Starta Amazon SageMaker Autopilot-experiment direkt från Amazon SageMaker Pipelines för att enkelt automatisera MLOps-arbetsflöden PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Distribuera modellen

Efter att vi manuellt har granskat ML-modellens prestanda kan vi distribuera vår nyskapade modell till en SageMaker-slutpunkt. För detta kan vi köra cellerna i anteckningsboken som skapar modellens slutpunkt med hjälp av modellkonfigurationen som sparats i SageMakers modellregister.

Observera att det här skriptet delas i demonstrationssyfte, men det rekommenderas att följa en mer robust CI/CD-pipeline för produktionsdistribution för ML-inferens. För mer information, se Bygga, automatisera, hantera och skala ML-arbetsflöden med Amazon SageMaker Pipelines.

Sammanfattning

Det här inlägget beskriver en lättanvänd ML-pipeline-metod för att automatiskt träna tabellformade ML-modeller (AutoML) med hjälp av Autopilot, Pipelines och Studio. AutoML förbättrar ML-utövares effektivitet och påskyndar vägen från ML-experiment till produktion utan behov av omfattande ML-expertis. Vi beskriver de respektive pipeline-stegen som behövs för att skapa, utvärdera och registrera ML-modeller. Kom igång genom att prova exempel anteckningsbok att träna och distribuera dina egna anpassade AutoML-modeller.

För mer information om autopilot och rörledningar, se Automatisera modellutveckling med Amazon SageMaker Autopilot och Amazon SageMaker-rörledningar.

Ett särskilt tack till alla som bidragit till lanseringen: Shenghua Yue, John He, Ao Guo, Xinlu Tu, Tian Qin, Yanda Hu, Zhankui Lu och Dewen Qi.


Om författarna

Starta Amazon SageMaker Autopilot-experiment direkt från Amazon SageMaker Pipelines för att enkelt automatisera MLOps-arbetsflöden PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Janisha Anand är Senior Product Manager i SageMaker Low/No Code ML-teamet, som inkluderar SageMaker Autopilot. Hon tycker om kaffe, att vara aktiv och umgås med sin familj.

Starta Amazon SageMaker Autopilot-experiment direkt från Amazon SageMaker Pipelines för att enkelt automatisera MLOps-arbetsflöden PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Marcelo Aberle är ML-ingenjör på AWS AI. Han hjälper Amazon ML Solutions Lab kunder bygger skalbara ML(-Ops)-system och ramverk. På fritiden tycker han om att vandra och cykla i San Francisco Bay Area.

Starta Amazon SageMaker Autopilot-experiment direkt från Amazon SageMaker Pipelines för att enkelt automatisera MLOps-arbetsflöden PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Geremy Cohen är en lösningsarkitekt med AWS där han hjälper kunderna att bygga avancerade molnbaserade lösningar. På fritiden njuter han av korta promenader på stranden, utforskar vikområdet med sin familj, fixar saker runt huset, bryter saker runt huset och grillar.

Starta Amazon SageMaker Autopilot-experiment direkt från Amazon SageMaker Pipelines för att enkelt automatisera MLOps-arbetsflöden PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Shenghua Yue är en mjukvaruutvecklingsingenjör på Amazon SageMaker. Hon fokuserar på att bygga ML-verktyg och produkter för kunder. Utanför jobbet tycker hon om att vara utomhus, yoga och vandra.

Tidsstämpel:

Mer från AWS maskininlärning