Zephyrnet Logosu

Ağırlıklar ve Önyargılar ile makine öğrenimi geliştirici üretkenliğini artırın: Amazon SageMaker'da bir bilgisayarla görme örneği

Tarih:

Bu gönderideki içerik ve görüşler üçüncü taraf yazara aittir ve AWS bu gönderinin içeriğinden veya doğruluğundan sorumlu değildir.

Daha fazla kuruluş, bilgisayarla görme ve doğal dil işleme gibi derin öğrenme tekniklerini kullandığından, makine öğrenimi (ML) geliştirici personelinin deney izleme, köken ve işbirliği etrafında ölçeklenebilir araçlara ihtiyacı vardır. Deneme izleme, işletim sistemi, kullanılan altyapı, kitaplık ve giriş ve çıkış veri kümeleri gibi meta verileri içerir ve bunlar genellikle bir elektronik tabloda manuel olarak izlenir. Lineage, bir ML modeli oluşturmak için kullanılan veri kümelerini, dönüşümleri ve algoritmaları izlemeyi içerir. İşbirliği, tek bir proje üzerinde çalışan makine öğrenimi geliştiricilerini ve ayrıca ekipler arasında ve iş paydaşlarıyla sonuçlarını paylaşan makine öğrenimi geliştiricilerini içerir; bu genellikle e-posta, ekran görüntüleri ve PowerPoint sunumları aracılığıyla gerçekleştirilir.

Bu yazıda, Ağırlıklar ve Önyargılar (W&B) kullanarak otonom bir araç kullanım durumu için nesneleri tanımlamak üzere bir model eğitiyoruz ve Amazon Adaçayı Yapıcı. Ortak çözümün makine öğrenimi geliştiricisi için manuel çalışmayı nasıl azalttığını, model geliştirme sürecinde daha fazla şeffaflık oluşturduğunu ve ekiplerin projeler üzerinde işbirliği yapmasını nasıl sağladığını gösteriyoruz.

Bu örneği çalıştırıyoruz Amazon SageMaker Stüdyosu Kendiniz denemeniz için.

Ağırlıklara ve Önyargılara Genel Bakış

Weights & Biases, makine öğrenimi ekiplerinin daha iyi modelleri daha hızlı oluşturmasına yardımcı olur. SageMaker not defterinizde yalnızca birkaç satır kodla, mimari, hiperparametreler, git kesinleştirmeleri, model ağırlıkları, GPU kullanımı, veri kümeleri ve tahminler gibi modellerinizde anında hata ayıklayabilir, karşılaştırabilir ve yeniden oluşturabilirsiniz.

W&B, dünyadaki en yenilikçi şirketlerden ve araştırma kuruluşlarından bazılarından 200,000'den fazla ML uygulayıcısı tarafından güvenilmektedir. Ücretsiz denemek için, kaydolun Ağırlıklar ve ÖnyargılarVeya ziyaret W&B AWS Marketplace listesi.

SageMaker Studio'yu kullanmaya başlama

SageMaker Studio, ML için ilk tam entegre geliştirme ortamıdır (IDE). Studio, makine öğrenimi pratisyenlerinin ve veri bilimcilerinin birkaç tıklamayla tek bir yerde modeller oluşturabileceği, eğitebileceği ve dağıtabileceği tek bir web tabanlı arabirim sağlar.

Studio'yu kullanmaya başlamak için bir AWS hesabına ve AWS Kimlik ve Erişim Yönetimi (IAM) bir Studio alanı oluşturma izinlerine sahip kullanıcı veya rol. bkz. Amazon SageMaker Etki Alanında Yerleşik bir etki alanı oluşturmak için ve Stüdyo belgeleri Studio görsel arabirimini ve not defterlerini kullanmaya ilişkin bir genel bakış için.

ortamı kurun

Bu gönderi için kendi kodumuzu çalıştırmakla ilgileniyoruz, bu yüzden GitHub'dan bazı not defterlerini içe aktaralım. Aşağıdakileri kullanıyoruz GitHub repo örnek olarak, hadi yükleyelim bu defter.

Bir havuzu terminal veya Studio UI aracılığıyla klonlayabilirsiniz. Terminal aracılığıyla bir havuzu klonlamak için bir sistem terminali açın ( fileto menü seç yeni ve terminal) ve aşağıdaki komutu girin:

git clone https://github.com/wandb/SageMakerStudio

Studio kullanıcı arayüzünden bir depoyu klonlamak için bkz. SageMaker Studio'da Git Deposunu Klonlayın.

Başlamak için, 01_data_processing.ipynb not defteri. Sizden bir çekirdek değiştirici istemi istenir. Bu örnek PyTorch'u kullanır, böylece önceden oluşturulmuş PyTorch 1.10 Python 3.8 GPU optimize edildi Not defterimizi başlatmak için resim. Uygulamanın başladığını görebilirsiniz ve çekirdek hazır olduğunda, dizüstü bilgisayarınızın sağ üst köşesinde örnek türünü ve çekirdeği gösterir.

Dizüstü bilgisayarımızın bazı ek bağımlılıklara ihtiyacı var. Bu depo, ek bağımlılıkları olan bir gereksinim.txt dosyası sağlar. Gerekli bağımlılıkları kurmak için ilk hücreyi çalıştırın:

%pip install -r requirements.txt

PyTorch uygulamasını her başlattığınızda paketleri otomatik olarak yüklemek için bir yaşam döngüsü yapılandırması da oluşturabilirsiniz. Görmek Amazon SageMaker Studio'yu Yaşam Döngüsü Yapılandırmalarını kullanarak özelleştirin talimatlar ve örnek bir uygulama için.

SageMaker Studio'da Ağırlıkları ve Önyargıları Kullanın

Ağırlıklar ve Önyargılar (wandb) standart bir Python kitaplığıdır. Kurulduktan sonra, eğitim komut dosyanıza birkaç satır kod eklemek kadar basittir ve deneyleri günlüğe kaydetmeye hazırsınız. Bunu zaten gereksinimlerimiz.txt dosyamız aracılığıyla yükledik. Ayrıca aşağıdaki kodla manuel olarak da yükleyebilirsiniz:

! pip install wandb

Örnek olay incelemesi: Otonom araç semantik segmentasyonu

Veri kümesi

Biz kullanın Cambridge-sürüş Etiketli Video Veritabanı (CamVid) bu örnek için. Meta verilerle tamamlanmış, nesne sınıfı anlamsal etiketlere sahip bir video koleksiyonu içerir. Veritabanı, her pikseli 32 semantik sınıftan biriyle ilişkilendiren temel doğruluk etiketleri sağlar. Veri setimizi şu şekilde sürümlendirebiliriz: değnek.Yapı, bu şekilde daha sonra başvurabiliriz. Aşağıdaki koda bakın:

with wandb.init(project="sagemaker_camvid_demo", job_type="upload"):
   artifact = wandb.Artifact(
       name='camvid-dataset',
       type='dataset',
       metadata={
           "url": 'https://s3.amazonaws.com/fast-ai-imagelocal/camvid.tgz',
           "class_labels": class_labels
       },
       description="The Cambridge-driving Labeled Video Database (CamVid) is the first collection of videos with object class semantic labels, complete with metadata. The database provides ground truth labels that associate each pixel with one of 32 semantic classes."
   )
   artifact.add_dir(path)
   wandb.log_artifact(artifact)

adresinden takip edebilirsiniz. 01_data_processing.ipynb not defteri.

Biz de günlüğe bir tablo veri kümesinin Tablolar, tablo verilerini sorgulamanıza ve analiz etmenize olanak tanıyan zengin ve güçlü DataFrame benzeri varlıklardır. Merkezi bir gösterge panosunda veri kümelerinizi anlayabilir, model tahminlerini görselleştirebilir ve içgörüleri paylaşabilirsiniz.

Ağırlıklar ve Önyargı tabloları, görüntü, ses ve dalga biçimleri gibi birçok zengin medya biçimini destekler. Medya biçimlerinin tam listesi için bkz. Veri tipleri.

Aşağıdaki ekran görüntüsü, kesin bilgi segmentasyonlarına sahip ham görüntüler içeren bir tabloyu göstermektedir. Ayrıca bir bu tablonun interaktif versiyonu.

görüntü

Bir model eğitin

Artık bir model oluşturabilir ve onu veri setimizde eğitebiliriz. Kullanırız PyTorch ve fastai bir temel çizgiyi hızlı bir şekilde prototiplemek ve ardından kullanmak için wandb.Sweeps hiperparametrelerimizi optimize etmek için. içinde takip edin 02_semantic_segmentation.ipynb not defteri. Not defterini açarken bir çekirdek sorulduğunda, ilk defterimizden aynı çekirdeği seçin, PyTorch 1.10 Python 3.8 GPU optimize edildi. Aynı uygulamayı kullandığınız için paketleriniz zaten yüklendi.

Modelin, otonom aracının bakış açısından yakalanan bir sahnenin piksel başına açıklamasını öğrenmesi gerekiyor. Modelin belirli bir sahnenin her pikselini yol, yaya, kaldırım veya arabalar gibi 32 ilgili kategoriye ayırması veya bölümlere ayırması gerekir. Segmentasyon sonuçları ve kategorilere ulaşmak için tablodaki segmentli görsellerden herhangi birini seçebilir ve bu interaktif arayüze erişebilirsiniz.

Çünkü fastai kütüphane ile entegrasyonu vardır wandb, basitçe geçebilirsiniz WandbCallback Öğrenciye:

from fastai.callback.wandb import WandbCallback

loss_func=FocalLossFlat(axis=1)
model = SegmentationModel(backbone, hidden_dim, num_classes=num_classes)
wandb_callback = WandbCallback(log_preds=True)
   learner = Learner(
        data_loader,
        model,
        loss_func=loss_func,
        metrics=metrics,
        cbs=[wandb_callback],
    )

learn.fit_one_cycle(TRAIN_EPOCHS, LEARNING_RATE)

Temel deneyler için, basit bir mimariden esinlenerek kullanmaya karar verdik. UNet farklı omurgalara sahip kağıt tim. ile modellerimizi eğittik. Odak Kaybı kriter olarak. Ağırlıklar ve Önyargılar ile, aşağıdaki ekran görüntüsünde gösterildiği gibi, egzersiz sonuçlarını hızlı bir şekilde analiz etmek için deneylerinizin özetlerini içeren panoları kolayca oluşturabilirsiniz. Ayrıca bu panoyu etkileşimli olarak görüntüle.

Taramalarla hiperparametre araması

Temel modelin performansını iyileştirmek için, eğitmek için en iyi modeli ve en iyi hiperparametre setini seçmemiz gerekir. W&B, bunu kullanmamızı kolaylaştırıyor kırpıntı.

biz gerçekleştiriyoruz Bayes hiperparametre araması doğrulama veri setinde modelin ön plan doğruluğunu maksimize etmek amacıyla. Süpürmeyi gerçekleştirmek için, süpürme.yaml yapılandırma dosyasını tanımlıyoruz. Bu dosyanın içinde, kullanmak istediğimiz yöntemi iletiyoruz: bayes ve parametreler ve bunlara karşılık gelen değerleri aramak için. Bizim durumumuzda farklı omurgalar, parti boyutları ve kayıp fonksiyonları deniyoruz. Ayrıca öğrenme oranı ve ağırlık düşüşü gibi farklı optimizasyon parametrelerini de keşfediyoruz. Bunlar sürekli değerler olduğundan, bir dağılımdan örnek alırız. birden fazla var taramalar için yapılandırma seçenekleri mevcuttur.

program: train.py
project: sagemaker_camvid_demo
method: bayes
metric:
    name: foreground_acc
    goal: maximize
early_terminate:
    type: hyperband
    min_iter: 5
parameters:
    backbone:
        values: ["mobilenetv2_100","mobilenetv3_small_050","mobilenetv3_large_100","resnet18","resnet34","resnet50","vgg19"]
    batch_size: 
        values: [8, 16]
    image_resize_factor: 
        value: 4
    loss_function: 
        values: ["categorical_cross_entropy", "focal", "dice"]
    learning_rate: 
        distribution: uniform 
        min: 1e-5
        max: 1e-2
    weight_decay: 
        distribution: uniform
        min: 0.0 
        max: 0.05

Daha sonra, bir terminalde, taramayı aşağıdaki komutu kullanarak başlatırsınız: wandb komut satırı:

$ wandb sweep sweep.yaml —-project="sagemaker_camvid_demo"

Ardından, bu makinede aşağıdaki kodla bir süpürme aracısı başlatın:

$ wandb agent <sweep_id>

Tarama bittiğinde, çeşitli omurgalara ve farklı hiperparametre setlerine sahip modellerin performanslarını keşfetmek için paralel bir koordinat grafiği kullanabiliriz. Buna dayanarak, hangi modelin en iyi performansı gösterdiğini görebiliriz.

Aşağıdaki ekran görüntüsü, paralel koordinatlar tablosu ve parametre korelasyon çizelgeleri dahil olmak üzere taramaların sonuçlarını gösterir. Ayrıca bu tarama panosunu etkileşimli olarak görüntüle.

Taramadan aşağıdaki temel bilgileri çıkarabiliriz:

  • Daha düşük öğrenme oranı ve daha düşük ağırlık kaybı, daha iyi ön plan doğruluğu ve Zar puanları sağlar.
  • Parti boyutunun metriklerle güçlü pozitif korelasyonları vardır.
  • The VGG tabanlı omurgalar son modelimizi eğitmek için iyi bir seçenek olmayabilir, çünkü kaybolan gradyan. (Kayıp ayrıştıkça filtrelenirler.)
  • The ResNet omurgalar, metriklere göre en iyi genel performansı sağlar.
  • Nihai model için, metrikler açısından güçlü performansları nedeniyle ResNet34 veya ResNet50 omurgası seçilmelidir.

Veri ve model kökeni

W&B yapıları, dosyalarınızı W&B ile depolamak isteyip istemediğinize veya W&B'nin izlemesini istediğiniz bir paketiniz olup olmadığına bakılmaksızın, veri kümelerinizi ve modellerinizi zahmetsizce sürümlendirmek için tasarlanmıştır. Veri kümelerinizi veya model dosyalarınızı izledikten sonra, W&B her değişikliği otomatik olarak günlüğe kaydeder ve size dosyalarınızdaki değişikliklerin eksiksiz ve denetlenebilir bir geçmişini verir.

Bizim durumumuzda, eğitim sırasında oluşturulan veri seti, modeller ve farklı tablolar çalışma alanına kaydedilir. adresine giderek bu nesli hızlı bir şekilde görüntüleyebilir ve görselleştirebilirsiniz. Eserleri gidin.

görüntü

Model tahminlerini yorumlama

Ağırlık ve Önyargılar, özellikle model performansının gücünü kullanarak değerlendirirken kullanışlıdır. wandb.Tablolar modelimizin nerede kötü durumda olduğunu görselleştirmek için. Bu durumda, özellikle bisikletler ve yayalar gibi savunmasız kullanıcıları doğru şekilde tespit etmekle ilgileniyoruz.

Öngörülen maskeleri, sınıf başına Zar puanı katsayısıyla birlikte bir tabloya kaydettik. Ardından, istenen sınıfları içeren satırlara göre filtre uyguladık ve Dice skoruna göre artan düzende sıraladık.

Aşağıdaki tabloda ilk olarak Dice puanının pozitif olduğu yeri seçerek filtreleme yapıyoruz (resimde yayalar var). Ardından, en kötü tespit edilen yayalarımızı belirlemek için artan düzende sıralarız. 1'e eşit bir Zar puanının, yaya sınıfını doğru şekilde bölümlere ayırmak anlamına geldiğini unutmayın. Ayrıca bu tabloyu etkileşimli olarak görüntüle.

görüntü

Bu analizi bisikletler veya trafik ışıkları gibi diğer hassas sınıflarla tekrarlayabiliriz.

Bu özellik, doğru şekilde etiketlenmemiş görüntüleri tanımlamanın ve yeniden açıklama eklemek üzere etiketlemenin çok iyi bir yoludur.

Sonuç

Bu gönderi, Weights & Biases MLOps platformunu, SageMaker Studio'da W&B'nin nasıl kurulacağını ve ortak çözümde bir tanıtım not defterinin nasıl çalıştırılacağını gösterdi. Daha sonra otonom bir araç semantik segmentasyonu kullanım senaryosunu inceledik ve W&B deneyleriyle izleme eğitimi çalıştırmalarını, W&B taramalarını kullanarak hiperparametre optimizasyonunu ve W&B tablolarıyla sonuçları yorumlamayı gösterdik.

Daha fazlasını öğrenmek istiyorsanız, canlı yayına erişebilirsiniz. W&B raporu. Weights & Biases'i ücretsiz denemek için şu adresten kaydolun: Ağırlıklar ve ÖnyargılarVeya ziyaret W&B AWS Marketplace listesi.


Yazarlar Hakkında

thomas capelle Ağırlıklar ve Önyargılar alanında Makine Öğrenimi Mühendisidir. www.github.com/wandb/examples deposunu canlı ve güncel tutmaktan sorumludur. Ayrıca MLOPS, endüstrilere W&B uygulamaları ve genel olarak eğlenceli derin öğrenme üzerine içerik oluşturuyor. Daha önce güneş enerjisi için kısa vadeli tahminleri çözmek için derin öğrenmeyi kullanıyordu. Kentsel Planlama, Kombinatoryal Optimizasyon, Ulaştırma Ekonomisi ve Uygulamalı Matematik alanlarında bir geçmişi vardır.

Durga Suri Amazon SageMaker Service SA ekibinde bir ML Çözümleri Mimarıdır. Makine öğrenimini herkes için erişilebilir kılmak konusunda tutkulu. AWS'deki 3 yılında kurumsal müşteriler için AI/ML platformlarının kurulmasına yardımcı oldu. Çalışmadığı zamanlarda motosiklete binmeyi, gizem romanlarını ve dört yaşındaki husky'si ile doğa yürüyüşlerini sever.

Karthik Bharathy on yılı aşkın ürün yönetimi, ürün stratejisi, yürütme ve başlatma deneyimiyle Amazon SageMaker'ın ürün lideridir.

spot_img

En Son İstihbarat

spot_img

Bizimle sohbet

Merhaba! Size nasıl yardım edebilirim?