Amazon MLA-C01: ML İş Yükleri için Maliyet Optimizasyonu — Çalışma kılavuzu
Şunun bir parçası: AWS Machine Learning Engineer Associate MLA-C01 — Çalışma kılavuzu. Doğrulanmış cevaplarla şurada pratik yapın: Amazon sınav merkezi, veya şurada süreli deneme sınavları çözün: ExamRoll.io.
Temel kavram: maliyetin nereden kaynaklandığı ve kullanabileceğiniz optimizasyon araçları
Makine öğrenmesi iş yüklerinin maliyeti üç temel kategoriden kaynaklanır: eğitim ve çıkarım için işlem gücü, veri kümeleri ve checkpoint’ler için depolama ve veri aktarımı ve az kullanılan veya kötü yapılandırılmış altyapıdan kaynaklanan operasyonel ek yük. Büyük modelleri eğittiğinizde veya çok sayıda deney yürüttüğünüzde, eğitim genellikle en büyük tekil maliyet kalemidir. Modelleri büyük ölçekte sunduğunuzda veya interaktif uygulamalar için düşük gecikme süresi gerektiğinde ise çıkarım maliyeti baskın olur. Temel optimizasyon araçları; örnek ailesi ve boyutu seçimi, satın alma seçenekleri (on-demand, Spot, Savings Plans), model yaşam döngüsü desenleri (toplu, gerçek zamanlı, sunucusuz) ve model derlemesi, önbelleğe alma ve örnek konsolidasyonu gibi çalışma zamanı optimizasyonlarıdır.
Operasyonel teknikler bu araçları pratiğe dönüştürür. Eğitim işlem maliyetlerini on-demand’e kıyasla %70’e kadar azaltmak için checkpointing ile yönetilen Spot eğitimini kullanın, ancak işlerin kesintilerden sonra devam edebilmesi için bunu checkpointing (CreateTrainingJob parametresi CheckpointConfig → S3Uri) ve CreateTrainingJob bayrağı EnableManagedSpotTraining’in true olarak ayarlanmasıyla birlikte kullanın. Gerçek CPU/GPU/IO kullanımını (GPUUtilization, HostCPUUtilization gibi CloudWatch metrikleri ve SageMaker Debugger’dan alınan profiler izleri) profillendirerek örnekleri doğru boyutlandırın, ardından iş yükü özelliklerine uyan işlem ailelerine (CPU için ml.c5/ml.c6, GPU için ml.g5/ml.p4, bellek yoğun işler için ml.r5) geçin. Çıkarım için maliyetle orantılı modelleri tercih edin: düzensiz, düşük verimli iş yükleri için sunucusuz çıkarım (CreateEndpointConfig üretim varyantında ServerlessConfig → MemorySizeInMB ve MaxConcurrency ile) kullanın; çok sayıda küçük model için örnek gereksinimlerini azaltmak amacıyla çok modelli uç noktalar veya model derlemesi (SageMaker Neo) kullanın; ve büyük veya gecikmeye duyarlı olmayan iş yüklerini eşzamansız veya toplu dönüşümlere (AsyncInferenceConfig ve Batch Transform) taşıyın.
Temel hizmetler ve yapılandırma
Amazon SageMaker, maliyet kontrolü için açık ve net ayarlar sunar. Daha düşük eğitim maliyetleri için yönetilen Spot eğitimini kullanın: CreateTrainingJob API’sinde EnableManagedSpotTraining=true olarak ayarlayın, CheckpointConfig.S3Uri’yi dahil edin ve Spot kapasitesinin alınmasına izin vermek için MaxWaitTimeInSeconds > MaxRuntimeInSeconds olarak ayarlayın. SageMaker Python SDK’sında, S3 checkpoint konumuna işaret edecek şekilde estimator.use_spot_instances=True, estimator.max_wait ve estimator.checkpoint_s3_uri’yi ayarlayabilirsiniz. Art arda gelen eğitim işlerinde tekrarlanabilir düşük gecikme süresi için, deney temposu bunu gerektirdiğinde SageMaker Processing’den veya kalıcı olarak sağlanmış altyapıdaki eğitim container’larından yararlanarak container’ları sıcak tutun; aksi takdirde, daha küçük container imajları, önceden oluşturulmuş SageMaker container’ları kullanarak veya bir geliştirme ortamında kalıcı bir eğitim örneğini yeniden kullanarak container başlatma süresini azaltın.
Çıkarım maliyeti kontrolü için CreateEndpointConfig/UpdateEndpointConfig birden fazla stratejiyi destekler. SageMaker’in ölçeklendirmeyi yönetmesine ve tam örnek saatleri yerine çağrı ve bellek başına faturalandırma yapmasına izin vermek için ProductionVariants’ta ServerlessConfig kullanın; ServerlessConfig, MemorySizeInMB ve MaxConcurrency değerlerini gerektirir. İstikrarlı, yüksek verimli iş yükleri için Provisioned örnekleri kullanın ve aşırı kaynak ayırmayı önlemek için uç noktaya Application Auto Scaling hedef izleme politikaları uygulayın. Çok modelli uç noktalar, tek bir container’ı paylaşarak ve model yapıtlarını S3’ten talep üzerine yükleyerek, nadiren kullanılan birçok modeli barındırdığınızda maliyeti düşürür. Model boyutlandırma önerileri için Inference Recommender’da CreateInferenceRecommendationsJob’u çağırın; bu, örnek türü, toplu iş boyutu ve gecikme/verim rehberliği sağlar.
Faturalandırma taahhütleri en iyi SageMaker Savings Plans veya AWS Compute Savings Plans ile yönetilir. 1 veya 3 yıllık bir süre için saat başına $/saat taahhüt etmek üzere AWS Billing konsolu aracılığıyla bir Savings Plan satın alın; bu, örnek aileleri genelinde on-demand SageMaker işlem gücünü (eğitim ve barındırma) indirimli hale getirir. Savings Plans’in on-demand kullanıma uygulandığını ve Spot için geçerli olmadığını unutmayın, bu nedenle stratejileri birleştirin: temel, istikrarlı kullanım için Savings Plans satın alın ve anlık artış gösteren veya deneysel eğitimler için Spot kullanın.
Tasarım desenleri ve ödünleşimler
Yönetilen Spot + kontrol noktası oluşturma (checkpointing) deseni, uzun veya büyük ölçekli dağıtık eğitim çalışmaları için başvurulacak ilk yöntemdir. Çok az kod değişikliği gerektirir: EnableManagedSpotTraining‘i etkinleştirin, CheckpointConfig.S3Uri sağlayın ve Spot zamanlamasını tolere etmek için uygun bir MaxWaitTimeInSeconds değeri belirleyin. Bunun ödünleşimi, Spot kesintileri sık yaşanırsa yeniden başlatma karmaşıklığı ve biraz daha uzun gerçek geçen süredir; kazanç ise maliyetteki çarpıcı düşüştür. Ardışık işler arasındaki başlatma gecikmesinin önemli olduğu yinelemeli deneyler için sıcak bir geliştirme ortamı bulundurun: NVMe/yerel önbellekte önceden yüklenmiş verilerle daha küçük, tedarik edilmiş (provisioned) ml.m5 veya ml.c5 örnekleri kullanın ya da SageMaker Processing veya Studio not defterlerini kullanarak aynı örnek üzerinde birçok deneyi yerel işleme işleri olarak çalıştırın. Bu, taban maliyeti artırır ancak toplam döngü süresini azaltır.
Çıkarım (inference) için, trafik şekline bağlı olarak sunucusuz (serverless) ve tedarik edilmiş (provisioned) uç noktalar arasında seçim yapın. Sunucusuz çıkarım (ServerlessConfig), kapasite planlamasını ortadan kaldırır ve yalnızca çağrı başına ve bellek tahsisi başına ödeme yaptığınız için kesintili, öngörülemeyen trafik için en düşük maliyetli seçenektir. Bunun ödünleşimi, soğuk başlatma (cold start) gecikmesi ve boyut sınırlarıdır; katı düşük gecikmeli SLA’lar için otomatik ölçeklendirme (autoscaling) özelliğine sahip tedarik edilmiş örnekleri tercih edin ve örnek sayısını azaltmak için SageMaker Neo ile model optimizasyonunu değerlendirin. Çok sayıda modelin barındırılması gerektiği ancak model başına trafiğin düşük olduğu durumlarda, çok modelli uç noktalar (multi-model endpoints), disk ve bellek kullanımını birleştirir ve yüklenmemiş bir model için biraz daha yüksek bir soğuk başlatma yüklemesi pahasına model başına maliyeti düşürür.
Doğru boyutlandırma (Right-sizing), tahmine değil, öncelikle gözleme dayanmalıdır. GPUUtilization ve DiskReadOps metriklerini toplamak için SageMaker Debugger profil oluşturma özelliğini ve CloudWatch’u kullanın; ardından örnek sınıfını/türünü ve performansı doğrulamak için bir Inference Recommender işi (CreateInferenceRecommendationsJob) çalıştırın. Model gecikme süresi gereksinimleri katıysa, model nicemlemesini (quantization), SageMaker Neo ile derlemeyi veya CPU örneklerine kısmi GPU çıkarım gücü eklemek için Elastic Inference hızlandırıcılarını kullanmayı düşünün; Elastic Inference, bir cpu örneğine küçük bir hızlandırıcı eklemenize olanak tanıyarak belirli modeller için tam GPU örneklerine kıyasla maliyeti düşürür.
Sık yapılan hatalar ve karar kriterleri
Sık yapılan bir hata, tüm iş yüklerine tek bir maliyet optimizasyonu uygulamaktır. Savings Plans, sabit temel kullanım için güçlü bir araçtır ancak deneysel iş yükleri için Spot ve düzensiz (ani artış gösteren) çıkarım işlemleri için sunucusuz (serverless) çözümlerle birleştirilmelidir. Spot’un ücretsiz olduğunu varsaymayın — checkpointing (kontrol noktası oluşturma) ve hataya dayanıklı eğitim mantığı gerektirir; CreateTrainingJob.CheckpointConfig ve EnableManagedSpotTraining ayarlarını yapılandırın ve gecikmeli bir başlangıcı ne kadar süre kabul edeceğinizi yansıtan bir MaxWaitTimeInSeconds değeri hesaplayın. Bir diğer hata ise telemetriyi ihmal etmektir: profil oluşturma (SageMaker Debugger, CloudWatch ve Inference Recommender) olmadan, aşırı kaynak tahsisi yapma veya CPU, GPU ve bellek özellikleri arasında uyumsuzluk olan bir instance ailesi seçme riskiyle karşılaşırsınız. Son olarak, sunucusuz çıkarım maliyeti basitleştirse de öngörülemeyen soğuk başlatmalara (cold start) neden olabilir; ServerlessConfig kullanırken uçtan uca gecikmeyi ölçün ve katı SLA’lar için otomatik ölçeklendirme özelliğine sahip, tahsis edilmiş (provisioned) uç noktalara geri dönün.
Pratik Problem: Kullanım Senaryosu
Şirket: FinSight Analytics. Zorluk: FinSight’ın, S3’te depolanan işlem günlükleri ve müşteri profilleri üzerinde sık sık eğitilen, verileri yalıtılmış halde tutan, üretim dağıtımı öncesi manuel onay ile model sürüm yönetişimini destekleyen, gecelik yeniden eğitim maliyetlerini düşüren, hızlı denemeler sırasında iş başına başlangıç gecikmesini en aza indiren ve düzensiz trafiğe karşı maliyet duyarlılığı olan düşük gecikmeli gerçek zamanlı bir uç nokta (endpoint) sunan bir dolandırıcılık tespit ardışık düzeni (pipeline) oluşturması gerekmektedir.
Merkezi ve güvenli veri ve model kaydı. Verileri, varsayılan şifreleme ve erişimi SageMaker yürütme rolüyle kısıtlayan bucket politikaları ile güvenli hale getirilmiş bir S3 bucket’ında saklayın. Modelleri SageMaker Model Registry’ye kaydedin; ModelApprovalStatus’u varsayılan olarak “PendingManualApproval” olan model paketleri oluşturmak için SageMaker Pipelines RegisterModel adımını kullanın. Manuel onay insan iş akışını, bir model paketi ve bir manuel onay adımı yayan bir SageMaker Pipeline oluşturarak uygulayın; yetkili gözden geçirenler doğrulamayı tamamladığında, dağıtıma izin vermek için boto3 sagemaker.update_model_package(ModelPackageName=…, ModelApprovalStatus=‘Approved’) komutunu çağırırlar. Gerekçe: Model Registry merkezi sürüm kontrolü sağlar ve ModelApprovalStatus, minimum özel operasyon için doğrudan SageMaker API’leriyle entegre olur.
Maliyet etkin gecelik yeniden eğitim. EnableManagedSpotTraining=true ile eğitim işleri oluşturarak yönetilen Spot eğitimini kullanın, optimize edici durumunu kalıcı kılmak için CheckpointConfig.S3Uri’yi dahil edin ve işlerin Spot kesintilerinde devam edebilmesi için MaxRuntimeInSeconds ve MaxWaitTimeInSeconds’i uygun şekilde ayarlayın. Bunu, sabit maliyetleri azaltmak için ortalama on-demand eğitim/çıkarım saatlerini kapsayacak şekilde boyutlandırılmış temel bir Savings Plan alımıyla birleştirin ve kesintilerin tolere edilebilir olduğu denemeler için Spot kullanın. Gerekçe: Yönetilen Spot, minimum kod değişikliği ile işlem maliyetini düşürür; Savings Plans, öngörülebilir giderleri azaltmak için temel on-demand kullanıma uygulanır.
Deneme amaçlı kullanım için başlangıç gecikmesini azaltma. Etkileşimli deneme döngüleri için, SageMaker Studio’da kalıcı bir geliştirme instance profili (bir ml.c5 veya ml.m5) veya EBS/NVMe üzerinde önceden yüklenmiş veri setleri olan küçük, adanmış bir Notebook Instance bulundurun ve birçok hızlı eğitim çalışması için bu ortamı yeniden kullanın. Üretimdeki gecelik işler için yine de checkpointing ile yönetilen Spot kullanın. Gerekçe: Kalıcı ortam, konteyner soğuk başlatmalarını (cold start) önler ve ağır (yoğun) çalışmalar için maliyet tasarrufunu korurken iterasyon hızını artırır.
Düşük gecikmeli, maliyet duyarlı gerçek zamanlı sunum. Temel düşük gecikme için onaylanmış modeli tahsis edilmiş (provisioned) bir uç noktaya dağıtın ve yoğun olmayan saatlerde ölçeği küçültmek için uç noktaya bir Application Auto Scaling politikası ekleyin. Öngörülemeyen trafik artışları için, düşük hacimli modeller için bir Sunucusuz çıkarım seçeneği yerleştirin veya ağır, gerçek zamanlı olmayan toplu puanlama görevleri için asenkron çıkarım (S3 OutputConfig ile AsyncInferenceConfig) kullanın. Dağıtımdan önce CPU/GPU ayak izini azaltmak için modele SageMaker Neo derlemesi uygulayın. Gerekçe: Tahsis edilmiş (provisioned) ve otomatik ölçeklendirme kombinasyonu, sabit düşük gecikme ve maliyet kontrolü sağlar; sunucusuz veya asenkron uç noktalar, düzensiz veya toplu iş yüklerini daha maliyet etkin bir şekilde yönetir ve Neo, instance gereksinimini azaltır.
Bu yaklaşım, eğitim maliyetini düşürmek için EnableManagedSpotTraining ile CheckpointConfig’i, manuel onaylar için SageMaker Model Registry ve UpdateModelPackage’ı, azaltılmış başlangıç gecikmesi için kalıcı bir geliştirme instance’ını ve çıkarım maliyetlerini optimize etmek için tahsis edilmiş, sunucusuz ve derlenmiş modellerin bir karışımını bir araya getirir.
← Üretken Yapay Zeka ve Temel Modeller · Tüm alanlar · Bilgisayarlı Görü →
Bu soruları çözün → · ExamRoll.io’da süreli pratik →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
Sınavınızı geçin →