Zephyrnet Logosu

Amazon SageMaker'da AWS Step Functions ve AutoGluon ile AutoML iş akışlarını yönetin

Tarih:

Bulutta makine öğrenimi (ML) deneyleri çalıştırmak birçok hizmet ve bileşene yayılabilir. Makine öğrenimi modellerinin hızlı bir şekilde geliştirilmesini sağlamak için makine öğrenimi deneylerini yapılandırma, otomatikleştirme ve izleme yeteneği esastır. Otomatik makine öğrenimi (AutoML) alanındaki, yani makine öğrenimi süreçlerinin otomasyonuna ayrılmış makine öğrenimi alanındaki en son gelişmelerle, derin makine öğrenimi bilgisine ihtiyaç duymadan doğru karar verme modelleri oluşturabilirsiniz. Bu yazıda, yalnızca birkaç satır Python ile doğru ML modelleri oluşturmanıza olanak tanıyan açık kaynaklı bir AutoML çerçevesi olan AutoGluon'a bakacağız.

AWS, makine öğrenimi iş akışlarını yönetmek ve çalıştırmak için çok çeşitli hizmetler sunarak, becerilerinize ve uygulamanıza göre bir çözüm seçmenize olanak tanır. Örneğin, zaten kullanıyorsanız AWS Basamak İşlevleri dağıtılmış uygulamaların bileşenlerini düzenlemek için, makine öğrenimi iş akışlarınızı oluşturmak ve otomatikleştirmek için aynı hizmeti kullanabilirsiniz. AWS tarafından sunulan diğer MLOps araçları şunları içerir: Amazon SageMaker Ardışık DüzenleriML modelleri oluşturmanızı sağlayan Amazon SageMaker Stüdyosu MLOps yetenekleriyle (CI/CD uyumluluğu, model izleme ve model onayları gibi). gibi açık kaynaklı araçlar Apache Hava Akışı— aracılığıyla AWS'de kullanılabilir Apache Airflow için Amazon Tarafından Yönetilen İş Akışları-ve KubeFlow, hibrit çözümler de desteklenmektedir. Örneğin, ML modellerinizi SageMaker Pipelines ile eğitip dağıtırken Step Functions ile veri alımını ve işlemeyi yönetebilirsiniz.

Bu gönderide, ML uzmanlığı olmayan geliştiricilerin bile AutoGluon on kullanarak son teknoloji ML modellerini nasıl kolayca oluşturup bakımını yapabildiğini gösteriyoruz. Amazon Adaçayı Yapıcı ve iş akışı bileşenlerini düzenlemek için Adım İşlevleri.

AutoGluon algoritmasına genel bir bakışın ardından, örneklerle birlikte iş akışı tanımlarını ve bir kod eğitimi kendi verilerinize uygulayabileceğiniz.

Otomatik Gluon

AutoGluon, yalnızca birkaç satır Python koduyla doğru ML modellerini eğiterek makine öğreniminin benimsenmesini hızlandıran açık kaynaklı bir AutoML çerçevesidir. Bu gönderi tablo halindeki verilere odaklansa da, AutoGluon ayrıca görüntü sınıflandırma, nesne algılama ve metin sınıflandırma için son teknoloji modelleri eğitmenize olanak tanır. AutoGluon tabloları, optimum çözümü bulmak için farklı modeller oluşturur ve birleştirir.

AWS'deki AutoGluon ekibi bir kâğıt kütüphaneyi yapılandıran ilkeleri sunan:

  • Basitlik – Verileri analiz etmek veya özellik mühendisliği yapmak zorunda kalmadan doğrudan ham verilerden sınıflandırma ve regresyon modelleri oluşturabilirsiniz.
  • sağlamlık – Bireysel modellerden bazıları başarısız olsa bile genel eğitim süreci başarılı olmalıdır
  • tahmin edilebilir zamanlama – Eğitime yatırım yapmak istediğiniz süre içerisinde optimum sonuçları alabilirsiniz.
  • Arıza toleransı – Eğitimi durdurabilir ve istediğiniz zaman devam ettirebilirsiniz, bu da süreç bulutta anlık görüntüler üzerinde çalışıyorsa maliyetleri optimize eder

Algoritma hakkında daha fazla ayrıntı için bkz. kâğıt AWS'de AutoGluon ekibi tarafından yayınlandı.

yükledikten sonra AutoGluon paketi ve bağımlılıkları, bir modeli eğitmek, üç satır kod yazmak kadar kolaydır:

from autogluon.tabular import TabularDataset, TabularPredictor

train_data = TabularDataset('s3://my-bucket/datasets/my-csv.csv')
predictor = TabularPredictor(label="my-label", path="my-output-folder").fit(train_data)

AutoGluon ekibi, birden fazla Kaggle yarışmasında ilk 10 liderlik tablosuna ulaşarak çerçevenin gücünü kanıtladı.

Çözüme genel bakış

Eğitim, değerlendirme ve dağıtımı kapsayan bir ML iş akışını uygulamak için Step Functions kullanıyoruz. İşlem hattı tasarımı, çalışma zamanında işlem hattına beslediğiniz giriş parametrelerini değiştirerek hızlı ve yapılandırılabilir deneyler sağlar.

İşlem hattını aşağıdakiler gibi farklı iş akışlarını uygulayacak şekilde yapılandırabilirsiniz:

  • Yeni bir ML modeli eğitin ve bu noktada dağıtım gerekmiyorsa SageMaker model kayıt defterinde saklayın
  • Önceden eğitilmiş bir makine öğrenimi modelini çevrimiçi olarak (SageMaker uç noktası) veya çevrimdışı (SageMaker toplu dönüşümü) çıkarım
  • Bir ML modelini sıfırdan eğitmek, değerlendirmek ve dağıtmak için eksiksiz bir ardışık düzen çalıştırın

Çözümler genel bir devlet makinesi (aşağıdaki şemaya bakın), bir dizi girdi parametresine dayalı olarak çalıştırılacak eylem dizisini düzenleyen.

Durum makinesinin adımları aşağıdaki gibidir:

  1. İlk adım IsTraining önceden eğitilmiş bir model mi kullanacağımıza yoksa bir modeli sıfırdan mı eğiteceğimize karar verir. Önceden eğitilmiş bir model kullanılıyorsa durum makinesi Adım 7'ye atlar.
  2. Yeni bir ML modeli gerektiğinde, TrainSteps gerekli tüm eylemleri gerçekleştiren ve sonucu mevcut durum makinesine döndüren ikinci bir durum makinesini tetikler. Bir sonraki bölümde eğitim durumu makinesinin daha fazla ayrıntısına gireceğiz.
  3. Eğitim bittiğinde, PassModelName eğitim işi adını, aşağıdaki durumlarda yeniden kullanılmak üzere durum makinesi bağlamının belirtilen bir konumunda saklar.
  4. Bir değerlendirme aşaması seçilirse, IsEvaluation durum makinesini değerlendirme dalına yönlendirir. Aksi takdirde, Adım 7'ye atlanır.
  5. Değerlendirme aşaması daha sonra bir AWS Lambda tarafından çağrılan işlev ModelValidation adım. Lambda işlevi, bir test setindeki model performanslarını alır ve bunu giriş parametrelerinde belirtilen, kullanıcı tarafından yapılandırılabilen bir eşik ile karşılaştırır. Aşağıdaki kod, değerlendirme sonuçlarına bir örnektir:
    "Payload":{
       "IsValid":true,
       "Scores":{
          "accuracy":0.9187,
          "balanced_accuracy":0.7272,
          "mcc":0.5403,
          "roc_auc":0.9489,
          "f1":0.5714,
          "precision":0.706,
          "recall":0.4799
       }
    }

  6. Model değerlendirmesinde ise EvaluationResults başarılı olursa, durum makinesi nihai dağıtım adımlarıyla devam eder. Model, kullanıcı tanımlı bir ölçütün altında performans gösteriyorsa durum makinesi durur ve dağıtım atlanır.
  7. Dağıtım seçilirse, IsDeploy aracılığıyla üçüncü bir durum makinesini başlatır DeploySteps, bu yazıda daha sonra açıklayacağız. Dağıtım gerekli değilse durum makinesi burada durur.

üzerinde bir dizi giriş parametresi örneği mevcuttur. GitHub repo.

Eğitim durumu makinesi

AutoGluon kullanarak yeni bir ML modeli eğitmek için durum makinesi, aşağıdaki şemada gösterildiği gibi iki adımdan oluşur. İlk adım, modeli oluşturan bir SageMaker eğitim işidir. İkincisi, girişleri SageMaker model kayıt defterine kaydeder.

Bu adımları, ana durum makinesinin bir parçası olarak otomatik olarak veya bağımsız bir işlem olarak çalıştırabilirsiniz.

Dağıtım durumu makinesi

Şimdi dağıtım aşamasına ayrılmış durum makinesine bakalım (aşağıdaki şemaya bakın). Daha önce belirtildiği gibi, mimari hem çevrimiçi hem de çevrimdışı dağıtımı destekler. İlki, bir SageMaker uç noktası dağıtmaktan oluşurken, ikincisi bir SageMaker toplu dönüştürme İşini çalıştırır.

Uygulama adımları aşağıdaki gibidir:

  1. ChoiceDeploymentMode hangi dağıtım modunun gerekli olduğunu tanımlamak için giriş parametrelerine bakar ve durum makinesini ilgili şubeye yönlendirir.
  2. Bir uç nokta seçilirse, EndpointConfig step yapılandırmasını tanımlarken CreateEndpoint gerekli bilgi işlem kaynaklarını tahsis etme sürecini başlatır. Bu ayırma birkaç dakika sürebilir, bu nedenle durum makinesi şu saatte duraklar: WaitForEndpoint ve uç nokta durumunu sorgulamak için bir Lambda işlevi kullanır.
  3. Uç nokta yapılandırılırken, ChoiceEndpointStatus dönüyor WaitForEndpoint durumu, aksi takdirde ya devam eder DeploymentFailed or DeploymentSucceeded.
  4. Çevrimdışı dağıtım seçilirse, durum makinesi bir SageMaker toplu dönüştürme işi çalıştırır ve ardından durum makinesi durur.

Sonuç

Bu gönderi, AutoML iş akışlarını düzenlemek ve bulutta hızlı deneyler sağlamak için kullanımı kolay bir işlem hattı sunar ve gelişmiş ML bilgisi gerektirmeden doğru ML çözümlerine olanak tanır.

Gerektiğinde ayrı ayrı eğitim ve dağıtım gerçekleştirmenize olanak tanıyan iki modüler borunun yanı sıra genel bir boru hattı sağlıyoruz. Ayrıca çözüm, özelliklerinden ve hesaplama kaynaklarından yararlanarak SageMaker ile tamamen entegredir.

Şimdi bununla başlayın kod eğitimi Bu gönderide sunulan kaynakları AWS hesabınıza dağıtmak ve ilk AutoML denemelerinizi çalıştırmak için.


Yazarlar Hakkında

Federico Piccinini Amazon Makine Öğrenimi Çözümleri Laboratuvarı için Derin Öğrenme Mimarıdır. Makine öğrenimi, açıklanabilir yapay zeka ve MLOps konusunda tutkulu. AWS müşterileri için makine öğrenimi ardışık düzenleri tasarlamaya odaklanıyor. İş dışında spor ve pizzadan hoşlanır.

paolo irrera Müşterilerin makine öğrenimi ve bulut özellikleriyle iş sorunlarını çözmelerine yardımcı olduğu Amazon Makine Öğrenimi Çözümleri Laboratuvarı'nda bir Veri Bilimcisidir. Paris'teki Telecom ParisTech'ten Bilgisayarla Görme alanında doktora derecesine sahiptir.

spot_img

En Son İstihbarat

spot_img