Efterhånden som virksomheder og it-ledere søger at fremskynde indførelsen af maskinlæring (ML), er der et voksende behov for at forstå forbrug og omkostningsallokering for dit ML-miljø for at opfylde virksomhedens krav. Uden ordentlig omkostningsstyring og -styring kan dit ML-forbrug føre til overraskelser på din månedlige AWS-regning. Amazon SageMaker er en fuldt administreret ML-platform i skyen, der udstyrer vores virksomhedskunder med værktøjer og ressourcer til at etablere omkostningsallokeringsforanstaltninger og forbedre overblik over detaljerede omkostninger og brug af dine teams, forretningsenheder, produkter og mere.
I dette indlæg deler vi tips og bedste praksis vedrørende omkostningsallokering til dit SageMaker-miljø og arbejdsbelastninger. På tværs af næsten alle AWS-tjenester, inklusive SageMaker, er anvendelse af tags på ressourcer en standard måde at spore omkostninger på. Disse tags kan hjælpe dig med at spore, rapportere og overvåge dit ML-forbrug gennem out-the-box løsninger som AWS Cost Explorer , AWS budgetter, samt tilpassede løsninger bygget på dataene fra AWS omkostnings- og brugsrapporter (CUR'er).
Tagging af omkostningsfordeling
Omkostningsallokering på AWS er en tre-trins proces:
- Vedhæft omkostningsfordelingsmærker til dine ressourcer.
- Aktiver dine tags i Omkostningsfordelingsmærker sektion af AWS Billing-konsollen.
- Brug tags til at spore og filtrere til rapportering af omkostningsfordeling.
Når du har oprettet og vedhæftet tags til ressourcer, vises de i AWS Billing-konsollen Omkostningsfordelingsmærker sektion under Brugerdefinerede omkostningsfordelingstags. Det kan tage op til 24 timer, før tags vises, efter de er oprettet. Du skal derefter aktivere disse tags for AWS for at begynde at spore dem for dine ressourcer. Efter et tag er aktiveret, tager det typisk omkring 24-48 timer, før taggene vises i Cost Explorer. Den nemmeste måde at kontrollere, om dine tags virker, er at lede efter dit nye tag i tags-filteret i Cost Explorer. Hvis det er der, så er du klar til at bruge tags til din omkostningsfordelingsrapportering. Du kan derefter vælge at gruppere dine resultater efter tag-nøgler eller filtrere efter tag-værdier, som vist på det følgende skærmbillede.
En ting at bemærke: hvis du bruger AWS-organisationer og har tilknyttet AWS-konti, kan tags kun aktiveres på den primære betalerkonto. Du kan valgfrit også aktivere CUR'er for AWS-konti, der aktiverer omkostningsfordelingsrapporter som en CSV-fil med dit forbrug og dine omkostninger grupperet efter dine aktive tags. Dette giver dig mere detaljeret sporing af dine omkostninger og gør det nemmere at opsætte dine egne tilpassede rapporteringsløsninger.
Tagging i SageMaker
På et højt niveau kan tagging SageMaker-ressourcer grupperes i to buckets:
- Tagging af SageMaker notebook-miljøet, enten Amazon SageMaker Studio domæner og domænebrugere eller SageMaker notebook-forekomster
- Tagging af SageMaker-administrerede job (mærkning, bearbejdning, træning, hyperparameterjustering, batchtransformation og mere) og ressourcer (såsom modeller, arbejdsteams, slutpunktskonfigurationer og slutpunkter)
Vi dækker disse mere detaljeret i dette indlæg og giver nogle løsninger på, hvordan man anvender styringskontrol for at sikre god tagging-hygiejne.
Tagging af SageMaker Studio-domæner og brugere
Studio er et webbaseret, integreret udviklingsmiljø (IDE) til ML, der lader dig bygge, træne, fejlfinde, implementere og overvåge dine ML-modeller. Du kan starte Studio-notebooks hurtigt og dynamisk ringe op eller ned for de underliggende computerressourcer uden at afbryde dit arbejde.
For automatisk at tagge disse dynamiske ressourcer, skal du tildele tags til SageMaker-domænet og domænebrugere, som har tildelt adgang til disse ressourcer. Du kan angive disse tags i tags-parameteren oprette-domæne or oprette-bruger-profil under oprettelse af profil eller domæne, eller du kan tilføje dem senere ved hjælp af Tilføj tags API. Studio kopierer og tildeler automatisk disse tags til Studio-notesbøgerne, der er oprettet i domænet eller af de specifikke brugere. Du kan også tilføje tags til SageMaker-domæner ved at redigere domæneindstillingerne i Studio Kontrolpanel.
Det følgende er et eksempel på tildeling af tags til profilen under oprettelsen.
For at tagge eksisterende domæner og brugere skal du bruge add-tags
API. Mærkerne påføres derefter alle nye notesbøger. For at få disse tags anvendt på dine eksisterende notebooks, skal du genstarte Studio-appen (Kernel Gateway og Jupyter Server), der hører til den brugerprofil. Dette vil ikke forårsage tab af notebook-data. Henvis til dette Luk ned og opdater SageMaker Studio- og Studio-apps for at lære, hvordan du sletter og genstarter dine Studio-apps.
Tagging af SageMaker notebook-forekomster
I tilfælde af en SageMaker notebook-forekomst anvendes tagging på selve forekomsten. Mærkerne tildeles alle ressourcer, der kører i samme instans. Du kan angive tags programmatisk ved hjælp af tags-parameteren i oprette-notesbog-instans API eller tilføje dem via SageMaker-konsollen under oprettelse af instanser. Du kan også tilføje eller opdatere tags når som helst ved hjælp af Tilføj tags API eller via SageMaker-konsollen.
Bemærk, at dette udelukker SageMaker-administrerede job og ressourcer såsom trænings- og behandlingsjob, fordi de er i servicemiljøet i stedet for på instansen. I det næste afsnit gennemgår vi, hvordan man anvender tagging på disse ressourcer mere detaljeret.
Tagging SageMaker administrerede job og ressourcer
For SageMaker administrerede job og ressourcer skal tagging anvendes på tags
attribut som en del af hver API-anmodning. An SKLearnProcessor
eksemplet er illustreret i følgende kode. Du kan finde flere eksempler på, hvordan du tildeler tags til andre SageMaker-administrerede job og ressourcer på GitHub repo.
Tagging af SageMaker pipelines
I tilfælde af SageMaker-pipelines kan du tagge hele pipelinen som en helhed i stedet for hvert enkelt trin. SageMaker-pipelinen udbreder automatisk tags til hvert pipelinetrin. Du har stadig mulighed for at tilføje yderligere, separate tags til individuelle trin, hvis det er nødvendigt. I Studio-brugergrænsefladen vises pipeline-tags i metadatasektionen.
For at anvende tags til en pipeline skal du bruge SageMaker Python SDK:
Håndhæv tagging ved hjælp af IAM-politikker
Selvom tagging er en effektiv mekanisme til implementering af cloud management- og styringsstrategier, kan det være en udfordring at håndhæve den rigtige tagging-adfærd, hvis du bare overlader det til slutbrugerne. Hvordan forhindrer du oprettelse af ML-ressourcer, hvis et specifikt tag mangler, hvordan sikrer du, at de rigtige tags anvendes, og hvordan forhindrer du brugere i at slette eksisterende tags?
Du kan opnå dette ved at bruge AWS identitets- og adgangsstyring (IAM) politikker. Følgende kode er et eksempel på en politik, der forhindrer SageMaker-handlinger som f.eks CreateDomain
or CreateNotebookInstance
hvis anmodningen ikke indeholder miljønøglen og en af listeværdierne. Det ForAllValues
modifikator med aws:TagKeys
betingelse nøgle angiver, at kun nøglen environment
er tilladt i anmodningen. Dette forhindrer brugere i at inkludere andre nøgler, såsom utilsigtet brug Environment
i stedet for environment
.
Tag-politikker , servicekontrolpolitikker (SCP'er) kan også være en god måde at standardisere oprettelse og mærkning af dine ML-ressourcer. For mere information om, hvordan man implementerer en taggingstrategi, der håndhæver og validerer tagging på organisationsniveau, henvises til Omkostningsfordelingsblogserie #3: Håndhæv og valider AWS-ressourcetags.
Rapportering af omkostningsfordeling
Du kan se tags ved at filtrere visningerne på Cost Explorer, se en månedlig omkostningsfordelingsrapport, eller ved at undersøge CUR.
Visualisering af tags i Cost Explorer
Cost Explorer er et værktøj, der giver dig mulighed for at se og analysere dine omkostninger og forbrug. Du kan udforske dit forbrug og dine omkostninger ved at bruge hovedgrafen: Cost Explorer omkostnings- og forbrugsrapporterne. Se en hurtig video om, hvordan du bruger Cost Explorer Hvordan kan jeg bruge Cost Explorer til at analysere mit forbrug og mit forbrug?
Med Cost Explorer kan du filtrere, hvordan du ser dine AWS-omkostninger efter tags. Gruppe af giver os mulighed for at filtrere resultater fra tag-nøgler som f.eks Environment
, Deployment
eller Cost Center
. Tag-filteret hjælper os med at vælge den værdi, vi ønsker, uanset nøglen. Eksempler omfatter Production
, Staging
. Husk, at du skal køre ressourcerne efter at have tilføjet og aktiveret tags; ellers vil Cost Explorer ikke have nogen brugsdata, og tagværdien vil ikke blive vist som et filter eller gruppe efter mulighed.
Følgende skærmbillede er et eksempel på filtrering efter alle værdier af BusinessUnit
tag.
Undersøgelse af tags i CUR
Omkostnings- og forbrugsrapporten indeholder det mest omfattende sæt af tilgængelige omkostnings- og forbrugsdata. Rapporten indeholder linjeposter for hver unik kombination af AWS-produkt, brugstype og operation, som din AWS-konto bruger. Du kan tilpasse CUR til at aggregere oplysningerne enten efter time eller dag. En månedlig omkostningsfordelingsrapport er en måde at opsætte omkostningsfordelingsrapportering på. Du kan opsætte en månedlig omkostningsfordelingsrapport der viser AWS-brugen for din konto efter produktkategori og linket kontobruger. Rapporten indeholder de samme linjeposter som detaljeret faktureringsrapport og yderligere kolonner til dine tagnøgler. Du kan konfigurere den og downloade din rapport ved at følge trinene i Månedlig omkostningsfordelingsrapport.
Følgende skærmbillede viser, hvordan brugerdefinerede tag-nøgler vises i CUR. Brugerdefinerede tagnøgler har præfikset user
, Såsom user:Department
, user:CostCenter
. AWS-genererede tagnøgler har præfikset aws
.
Visualiser CUR ved hjælp af Amazon Athena og Amazon QuickSight
Amazonas Athena er en interaktiv forespørgselstjeneste, der gør det nemt at analysere data i Amazon S3 ved hjælp af standard SQL. Athena er serverløs, så der er ingen infrastruktur at administrere, og du betaler kun for de forespørgsler, du kører. For at integrere Athena med CUR'er, se Forespørgsel på omkostnings- og brugsrapporter ved hjælp af Amazon Athena. Du kan derefter bygge brugerdefinerede forespørgsler til at forespørge CUR-data ved hjælp af standard SQL. Følgende skærmbillede er et eksempel på en forespørgsel til at filtrere alle ressourcer, der har værdien TF2WorkflowTraining for cost-center
tag.
I det følgende eksempel forsøger vi at finde ud af, hvilke ressourcer der mangler værdier under cost-center
tag.
Mere information og eksempler på forespørgsler kan findes i AWS CUR-forespørgselsbibliotek.
Du kan også indlæse CUR-data Amazon QuickSight, hvor du kan skære og skære den, som du vil, til rapportering eller visualiseringsformål. For instruktioner om indtagelse af CUR-data i QuickSight, se Hvordan indtager og visualiserer jeg AWS Cost and Usage Report (CUR) i Amazon QuickSight.
Budgetovervågning ved hjælp af tags
AWS-budgetter er en glimrende måde at give en tidlig advarsel, hvis forbruget stiger uventet. Du kan oprette tilpassede budgetter, der advarer dig, når dine ML-omkostninger og -forbrug overstiger (eller forventes at overstige) dine brugerdefinerede tærskler. Med AWS Budgets kan du overvåge dine samlede månedlige ML-omkostninger eller filtrere dine budgetter for at spore omkostninger forbundet med specifikke brugsdimensioner. For eksempel kan du indstille budgetomfanget til at inkludere SageMaker-ressourceomkostninger tagget som cost-center: ML-Marketing
, som vist på det følgende skærmbillede. For yderligere dimensioner og detaljerede instruktioner om, hvordan du opsætter AWS-budgetter, se link..
Med budgetadvarsler, kan du sende meddelelser, når dine budgetgrænser er (eller er ved at blive) overskredet. Disse advarsler kan også sendes til en Amazon Simple Notification Service (Amazon SNS) emne. An AWS Lambda funktion, der abonnerer på SNS-emnet, aktiveres derefter, og alle programmerbare handlinger kan udføres.
AWS Budgets lader dig også konfigurere budgettiltag, som er trin, du kan tage, når en budgettærskel overskrides (faktiske eller forventede beløb). Dette kontrolniveau giver dig mulighed for at reducere utilsigtet overforbrug på din konto. Du kan konfigurere specifikke svar på omkostninger og brug på din konto, som vil blive anvendt automatisk eller gennem en workflow-godkendelsesproces, når et budgetmål er blevet overskredet. Dette er en virkelig kraftfuld løsning til at sikre, at dit ML-forbrug stemmer overens med virksomhedens mål. Du kan vælge, hvilken type handling du vil foretage. For eksempel, når en budgetgrænse overskrides, kan du flytte specifikke IAM-brugere fra administratortilladelser til skrivebeskyttet. For kunder, der bruger Organisationer, kan du anvende handlinger på en hel organisationsenhed ved at flytte dem fra admin til skrivebeskyttet. For flere detaljer om, hvordan du administrerer omkostninger ved hjælp af budgethandlinger, se Sådan administrerer du omkostningsoverskridelser i dit AWS multi-account miljø – Del 1.
Du kan også oprette en rapport til at overvåge effektiviteten af dine eksisterende budgetter på en daglig, ugentlig eller månedlig kadence og levere denne rapport til op til 50 e-mailadresser. Med AWS Budgets rapporterer, kan du kombinere alle SageMaker-relaterede budgetter i en enkelt rapport. Denne funktion giver dig mulighed for at spore dit SageMaker-fodaftryk fra et enkelt sted, som vist på det følgende skærmbillede. Du kan vælge at modtage disse rapporter på en daglig, ugentlig eller månedlig kadence (jeg har valgt Ugentlig for dette eksempel), og vælg ugedag, hvor du vil modtage dem.
Denne funktion er nyttig til at holde dine interessenter opdateret med dine SageMaker-omkostninger og -brug og hjælpe dem med at se, hvornår forbruget ikke trender som forventet.
Når du har konfigureret denne konfiguration, bør du modtage en e-mail, der ligner følgende.
Konklusion
I dette indlæg viste vi, hvordan du kan konfigurere omkostningsfordelingstagging for SageMaker og delte tips om tagging af bedste praksis for dit SageMaker-miljø og arbejdsbelastninger. Vi diskuterede derefter forskellige rapporteringsmuligheder som Cost Explorer og CUR for at hjælpe dig med at forbedre synligheden af dine ML-udgifter. Til sidst demonstrerede vi AWS-budgetter og budgetoversigtsrapporten for at hjælpe dig med at overvåge ML-forbruget i din organisation.
For mere information om anvendelse og aktivering af omkostningsfordelingstags, se Brugerdefinerede omkostningsfordelingstags.
Om forfatterne
Sean Morgan er AI/ML Solutions Architect hos AWS. Han har erfaring inden for halvleder- og akademisk forskning og bruger sin erfaring til at hjælpe kunder med at nå deres mål på AWS. I sin fritid er Sean en aktiv open source-bidragyder og -vedligeholder og er den særlige interessegruppeleder for TensorFlow Add-ons.
Brent Rabowsky fokuserer på data science hos AWS og udnytter sin ekspertise til at hjælpe AWS kunder med deres egne data science projekter.
Nilesh Shetty er som Senior Technical Account Manager hos AWS, hvor han hjælper enterprise support-kunder med at strømline deres cloud-drift på AWS. Han brænder for machine learning og har erfaring med at arbejde som konsulent, arkitekt og udvikler. Uden for arbejdet nyder han at lytte til musik og se sport.
James Wu er Senior AI/ML Specialist Solution Architect hos AWS. hjælpe kunder med at designe og bygge AI/ML-løsninger. James' arbejde dækker en bred vifte af ML use cases med en primær interesse i computervision, deep learning og skalering af ML på tværs af virksomheden. Inden han kom til AWS, var James arkitekt, udvikler og teknologileder i over 10 år, herunder 6 år inden for ingeniørvidenskab og 4 år i marketing- og reklamebranchen.
- AI
- ai kunst
- ai kunst generator
- en robot
- Amazon SageMaker
- kunstig intelligens
- certificering af kunstig intelligens
- kunstig intelligens i banksektoren
- kunstig intelligens robot
- kunstig intelligens robotter
- software til kunstig intelligens
- AWS maskinindlæring
- blockchain
- blockchain konference ai
- coingenius
- samtale kunstig intelligens
- kryptokonference ai
- dalls
- dyb læring
- du har google
- machine learning
- plato
- platon ai
- Platon Data Intelligence
- Platon spil
- PlatoData
- platogaming
- skala ai
- syntaks
- zephyrnet