Tablo veri modelleme için yeni yerleşik Amazon SageMaker algoritmaları: LightGBM, CatBoost, AutoGluon-Tabular ve TabTransformer

Kaynak Düğüm: 1541386

Amazon Adaçayı Yapıcı bir süit sağlar yerleşik algoritmalar, önceden eğitilmiş modeller, ve önceden oluşturulmuş çözüm şablonları veri bilimcilerin ve makine öğrenimi (ML) pratisyenlerinin makine öğrenimi modellerini hızla eğitmeye ve dağıtmaya başlamalarına yardımcı olmak. Bu algoritmaları ve modelleri hem denetimli hem de denetimsiz öğrenme için kullanabilirsiniz. Tablo, resim ve metin dahil olmak üzere çeşitli girdi verilerini işleyebilirler.

Bugünden itibaren SageMaker dört yeni yerleşik tablo veri modelleme algoritması sunar: LightGBM, CatBoost, AutoGluon-Tabular ve TabTransformer. Bu popüler, son teknoloji algoritmaları hem tablolu sınıflandırma hem de regresyon görevleri için kullanabilirsiniz. aracılığıyla kullanılabilirler yerleşik algoritmalar SageMaker konsolunda ve ayrıca Amazon SageMaker Hızlı Başlangıç kullanıcı arayüzü Amazon SageMaker Stüdyosu.

Aşağıda, belgelerine, örnek not defterlerine ve kaynağa bağlantılar içeren dört yeni yerleşik algoritmanın listesi bulunmaktadır.

belgeleme Örnek Defterler Kaynak
LightGBM Algoritması Gerileme, Sınıflandırma LightGBM
CatBoost Algoritması Gerileme, Sınıflandırma Kedi Takviyesi
AutoGluon-Tablo Algoritması Gerileme, Sınıflandırma AutoGluon-Tabular
SekmeTransformer Algoritması Gerileme, Sınıflandırma Sekme Dönüştürücü

Aşağıdaki bölümlerde, her bir algoritmanın kısa bir teknik açıklamasını ve SageMaker SDK veya SageMaker Jumpstart aracılığıyla bir modelin nasıl eğitileceğine ilişkin örnekler sunuyoruz.

LightGBM

LightGBM Gradient Boosting Decision Tree (GBDT) algoritmasının popüler ve verimli bir açık kaynaklı uygulamasıdır. GBDT, bir dizi daha basit ve daha zayıf modelden bir dizi tahmin birleştirerek bir hedef değişkeni doğru bir şekilde tahmin etmeye çalışan denetimli bir öğrenme algoritmasıdır. LightGBM, geleneksel GBDT'nin verimliliğini ve ölçeklenebilirliğini önemli ölçüde artırmak için ek teknikler kullanır.

Kedi Takviyesi

Kedi Takviyesi GBDT algoritmasının popüler ve yüksek performanslı bir açık kaynak uygulamasıdır. CatBoost'ta iki kritik algoritmik gelişme sunulmuştur: sıralı yükseltmenin uygulanması, klasik algoritmaya permütasyona dayalı bir alternatif ve kategorik özellikleri işlemek için yenilikçi bir algoritma. Her iki teknik de, gradyan artırma algoritmalarının mevcut tüm uygulamalarında mevcut olan özel bir tür hedef sızıntısının neden olduğu bir tahmin kaymasıyla mücadele etmek için oluşturuldu.

AutoGluon-Tabular

AutoGluon-Tabular Amazon tarafından geliştirilen ve sürdürülen, gelişmiş veri işleme, derin öğrenme ve çok katmanlı yığın birleştirme gerçekleştiren açık kaynaklı bir AutoML projesidir. Metin alanlarının özel olarak işlenmesi de dahil olmak üzere sağlam veri ön işleme için her sütundaki veri türünü otomatik olarak tanır. AutoGluon, kullanıma hazır güçlendirilmiş ağaçlardan özelleştirilmiş sinir ağı modellerine kadar çeşitli modellere uyar. Bu modeller yeni bir şekilde bir araya getirilmiştir: modeller birden çok katmanda istiflenir ve ham verilerin belirli bir zaman kısıtlaması içinde yüksek kaliteli tahminlere çevrilmesini garanti eden katman bazında eğitilir. Bu süreç boyunca, katlanmamış örneklerin dikkatli bir şekilde izlenmesiyle verileri çeşitli şekillerde bölerek aşırı sığdırma azaltılır. AutoGluon, performans için optimize edilmiştir ve kullanıma hazır kullanımı, veri bilimi yarışmalarında birkaç ilk 3 ve ilk 10 sırasını almıştır.

Sekme Dönüştürücü

Sekme Dönüştürücü denetimli öğrenme için yeni bir derin tablo veri modelleme mimarisidir. TabTransformer, öz-dikkat temelli Transformatörler üzerine inşa edilmiştir. Transformer katmanları, daha yüksek tahmin doğruluğu elde etmek için kategorik özelliklerin yerleştirmelerini sağlam bağlamsal yerleştirmelere dönüştürür. Ayrıca, TabTransformer'dan öğrenilen bağlamsal yerleştirmeler, hem eksik hem de gürültülü veri özelliklerine karşı oldukça sağlamdır ve daha iyi yorumlanabilirlik sağlar. Bu model son yılların ürünüdür. Amazon Bilim Araştırma (kâğıt ve resmi blog yazısı burada) ve çeşitli üçüncü taraf uygulamalarıyla ML topluluğu tarafından geniş çapta benimsenmiştir (kerasOtomatik Gluon,) ve sosyal medya özellikleri gibi tweetsveri bilimine doğru, orta ve Kaggle.

SageMaker yerleşik algoritmalarının faydaları

Sorununuz ve verileriniz için bir algoritma seçerken, yerleşik bir SageMaker algoritması kullanmak en kolay seçenektir çünkü bunu yapmak aşağıdaki başlıca faydaları sağlar:

  • Yerleşik algoritmalar, deneyleri çalıştırmaya başlamak için kodlama gerektirmez. Sağlamanız gereken girdiler yalnızca veriler, hiperparametreler ve işlem kaynaklarıdır. Bu, sonuçları ve kod değişikliklerini izlemek için daha az ek yük ile deneyleri daha hızlı çalıştırmanıza olanak tanır.
  • Yerleşik algoritmalar, birden çok hesaplama örneği arasında paralelleştirme ve tüm geçerli algoritmalar için kutudan çıkar çıkmaz GPU desteği ile birlikte gelir (doğal sınırlamalar nedeniyle bazı algoritmalar dahil edilmeyebilir). Modelinizi eğitmek için çok fazla veriye sahipseniz, çoğu yerleşik algoritma talebi karşılamak için kolayca ölçeklenebilir. Halihazırda önceden eğitilmiş bir modeliniz olsa bile, onun sonucunu SageMaker'da kullanmak ve onu taşıyıp kendiniz bir eğitim komut dosyası yazmak yerine zaten bildiğiniz hiper parametreleri girmek daha kolay olabilir.
  • Ortaya çıkan model eserlerin sahibi sizsiniz. Bu modeli alabilir ve birkaç farklı çıkarım modeli için SageMaker'da dağıtabilirsiniz (tüm kullanılabilir dağıtım türleri) ve kolay uç nokta ölçeklendirme ve yönetimine sahiptir ya da ihtiyaç duyduğunuz her yerde dağıtabilirsiniz.

Şimdi bu yerleşik algoritmalardan birinin nasıl eğitileceğini görelim.

SageMaker SDK'yı kullanarak yerleşik bir algoritma eğitin

Seçili bir modeli eğitmek için, o modelin URI'sinin yanı sıra eğitim betiğinin ve eğitim için kullanılan kapsayıcı görüntüsünün URI'sini 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 train_model_id, train_model_version, train_scope = "lightgbm-classification-model", "*", "training"
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 model artifact; in the tabular case, the model is not pre-trained train_model_uri = model_uris.retrieve( model_id=train_model_id, model_version=train_model_version, model_scope=train_scope
)

The train_model_id değişiklikleri lightgbm-regression-model eğer bir regresyon problemiyle uğraşıyorsak. Bu gönderide tanıtılan diğer tüm modellerin kimlikleri aşağıdaki tabloda listelenmiştir.

Model Problem türü Model numarası
LightGBM Sınıflandırma lightgbm-classification-model
. Gerileme lightgbm-regression-model
Kedi Takviyesi Sınıflandırma catboost-classification-model
. Gerileme catboost-regression-model
AutoGluon-Tabular Sınıflandırma autogluon-classification-ensemble
. Gerileme autogluon-regression-ensemble
Sekme Dönüştürücü Sınıflandırma pytorch-tabtransformerclassification-model
. Gerileme pytorch-tabtransformerregression-model

Daha sonra girdimizin nerede olduğunu tanımlarız Amazon Basit Depolama Hizmeti (Amazon S3). Bu örnek için genel bir örnek veri kümesi kullanıyoruz. Ayrıca çıktımızın nereye gitmesini istediğimizi tanımlarız ve seçilen modeli eğitmek için gereken varsayılan hiperparametre listesini alırız. Değerlerini beğeninize göre değiştirebilirsiniz.

import sagemaker
from sagemaker import hyperparameters sess = sagemaker.Session()
region = sess.boto_session.region_name # URI of sample training dataset
training_dataset_s3_path = f"s3:///jumpstart-cache-prod-{region}/training-datasets/tabular_multiclass/" # URI for output artifacts output_bucket = sess.default_bucket()
s3_output_location = f"s3://{output_bucket}/jumpstart-example-tabular-training/output" # Retrieve the default hyper-parameters for training
hyperparameters = hyperparameters.retrieve_default( model_id=train_model_id, model_version=train_model_version
) # [Optional] Override default hyperparameters with custom values
hyperparameters[ "num_boost_round"
] = "500" # The same hyperparameter is named as "iterations" for CatBoost

Son olarak, bir SageMaker'ı somutlaştırıyoruz Estimator alınan tüm girdilerle birlikte eğitim işini başlatın ve .fit, eğitim veri kümesi URI'mizi iletiyoruz. bu entry_point sağlanan komut dosyası adlandırıldı transfer_learning.py (diğer görevler ve algoritmalar için aynı) ve iletilen giriş veri kanalı .fit adlandırılmalı training.

from sagemaker.estimator import Estimator
from sagemaker.utils import name_from_base # Unique training job name
training_job_name = name_from_base(f"built-in-example-{model_id}") # Create SageMaker Estimator instance
tc_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
tc_estimator.fit({"training": training_dataset_s3_path}, logs=True)

Yerleşik algoritmaları şu şekilde eğitebileceğinizi unutmayın: SageMaker otomatik model ayarı optimal hiperparametreleri seçmek ve model performansını daha da iyileştirmek için.

SageMaker JumpStart kullanarak yerleşik bir algoritma eğitin

Ayrıca, SageMaker JumpStart UI aracılığıyla birkaç tıklamayla bu yerleşik algoritmaları eğitebilirsiniz. JumpStart, çeşitli ML çerçevelerinden ve model hub'larından yerleşik algoritmaları ve önceden eğitilmiş modelleri bir grafik arabirim aracılığıyla eğitmenize ve dağıtmanıza olanak tanıyan bir SageMaker özelliğidir. Ayrıca, hedeflenen bir kullanım senaryosunu çözmek için makine öğrenimi modellerini ve diğer çeşitli AWS hizmetlerini bir araya getiren tam teşekküllü makine öğrenimi çözümlerini dağıtmanıza olanak tanır.

Daha fazla bilgi için, bkz. TensorFlow Hub ve Hugging Face modellerini kullanarak Amazon SageMaker JumpStart ile metin sınıflandırması çalıştırın.

Sonuç

Bu gönderide, artık SageMaker'da bulunan tablo veri kümelerinde ML için dört güçlü yeni yerleşik algoritmanın piyasaya sürüldüğünü duyurduk. Bu algoritmaların ne olduğuna dair teknik bir açıklamanın yanı sıra SageMaker SDK'yı kullanan LightGBM için örnek bir eğitim işi sağladık.

Kendi veri kümenizi getirin ve bu yeni algoritmaları SageMaker'da deneyin ve üzerinde bulunan yerleşik algoritmaları kullanmak için örnek not defterlerine göz atın. GitHub.


Yazarlar Hakkında

Doktor Xin Huang Amazon SageMaker JumpStart ve Amazon SageMaker yerleşik algoritmaları için Uygulamalı Bilim Adamıdır. Ölçeklenebilir makine öğrenimi algoritmaları geliştirmeye odaklanmaktadır. Araştırma ilgi alanları, doğal dil işleme, tablo verileri üzerinde açıklanabilir derin öğrenme ve parametrik olmayan uzay-zaman kümelemesinin sağlam analizidir. ACL, ICDM, KDD konferansları ve Royal Statistical Society: Series A dergisinde birçok makalesi yayınlanmıştır.

Ashish Khetan Amazon SageMaker JumpStart ve Amazon SageMaker yerleşik algoritmalarına sahip Kıdemli Uygulamalı Bilim Adamıdır 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.

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.

Zaman Damgası:

Den fazla AWS Makine Öğrenimi