Futtassa az automatikus modellhangolást az Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence segítségével. Függőleges keresés. Ai.

Futtassa az automatikus modellhangolást az Amazon SageMaker JumpStart segítségével

2020 decemberében az AWS bejelentés - a Amazon SageMaker JumpStart, képessége Amazon SageMaker amely segít gyorsan és egyszerűen elkezdeni a gépi tanulást (ML). 2022 márciusában mi is bejelentés az API-k támogatása a JumpStartban. A JumpStart az előre betanított modellek széles skálájának egy kattintással történő finomhangolását és telepítését biztosítja a népszerű ML-feladatok között, valamint a gyakori üzleti problémákat megoldó végpontok közötti megoldások választékát. Ezek a funkciók eltávolítják az ML folyamat minden egyes lépéséből adódó nehézségeket, így egyszerűbbé válik a kiváló minőségű modellek fejlesztése, és lerövidül a telepítéshez szükséges idő.

Ebben a bejegyzésben bemutatjuk, hogyan futtatható az automatikus modellhangolás a JumpStart segítségével.

SageMaker automatikus modelltuning

Hagyományosan az ML mérnökei próba és hiba módszert alkalmaznak a megfelelő hiperparaméterkészlet megtalálásához. A próba és hiba során több feladatot kell futtatni egymás után vagy párhuzamosan, miközben a kísérlet futtatásához szükséges erőforrásokat ki kell építeni.

A SageMaker automatikus modelltuning, az ML mérnökök és adattudósok tehermentesíthetik a modell optimalizálásának időigényes feladatát, és hagyhatják, hogy a SageMaker futtassa a kísérletet. A SageMaker kihasználja az AWS platform rugalmasságát, hogy hatékonyan és egyidejűleg futtasson több képzési szimulációt egy adatkészleten, és megtalálja a modell legjobb hiperparamétereit.

A SageMaker automatikus modellhangolása megtalálja a modell legjobb verzióját azáltal, hogy számos képzési feladatot futtat az adatkészleten az algoritmus és tartományok az Ön által megadott hiperparaméterek közül. Ezután kiválasztja azokat a hiperparaméter-értékeket, amelyek a legjobban teljesítő modellt eredményezik, a mérése szerint metrikus hogy te választod.

Az automatikus modellhangolás vagy a bayesi (alapértelmezett) vagy a véletlen keresési stratégia a hiperparaméterek legjobb értékeinek megtalálásához. A Bayes-keresés a hiperparaméter-hangolást úgy kezeli, mint a regresszió probléma. A legjobb hiperparaméterek kiválasztásakor a következő képzési munkához mindent figyelembe vesz, amit a problémáról eddig tud, és lehetővé teszi az algoritmus számára, hogy a legismertebb eredményeket használja ki.

Ebben a bejegyzésben az alapértelmezett Bayes-féle keresési stratégiát használjuk annak bemutatására, hogy milyen lépések szükségesek az automatikus modellhangoláshoz a JumpStart segítségével a LightGBM modell.

A JumpStart jelenleg 10 példa notebookot támogat automatikus modellhangolással. Támogatja a táblázatos adatmodellezés négy népszerű algoritmusát is. A feladatokat és a mintafüzetekre mutató hivatkozásokat a következő táblázat foglalja össze.

Feladat Előképzett modellek Támogatja az egyéni adatkészletet Támogatott keretrendszerek Példafüzetek
Képosztályozás Igen Igen PyTorch, TensorFlow A JumpStart bemutatása – Képosztályozás
Objektumfelismerés Igen Igen PyTorch, TensorFlow, MXNet A JumpStart – Objektumészlelés bemutatása
Szemantikus szegmentálás Igen Igen MX Net Bevezetés a JumpStartba – Szemantikus szegmentáció
Szöveg osztályozása Igen Igen TensorFlow Bevezetés a JumpStartba – Szövegosztályozás
Mondatpár osztályozás Igen Igen TensorFlow, átölelő arc A JumpStart bemutatása – Mondatpárok osztályozása
Kérdés megválaszolása Igen Igen PyTorch A JumpStart bemutatása – Kérdések megválaszolása
táblázatos osztályozás Igen Igen LightGBM, CatBoost, XGBoost, Lineáris tanuló A JumpStart bemutatása – táblázatos osztályozás – LightGBM, CatBoost
A JumpStart bemutatása – táblázatos osztályozás – XGBoost, lineáris tanuló
Táblázatos regresszió Igen Igen LightGBM, CatBoost, XGBoost, Lineáris tanuló A JumpStart – táblázatos regresszió – LightGBM, CatBoost bemutatása
A JumpStart bemutatása – táblázatos regresszió – XGBoost, lineáris tanuló

Megoldás áttekintése

Ez a technikai munkafolyamat áttekintést nyújt az Amazon Sagemaker különféle funkcióiról és lépéseiről, amelyek a JumpStart modellek automatikus hangolásához szükségesek.

Futtassa az automatikus modellhangolást az Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence segítségével. Függőleges keresés. Ai.

A következő szakaszokban lépésről lépésre bemutatjuk, hogyan futtassunk automatikus modellhangolást a JumpStart segítségével a LightGBM algoritmus használatával. Kísérőt biztosítunk jegyzetfüzet ehhez a végigjátszáshoz.

A következő magas szintű lépéseken megyünk keresztül:

  1. Töltse le a JumpStart előre betanított modell- és képtárolót.
  2. Állítson be statikus hiperparamétereket.
  3. Határozza meg a hangolható hiperparaméter-tartományokat.
  4. Inicializálja az automatikus modellhangolást.
  5. Futtassa a hangolási feladatot.
  6. Telepítse a legjobb modellt egy végponton.

Töltse le a JumpStart előre betanított modell- és képtárolót

Ebben a részben a LightGBM osztályozási modellt választjuk a finomhangoláshoz. Az ml.m5.xlarge példánytípust használjuk, amelyen a modell fut. Ezután lekérjük a betanító Docker-tárolót, a betanító algoritmus forrását és az előre betanított modellt. Lásd a következő kódot:

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 pre-trained model tarball to further fine-tune
train_model_uri = model_uris.retrieve(
    model_id=train_model_id, model_version=train_model_version, model_scope=train_scope
)

Állítson be statikus hiperparamétereket

Most lekérjük ennek a LightGBM-modellnek az alapértelmezett hiperparamétereit, a JumpStart által előre beállítottak szerint. Felülírjuk a num_boost_round hiperparaméter egyéni értékkel.

# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(
    model_id=train_model_id, model_version=train_model_version
)
# [Optional] Override default hyperparameters with custom values

Határozza meg a hangolható hiperparaméter-tartományokat

Ezután meghatározzuk a hiperparaméter tartományokat automatikus modellhangolással optimalizálva. Meghatározzuk a hiperparaméter nevét, ahogy azt a modell elvárja, majd az ehhez a hiperparaméterhez kipróbálandó értéktartományokat. Az automatikus modellhangolás mintákat vesz (egyenlő a max_jobs paraméter) a hiperparaméterek teréből, a Bayes-keresés nevű technikával. Minden megrajzolt hiperparaméter-mintához a tuner létrehoz egy betanítási feladatot, hogy kiértékelje az adott konfigurációval rendelkező modellt. Lásd a következő kódot:

hyperparameter_ranges = {
    "learning_rate": ContinuousParameter(1e-4, 1, scaling_type="Logarithmic"),
    "num_boost_round": IntegerParameter(2, 30),
    "early_stopping_rounds": IntegerParameter(2, 30),
    "num_leaves": IntegerParameter(10, 50),
    "feature_fraction": ContinuousParameter(0, 1),
    "bagging_fraction": ContinuousParameter(0, 1),
    "bagging_freq": IntegerParameter(1, 10),
    "max_depth": IntegerParameter(5, 30),
    "min_data_in_leaf": IntegerParameter(5, 50),
}

Inicializálja az automatikus modellhangolást

Kezdjük azzal, hogy létrehozunk egy Becslő objektumot a képzési munkát meghatározó összes szükséges eszközzel, például az előre betanított modellel, a képzési képpel és a képzési szkripttel. Ezután meghatározzuk a HyperparameterTuner objektum a SageMaker hiperparaméter-hangoló API-kkal való interakcióhoz.

A HyperparameterTuner paraméterként elfogadja az Estimator objektumot, a cél metrikát, amely alapján a hiperparaméterek legjobb halmaza dönt, a betanítási feladatok teljes számát (max_jobs) a hiperparaméter-hangolási feladat elindításához, és a maximális párhuzamos betanítási feladatok futtatásához (max_parallel_jobs). A képzési feladatok a LightGBM algoritmussal és a minimális hiperparaméterértékekkel futnak mlogloss mérőszám van kiválasztva. Az automatikus modellhangolás konfigurálásával kapcsolatos további információkért lásd: A hiperparaméter-hangolás legjobb gyakorlatai.

# Create SageMaker Estimator instance
tabular_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,
) tuner = HyperparameterTuner(
    estimator=tabular_estimator,
    objective_metric_name="multi_logloss",
    hyperparameter_ranges=hyperparameter_ranges,
    metric_definitions=[{"Name": "multi_logloss", "Regex": "multi_logloss: ([0-9\.]+)"}],
    strategy="Bayesian",
    max_jobs=10,
    max_parallel_jobs=2,
    objective_type="Minimize",
    base_tuning_job_name=training_job_name,
)

Az előző kódban azt mondjuk a tunernek, hogy legfeljebb 10 kísérletet futtasson (max_jobs) és egyszerre csak két párhuzamos kísérlet (max_parallel_jobs). Mindkét paraméter ellenőrzése alatt tartja költségeit és edzési idejét.

Futtassa a hangolási feladatot

A SageMaker hangolási feladat elindításához meghívjuk a hiperparaméteres tuner objektum illeszkedési metódusát, és átadjuk a Amazon egyszerű tárolási szolgáltatás (Amazon S3) a képzési adatok útvonala:

tuner.fit({"training": training_dataset_s3_path}, logs=True)

Míg az automatikus modellhangolás megkeresi a legjobb hiperparamétereket, nyomon követheti azok fejlődését a SageMaker konzolon vagy a amazonfelhőóra. Amikor az edzés befejeződött, a legjobb modell finomhangolt műtermékei feltöltődnek a képzési konfigurációban megadott Amazon S3 kimeneti helyre.

Telepítse a legjobb modellt egy végponton

Amikor a hangolási munka befejeződött, a legjobb modellt kiválasztottuk és eltároltuk az Amazon S3-ban. Most már telepíthetjük ezt a modellt a telepítési metódus meghívásával HyperparameterTuner objektumot, és átadja a szükséges paramétereket, például a létrehozott végponthoz használandó példányok számát, típusát, a telepítendő lemezképet és a futtatandó szkriptet:

tuner.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,
    enable_network_isolation=True
)

Most már tesztelhetjük a létrehozott végpontot következtetéskérésekkel. A folyamat többi részét a mellékelt dokumentumban követheti nyomon jegyzetfüzet.

Következtetés

A SageMaker automatikus modellhangolásával megtalálhatja modelljének legjobb verzióját, ha oktatási feladatokat futtat a megadott adatkészleten az egyik támogatott algoritmussal. Az automatikus modellhangolás lehetővé teszi, hogy csökkentse a modell hangolásához szükséges időt azáltal, hogy automatikusan megkeresi a legjobb hiperparaméter-konfigurációt a megadott hiperparaméter-tartományokon belül.

Ebben a bejegyzésben bemutattuk az automatikus modellhangolás értékét egy JumpStart előre betanított modellen SageMaker API-k segítségével. A LightGBM algoritmust használtuk, és maximum 10 képzési feladatot határoztunk meg. A JumpStart modelloptimalizálást támogató ML keretrendszereket bemutató notebook-példák hivatkozásait is megadtuk.

A JumpStart modell automatikus modellhangolással történő optimalizálásával kapcsolatos további részletekért tekintse meg példánkat jegyzetfüzet.


A szerzőről

Futtassa az automatikus modellhangolást az Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence segítségével. Függőleges keresés. Ai.Doug Mbaya Senior Partner Solution építész, aki az adatokra és az elemzésekre összpontosít. A Doug szorosan együttműködik az AWS-partnerekkel, segítve őket az adatok és az elemzési megoldások felhőbe való integrálásában.

Futtassa az automatikus modellhangolást az Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence segítségével. Függőleges keresés. Ai.Kruthi Jayasimha Rao a Scale-PSA csapatában partner megoldások építésze. A Kruthi technikai ellenőrzéseket végez a Partnerek számára, lehetővé téve számukra a Partner Path útján való előrehaladást.

Futtassa az automatikus modellhangolást az Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence segítségével. Függőleges keresés. Ai.Giannis Mitropoulos a SageMaker szoftverfejlesztő mérnöke Automatikus modellhangolás.

Futtassa az automatikus modellhangolást az Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence segítségével. Függőleges keresés. Ai.Dr. Ashish Khetan vezető alkalmazott tudós Amazon SageMaker JumpStart és a Amazon SageMaker beépített algoritmusok és segít a 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 és ACL konferenciákon.

Időbélyeg:

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