Analyseer Amazon SageMaker-uitgaven en bepaal mogelijkheden voor kostenoptimalisatie op basis van gebruik, Deel 3: Processing en Data Wrangler-taken | Amazon-webservices

Analyseer Amazon SageMaker-uitgaven en bepaal mogelijkheden voor kostenoptimalisatie op basis van gebruik, Deel 3: Processing en Data Wrangler-taken | Amazon-webservices

In 2021 lanceerden we AWS ondersteunt proactieve services kader van de AWS Enterprise-ondersteuning plan. Sinds de introductie hebben we honderden klanten geholpen hun workloads te optimaliseren, vangrails te plaatsen en de zichtbaarheid van de kosten en het gebruik van hun machine learning-workloads te verbeteren.

In deze reeks berichten delen we geleerde lessen over het optimaliseren van kosten in Amazon Sage Maker. In dit bericht richten we ons op het voorbewerken van gegevens met behulp van Amazon SageMaker-verwerking en Amazon SageMaker-gegevens Wrangler banen.

Voorverwerking van gegevens speelt een centrale rol in een datagerichte AI-benadering. Het voorbereiden van onbewerkte gegevens voor ML-training en -evaluatie is echter vaak een vervelende en veeleisende taak in termen van computerresources, tijd en menselijke inspanning. Gegevensvoorbereiding moet gewoonlijk uit verschillende bronnen worden geรฏntegreerd en omgaan met ontbrekende of ruisige waarden, uitschieters, enzovoort.

Bovendien hebben ML-teams, naast algemene ETL-taken (Extraheren, Transformeren en Laden), af en toe meer geavanceerde mogelijkheden nodig, zoals het maken van snelle modellen om gegevens te evalueren en belangrijkheidsscores voor functies te produceren of modelevaluatie na de training als onderdeel van een MLOps-pijplijn.

SageMaker biedt twee functies die speciaal zijn ontworpen om deze problemen op te lossen: SageMaker Processing en Data Wrangler. Met SageMaker Processing kunt u eenvoudig preprocessing, postprocessing en modelevaluatie uitvoeren op een volledig beheerde infrastructuur. Data Wrangler vermindert de tijd die nodig is om gegevens te aggregeren en voor te bereiden door het proces van gegevensbronintegratie en functie-engineering te vereenvoudigen met behulp van een enkele visuele interface en een volledig gedistribueerde gegevensverwerkingsomgeving.

Beide SageMaker-functies bieden grote flexibiliteit met verschillende opties voor I/O, opslag en berekening. Het verkeerd instellen van deze opties kan echter leiden tot onnodige kosten, vooral bij grote datasets.

In dit bericht analyseren we de prijsfactoren en bieden we richtlijnen voor kostenoptimalisatie voor SageMaker Processing en Data Wrangler-taken.

SageMaker-verwerking

SageMaker Processing is een beheerde oplossing om werklasten voor gegevensverwerking en modelevaluatie uit te voeren. U kunt het gebruiken in gegevensverwerkingsstappen zoals feature engineering, gegevensvalidatie, modelevaluatie en modelinterpretatie in ML-workflows. Met SageMaker Processing kunt u uw eigen aangepaste verwerkingsscripts meenemen en ervoor kiezen om een โ€‹โ€‹aangepaste container te bouwen of een door SageMaker beheerde container te gebruiken met algemene frameworks zoals scikit-learn, Lime, Spark en meer.

SageMaker Processing brengt u kosten in rekening voor het instantietype dat u kiest, op basis van de gebruiksduur en ingerichte opslag die aan die instantie is gekoppeld. In deel 1 hebben we laten zien hoe u aan de slag kunt gaan AWS-kostenverkenner om mogelijkheden voor kostenoptimalisatie in SageMaker te identificeren.

U kunt verwerkingskosten filteren door een filter toe te passen op het gebruikstype. De namen van deze gebruikstypen zijn als volgt:

  • REGION-Processing:instanceType (bijvoorbeeld, USE1-Processing:ml.m5.large)
  • REGION-Processing:VolumeUsage.gp2 (bijvoorbeeld, USE1-Processing:VolumeUsage.gp2)

Om uw SageMaker-verwerkingskosten in Cost Explorer te bekijken, begint u met filteren met SageMaker voor ServiceEn voor Gebruikstype:, kunt u alle draaiuren van verwerkingsinstanties selecteren door de processing:ml prefix en het selecteren van de lijst in het menu.

Analyseer de uitgaven van Amazon SageMaker en bepaal mogelijkheden voor kostenoptimalisatie op basis van gebruik, Deel 3: Processing en Data Wrangler-taken | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Vermijd kosten bij verwerking en pijplijnontwikkeling

Voordat we de uitvoeringsduur van een SageMaker Processing-taak aanpassen en optimaliseren, controleren we op hoogwaardige statistieken over historische taakuitvoeringen. U kunt hiervoor kiezen uit twee methodes.

Ten eerste heb je toegang tot de In behandeling pagina op de SageMaker-console.

Analyseer de uitgaven van Amazon SageMaker en bepaal mogelijkheden voor kostenoptimalisatie op basis van gebruik, Deel 3: Processing en Data Wrangler-taken | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Als alternatief kunt u de list_processing_jobs-API.

Analyseer de uitgaven van Amazon SageMaker en bepaal mogelijkheden voor kostenoptimalisatie op basis van gebruik, Deel 3: Processing en Data Wrangler-taken | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

De status van een verwerkingstaak kan zijn InProgress, Completed, Failed, Stoppingof Stopped.

Een groot aantal mislukte taken komt vaak voor bij het ontwikkelen van nieuwe MLOps-pijplijnen. U moet echter altijd taken testen en alles in het werk stellen om taken te valideren voordat u ze op SageMaker start, omdat er kosten in rekening worden gebracht voor de gebruikte bronnen. Voor dat doel kunt u SageMaker Processing gebruiken in lokale modus. Lokale modus is een SageMaker SDK-functie waarmee u schatters, processors en pijplijnen kunt maken en deze kunt implementeren in uw lokale ontwikkelomgeving. Dit is een geweldige manier om uw scripts te testen voordat u ze uitvoert in een door SageMaker beheerde omgeving. De lokale modus wordt ondersteund door door SageMaker beheerde containers en degene die u zelf levert. Voor meer informatie over het gebruik van de lokale modus met Amazon SageMaker-pijpleidingen, verwijzen naar Lokale modus.

Optimaliseer I/O-gerelateerde kosten

SageMaker Processing-taken bieden toegang tot drie gegevensbronnen als onderdeel van de beheerde invoer verwerken: Amazon eenvoudige opslagservice (Amazone S3), Amazone Athene en Amazon roodverschuiving. Voor meer informatie, zie: Verwerking van S3Input, AthenaDatasetDefinitie en RedshiftDatasetDefinitie, Respectievelijk.

Voordat we naar optimalisatie kijken, is het belangrijk op te merken dat hoewel SageMaker Processing-taken deze gegevensbronnen ondersteunen, ze niet verplicht zijn. In uw verwerkingscode kunt u elke methode implementeren voor het downloaden van de toegangsgegevens van elke bron (op voorwaarde dat de verwerkingsinstantie er toegang toe heeft).

Om beter inzicht te krijgen in de verwerkingsprestaties en het detecteren van optimalisatiemogelijkheden, raden we het volgende aan best practices voor logboekregistratie in je verwerkingsscript. SageMaker publiceert uw verwerkingslogboeken naar Amazon Cloud Watch.

In het volgende voorbeeldtakenlogboek zien we dat de verwerking van het script 15 minuten duurde (tussen Start custom script en End custom script).

Analyseer de uitgaven van Amazon SageMaker en bepaal mogelijkheden voor kostenoptimalisatie op basis van gebruik, Deel 3: Processing en Data Wrangler-taken | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Op de SageMaker-console zien we echter dat de taak 4 extra minuten in beslag nam (bijna 25% van de totale runtime van de taak).

Analyseer de uitgaven van Amazon SageMaker en bepaal mogelijkheden voor kostenoptimalisatie op basis van gebruik, Deel 3: Processing en Data Wrangler-taken | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Dit is te wijten aan het feit dat naast de tijd die ons verwerkingsscript kostte, het door SageMaker beheerde downloaden en uploaden van gegevens ook tijd kostte (4 minuten). Als dit een groot deel van de kosten blijkt te zijn, overweeg dan alternatieve manieren om de downloadtijd te versnellen, zoals het gebruik van de Boto3 API met multiprocessing om bestanden gelijktijdig te downloaden, of het gebruik van bibliotheken van derden als WebDataset of s5cmd voor sneller downloaden van Amazon S3. Voor meer informatie, zie S3-workloads parallel maken met s5cmd. Houd er rekening mee dat dergelijke methoden mogelijk kosten met zich meebrengen in Amazon S3 vanwege gegevensoverdracht.

Het verwerken van taken ondersteunt ook Pijp modus. Met deze methode streamt SageMaker invoergegevens van de bron rechtstreeks naar uw verwerkingscontainer in named pipes zonder het ML-opslagvolume te gebruiken, waardoor de downloadtijd van gegevens en een kleiner schijfvolume worden geรซlimineerd. Dit vereist echter een ingewikkelder programmeermodel dan alleen het lezen van bestanden op een schijf.

Zoals eerder vermeld, ondersteunt SageMaker Processing ook Athena en Amazon Redshift als gegevensbronnen. Bij het instellen van een verwerkingstaak met deze bronnen, kopieert SageMaker de gegevens automatisch naar Amazon S3 en haalt de verwerkingsinstantie de gegevens op van de Amazon S3-locatie. Wanneer de taak echter is voltooid, is er geen beheerd opschoonproces en blijven de gekopieerde gegevens nog steeds in Amazon S3 en kunnen er ongewenste opslagkosten in rekening worden gebracht. Zorg er daarom bij het gebruik van Athena- en Amazon Redshift-gegevensbronnen voor dat u een opschoonprocedure implementeert, zoals een Lambda-functie die loopt volgens een schema of in een Lambda stap als onderdeel van een SageMaker-pijplijn.

Net als downloaden, kan het uploaden van verwerkingsartefacten ook een kans voor optimalisatie zijn. Wanneer de uitvoer van een verwerkingstaak is geconfigureerd met behulp van de ProcessingS3Output parameter, kunt u aangeven welke S3UploadMode gebruiken. De S3UploadMode parameter standaardwaarde is EndOfJob, waardoor SageMaker de resultaten uploadt nadat de taak is voltooid. Als uw verwerkingstaak echter meerdere bestanden produceert, kunt u instellen S3UploadMode naar Continuous, waardoor artefacten tegelijkertijd kunnen worden geรผpload terwijl de verwerking doorgaat, en de uitvoeringstijd van de taak wordt verkort.

Taakexemplaren van de juiste grootte

Het kiezen van het juiste instantietype en de juiste grootte is een belangrijke factor bij het optimaliseren van de kosten van SageMaker Processing-taken. U kunt de grootte van een instantie aanpassen door te migreren naar een andere versie binnen dezelfde instantiefamilie of door te migreren naar een andere instantiefamilie. Bij het migreren binnen dezelfde instantiefamilie hoeft u alleen rekening te houden met CPU/GPU en geheugen. Raadpleeg voor meer informatie en algemene richtlijnen voor het kiezen van de juiste verwerkingsbronnen Zorg voor efficiรซnte rekenbronnen op Amazon SageMaker.

Om de instantieselectie te verfijnen, beginnen we met het analyseren van de taakstatistieken van Processing in CloudWatch. Voor meer informatie, zie Bewaak Amazon SageMaker met Amazon CloudWatch.

CloudWatch verzamelt onbewerkte gegevens van SageMaker en verwerkt deze tot leesbare, bijna realtime statistieken. Hoewel deze statistieken 15 maanden worden bewaard, beperkt de CloudWatch-console de zoekopdracht tot statistieken die in de afgelopen 2 weken zijn bijgewerkt (dit zorgt ervoor dat alleen de huidige vacatures worden weergegeven). Meetgegevens voor verwerkingstaken zijn te vinden in de naamruimte /aws/sagemaker/ProcessingJobs en de verzamelde meetgegevens zijn CPUUtilization, MemoryUtilization, GPUUtilization, GPUMemoryUtilization en DiskUtilization.

De volgende schermafbeelding toont een voorbeeld in CloudWatch van de verwerkingstaak die we eerder zagen.

Analyseer de uitgaven van Amazon SageMaker en bepaal mogelijkheden voor kostenoptimalisatie op basis van gebruik, Deel 3: Processing en Data Wrangler-taken | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

In dit voorbeeld zien we de gemiddelde CPU- en geheugenwaarden (wat de standaard is in CloudWatch): het gemiddelde CPU-gebruik is 0.04%, geheugen 1.84% en schijfgebruik 13.7%. Houd voor de juiste grootte altijd rekening met het maximale CPU- en geheugengebruik (in dit voorbeeld was het maximale CPU-gebruik 98% in de eerste 3 minuten). Als algemene regel geldt dat als uw maximale CPU- en geheugengebruik consequent minder dan 40% is, u de machine veilig kunt halveren. Als u bijvoorbeeld een ml.c5.4xlarge-instantie gebruikt, kunt u overstappen naar een ml.c5.2xlarge, waardoor uw kosten met 50% kunnen dalen.

Data Wrangler-banen

Data Wrangler is een functie van: Amazon SageMaker Studio dat een herhaalbare en schaalbare oplossing biedt voor gegevensverkenning en -verwerking. U gebruikt de Data Wrangler-interface om uw gegevens interactief te importeren, analyseren, transformeren en toe te lichten. Die stappen worden vastgelegd in een recept (een .flow-bestand) dat u vervolgens kunt gebruiken in een Data Wrangler-taak. Dit helpt u dezelfde gegevenstransformaties opnieuw toe te passen op uw gegevens en ook te schalen naar een gedistribueerde batchgegevensverwerkingstaak, als onderdeel van een ML-pijplijn of onafhankelijk.

Raadpleeg Deel 2 in deze serie voor hulp bij het optimaliseren van uw Data Wrangler-app in Studio.

In deze sectie richten we ons op het optimaliseren van Data Wrangler-taken.

Gegevens die Wrangler gebruikt SageMaker Spark-verwerkingstaken met een door Data Wrangler beheerde container. Deze container voert de aanwijzingen uit het .flow-bestand in de taak uit. Zoals bij alle verwerkingstaken, brengt Data Wrangler u kosten in rekening voor de instanties die u kiest, op basis van de gebruiksduur en de ingerichte opslag die aan die instantie is gekoppeld.

In Cost Explorer kunt u de kosten van Data Wrangler-taken filteren door een filter toe te passen op het gebruikstype. De namen van deze gebruikstypen zijn:

  • REGION-processing_DW:instanceType (bijvoorbeeld, USE1-processing_DW:ml.m5.large)
  • REGION-processing_DW:VolumeUsage.gp2 (bijvoorbeeld, USE1-processing_DW:VolumeUsage.gp2)

Om uw Data Wrangler-kosten in Cost Explorer te bekijken, filtert u de service om SageMaker te gebruiken, en voor Gebruikstype:, kies de processing_DW prefix en selecteer de lijst in het menu. Dit toont u zowel instantiegebruik (uren) als opslagvolume (GB) gerelateerde kosten. (Als u de kosten van Studio Data Wrangler wilt zien, kunt u het gebruikstype filteren op de Studio_DW voorvoegsel.)

Analyseer de uitgaven van Amazon SageMaker en bepaal mogelijkheden voor kostenoptimalisatie op basis van gebruik, Deel 3: Processing en Data Wrangler-taken | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

De juiste grootte en planning van Data Wrangler-taakexemplaren

Op dit moment ondersteunt Data Wrangler alleen m5-instanties met de volgende instantiegrootten: ml.m5.4xlarge, ml.m5.12xlarge en ml.m5.24xlarge. U kunt de functie voor gedistribueerde opdrachten gebruiken om uw opdrachtkosten nauwkeurig af te stemmen. Stel dat u een dataset moet verwerken waarvoor 350 GiB RAM nodig is. De 4xlarge (128 GiB) en 12xlarge (256 GiB) kunnen mogelijk niet worden verwerkt en leiden ertoe dat u de m5.24xlarge-instantie (768 GiB) gebruikt. U kunt echter twee m5.12xlarge-instanties (2 * 256 GiB = 512 GiB) gebruiken en de kosten met 40% verlagen, of drie m5.4xlarge-instanties (3 * 128 GiB = 384 GiB) en 50% besparen op de m5.24xlarge-instantiekosten. Houd er rekening mee dat dit schattingen zijn en dat gedistribueerde verwerking enige overhead kan veroorzaken die van invloed is op de algehele runtime.

Zorg er bij het wijzigen van het instantietype voor dat u het Spark-configuratie overeenkomstig. Als u bijvoorbeeld een eerste ml.m5.4xlarge-instantietaak hebt geconfigureerd met eigenschappen spark.driver.memory ingesteld op 2048 en spark.executor.memory ingesteld op 55742 en later opschalen naar ml.m5.12xlarge, moeten die configuratiewaarden worden verhoogd, anders vormen ze het knelpunt in de verwerkingstaak. U kunt deze variabelen bijwerken in de GUI van Data Wrangler of in een configuratiebestand dat aan het configuratiepad is toegevoegd (zie de volgende voorbeelden).

Analyseer de uitgaven van Amazon SageMaker en bepaal mogelijkheden voor kostenoptimalisatie op basis van gebruik, Deel 3: Processing en Data Wrangler-taken | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Analyseer de uitgaven van Amazon SageMaker en bepaal mogelijkheden voor kostenoptimalisatie op basis van gebruik, Deel 3: Processing en Data Wrangler-taken | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Een ander aantrekkelijk kenmerk van Data Wrangler is de mogelijkheid om stel een geplande taak in. Als u periodiek gegevens verwerkt, kunt u een planning maken om de verwerkingstaak automatisch uit te voeren. U kunt bijvoorbeeld een schema maken dat automatisch een verwerkingstaak uitvoert wanneer u nieuwe gegevens ontvangt (zie voor voorbeelden Exporteren naar Amazon S3 or Exporteren naar Amazon SageMaker Feature Store). Houd er echter rekening mee dat wanneer u een planning maakt, Data Wrangler een eventRule in EventBridge. Dit betekent dat er ook kosten in rekening worden gebracht voor de gebeurtenisregels die u maakt (evenals de instanties die worden gebruikt om de verwerkingstaak uit te voeren). Voor meer informatie, zie Amazon EventBridge-prijzen.

Conclusie

In dit bericht hebben we advies gegeven over kostenanalyse en best practices bij voorverwerking

gegevens met behulp van SageMaker Processing en Data Wrangler-taken. Net als bij voorverwerking zijn er veel opties en configuratie-instellingen bij het bouwen, trainen en uitvoeren van ML-modellen die tot onnodige kosten kunnen leiden. Daarom moeten machine learning-workloads kosteneffectief blijven, aangezien machine learning zich in alle sectoren als een krachtige tool vestigt.

SageMaker biedt een brede en diepe functieset om elke stap in de ML-pijplijn te vergemakkelijken.

Deze robuustheid biedt ook mogelijkheden voor continue kostenoptimalisatie zonder afbreuk te doen aan prestaties of flexibiliteit.


Over de auteurs

Analyseer de uitgaven van Amazon SageMaker en bepaal mogelijkheden voor kostenoptimalisatie op basis van gebruik, Deel 3: Processing en Data Wrangler-taken | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Deepali Rajale is een Senior AI/ML-specialist bij AWS. Ze werkt samen met zakelijke klanten en biedt technische begeleiding met best practices voor het implementeren en onderhouden van AI/ML-oplossingen in het AWS-ecosysteem. Ze heeft met een breed scala aan organisaties gewerkt aan verschillende use-cases voor deep learning met NLP en computervisie. Ze is gepassioneerd over het versterken van organisaties om generatieve AI te gebruiken om hun gebruikservaring te verbeteren. In haar vrije tijd houdt ze van films, muziek en literatuur.

Analyseer de uitgaven van Amazon SageMaker en bepaal mogelijkheden voor kostenoptimalisatie op basis van gebruik, Deel 3: Processing en Data Wrangler-taken | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Uri Rosenberg is de AI & ML Specialist Technical Manager voor Europa, het Midden-Oosten en Afrika. Uri is gevestigd in Israรซl en werkt om zakelijke klanten in staat te stellen alles wat met ML te maken heeft, te ontwerpen, bouwen en op schaal te gebruiken. In zijn vrije tijd houdt hij van fietsen, wandelen en zonsondergangen bekijken (minstens รฉรฉn keer per dag).

Tijdstempel:

Meer van AWS-machine learning