Next generation Amazon SageMaker Experiments – Organize, track, and compare your machine learning trainings at scale PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Következő generációs Amazon SageMaker Experiments – Rendszerezze, kövesse nyomon és hasonlítsa össze gépi tanulási tréningjeit nagy méretekben

Ma örömmel jelentjük be frissítéseinket Amazon SageMaker kísérletek képessége Amazon SageMaker amely lehetővé teszi a gépi tanulási (ML) kísérletek és modellverziók szervezését, nyomon követését, összehasonlítását és értékelését bármely integrált fejlesztői környezetből (IDE) a SageMaker Python SDK vagy a boto3 használatával, beleértve a helyi Jupyter Notebookokat is.

A gépi tanulás (ML) egy iteratív folyamat. Egy új felhasználási eset megoldása során az adattudósok és az ML mérnökök különféle paramétereken keresztül iterálnak, hogy megtalálják a legjobb modellkonfigurációkat (más néven hiperparamétereket), amelyek a termelésben felhasználhatók az azonosított üzleti kihívás megoldására. Az idő múlásával, miután több modellel és hiperparaméterrel kísérleteztek, az ML csapatok számára nehézzé válik a modellfuttatások hatékony menedzselése, hogy megtalálják az optimálisat a különböző kísérletek nyomon követésére szolgáló eszköz nélkül. A kísérletkövető rendszerek leegyszerűsítik a folyamatokat a különböző iterációk összehasonlításához, és segítenek leegyszerűsíteni a csapaton belüli együttműködést és kommunikációt, ezáltal növelve a termelékenységet és időt takarítva meg. Ezt úgy érik el, hogy az ML-kísérleteket könnyed módon szervezik és irányítják, hogy következtetéseket vonhassanak le belőlük, például a legjobb pontossággal találja meg az edzésfutást.

Ennek a kihívásnak a megoldására a SageMaker a SageMaker Experiments szolgáltatást, egy teljesen integrált SageMaker képességet kínál. Rugalmasságot biztosít a modell metrikáinak, paramétereinek, fájljainak, műtermékeinek naplózásához, a különböző metrikákból származó diagramok naplózásához, különféle metaadatok rögzítéséhez, kereséshez és a modell reprodukálhatóságának támogatásához. Az adatkutatók vizuális diagramokon és táblázatokon keresztül gyorsan összehasonlíthatják a teljesítményt és a hiperparamétereket a modellértékeléshez. A SageMaker Experiments segítségével letölthetik a létrehozott diagramokat, és megoszthatják a modell értékelését az érintettekkel.

Next generation Amazon SageMaker Experiments – Organize, track, and compare your machine learning trainings at scale PlatoBlockchain Data Intelligence. Vertical Search. Ai.

A SageMaker Experiments új frissítéseivel a SageMaker SDK része lett, leegyszerűsítve az adattudósok munkáját, és szükségtelenné válik egy további könyvtár telepítése a több modell végrehajtásához. A következő új alapfogalmakat vezetjük be:

  • Kísérlet: Egybe csoportosított futások gyűjteménye. Egy kísérlet több típusú futtatást tartalmaz, amelyek bárhonnan elindíthatók a SageMaker Python SDK használatával.
  • futás: Egy modell betanítási folyamat minden végrehajtási lépése. A futtatás a modelltanítás egyetlen iterációjához tartozó összes bemenetet, paramétert, konfigurációt és eredményt tartalmazza. Az egyéni paraméterek és metrikák naplózhatók a log_parameter, log_parametersés log_metric funkciókat. Az egyéni bemenetek és kimenetek naplózhatók a log_file funkciót.

Azok a fogalmak, amelyek a részeként valósulnak meg Run osztály bármely IDE-ről elérhető, amelyre a SageMaker Python SDK telepítve van. A SageMaker képzéshez, feldolgozáshoz és

Transform Jobs, a SageMaker kísérleti futtatás automatikusan átadásra kerül a jobnak, ha a feladatot egy futási környezetben hívják meg. A futtatási objektumot a segítségével állíthatja vissza load_run() a munkádból. Végül, az új funkciók integrációjával az adattudósok automatikusan naplózhatnak egy zavarmátrixot, precíziós és visszahívási grafikonokat, valamint egy ROC-görbét az osztályozási használati esetekhez a run.log_confusion_matrix, run.log_precision_recallés run.log_roc_curve funkciókat, ill.

Ebben a blogbejegyzésben példákat mutatunk be az új SageMaker Experiments funkciók használatára Jupyter notebookon a SageMaker SDK-n keresztül. Ezeket a képességeket a segítségével mutatjuk be PyTorch példa egy MNIST kézzel írt számjegyosztályozási példa betanítására. A kísérletet a következőképpen szervezzük meg:

  1. Kísérletfutások létrehozása és naplózási paraméterek: Először létrehozunk egy új kísérletet, elindítjuk a kísérlet új futtatását, és naplózzuk a paramétereket.
  2. A modell teljesítménymutatóinak naplózása: Naplózni fogjuk a modell teljesítménymutatóit és ábrázoljuk a metrikagrafikonokat.
  3. Modellfutások összehasonlítása:A modell hiperparaméterei szerint összehasonlítjuk a különböző modellfutásokat. Megbeszéljük, hogyan hasonlítsuk össze ezeket a futtatásokat, és hogyan használjuk a SageMaker-kísérleteket a legjobb modell kiválasztásához.
  4. Kísérletek futtatása SageMaker-feladatokból: Példát adunk arra is, hogyan lehet automatikusan megosztani a kísérlet környezetét egy SageMaker feldolgozási, betanítási vagy kötegelt átalakítási feladattal. Ez lehetővé teszi a futtatási környezet automatikus helyreállítását a load_run funkciója a munkájában.
  5. A SageMaker Clarify jelentések integrálása: Bemutatjuk, hogyan tudunk most integrálódni SageMaker Clarify torzítási és magyarázhatósági jelentések egyetlen nézetben a betanított modelljelentéssel.

Előfeltételek

Ehhez a blogbejegyzéshez használjuk Amazon SageMaker Studio bemutatni, hogyan lehet mérőszámokat naplózni egy Studio-jegyzetfüzetről a frissített SageMaker Experiments funkciók segítségével. A példánkban bemutatott parancsok végrehajtásához a következő előfeltételek szükségesek:

  • SageMaker Studio Domain
  • SageMaker Studio felhasználói profil SageMaker teljes hozzáféréssel
  • Egy SageMaker Studio notebook legalább egy ml.t3.medium példány típusa

Ha nem rendelkezik elérhető SageMaker-domainnel és felhasználói profillal, ennek segítségével létrehozhat egyet gyors telepítési útmutató.

Naplózási paraméterek

Ehhez a gyakorlathoz használjuk fáklyalátás, egy PyTorch-csomag, amely népszerű adatkészleteket, modellarchitektúrákat és általános képátalakításokat biztosít a számítógépes látás számára. A SageMaker Studio egy sor Docker képek az Amazon ECR-ben elérhető általános adattudományi felhasználási esetekhez. A PyTorch esetében lehetősége van CPU- vagy GPU-képzésre optimalizált képek kiválasztására. Ebben a példában a képet választjuk ki PyTorch 1.12 Python 3.8 CPU Optimized és a Python 3 kernel. Az alább leírt példák a SageMaker Experiments funkcióira összpontosítanak, és nem teljesek a kóddal.

Töltse le az adatokat a torchvision csomagolja és nyomon követheti a vonat adatmintáinak számát és a tesztadatkészleteket paraméterként a SageMaker Experiments segítségével. Ebben a példában tegyük fel train_set és a test_set ahogy már letöltötte torchvision adatkészletek.

from sagemaker.session import Session
from sagemaker.experiments.run import Run
import os

# create an experiment and start a new run
experiment_name = "local-experiment-example"
run_name = "experiment-run"

with Run(experiment_name=experiment_name, sagemaker_session=Session(), run_name=run_name) as run:
    run.log_parameters({
        "num_train_samples": len(train_set.data),
        "num_test_samples": len(test_set.data)
    })
    for f in os.listdir(train_set.raw_folder):
        print("Logging", train_set.raw_folder+"/"+f)
        run.log_file(train_set.raw_folder+"/"+f, name=f, is_output=False)

Ebben a példában a run.log_parameters a vonat- és vizsgálati adatminták számának naplózására és run.log_file a nyers adatkészletek feltöltéséhez az Amazon S3-ba, és naplózzuk őket kísérletünk bemeneteként.

Next generation Amazon SageMaker Experiments – Organize, track, and compare your machine learning trainings at scale PlatoBlockchain Data Intelligence. Vertical Search. Ai. Next generation Amazon SageMaker Experiments – Organize, track, and compare your machine learning trainings at scale PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Modell betanítása és modellmetrikák naplózása

Most, hogy letöltöttük az MNIST adatkészletünket, képezzük a CNN modell hogy felismerje a számjegyeket. A modell betanítása közben szeretnénk betölteni a meglévő kísérleti futtatásunkat, új paramétereket naplózni, és a modell teljesítményét a modell metrikák naplózásával nyomon követni.

Használhatjuk a load_run funkció betölti az előző futtatást, és használja a modellképzés naplózásához

with load_run(experiment_name=experiment_name, run_name=run_name, sagemaker_session=Session()) as run:
    train_model(
        run=run,
        train_set=train_set,
        test_set=test_set,
        epochs=10,
        hidden_channels=5,
        optimizer="adam"
    )

Utána használhatjuk run.log_parameter és a run.log_parameters hogy egy vagy több modellparamétert naplózzon a futtatásunkba.

# log the parameters of your model
run.log_parameter("device", "cpu")
run.log_parameters({
    "data_dir": data_dir,
    "optimizer": optimizer,
    "epochs": epochs,
    "hidden_channels": hidden_channels
})

És használhatjuk run.log_metric teljesítménymutatók naplózásához kísérletünkbe.

run.log_metric(name=metric_type+":loss", value=loss, step=epoch)
run.log_metric(name=metric_type+":accuracy", value=accuracy, step=epoch)

Osztályozási modellekhez is használhatja run.log_confusion_matrix, run.log_precision_recallés run.log_roc_curve, a zavaró mátrix, a precíziós visszahívási grafikon és a modell ROC görbéjének automatikus ábrázolásához. Mivel a modellünk egy többosztályos osztályozási problémát old meg, ezért csak a zavaró mátrixot naplózzuk.

# log confusion matrix
with torch.no_grad():
    for data, target in test_loader:
        data, target = data.to(device), target.to(device)
        output = model(data)
        pred = output.max(1, keepdim=True)[1] 
        run.log_confusion_matrix(target, pred, "Confusion-Matrix-Test-Data")

Ha megnézzük a futás részleteit, láthatjuk a generált mutatókat, ahogy az alábbi képernyőképen látható:

Next generation Amazon SageMaker Experiments – Organize, track, and compare your machine learning trainings at scale PlatoBlockchain Data Intelligence. Vertical Search. Ai.

A futás részletei oldal további információkat tartalmaz a mérőszámokról.

Next generation Amazon SageMaker Experiments – Organize, track, and compare your machine learning trainings at scale PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Az új modellparamétereket pedig a paraméterek áttekintő oldalán nyomon követheti.

Next generation Amazon SageMaker Experiments – Organize, track, and compare your machine learning trainings at scale PlatoBlockchain Data Intelligence. Vertical Search. Ai.

A modell teljesítményét osztályonként is elemezheti az automatikusan ábrázolt zavaros mátrix segítségével, amely szintén letölthető és különböző jelentésekhez használható. Ezenkívül további grafikonokat is készíthet a modell teljesítményének elemzéséhez a naplózott metrikák alapján.

Next generation Amazon SageMaker Experiments – Organize, track, and compare your machine learning trainings at scale PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Több modellparaméter összehasonlítása

Adattudósként a lehető legjobb modellt szeretné megtalálni. Ez magában foglalja a modell többszöri betanítását különböző hiperparaméterekkel, és a modell teljesítményének összehasonlítását ezekkel a hiperparaméterekkel. Ennek érdekében a SageMaker Experiments lehetővé teszi, hogy több futtatást hozzunk létre ugyanabban a kísérletben. Fedezzük fel ezt a koncepciót úgy, hogy modellünket másokkal tanítjuk num_hidden_channels és a optimizers.

# define the list of parameters to train the model with
num_hidden_channel_param = [5, 10, 20]
optimizer_param = ["adam", "sgd"]
run_id = 0
# train the model using SageMaker Experiments to track the model parameters, 
# metrics and performance
sm_session = Session()
for i, num_hidden_channel in enumerate(num_hidden_channel_param):
    for k, optimizer in enumerate(optimizer_param):
        run_id += 1
        run_name = "experiment-run-"+str(run_id)
        print(run_name)
        print(f"Training model with: {num_hidden_channel} hidden channels and {optimizer} as optimizer")
        # Defining an experiment run for each model training run
        with Run(experiment_name=experiment_name, run_name=run_name, sagemaker_session=sm_session) as run:
            train_model(
                run=run, 
                train_set=train_set,
                test_set=test_set,
                epochs=10, 
                hidden_channels=num_hidden_channel,
                optimizer=optimizer
            )

Most hat új futtatást hozunk létre a kísérletünkhöz. Mindegyik naplózza a modell paramétereit, mérőszámait és zavaró mátrixát. Ezután összehasonlíthatjuk a futtatásokat, hogy kiválaszthassuk a probléma legjobban teljesítő modelljét. A futások elemzésekor a különböző futások metrikus grafikonjait egyetlen diagramként ábrázolhatjuk, összehasonlítva a futások teljesítményét a különböző edzési lépések (vagy korszakok) között.

Next generation Amazon SageMaker Experiments – Organize, track, and compare your machine learning trainings at scale PlatoBlockchain Data Intelligence. Vertical Search. Ai.

A SageMaker Experiments használata a SageMaker képzési, feldolgozási és kötegelt átalakítási munkákkal

A fenti példában a SageMaker Experiments segítségével naplóztuk a modell teljesítményét egy SageMaker Studio notebookról, ahol a modellt helyben betanították a notebookban. Ugyanezt megtehetjük a SageMaker feldolgozási, betanítási és kötegelt átalakítási feladatokból származó modell teljesítményének naplózásához. Az új automatikus kontextusátadási képességekkel nem kell külön megosztanunk a kísérlet konfigurációját a SageMaker feladattal, mivel a rendszer automatikusan rögzíti.

Az alábbi példa a SageMaker Experiments funkcióira összpontosít, és nem teljes kód.

from sagemaker.pytorch import PyTorch
from sagemaker.experiments.run import Run
from sagemaker.session import Session
from sagemaker import get_execution_role
role = get_execution_role()

# set new experiment configuration
exp_name = "training-job-experiment-example"
run_name = "experiment-run-example"

# Start training job with experiment setting
with Run(experiment_name=exp_name, run_name=run_name, sagemaker_session=Session()) as run:
    est = PyTorch(
        entry_point="",
        dependencies=[""],
        role=role,
        model_dir=False,
        framework_version="1.12",
        py_version="py38",
        instance_type='ml.c5.xlarge',
        instance_count=1,
            hyperparameters={
            "epochs": 10,
            "hidden_channels":5,
            "optimizer": "adam",
        },
        keep_alive_period_in_seconds=3600
    )
    
    est.fit()

Modell szkriptfájlunkban a futtatási környezetet a segítségével kaphatjuk meg load_run(). A SageMaker feldolgozási és betanítási feladatokban nem kell megadnunk a kísérlet konfigurációját a konfiguráció betöltéséhez. A kötegelt átalakítási feladatokhoz biztosítanunk kell experiment_name és a run_name a kísérlet konfigurációjának betöltéséhez.

with load_run() as run:
    run.log_parameters({...})
    train_model(run, ...)

A SageMaker-kísérletek notebook-szkriptből történő futtatásakor kapott információkon kívül a SageMaker-feladatból történő futtatás automatikusan feltölti a feladat paramétereit és kimeneteit.

Next generation Amazon SageMaker Experiments – Organize, track, and compare your machine learning trainings at scale PlatoBlockchain Data Intelligence. Vertical Search. Ai. Next generation Amazon SageMaker Experiments – Organize, track, and compare your machine learning trainings at scale PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Az új SageMaker Experiments SDK visszamenőleges kompatibilitást is biztosít az előző verzióval a próbaverziók és próbakomponensek koncepciójával. A SageMaker Experiments korábbi verziójával indított kísérletek automatikusan elérhetővé válnak az új felhasználói felületen a kísérletek elemzéséhez.

A SageMaker Clarify integrálása és a képzési jelentések modellezése

A SageMaker Clarify észleléssel segít javítani ML modelljeinket potenciális torzítás és segít magyarázat hogyan jósolnak ezek a modellek. A Clarify előre beépített konténereket biztosít, amelyek SageMaker feldolgozási feladatokként futnak a modell betanítása után, felhasználva az adatokkal (adatkonfiguráció), a modellel (modellkonfiguráció) és az érzékeny adatoszlopokkal kapcsolatos információkat, amelyeket elemezni szeretnénk az esetleges torzítás (elfogultság) szempontjából. konfiguráció). Eddig a SageMaker Experiments modelltanítási és Clarify-jelentéseinket különálló próbakomponensekként jelenítette meg, amelyeket egy próbaverzión keresztül kapcsoltak össze.

Az új SageMaker Experiments segítségével a SageMaker Clarify jelentéseket a modellképzésünkbe is integrálhatjuk, amelynek egyetlen igazságforrása van, amely lehetővé teszi modellünk további megértését. Az integrált jelentéshez mindössze annyit kell tennünk, hogy ugyanazt a futtatási nevet használjuk a képzési és tisztázási munkáinknak. A következő példa bemutatja, hogyan integrálhatjuk a jelentéseket egy XGBoost modell hogy megjósolják a felnőttek jövedelmét szerte az Egyesült Államokban. A modell a UCI Felnőtt adatkészlet. Ehhez a gyakorlathoz feltételezzük, hogy a modellt már betanították, és már kiszámítottuk az adatokat, a modellt és a torzítási konfigurációkat.

with Run(
    experiment_name='clarify-experiment',
    run_name="joint-run",
    sagemaker_session=sagemaker_session,
) as run:
    xgb.fit({"train": train_input}, logs=False)
    clarify_processor.run_bias(
        data_config=bias_data_config,
        bias_config=bias_config,
        model_config=model_config,
        model_predicted_label_config=predictions_config,
        pre_training_methods="all",
        post_training_methods="all",
    )
    clarify_processor.run_explainability(
        data_config=explainability_data_config,
        model_config=model_config,
        explainability_config=shap_config,
    )

Ezzel a beállítással egy kombinált nézetet kapunk, amely tartalmazza a modell metrikáját, a közös bemeneteket és kimeneteket, valamint a Clarify jelentéseket a modell statisztikai torzítása és magyarázhatósága érdekében.

Next generation Amazon SageMaker Experiments – Organize, track, and compare your machine learning trainings at scale PlatoBlockchain Data Intelligence. Vertical Search. Ai. Next generation Amazon SageMaker Experiments – Organize, track, and compare your machine learning trainings at scale PlatoBlockchain Data Intelligence. Vertical Search. Ai. Next generation Amazon SageMaker Experiments – Organize, track, and compare your machine learning trainings at scale PlatoBlockchain Data Intelligence. Vertical Search. Ai. Next generation Amazon SageMaker Experiments – Organize, track, and compare your machine learning trainings at scale PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Következtetés

Ebben a bejegyzésben a SageMaker SDK integrált részét képező SageMaker Experiments új generációját fedeztük fel. Bemutattuk, hogyan naplózhatja ML munkafolyamatait bárhonnan az új Run osztállyal. Bemutattuk az új Kísérletek felhasználói felületet, amely lehetővé teszi a kísérletek nyomon követését és diagramok ábrázolását egyetlen futtatási mutatóhoz, valamint több futtatás összehasonlítását az új elemzési képességgel. Példákat mutattunk be a naplózási kísérletekre egy SageMaker Studio notebookból és egy SageMaker Studio képzési munkából. Végül megmutattuk, hogyan integrálható a modellképzés és a SageMaker Clarify jelentések egységes nézetben, lehetővé téve a modell további megértését.

Javasoljuk, hogy próbálja ki az új Kísérleti funkciókat, és lépjen kapcsolatba a Gépi tanulás és AI közösség ha bármilyen kérdése vagy visszajelzése van!


A szerzőkről

Next generation Amazon SageMaker Experiments – Organize, track, and compare your machine learning trainings at scale PlatoBlockchain Data Intelligence. Vertical Search. Ai.Maira Ladeira Tanke az AWS gépi tanulási szakértője. Adattudományi háttérrel rendelkezik, és 9 éves tapasztalattal rendelkezik ML-alkalmazások tervezésében és építésében különböző iparágakban lévő ügyfelekkel. Műszaki vezetőként segít az ügyfeleknek felgyorsítani az üzleti érték elérését a feltörekvő technológiák és innovatív megoldások révén. Szabadidejében Maira szívesen utazik, és a családjával tölti az idejét valami meleg helyen.

Next generation Amazon SageMaker Experiments – Organize, track, and compare your machine learning trainings at scale PlatoBlockchain Data Intelligence. Vertical Search. Ai.Mani Khanuja az Amazon Web Services (AWS) mesterséges intelligencia és gépi tanulás szakértője. Segít a gépi tanulást használó ügyfeleknek üzleti kihívásaik megoldásában az AWS segítségével. Ideje nagy részét azzal tölti, hogy mélyre merül, és ügyfeleit olyan AI/ML projektekre oktatja, amelyek a számítógépes látással, a természetes nyelvi feldolgozással, az előrejelzéssel, az ML szélén és még sok mással kapcsolatosak. Szenvedélye az ML szélén, ezért létrehozta saját laborját önvezető készlettel és prototípus gyártósorral, ahol szabadidejének nagy részét tölti.

Next generation Amazon SageMaker Experiments – Organize, track, and compare your machine learning trainings at scale PlatoBlockchain Data Intelligence. Vertical Search. Ai.Dewen Qi az AWS szoftverfejlesztő mérnöke. Jelenleg az AWS SageMaker platformszolgáltatások és eszközök gyűjteményének felépítésében vesz részt, hogy segítse ügyfeleit ML projektjeik sikeres megvalósításában. Szenvedélyesen törekszik az MLOps koncepciójának szélesebb közönség elé terjesztésére is. A munkán kívül Dewen szívesen gyakorol csellót.

Next generation Amazon SageMaker Experiments – Organize, track, and compare your machine learning trainings at scale PlatoBlockchain Data Intelligence. Vertical Search. Ai.Abhishek Agarwal az Amazon SageMaker vezető termékmenedzsere. Szenvedélye az ügyfelekkel való együttműködés és a gépi tanulás hozzáférhetőbbé tétele. Szabadidejében Abhishek szeret festeni, kerékpározni és innovatív technológiákat tanulni.

Next generation Amazon SageMaker Experiments – Organize, track, and compare your machine learning trainings at scale PlatoBlockchain Data Intelligence. Vertical Search. Ai.Dana Benson szoftvermérnök, aki az Amazon SageMaker Experiments, Lineage és Search csapatánál dolgozik. Mielőtt csatlakozott volna az AWS-hez, Dana időt töltött azzal, hogy lehetővé tegye az intelligens otthoni funkciókat az Alexában, valamint a mobilrendelést a Starbucksnál.

Időbélyeg:

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