Amazon SageMaker JumpStart PlatoBlockchain Veri Zekası ile artımlı eğitim. Dikey Arama. Ai.

Amazon SageMaker JumpStart ile kademeli eğitim

Aralık ayında 2020 AWS, Amazon SageMaker JumpStart'ın genel kullanıma sunulduğunu duyurdu, yeteneği Amazon Adaçayı Yapıcı bu, makine öğrenimine (ML) hızlı ve kolay bir şekilde başlamanıza yardımcı olur. Adaçayı Yapıcı Hızlı Başlangıç popüler makine öğrenimi görevlerinde çok çeşitli önceden eğitilmiş modellerin tek tıklamayla ince ayarını ve dağıtımını sağlar, bunun yanı sıra 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.

Tüm JumpStart içeriği daha önce yalnızca Amazon SageMaker Stüdyosu, sağlayan bir kullanıcı dostu grafik arayüz özellik ile etkileşime geçmek için Son zamanlarda biz de lansmanını açıkladı kullanımı kolay Hızlı Başlangıç ​​API'leri SageMaker Python SDK'nın bir uzantısı olarak, kendi veri kümelerinizde çok çeşitli JumpStart destekli önceden eğitilmiş modelleri programlı olarak dağıtmanıza ve ince ayar yapmanıza olanak tanır. Bu başlatma, kod iş akışlarınızdaki, MLOps işlem hatlarınızdaki ve SDK aracılığıyla SageMaker ile etkileşimde bulunduğunuz diğer her yerde JumpStart özelliklerinin kullanımının kilidini açar.

Bu gönderide, eğitilebilir tüm JumpStart modellerinin artık kademeli eğitimi desteklediğini duyurmaktan heyecan duyuyoruz. Artımlı eğitim, daha önce ince ayar yapmış olduğunuz bir modeli, önceki ince ayar çalıştırmalarında hesaba katılmayan ve zayıf model performansına neden olan temel bir model içeren genişletilmiş bir veri kümesi kullanarak eğitmenize olanak tanır. Artımlı eğitim, modeli sıfırdan yeniden eğitmeniz gerekmediğinden hem zaman hem de kaynak tasarrufu sağlar. Bu gönderide açıkladığımız JumpStart API koduna doğrudan geçmek istiyorsanız, şu adrese başvurabilirsiniz: örnek dizüstü.

Hızlı Başlangıç'a genel bakış

JumpStart, SageMaker'da ML ile hızlı bir şekilde başlamanıza yardımcı olacak farklı yetenekler içeren çok yönlü bir üründür. Yazma sırasında JumpStart aşağıdakileri yapmanızı sağlar:

  • Yaygın ML görevleri için önceden eğitilmiş modelleri dağıtın – JumpStart, büyük, herkese açık veri kümelerinde önceden eğitilmiş modellerin kolay dağıtımını sağlayarak, geliştirme çabası olmadan yaygın ML görevlerini yerine getirmenizi sağlar. Makine öğrenimi araştırma topluluğu, yakın zamanda geliştirilen modellerin çoğunu halka açık hale getirmek için büyük çaba harcadı; JumpStart, nesne algılama, metin sınıflandırma ve metin oluşturma gibi en popüler 300 ML görevini kapsayan 15'den fazla modelden oluşan bir koleksiyona ev sahipliği yapar ve yeni başlayanların bunları kullanmasını kolaylaştırır. Bu modeller, TensorFlow, PyTorch, Hugging Face ve MXNet Hub gibi popüler model merkezlerinden alınmıştır.
  • Önceden eğitilmiş modellerde ince ayar yapın – JumpStart, kendi eğitim algoritmanızı yazmanıza gerek kalmadan önceden eğitilmiş modellerde ince ayar yapmanızı sağlar. ML'de, bir alanda öğrenilen bilgiyi başka bir alana aktarma yeteneğine denir. öğrenme aktarımı. Orijinal modeli eğitmeye dahil olanlardan çok daha düşük eğitim maliyetleriyle daha küçük veri kümelerinizde doğru modeller üretmek için aktarım öğrenimini kullanabilirsiniz. JumpStart ayrıca LightGBM, CatBoost, XGBoost ve Scikit-learn tabanlı popüler eğitim algoritmalarını içerir ve tablo halinde regresyon ve sınıflandırma için sıfırdan eğitim verebilirsiniz.
  • Önceden oluşturulmuş çözümleri kullanın – JumpStart, talep tahmini ve endüstriyel ve finansal uygulamalar gibi yaygın ML kullanım durumları için yalnızca birkaç tıklamayla dağıtabileceğiniz 17 çözümden oluşan bir set sunar. Çözümler, belirli bir iş kullanım senaryosunu çözmek için çeşitli AWS hizmetlerini bir araya getiren uçtan uca makine öğrenimi uygulamalarıdır. Onlar kullanırlar AWS CloudFormation hızlı dağıtım için şablonlar ve referans mimariler, yani tamamen özelleştirilebilirler.
  • SageMaker algoritmaları için not defteri örneklerini kullanın – SageMaker, veri bilimcilerin ve makine öğrenimi uygulayıcılarının makine öğrenimi modellerini hızla eğitmeye ve dağıtmaya başlamalarına yardımcı olmak için bir yerleşik algoritmalar paketi sağlar. JumpStart, bu algoritmaları hızla uygulamak için kullanabileceğiniz örnek not defterleri sağlar.
  • Eğitim videolarını ve blogları inceleyin – JumpStart ayrıca size SageMaker'da farklı işlevleri nasıl kullanacağınızı öğreten çok sayıda blog yazısı ve video sağlar.

JumpStart, özel VPC ayarlarını kabul eder ve AWS Anahtar Yönetim Hizmeti (AWS KMS) şifreleme anahtarları, böylece mevcut modelleri ve çözümleri kurumsal ortamınızda güvenle kullanabilirsiniz. Güvenlik ayarlarınızı Studio içinde veya SageMaker Python SDK aracılığıyla JumpStart'a iletebilirsiniz.

Görüntü sınıflandırması

Görüntü sınıflandırması, bir görüntünün eğitim veri kümesindeki sınıf etiketlerinden birine sınıflandırılmasını ifade eder. Modelde, herhangi bir sayıda sınıfa ait görüntüleri içeren herhangi bir veri kümesine ince ayar yapabilirsiniz. JumpStart'ta ince ayar için kullanılabilen model, karşılık gelen özellik çıkarıcı modeline bir sınıflandırma katmanı ekler ve katman parametrelerini rastgele değerlere başlatır. Sınıflandırma katmanının çıktı boyutu, girdi verilerindeki sınıf sayısına göre belirlenir. İnce ayar adımı, özellik çıkarıcı modelinin parametrelerini donmuş halde tutarken sınıflandırma katmanı parametrelerini ayarlar ve ince ayarlı modeli döndürür. Amaç, giriş verilerindeki tahmin hatasını en aza indirmektir.

Veri kümemiz için girdi, sınıf sayısı kadar alt dizine sahip bir dizindir. Her alt dizin, o sınıfa ait .jpg formatında resimlere sahip olmalıdır. Eğitim verileri iki sınıftan görüntüler içeriyorsa, giriş dizini aşağıdaki hiyerarşi gibi görünmelidir: roses ve dandelion:

input_directory |--roses |--abc.jpg |--def.jpg |--dandelion |--ghi.jpg |--jkl.jpg

Klasörlerin, sınıfların ve .jpg dosya adlarının adları herhangi bir şey olabilir.

Biz sağlıyoruz tf_flowers1 modelde ince ayar yapmak için varsayılan veri kümesi olarak veri kümesi. Bu veri seti, beş çiçek türünün görüntülerini içermektedir. Veri seti şuradan indirildi: TensorFlow.

İzlenecek yola genel bakış

Aşağıdaki bölümler, hem Studio UI hem de JumpStart API'leri aracılığıyla JumpStart ile görüntü sınıflandırması gerçekleştirmek için adım adım bir demo sağlar.

Aşağıdaki adımlardan geçiyoruz:

  1. Studio Kullanıcı Arayüzü aracılığıyla JumpStart'a erişin:
    1. Önceden eğitilmiş modelde ince ayar yapın.
    2. İnce ayarlanmış modeli dağıtın.
    3. İnce ayarlanmış modeli aşamalı olarak eğitin ve yeniden konuşlandırın.
  2. JumpStart'ı SageMaker Python SDK ile programlı olarak kullanın:
    1. Önceden eğitilmiş modelde ince ayar yapın.
    2. İnce ayarlanmış modeli dağıtın.
    3. İnce ayarlanmış modeli aşamalı olarak eğitin ve yeniden konuşlandırın.

Studio UI aracılığıyla JumpStart'a erişin

Bu bölümde, Studio UI aracılığıyla JumpStart modellerinin nasıl ince ayar yapılacağını ve dağıtılacağını gösteriyoruz. Ek olarak, daha önce ince ayar yaptığınız bir modeli aşamalı olarak nasıl eğiteceğinizi gösteriyoruz.

Önceden eğitilmiş modelde ince ayar yapın

Aşağıdaki video, JumpStart'ta önceden eğitilmiş bir görüntü sınıflandırma modelini nasıl bulacağınızı ve ince ayarını nasıl yapacağınızı gösterir. Model sayfası, model, nasıl kullanılacağı, beklenen veri formatı ve bazı ince ayar ayrıntıları hakkında değerli bilgiler içerir.

Gösteri amacıyla, varsayılan olarak sağlanan veri kümesini kullanarak modele ince ayar yaparız; tf_flowers farklı çiçek türlerinden oluşan veri seti. Kendi veri kümenizde ince ayar yapmak, verilerin doğru biçimlendirilmesini (model sayfasında açıklandığı gibi), Amazon Basit Depolama Hizmeti (Amazon S3) ve veri kaynağı yapılandırmasında konumunu belirtme.

Varsayılan olarak ayarlanan aynı hiperparametre değerlerini kullanıyoruz (dönem sayısı, öğrenme oranı ve parti boyutu). Ayrıca SageMaker eğitim örneğimiz olarak GPU destekli bir ml.p3.2xlarge örneği kullanıyoruz.

Eğitim işinizi doğrudan Studio konsolunda izleyebilirsiniz ve tamamlandığında size bildirilir.

İnce ayarlanmış modeli dağıtın

Eğitim tamamlandıktan sonra, ince ayarlanmış modeli eğitim işi ayrıntılarını içeren aynı sayfadan dağıtabilirsiniz. Modelimizi dağıtmak için ml.p2.xlarge adında farklı bir örnek türü seçiyoruz. Düşük çıkarım gecikmesi için gereken GPU hızlandırmasını sağlamaya devam eder, ancak daha düşük bir fiyatla. SageMaker barındırma örneğini yapılandırdıktan sonra, Sürüş. Kalıcı uç noktanızın çalışır duruma gelmesi 5-10 dakika sürebilir.

O zaman uç noktanız çalışır durumda ve çıkarım taleplerine yanıt vermeye hazır!

Çıkarım sürenizi hızlandırmak için JumpStart, yeni dağıtılan uç noktanızda çıkarımı nasıl çalıştıracağınızı gösteren örnek bir not defteri sağlar. Seçmek Not Defterini Aç altında Uç Noktayı Kullan Studio'dan.

İnce ayarlanmış modeli aşamalı olarak eğitin ve dağıtın

İnce ayar tamamlandığında, performansı artırmak için modeli daha fazla eğitebilirsiniz. Bu adım, zaten ince ayar yapılmış modeli başlangıç ​​noktası olarak kullanmamız dışında, ilk ince ayar işlemine çok benzer. Yeni veriler kullanabilirsiniz, ancak veri kümesi biçimi aynı olmalıdır (aynı sınıf kümesi).

JumpStart'ı SageMaker SDK ile programlı olarak kullanın

Önceki bölümlerde, bir modeli birkaç tıklamayla etkileşimli olarak ince ayar yapmak, dağıtmak ve aşamalı olarak eğitmek için JumpStart Kullanıcı Arayüzü'nü nasıl kullanabileceğinizi gösterdik. Ayrıca SageMaker SDK'ya entegre edilmiş API'leri kullanarak JumpStart'ın modellerini ve programlı olarak kolay ince ayarını da kullanabilirsiniz. Şimdi, önceki süreci nasıl çoğaltabileceğinize dair hızlı bir örneğin üzerinden geçiyoruz. Bu demodaki tüm adımlar, beraberindeki not defterlerinde mevcuttur. JumpStart'a Giriş – Görüntü Sınıflandırma.

Önceden eğitilmiş modelde ince ayar yapın

Seçili bir modelde ince ayar yapmak için, o modelin URI'sinin yanı sıra eğitim betiğinin URI'sini ve eğitim için kullanılan kapsayıcı görüntüsünü almamız gerekir. Neyse ki, bu üç girdi yalnızca model adına, sürüme bağlıdır (mevcut modellerin listesi için bkz. Hızlı Başlangıç ​​Mevcut Model Tablosu) ve üzerinde eğitim almak istediğiniz örneğin türü. Bu, aşağıdaki kod parçacığında gösterilmiştir:

from sagemaker import image_uris, model_uris, script_uris model_id, model_version = "pytorch-ic-mobilenet-v2", "1.0.0"
training_instance_type = "ml.p3.2xlarge" # Retrieve the docker image
train_image_uri = image_uris.retrieve( region=None, framework=None, model_id=model_id, model_version=model_version, image_scope="training", instance_type=training_instance_type,
) # Retrieve the training script
train_source_uri = script_uris.retrieve(model_id=model_id, model_version=model_version, script_scope="training") # Retrieve the pre-trained model tarball to further fine-tune
train_model_uri = model_uris.retrieve(model_id=model_id, model_version=model_version, model_scope="training")

geri alıyoruz model_id daha önce kullandığımız aynı modele karşılık gelir. Tanımlayıcıdaki ic, görüntü sınıflandırmasına karşılık gelir.

Artık bu JumpStart modeline SageMaker SDK'yı kullanarak kendi özel veri kümenizde ince ayar yapabilirsiniz. aynısını kullanıyoruz tf_flowers Amazon S3'te herkese açık olarak barındırılan ve uygun bir şekilde duyarlılık analizine odaklanan veri kümesi. Veri kümeniz, önceki bölümde açıklandığı gibi ince ayar için yapılandırılmalıdır. Aşağıdaki örnek koda bakın:

# URI of your training dataset
training_dataset_s3_path = "s3://jumpstart-cache-prod-us-west-2/training-datasets/tf_flowers/"
training_job_name = name_from_base(f"jumpstart-example-{model_id}-transfer-learning") # Create SageMaker Estimator instance
ic_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,
) # Launch a SageMaker Training job by passing s3 path of the training data
ic_estimator.fit({"training": training_dataset_s3_path}, logs=True)

Seçtiğimiz model için önceki bölümde gördüğümüzle aynı varsayılan hiperparametreleri aşağıdakileri kullanarak elde ederiz: sagemaker.hyperparameters.retrieve_default(). Daha sonra bir SageMaker tahmincisi başlatır ve modelimizde ince ayar yapmaya başlamak için .fit yöntemini çağırır ve eğitim verilerimiz için Amazon S3 URI'sini iletiriz. Gördüğünüz gibi, entry_point sağlanan komut dosyası adlandırıldı transfer_learning.py (diğer görevler ve modeller için aynı) ve iletilen giriş veri kanalı .fit adlandırılmalı training.

İnce ayarlanmış modeli dağıtma

Eğitim tamamlandığında, ince ayarlı modelinizi dağıtabilirsiniz. Bunu yapmak için elde etmemiz gereken tek şey, çıkarım komut dosyası URI'si (dağıtıldıktan sonra modelin çıkarım için nasıl kullanıldığını belirleyen kod) ve seçtiğimiz modeli barındırmak için uygun bir model sunucusu içeren çıkarım kapsayıcı görüntü URI'sidir. Aşağıdaki koda bakın:

# Retrieve the inference docker container uri
deploy_image_uri = image_uris.retrieve( region=None, framework=None, image_scope="inference", model_id=model_id, model_version=model_version, instance_type=inference_instance_type,
)
# Retrieve the inference script uri
deploy_source_uri = script_uris.retrieve( model_id=model_id, model_version=model_version, script_scope="inference"
) endpoint_name = name_from_base(f"jumpstart-example-FT-{model_id}-") # Use the estimator from the previous step to deploy to a SageMaker endpoint
finetuned_predictor = ic_estimator.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,
)

Birkaç dakika sonra modelimiz devreye girer ve ondan gerçek zamanlı olarak tahminler alabiliriz!

Ardından, örnek görüntüde ne tür çiçeklerin bulunduğunu tahmin etmek için uç noktayı çağırırız. kullanıyoruz query_endpoint ve parse_response ekte tanımlanan yardımcı işlevler defter.

query_response = finetuned_predictor.predict( img, {"ContentType": "application/x-image", "Accept": "application/json;verbose"} )
model_predictions = json.loads(query_response)
predicted_label = model_predictions["predicted_label"]
display( HTML( f'<img src={image_filename} alt={image_filename} align="left" style="width: 250px;"/>' f"<figcaption>Predicted Label: {predicted_label}</figcaption>" )
)

İnce ayarlanmış modeli aşamalı olarak eğitin ve yeniden konuşlandırın

İnce ayarlı bir modelin performansını, onu yeni görüntüler üzerinde daha fazla eğiterek artırabiliriz. Bunun için istediğiniz sayıda yeni veya eski görüntü kullanabilirsiniz, ancak veri kümesi formatı aynı kalmalıdır (aynı sınıf kümesi). Artımlı eğitim adımı, önemli bir farkla ince ayar sürecine benzer: ilk ince ayarda önceden eğitilmiş bir modelle başlarız, artımlı eğitimde ise mevcut bir ince ayarlı modelle başlarız. Aşağıdaki koda bakın:

last_trained_model_path = f"{s3_output_location}/{last_training_job_name}/output/model.tar.gz"
incremental_s3_output_location = f"s3://{output_bucket}/{incremental_output_prefix}/output"incremental_train_estimator = Estimator( role=aws_role, image_uri=train_image_uri, source_dir=train_source_uri, model_uri=last_trained_model_path, entry_point="transfer_learning.py", instance_count=1, instance_type=training_instance_type, max_run=360000, hyperparameters=hyperparameters, output_path=incremental_s3_output_location, base_job_name=incremental_training_job_name,
) incremental_train_estimator.fit({"training": training_dataset_s3_path}, logs=True)

Eğitim tamamlandığında, modeli dağıtmak için önceki bölümde açıklanan adımların aynısını kullanabiliriz.

Sonuç

JumpStart, SageMaker'da ML ile hızlı bir şekilde başlamanıza olanak tanıyan bir özelliktir. JumpStart, görüntü sınıflandırma, nesne algılama, metin sınıflandırma, cümle çifti sınıflandırma ve soru yanıtlama gibi yaygın ML sorunlarını çözmek için açık kaynaklı önceden eğitilmiş modeller kullanır.

Bu gönderide, önceden eğitilmiş bir görüntü sınıflandırma modeline nasıl ince ayar yapacağınızı ve dağıtacağınızı gösterdik. Ayrıca görüntü sınıflandırması için ince ayarlı bir modelin aşamalı olarak nasıl eğitileceğini gösterdik. JumpStart ile kodlamaya gerek duymadan bu işlemi kolaylıkla gerçekleştirebilirsiniz. Çözümü kendi başınıza deneyin ve yorumlarda nasıl olduğunu bize bildirin. JumpStart hakkında daha fazla bilgi edinmek için AWS re:Invent 2020 videosunu izleyin Amazon SageMaker JumpStart ile dakikalar içinde ML kullanmaya başlayın.

Referanslar

  1. TensorFlow Ekibi, 2019

Yazarlar Hakkında

Amazon SageMaker JumpStart PlatoBlockchain Veri Zekası ile artımlı eğitim. Dikey Arama. Ai.Dr.Vivek Madan Amazon SageMaker JumpStart ekibinde bir Uygulamalı Bilim Adamıdır. Doktorasını aldı. Urbana-Champaign'deki Illinois Üniversitesi'nden ve Georgia Tech'de Doktora Sonrası Araştırmacıydı. Makine öğrenimi ve algoritma tasarımında aktif bir araştırmacıdır ve EMNLP, ICLR, COLT, FOCS ve SODA konferanslarında makaleler yayınlamıştır.

Amazon SageMaker JumpStart PlatoBlockchain Veri Zekası ile artımlı eğitim. Dikey Arama. Ai.Joao Moura Amazon Web Services'de AI/ML Uzman Çözüm Mimarıdır. Çoğunlukla NLP kullanım örneklerine odaklanıyor ve müşterilerin derin öğrenme modeli eğitimini ve dağıtımını optimize etmesine yardımcı oluyor. Ayrıca, düşük kodlu ML çözümlerinin ve ML'ye özel donanımın aktif bir savunucusudur.

Amazon SageMaker JumpStart PlatoBlockchain Veri Zekası ile artımlı eğitim. 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, ACL ve EMNLP konferanslarında birçok makale yayınlamıştır.

Zaman Damgası:

Den fazla AWS Makine Öğrenimi