Amazon SageMaker modellerini eğitmek için gereken veri miktarını en aza indirmek için veri merkezli bir yaklaşım kullanın

Amazon SageMaker modellerini eğitmek için gereken veri miktarını en aza indirmek için veri merkezli bir yaklaşım kullanın

Makine öğrenimi (ML) modelleri geliştikçe, veri bilimciler, makine öğrenimi mühendisleri ve araştırmacılar, dikkatlerini daha çok veri kalitesini tanımlamaya ve iyileştirmeye kaydırdı. Bu, makine öğrenimine yönelik veri merkezli bir yaklaşımın ve veri gereksinimlerine odaklanarak model performansını iyileştirmek için çeşitli tekniklerin ortaya çıkmasına yol açmıştır. Bu teknikleri uygulamak, makine öğrenimi uygulayıcılarının bir makine öğrenimi modelini eğitmek için gereken veri miktarını azaltmasına olanak tanır.

Bu yaklaşımın bir parçası olarak, girdi veri miktarını azaltarak eğitimi hızlandırmak için gelişmiş veri altkümesi seçim teknikleri ortaya çıkmıştır. Bu süreç, daha büyük bir veri kümesinin dağılımına yaklaşan belirli sayıda noktayı otomatik olarak seçmeye ve bunu eğitim için kullanmaya dayanır. Bu tür bir tekniği uygulamak, bir makine öğrenimi modelini eğitmek için gereken süreyi azaltır.

Bu gönderide, veri merkezli yapay zeka ilkelerini aşağıdakilerle uygulamayı açıklıyoruz: Amazon SageMaker Yer Gerçeğikullanarak veri altkümesi seçim tekniklerinin nasıl uygulanacağını KABLOLAR açık depo Amazon Adaçayı Yapıcı bir ilk modeli eğitmek için gereken veri miktarını azaltmak ve bu yaklaşımı kullanarak deneylerin nasıl yürütüleceğini Amazon SageMaker Deneyleri.

Makine öğrenimine veri merkezli bir yaklaşım

Veri alt kümesi seçimi gibi daha gelişmiş veri merkezli tekniklere dalmadan önce, veri etiketleme sürecinize bir dizi temel ilke uygulayarak veri kümelerinizi birden çok şekilde iyileştirebilirsiniz. Bunun için Ground Truth, etiket tutarlılığını ve veri kalitesini iyileştirmek için çeşitli mekanizmaları destekler.

Etiket tutarlılığı, model performansını iyileştirmek için önemlidir. Bu olmadan modeller, farklı sınıflara ait her noktayı ayıran bir karar sınırı üretemez. Tutarlılığı sağlamanın bir yolu kullanmaktır. Ground Truth'ta ek açıklama birleştirme, belirli bir örneği birden çok etiketleyiciye sunmanıza ve bu örnek için temel gerçek olarak sağlanan toplu etiketi kullanmanıza olanak tanır. Etiketteki sapma, Ground Truth tarafından oluşturulan güven puanı ile ölçülür. Etiketlerde farklılık olduğunda, etiketleyicilerinize sağlanan etiketleme talimatlarında kaldırılabilecek bir belirsizlik olup olmadığına bakmalısınız. Bu yaklaşım, etiketleri daha tutarlı hale getirmenin merkezinde yer alan bireysel etiketleyicilerin yanlılığının etkilerini azaltır.

Verilere odaklanarak model performansını iyileştirmenin bir başka yolu, iyileştirilecek en önemli veri alt kümesini belirlemek için ortaya çıkan etiketlerdeki hataları analiz etmek için yöntemler geliştirmektir. Bunu, eğitim veri setiniz için, etiketli örneklere dalmayı ve Amazon Bulut İzleme Ground Truth etiketleme işleri tarafından oluşturulan günlükler ve ölçümler. Veri kümemiz için bir sonraki etiketleme yinelemesini yürütmek için modelin çıkarım zamanında yaptığı hatalara bakmak da önemlidir. Bu mekanizmalara ek olarak; Amazon SageMaker Netleştirin veri bilimcilerin ve makine öğrenimi mühendislerinin aşağıdaki gibi algoritmaları çalıştırmasına izin verir: ÇekirdekSHAP modelleri tarafından yapılan tahminleri yorumlamalarına izin vermek. Bahsedildiği gibi, modelin tahminlerine ilişkin daha derin bir açıklama, onu geliştirmek için ilk etiketleme süreciyle ilişkilendirilebilir.

Son olarak, gürültülü veya aşırı gereksiz örnekleri atmayı düşünebilirsiniz. Bunu yapmak, model performansını iyileştirmeye katkıda bulunmayan örnekleri kaldırarak eğitim süresini kısaltmanıza olanak tanır. Ancak, belirli bir veri kümesinin yararlı bir alt kümesini manuel olarak belirlemek zor ve zaman alıcıdır. Bu gönderide açıklanan veri altkümesi seçim tekniklerini uygulamak, bu işlemi yerleşik çerçeveler boyunca otomatikleştirmenize olanak tanır.

Kullanım örneği

Belirtildiği gibi, veri merkezli yapay zeka, modelin mimarisinden ziyade model girdisini geliştirmeye odaklanır. Veri etiketleme veya özellik mühendisliği sırasında bu ilkeleri uyguladıktan sonra, eğitim zamanında veri altkümesi seçimini uygulayarak model girdisine odaklanmaya devam edebilirsiniz.

Bu gönderi için, Verimli ve Sağlam Öğrenme için Genelleme tabanlı Veri Alt Kümesi Seçimi uyguluyoruz (GLİSTERCORDS deposunda uygulanan birçok veri altkümesi seçim tekniğinden biri olan ), bir eğitim algoritmasına ResNet-18 sınıflandırmak için bir modeli eğitmek için gereken süreyi en aza indirmek için model Cifar-10 Görüntüler. Aşağıda, CIFAR-10 veri kümesinden alınan ilgili etiketleriyle birlikte bazı örnek resimler bulunmaktadır.

CIFAR Veri Kümesi

ResNet-18 genellikle sınıflandırma görevleri için kullanılır. 18 katmanlı derin evrişimli bir sinir ağıdır. CIFAR-10 veri seti genellikle makine öğrenimindeki çeşitli tekniklerin ve yaklaşımların geçerliliğini değerlendirmek için kullanılır. 60,000 sınıfta etiketlenmiş 32 32×10 renkli görüntüden oluşur.

Aşağıdaki bölümlerde, GLISTER'ın aşağıdaki soruyu bir dereceye kadar yanıtlamanıza nasıl yardımcı olabileceğini gösteriyoruz:

Eğitim sırasında belirli bir veri kümesinin yüzde kaçını kullanabilir ve yine de iyi bir model performansı elde edebiliriz?

GLISTER'ı eğitim algoritmanıza uygulamak, kesri eğitim algoritmanıza bir hiperparametre olarak getirecektir. Bu, kullanmak istediğiniz verilen veri kümesinin yüzdesini temsil eder. Herhangi bir hiperparametrede olduğu gibi, modeliniz ve verileriniz için en iyi sonucu üreten değeri bulmak için ince ayar gerekir. Bu yazıda hiperparametre ayarına derinlemesine girmiyoruz. Daha fazla bilgi için bkz. Amazon SageMaker Otomatik Model Ayarlama ile hiperparametreleri optimize edin.

Yaklaşımın etkisini ölçmek için SageMaker Deneylerini kullanarak birkaç test gerçekleştiriyoruz. Sonuçlar ilk veri kümesine bağlı olarak değişiklik gösterecektir, bu nedenle yaklaşımı farklı alt küme boyutlarındaki verilerimize karşı test etmek önemlidir.

GLISTER'ı görüntüler üzerinde kullanmayı tartışsak da, bunu yapılandırılmış veya tablo halindeki verilerle çalışan eğitim algoritmalarına da uygulayabilirsiniz.

Veri alt kümesi seçimi

Veri alt kümesi seçiminin amacı, doğruluk üzerindeki etkileri en aza indirirken ve model sağlamlığını artırırken eğitim sürecini hızlandırmaktır. Daha spesifik olarak, GLISTER-ONLINE, belirttiğiniz doğrulama setindeki eğitim verileri altkümesinin log-olabilirliğini maksimize etmeye çalışarak model öğrenirken bir altküme seçer. Veri alt kümesi seçimini bu şekilde optimize etmek, gerçek dünya veri kümelerinde sıklıkla bulunan gürültü ve sınıf dengesizliğini azaltır ve model öğrenirken alt küme seçim stratejisinin uyum sağlamasına olanak tanır.

Başlangıç GLİSTER kağıt kullanılarak takip edilen çeşitli veri alt kümesi boyutlarında bir hızlanma/doğruluk değiş tokuşunu açıklar. Lenet Model:

Alt küme boyutu Speedup doğruluk
İNDİRİM 6x -3%
İNDİRİM 2.5x -1.20%
İNDİRİM 1.5x -0.20%

Modeli eğitmek için bir SageMaker eğitim işi özel bir eğitim komut dosyası kullanarak. Ayrıca görüntü veri kümemizi şuraya zaten yükledik: Amazon Basit Depolama Hizmeti (Amazon S3). Herhangi bir SageMaker eğitim işinde olduğu gibi, bir Estimator nesne. PyTorch tahmincisi sagemaker.pytorch paketi, yönetilen bir PyTorch kapsayıcısında kendi eğitim betiğimizi çalıştırmamıza izin verir. bu inputs tahmin ediciye iletilen değişken .fit işlevi, eğitim ve doğrulama veri kümesinin S3 konumunun bir sözlüğünü içerir.

The train.py komut dosyası, bir eğitim işi başlatıldığında çalıştırılır. Bu betikte ResNet-18 modelini CORDS kütüphanesinden import ediyoruz ve verisetimizde bulunan sınıf sayısını aşağıdaki gibi ona aktarıyoruz:

from cords.utils.models import ResNet18 numclasses = 10
model = ResNet18(numclasses)

Ardından, gen_dataset eğitim, doğrulama ve test veri kümeleri oluşturmak için CORDS işlevi:

from cords.utils.data.datasets.SL import gen_dataset train_set, validation_set, test_set, numclasses = gen_dataset(
datadir="/opt/ml/input/data/training",
dset_name="cifar10",
feature="dss",
type="image")

Her veri kümesinden eşdeğer bir PyTorch veri yükleyicisi oluşturuyoruz:

train_loader = torch.utils.data.DataLoader(train_set,
batch_size=batch_size,
shuffle=True) validation_loader = torch.utils.data.DataLoader(validation_set,
batch_size=batch_size,
shuffle=False)

Son olarak, bu veri yükleyicileri oluşturmak için kullanıyoruz. GLISTERDataLoader CORDS kitaplığından. Bu gönderide daha önce tartışıldığı gibi, eğitim sırasında modeli güncellerken alt küme seçimini uygulayan GLISTER-ONLINE seçim stratejisinin bir uygulamasını kullanır.

Nesneyi yaratmak için, seçim stratejisine özgü argümanları bir DotMap ile birlikte nesne train_loader, validation_loader, ve logger:

import logging
from cords.utils.data.dataloader.SL.adaptive import GLISTERDataLoader
from dotmap import DotMap dss_args = # GLISTERDataLoader specific arguments
dss_args = DotMap(dss_args)
dataloader = GLISTERDataLoader(train_loader,
validation_loader,
dss_args,
logger,
batch_size=batch_size,
shuffle=True,
pin_memory=False)

The GLISTERDataLoader artık bir eğitim döngüsüne normal bir veri yükleyici olarak uygulanabilir. Model, o modelin kaybına dayalı olarak öğrenirken, bir sonraki eğitim grubu için veri alt kümelerini seçecektir. Önceki tabloda gösterildiği gibi, bir veri altkümesi seçim stratejisi eklemek, ek veri altkümesi seçimi adımı olsa bile doğrulukta çok az ödün vererek eğitim süresini önemli ölçüde azaltmamıza olanak tanır.

Veri bilimcileri ve makine öğrenimi mühendislerinin genellikle bir yaklaşımın geçerliliğini, onu bazı temel değerlerle karşılaştırarak değerlendirmesi gerekir. Bunu bir sonraki bölümde nasıl yapacağımızı gösteriyoruz.

deneme izleme

Veri altkümesi seçim yaklaşımının geçerliliğini ölçmek için SageMaker Deneylerini kullanabilirsiniz. Daha fazla bilgi için bakınız Yeni nesil Amazon SageMaker Deneyleri – Makine öğrenimi eğitimlerinizi geniş ölçekte düzenleyin, izleyin ve karşılaştırın.

Bizim durumumuzda dört deney yapıyoruz: veri altkümesi seçimi uygulamadan bir taban çizgisi ve farklı olan üç deney daha. fraction genel veri kümesine göre alt kümenin boyutunu temsil eden parametreler. Doğal olarak, daha küçük bir fraction parametre eğitim sürelerinin azalmasına, ancak model doğruluğunun da düşmesine neden olmalıdır.

Bu gönderi için, her eğitim çalıştırması şu şekilde temsil edilir: Run SageMaker Deneylerinde. Deneyimizle ilgili çalıştırmaların tümü tek bir başlık altında toplanmıştır. Experiment nesne. Oluştururken çalıştırmalar ortak bir deneye eklenebilir. Estimator SDK ile. Aşağıdaki koda bakın:

from sagemaker.utils import unique_name_from_base
from sagemaker.experiments.run import Run, load_run experiment_name = unique_name_from_base("data-centric-experiment")
with Run(
experiment_name=experiment_name,
sagemaker_session=sess
) as run:
estimator = PyTorch('train.py',
source_dir="source",
role=role,
instance_type=instance_type,
instance_count=1,
framework_version=framework_version,
py_version='py3',
env={ 'SAGEMAKER_REQUIREMENTS': 'requirements.txt',
})
estimator.fit(inputs)

Özel eğitim betiğinizin bir parçası olarak, şunu kullanarak çalıştırma ölçümlerini toplayabilirsiniz: load_run:

from sagemaker.experiments.run import load_run
from sagemaker.session import Session if __name__ == "__main__":
args = parse_args()
session = Session(boto3.session.Session(region_name=args.region))
with load_run(sagemaker_session=session) as run:
train(args, run)

Ardından, önceki işlem tarafından döndürülen çalıştırma nesnesini kullanarak u çağırarak çağ başına veri noktaları toplayabilirsiniz. run.log_metric(name, value, step) ve metrik adının, değerinin ve geçerli çağ numarasının sağlanması.

Yaklaşımımızın geçerliliğini ölçmek için eğitim kaybı, eğitim doğruluğu, doğrulama kaybı, doğrulama doğruluğu ve bir çağı tamamlama süresine karşılık gelen ölçümleri topluyoruz. Ardından, eğitim işlerini yürüttükten sonra, deneyimizin sonuçlarını gözden geçirin in Amazon SageMaker Stüdyosu veya SageMaker Deneyleri SDK'sı aracılığıyla.

Studio'daki doğrulama doğruluklarını görüntülemek için Çözümlemek deneyde Runs gidin.

Deney Listesi

Bir grafik ekleyin, grafik özelliklerini ayarlayın ve oluşturmak. Aşağıdaki ekran görüntüsünde gösterildiği gibi, tüm çalıştırmalar için her çağda bir doğrulama doğruluğu grafiği göreceksiniz.

Deney Tablosu

SDK, deneyle ilgili bilgileri bir Pandas veri çerçevesi olarak almanıza da olanak tanır:

from sagemaker.analytics import ExperimentAnalytics trial_component_analytics = ExperimentAnalytics(
sagemaker_session=sess.sagemaker_client,
experiment_name=experiment_name
)
analytic_table = trial_component_analytics.dataframe()

İsteğe bağlı olarak, eğitim işleri sıralanabilir. Örneğin, ekleyebiliriz "metrics.validation:accuracy.max" değeri olarak sort_by parametre iletildi ExperimentAnalytics doğrulama doğruluğuna göre sıralanan sonucu döndürmek için.

Beklendiği gibi, deneylerimiz GLISTER ve veri alt kümesi seçiminin eğitim algoritmasına uygulanmasının eğitim süresini azalttığını göstermektedir. Temel eğitim algoritmamızı çalıştırırken, tek bir dönemi tamamlamak için gereken medyan süre yaklaşık 27 saniyedir. Buna karşılık, genel veri kümesinin %50'sine, %30'una ve %10'una eşdeğer bir alt küme seçmek için GLISTER uygulamak, ml.p13xlarge örneklerinde sırasıyla yaklaşık 8.5, 2.75 ve 3.2 saniyelik bir dönemi tamamlamak için sürelerle sonuçlanır. .

Ayrıca, özellikle %50'lik veri alt kümelerini kullanırken doğrulama doğruluğu üzerinde nispeten minimum bir etki gözlemliyoruz. 100 dönemlik eğitimden sonra taban çizgisi, %92.72'lik bir doğrulama doğruluğu üretir. Buna karşılık, genel veri kümesinin %50, %30 ve %10'una eşdeğer bir alt küme seçmek için GLISTER uygulamak, sırasıyla %91.42, %89.76 ve %82.82'lik doğrulama doğruluğuyla sonuçlanır.

Sonuç

SageMaker Ground Truth ve SageMaker Deneyleri, veri bilimcilerin ve makine öğrenimi mühendislerinin daha tutarlı veri kümeleri üretmelerine ve model oluşturma aşamasında uygularken daha gelişmiş tekniklerin etkisini izlemelerine olanak tanıyarak makine öğrenimine veri merkezli bir yaklaşım sağlar. Makine öğrenimine veri merkezli bir yaklaşım uygulamak, modelinizin gerektirdiği veri miktarını azaltmanıza ve sağlamlığını artırmanıza olanak tanır.

Bir deneyin ve yorumlarda ne düşündüğünüzü bize bildirin.


yazarlar hakkında

Amazon SageMaker modelleri PlatoBlockchain Veri Zekasını eğitmek için gereken veri miktarını en aza indirmek için veri merkezli bir yaklaşım kullanın. Dikey Arama. Ai.Nicolas Bernier AWS'de Kanada Kamu Sektörü ekibinin bir parçası olan bir Çözüm Mimarıdır. Şu anda Derin Öğrenme alanında bir araştırma alanında yüksek lisans yapmaktadır ve Makine Öğrenimi Uzmanlık Sertifikasyonu da dahil olmak üzere beş AWS sertifikasına sahiptir. Nicolas, iş zorluklarını teknik çözümlere dönüştürmek için onlarla birlikte çalışarak müşterilerin AWS bilgilerini derinleştirmelerine yardımcı olma konusunda tutkulu.

Amazon SageMaker modelleri PlatoBlockchain Veri Zekasını eğitmek için gereken veri miktarını en aza indirmek için veri merkezli bir yaklaşım kullanın. Dikey Arama. Ai.Givanildo Alves Amazon Web Services'ta Prototipleme ve Bulut Mühendisliği ekibinde Prototipleme Mimarı olup, halihazırda yapay zeka etrafında birkaç prototip uygulamış olan müşterilerin AWS'de mümkün olan sanatı göstererek yenilik yapmasına ve hızlandırmasına yardımcı olmaktadır. Yazılım mühendisliği alanında uzun bir kariyere sahiptir ve daha önce Amazon.com.br'de Yazılım Geliştirme Mühendisi olarak çalışmıştır.

Zaman Damgası:

Den fazla AWS Makine Öğrenimi