Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence ile otomatik model ayarlamayı çalıştırın. Dikey Arama. Ai.

Amazon SageMaker JumpStart ile otomatik model ayarlamayı çalıştırın

Aralık 2020'de AWS açıkladı genel kullanılabilirliği Amazon SageMaker Hızlı Başlangıç, yeteneği Amazon Adaçayı Yapıcı bu, makine öğrenimine (ML) hızlı ve kolay bir şekilde başlamanıza yardımcı olur. Mart 2022'de biz de açıkladı JumpStart'ta API'ler için destek. JumpStart, popüler makine öğrenimi görevlerinde çok çeşitli önceden eğitilmiş modellerin tek tıkla ince ayarını ve dağıtımını ve ayrıca yaygın iş sorunlarını çözen bir dizi uçtan uca çözüm sunar. Bu özellikler, makine öğrenimi sürecinin her adımındaki yükü ortadan kaldırarak yüksek kaliteli modeller geliştirmeyi kolaylaştırır ve devreye alma süresini kısaltır.

Bu gönderide, JumpStart ile otomatik model ayarlamanın nasıl çalıştırılacağını gösteriyoruz.

SageMaker otomatik model ayarı

Geleneksel olarak makine öğrenimi mühendisleri, doğru hiperparametre kümesini bulmak için bir deneme yanılma yöntemi uygular. Deneme yanılma, denemeyi çalıştırmak için gereken kaynakları sağlarken birden çok işi sırayla veya paralel olarak çalıştırmayı içerir.

İle SageMaker otomatik model ayarı, makine öğrenimi mühendisleri ve veri bilimcileri, modellerini optimize etmeye yönelik zaman alıcı görevi yüklerinden kurtarabilir ve deneyi SageMaker'ın yürütmesine izin verebilir. SageMaker, bir veri kümesinde birden çok eğitim simülasyonunu verimli ve aynı anda çalıştırmak ve bir model için en iyi hiper parametreleri bulmak için AWS platformunun esnekliğinden yararlanır.

SageMaker otomatik model ayarlama, algoritmayı kullanarak veri kümenizde birçok eğitim işi çalıştırarak bir modelin en iyi sürümünü bulur ve aralıkları belirttiğiniz hiperparametrelerin sayısı. Daha sonra, en iyi performansı gösteren bir modelle sonuçlanan hiperparametre değerlerini seçer. metrik ki sen seç.

Otomatik model ayarlama ya bir Bayes (varsayılan) veya rasgele hiperparametreler için en iyi değerleri bulmak için arama stratejisi. Bayes araması, hiperparametre ayarını bir gerileme sorun. Bir sonraki eğitim işi için en iyi hiperparametreleri seçerken, problem hakkında şimdiye kadar bildiği her şeyi göz önünde bulundurur ve algoritmanın en iyi bilinen sonuçları kullanmasına izin verir.

Bu gönderide, JumpStart ile otomatik model ayarlamayı çalıştırmayla ilgili adımları göstermek için varsayılan Bayes arama stratejisini kullanıyoruz. LightGBM modeli.

JumpStart şu anda otomatik model ayarlamalı 10 örnek dizüstü bilgisayarı desteklemektedir. Ayrıca tablo halinde veri modelleme için dört popüler algoritmayı destekler. Örnek not defterlerine yönelik görevler ve bağlantılar aşağıdaki tabloda özetlenmiştir.

Görev Önceden eğitilmiş Modeller Özel Veri Kümesini Destekler Desteklenen Çerçeveler Örnek Defterler
Görüntü Sınıflandırması Evet Evet PyTorch, TensorFlow JumpStart'a Giriş – Görüntü Sınıflandırma
Nesne algılama Evet Evet PyTorch, TensorFlow, MXNet JumpStart'a Giriş – Nesne Algılama
Anlamsal Bölümleme Evet Evet MX Ağı JumpStart'a Giriş – Semantik Segmentasyon
Metin Sınıflandırması Evet Evet TensorFlow JumpStart'a Giriş – Metin Sınıflandırması
Cümle Çifti Sınıflandırması Evet Evet TensorFlow, Sarılma Yüz JumpStart'a Giriş – Cümle Çifti Sınıflandırması
Soru Yanıtlama Evet Evet PyTorch JumpStart'a Giriş – Soru Cevaplama
Tablo Sınıflandırması Evet Evet LightGBM, CatBoost, XGBoost, Doğrusal Öğrenici JumpStart'a Giriş – Tablo Sınıflandırması – LightGBM, CatBoost
JumpStart'a Giriş – Tablo Sınıflandırması – XGBoost, Doğrusal Öğrenci
Tablo Regresyon Evet Evet LightGBM, CatBoost, XGBoost, Doğrusal Öğrenici JumpStart'a Giriş – Tablosal Regresyon – LightGBM, CatBoost
JumpStart'a Giriş – Tablosal Regresyon – XGBoost, Doğrusal Öğrenci

Çözüme genel bakış

Bu teknik iş akışı, bir JumpStart modelini otomatik olarak ayarlamak için gereken farklı Amazon Sagemaker özelliklerine ve adımlarına genel bir bakış sunar.

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence ile otomatik model ayarlamayı çalıştırın. Dikey Arama. Ai.

Aşağıdaki bölümlerde, LightGBM algoritmasını kullanarak JumpStart ile otomatik model ayarlamanın nasıl çalıştırılacağına dair adım adım izlenecek yol sunuyoruz. Biz eşlik sağlamak defter bu adım için.

Aşağıdaki üst düzey adımlardan geçiyoruz:

  1. JumpStart önceden eğitilmiş modeli ve görüntü kapsayıcısını alın.
  2. Statik hiperparametreleri ayarlayın.
  3. Ayarlanabilir hiperparametre aralıklarını tanımlayın.
  4. Otomatik model ayarını başlatın.
  5. Ayarlama işini çalıştırın.
  6. En iyi modeli bir uç noktaya dağıtın.

JumpStart önceden eğitilmiş modeli ve görüntü kapsayıcısını alın

Bu bölümde ince ayar için LightGBM sınıflandırma modelini seçiyoruz. Modelin çalıştırıldığı ml.m5.xlarge bulut sunucusu tipini kullanıyoruz. Ardından eğitim Docker kapsayıcısını, eğitim algoritma kaynağını ve önceden eğitilmiş modeli alırız. Aşağıdaki koda bakın:

training_instance_type = "ml.m5.xlarge" # Retrieve the docker image
train_image_uri = image_uris.retrieve(
    region=None,
    framework=None,
    model_id=train_model_id,
    model_version=train_model_version,
    image_scope=train_scope,
    instance_type=training_instance_type,
)
# Retrieve the training script
train_source_uri = script_uris.retrieve(
    model_id=train_model_id, model_version=train_model_version, script_scope=train_scope
)
# Retrieve the pre-trained model tarball to further fine-tune
train_model_uri = model_uris.retrieve(
    model_id=train_model_id, model_version=train_model_version, model_scope=train_scope
)

Statik hiper parametreleri ayarla

Şimdi bu LightGBM modeli için JumpStart tarafından önceden konfigüre edildiği gibi varsayılan hiperparametreleri alıyoruz. Biz de geçersiz kılıyoruz num_boost_round özel bir değere sahip hiperparametre.

# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(
    model_id=train_model_id, model_version=train_model_version
)
# [Optional] Override default hyperparameters with custom values

Ayarlanabilir hiperparametre aralıklarını tanımlayın

Daha sonra hiperparametre aralıklarını tanımlarız. otomatik model ayarlama ile optimize edilmiştir. Model tarafından beklendiği gibi hiperparametre adını ve ardından bu hiperparametre için denenecek değer aralıklarını tanımlarız. Otomatik model ayarlama örnekleri çeker ( max_jobs parametre) Bayes arama adı verilen bir teknik kullanarak hiperparametreler alanından. Çizilen her hiperparametre örneği için ayarlayıcı, modeli bu konfigürasyonla değerlendirmek için bir eğitim işi oluşturur. Aşağıdaki koda bakın:

hyperparameter_ranges = {
    "learning_rate": ContinuousParameter(1e-4, 1, scaling_type="Logarithmic"),
    "num_boost_round": IntegerParameter(2, 30),
    "early_stopping_rounds": IntegerParameter(2, 30),
    "num_leaves": IntegerParameter(10, 50),
    "feature_fraction": ContinuousParameter(0, 1),
    "bagging_fraction": ContinuousParameter(0, 1),
    "bagging_freq": IntegerParameter(1, 10),
    "max_depth": IntegerParameter(5, 30),
    "min_data_in_leaf": IntegerParameter(5, 50),
}

Otomatik model ayarını başlat

oluşturarak başlıyoruz. Tahminci önceden eğitilmiş model, eğitim görüntüsü ve eğitim komut dosyası gibi eğitim işini tanımlayan tüm gerekli varlıklara sahip nesne. Daha sonra bir tanımlıyoruz HiperparametreTuner SageMaker hiper parametre ayarlama API'leri ile etkileşime girme nesnesi.

The HyperparameterTuner Tahminci nesnesini parametre olarak kabul eder, en iyi hiperparametre setine karar verilen hedef metrik, toplam eğitim işi sayısı (max_jobs) hiperparametre ayarlama işi için başlamak ve çalıştırılacak maksimum paralel eğitim işleri (max_parallel_jobs). Eğitim işleri, LightGBM algoritması ve minimum değere sahip hiperparametre değerleri ile çalıştırılır. mlogloss metrik seçilir. Otomatik model ayarlamayı yapılandırma hakkında daha fazla bilgi için, bkz. Hiperparametre Ayarı için En İyi Uygulamalar.

# Create SageMaker Estimator instance
tabular_estimator = Estimator(
    role=aws_role,
    image_uri=train_image_uri,
    source_dir=train_source_uri,
    model_uri=train_model_uri,
    entry_point="transfer_learning.py",
    instance_count=1,
    instance_type=training_instance_type,
    max_run=360000,
    hyperparameters=hyperparameters,
    output_path=s3_output_location,
) tuner = HyperparameterTuner(
    estimator=tabular_estimator,
    objective_metric_name="multi_logloss",
    hyperparameter_ranges=hyperparameter_ranges,
    metric_definitions=[{"Name": "multi_logloss", "Regex": "multi_logloss: ([0-9\.]+)"}],
    strategy="Bayesian",
    max_jobs=10,
    max_parallel_jobs=2,
    objective_type="Minimize",
    base_tuning_job_name=training_job_name,
)

Önceki kodda, ayarlayıcıya en fazla 10 deney çalıştırmasını söylüyoruz (max_jobs) ve bir seferde yalnızca iki eşzamanlı deney (max_parallel_jobs). Bu parametrelerin her ikisi de maliyetinizi ve eğitim sürenizi kontrol altında tutar.

Ayarlama işini çalıştırın

SageMaker ayarlama işini başlatmak için hiperparametre tuner nesnesinin fit yöntemini çağırırız ve Amazon Basit Depolama Hizmeti (Amazon S3) eğitim verilerinin yolu:

tuner.fit({"training": training_dataset_s3_path}, logs=True)

Otomatik model ayarlama en iyi hiperparametreleri ararken, ilerlemelerini SageMaker konsolunda veya Amazon Bulut İzleme. Eğitim tamamlandığında, en iyi modelin ince ayarlı yapıları, eğitim yapılandırmasında belirtilen Amazon S3 çıktı konumuna yüklenir.

En iyi modeli bir uç noktaya dağıtın

Ayarlama işi tamamlandığında en iyi model seçilir ve Amazon S3'te saklanır. Şimdi, o modeli dağıtma yöntemini çağırarak bu modeli dağıtabiliriz. HyperparameterTuner nesne ve oluşturulan uç nokta için kullanılacak örnek sayısı, türleri, dağıtılacak görüntü ve çalıştırılacak komut dosyası gibi gerekli parametreleri iletmek:

tuner.deploy(
    initial_instance_count=1,
    instance_type=inference_instance_type,
    entry_point="inference.py",
    image_uri=deploy_image_uri,
    source_dir=deploy_source_uri,
    endpoint_name=endpoint_name,
    enable_network_isolation=True
)

Artık oluşturulan uç noktayı çıkarım istekleri yaparak test edebiliriz. Sürecin geri kalanını ekteki dosyadan takip edebilirsiniz. defter.

Sonuç

SageMaker'daki otomatik model ayarlama ile desteklenen algoritmalardan biriyle sağlanan veri kümesi üzerinde eğitim işleri çalıştırarak modelinizin en iyi sürümünü bulabilirsiniz. Otomatik model ayarlama, belirttiğiniz hiperparametre aralıkları içinde en iyi hiperparametre yapılandırmasını otomatik olarak arayarak bir modeli ayarlama süresini kısaltmanıza olanak tanır.

Bu gönderide, SageMaker API'lerini kullanarak JumpStart önceden eğitilmiş bir modelde otomatik model ayarlama çalıştırmanın değerini gösterdik. LightGBM algoritmasını kullandık ve maksimum 10 eğitim işi tanımladık. Ayrıca JumpStart model optimizasyonunu destekleyen ML çerçevelerini gösteren örnek not defterlerine bağlantılar da sağladık.

Otomatik model ayarlama ile bir JumpStart modelinin nasıl optimize edileceğine ilişkin daha fazla ayrıntı için örneğimize bakın defter.


Yazar Hakkında

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence ile otomatik model ayarlamayı çalıştırın. Dikey Arama. Ai.Doug Mbaya veri ve analitik odaklı bir Kıdemli Ortak Çözüm mimarıdır. Doug, AWS iş ortaklarıyla yakın bir şekilde çalışarak bulutta veri ve analitik çözümlerini entegre etmelerine yardımcı olur.

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence ile otomatik model ayarlamayı çalıştırın. Dikey Arama. Ai.Kruthi Jayasimha Rao Scale-PSA ekibinde Ortak Çözümler Mimarıdır. Kruthi, Ortaklar için Ortak Yolunda ilerlemelerini sağlayan teknik doğrulamalar yürütür.

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence ile otomatik model ayarlamayı çalıştırın. Dikey Arama. Ai.Giannis Mitropoulos SageMaker için bir Yazılım Geliştirme Mühendisidir Otomatik Model Ayarlama.

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence ile otomatik model ayarlamayı çalıştırın. Dikey Arama. Ai.Ashish Khetan Kıdemli Uygulamalı Bilim Adamıdır Amazon SageMaker Hızlı Başlangıç ve Amazon SageMaker yerleşik algoritmaları ve makine öğrenimi algoritmalarının geliştirilmesine yardımcı olur. Makine öğrenimi ve istatistiksel çıkarım konularında aktif bir araştırmacıdır ve NeurIPS, ICML, ICLR, JMLR ve ACL konferanslarında birçok makale yayınlamıştır.

Zaman Damgası:

Den fazla AWS Makine Öğrenimi