Új beépített Amazon SageMaker algoritmusok táblázatos adatmodellezéshez: LightGBM, CatBoost, AutoGluon-Tabular és TabTransformer

Forrás csomópont: 1541386

Amazon SageMaker lakosztályt kínál beépített algoritmusok, előképzett modellekés előre elkészített megoldássablonok hogy segítse az adattudósokat és a gépi tanulást (ML) gyakorló szakembereket az ML modellek gyors betanításában és bevezetésében. Ezeket az algoritmusokat és modelleket felügyelt és nem felügyelt tanuláshoz egyaránt használhatja. Különféle típusú bemeneti adatokat képesek feldolgozni, beleértve a táblázatos, képi és szöveges adatokat.

Mától a SageMaker négy új beépített táblázatos adatmodellező algoritmust kínál: LightGBM, CatBoost, AutoGluon-Tabular és TabTransformer. Ezeket a népszerű, legkorszerűbb algoritmusokat táblázatos osztályozási és regressziós feladatokhoz egyaránt használhatja. A címen keresztül érhetők el beépített algoritmusok a SageMaker konzolon, valamint a Amazon SageMaker JumpStart UI belül Amazon SageMaker Studio.

Az alábbiakban a négy új beépített algoritmus listája található, a dokumentációjukra, a példafüzetekre és a forrásra mutató hivatkozásokkal.

Dokumentáció Példafüzetek forrás
LightGBM algoritmus Regresszió, Osztályozás LightGBM
CatBoost algoritmus Regresszió, Osztályozás CatBoost
AutoGluon-Tabular Algorithm Regresszió, Osztályozás AutoGluon-Tabular
TabTransformer algoritmus Regresszió, Osztályozás TabTransformer

A következő szakaszokban rövid technikai leírást adunk az egyes algoritmusokról, és példákat mutatunk be egy modell SageMaker SDK vagy SageMaker Jumpstart segítségével történő betanítására.

LightGBM

LightGBM a Gradient Boosting Decision Tree (GBDT) algoritmus népszerű és hatékony nyílt forráskódú megvalósítása. A GBDT egy felügyelt tanulási algoritmus, amely megpróbálja pontosan megjósolni a célváltozót egyszerűbb és gyengébb modellekből származó becslések együttesének kombinálásával. A LightGBM további technikákat alkalmaz a hagyományos GBDT hatékonyságának és méretezhetőségének jelentős javítására.

CatBoost

CatBoost a GBDT algoritmus népszerű és nagy teljesítményű nyílt forráskódú implementációja. A CatBoost két kritikus algoritmus-fejlesztést mutat be: a rendezett erősítés megvalósítását, a klasszikus algoritmus permutáció-vezérelt alternatíváját, és egy innovatív algoritmust a kategorikus jellemzők feldolgozására. Mindkét technikát azért hozták létre, hogy leküzdjék az előrejelzési eltolódást, amelyet a gradiensnövelő algoritmusok jelenlegi megvalósításában jelen lévő speciális célszivárgás okoz.

AutoGluon-Tabular

AutoGluon-Tabular az Amazon által kifejlesztett és karbantartott nyílt forráskódú AutoML projekt, amely fejlett adatfeldolgozást, mély tanulást és többrétegű verem-összeállítást végez. Minden oszlopban automatikusan felismeri az adattípust a robusztus adat-előfeldolgozás érdekében, beleértve a szövegmezők speciális kezelését. Az AutoGluon különféle modellekhez illeszkedik, a már készen kapható boostált fáktól a testreszabott neurális hálózati modellekig. Ezek a modellek újszerű módon vannak összeállítva: a modelleket több rétegben halmozzák fel, és rétegenként képezik, ami garantálja, hogy a nyers adatok adott időkorláton belül jó minőségű előrejelzésekké alakíthatók. A túlillesztést a folyamat során csökkenti azáltal, hogy az adatokat különféle módon osztják fel, gondos nyomon követve a ki nem hajtható példákat. Az AutoGluon a teljesítményre van optimalizálva, és a gyári felhasználásával több top 3 és top 10 helyezést ért el adattudományi versenyeken.

TabTransformer

TabTransformer egy új mély táblázatos adatmodellező architektúra a felügyelt tanuláshoz. A TabTransformer az önfigyelem alapú transzformátorokra épül. A Transformer rétegek a kategorikus jellemzők beágyazását robusztus kontextuális beágyazásokká alakítják át a nagyobb előrejelzési pontosság elérése érdekében. Ezenkívül a TabTransformertől tanult kontextuális beágyazások rendkívül robusztusak mind a hiányzó, mind a zajos adatszolgáltatások ellen, és jobb értelmezhetőséget biztosítanak. Ez a modell a közelmúlt terméke Amazon Science kutatás (papír és hivatalos blogbejegyzés itt), és az ML közösség széles körben elfogadta, különféle harmadik féltől származó implementációkkal (KerasAutoGluon,) és a közösségi média funkciók, mint pl tweetsaz adattudomány felé, közepes és Kaggle.

A SageMaker beépített algoritmusainak előnyei

Amikor kiválaszt egy algoritmust az adott típusú problémához és adathoz, a SageMaker beépített algoritmusa a legegyszerűbb lehetőség, mivel ez a következő fő előnyökkel jár:

  • A beépített algoritmusok nem igényelnek kódolást a kísérletek futtatásához. Csak az adatokat, a hiperparamétereket és a számítási erőforrásokat kell megadnia. Ez lehetővé teszi a kísérletek gyorsabb futtatását, kevesebb ráfordítással az eredmények nyomon követéséhez és a kódmódosításokhoz.
  • A beépített algoritmusok párhuzamosítást biztosítanak több számítási példányon keresztül, és GPU-támogatással rendelkeznek az összes alkalmazható algoritmushoz (egyes algoritmusok a benne rejlő korlátok miatt előfordulhat, hogy nem szerepelnek benne). Ha sok adattal rendelkezik a modell betanításához, a legtöbb beépített algoritmus könnyen méretezhető az igények kielégítésére. Még ha már rendelkezik is egy előre betanított modellel, akkor is könnyebb lehet használni a következményét a SageMakerben, és megadni a már ismert hiperparamétereket, ahelyett, hogy portolná át és saját maga írna egy betanító szkriptet.
  • Ön az eredményül kapott modelltermékek tulajdonosa. Használhatja ezt a modellt, és telepítheti a SageMakerben több különböző következtetési mintához (nézze meg az összes elérhető telepítési típusok) és a végpontok egyszerű méretezését és kezelését, vagy bárhol telepítheti, ahol szüksége van rá.

Lássuk most, hogyan lehet betanítani a beépített algoritmusok egyikét.

Tanítson be egy beépített algoritmust a SageMaker SDK segítségével

Egy kiválasztott modell betanításához meg kell szereznünk a modell URI-jét, valamint a betanítási szkript és a betanításhoz használt tárolókép URI-ját. Szerencsére ez a három bemenet kizárólag a modell nevétől és verziójától függ (az elérhető modellek listáját lásd JumpStart elérhető modelltáblázat), és a példány típusát, amelyen oktatni szeretne. Ezt a következő kódrészlet szemlélteti:

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
)

A train_model_id megváltozik lightgbm-regression-model ha regressziós problémával van dolgunk. Az ebben a bejegyzésben bemutatott összes többi modell azonosítója a következő táblázatban található.

Modell Probléma típusa Modellazonosító
LightGBM Osztályozás lightgbm-classification-model
. Regresszió lightgbm-regression-model
CatBoost Osztályozás catboost-classification-model
. Regresszió catboost-regression-model
AutoGluon-Tabular Osztályozás autogluon-classification-ensemble
. Regresszió autogluon-regression-ensemble
TabTransformer Osztályozás pytorch-tabtransformerclassification-model
. Regresszió pytorch-tabtransformerregression-model

Ezután meghatározzuk, hogy hol legyen a bemenetünk Amazon egyszerű tárolási szolgáltatás (Amazon S3). Ehhez a példához nyilvános mintaadatkészletet használunk. Meghatározzuk azt is, hogy a kimenet hova kerüljön, és lekérjük a kiválasztott modell betanításához szükséges hiperparaméterek alapértelmezett listáját. Értéküket tetszés szerint módosíthatja.

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

Végül példányosítunk egy SageMaker-t Estimator az összes letöltött bemenettel, és indítsa el a képzési munkát .fit, átadva neki a képzési adatkészletünk URI-ját. A entry_point a megadott script neve transfer_learning.py (ugyanez más feladatoknál és algoritmusoknál is), és a bemeneti adatcsatorna átadása .fit meg kell nevezni 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)

Vegye figyelembe, hogy beépített algoritmusokat taníthat SageMaker automatikus modelltuning az optimális hiperparaméterek kiválasztásához és a modell teljesítményének további javításához.

Tanítson be egy beépített algoritmust a SageMaker JumpStart segítségével

Ezeket a beépített algoritmusokat néhány kattintással betaníthatja is a SageMaker JumpStart felhasználói felületén. A JumpStart egy SageMaker szolgáltatás, amely lehetővé teszi beépített algoritmusok és előre betanított modellek betanítását és üzembe helyezését különböző ML keretrendszerekből és modellközpontokból egy grafikus felületen keresztül. Lehetővé teszi teljes értékű ML-megoldások üzembe helyezését is, amelyek ML-modelleket és különféle egyéb AWS-szolgáltatásokat kapcsolnak össze a célzott felhasználási esetek megoldása érdekében.

További információ: Futtasson szöveges osztályozást az Amazon SageMaker JumpStart segítségével a TensorFlow Hub és Hugging Face modellek használatával.

Következtetés

Ebben a bejegyzésben négy nagy teljesítményű új beépített algoritmus elindítását jelentettük be az ML-hez a SageMakeren már elérhető táblázatos adatkészleteken. Technikai leírást adtunk arról, hogy mik ezek az algoritmusok, valamint egy példa képzési feladatot a LightGBM számára a SageMaker SDK használatával.

Hozd el saját adatkészletedet, és próbáld ki ezeket az új algoritmusokat a SageMaker-en, és nézd meg a notebook-mintákat a beépített algoritmusok használatához. GitHub.


A szerzőkről

Dr. Xin Huang az Amazon SageMaker JumpStart és az Amazon SageMaker beépített algoritmusainak alkalmazott tudósa. A skálázható gépi tanulási algoritmusok fejlesztésére összpontosít. Kutatási területe a természetes nyelvi feldolgozás, a táblázatos adatok magyarázható mély tanulása és a nem-paraméteres tér-idő klaszterezés robusztus elemzése. Számos közleményt publikált az ACL, ICDM, KDD konferenciákon és a Royal Statistical Society: Series A folyóiratban.

Dr. Ashish Khetan vezető alkalmazott tudós az Amazon SageMaker JumpStart és az Amazon SageMaker beépített algoritmusaival, és segít gépi tanulási algoritmusok fejlesztésében. A gépi tanulás és a statisztikai következtetések aktív kutatója, és számos közleményt publikált NeurIPS, ICML, ICLR, JMLR, ACL és EMNLP konferenciákon.

João Moura AI/ML Specialist Solutions Architect az Amazon Web Servicesnél. Leginkább az NLP-használati esetekre összpontosít, és segít ügyfeleinek a Deep Learning modell képzésének és bevezetésének optimalizálásában. Emellett aktív támogatója az alacsony kódú ML megoldásoknak és az ML-re specializált hardvereknek.

Időbélyeg:

Még több AWS gépi tanulás