Használjon adatközpontú megközelítést az Amazon SageMaker modellek betanításához szükséges adatmennyiség minimalizálásához

Használjon adatközpontú megközelítést az Amazon SageMaker modellek betanításához szükséges adatmennyiség minimalizálásához

Ahogy a gépi tanulási (ML) modellek javultak, az adattudósok, az ML-mérnökök és a kutatók figyelmüket egyre inkább az adatminőség meghatározására és javítására fordították. Ez az ML adatközpontú megközelítésének és különféle technikáknak a megjelenéséhez vezetett a modell teljesítményének javítására az adatkövetelményekre összpontosítva. Ezen technikák alkalmazása lehetővé teszi az ML szakemberek számára, hogy csökkentsék az ML modell betanításához szükséges adatok mennyiségét.

Ennek a megközelítésnek a részeként olyan fejlett adatrészhalmaz-kiválasztási technikák jelentek meg, amelyek a bemeneti adatok mennyiségének csökkentésével felgyorsítják a képzést. Ez a folyamat azon alapul, hogy automatikusan kiválasztunk egy adott számú pontot, amely megközelíti egy nagyobb adathalmaz eloszlását, és ezt felhasználja a betanításhoz. Az ilyen típusú technika alkalmazása csökkenti az ML modell betanításához szükséges időt.

Ebben a bejegyzésben az adatközpontú AI elvek alkalmazását ismertetjük Amazon SageMaker Ground Truth, hogyan valósítsuk meg az adatrészhalmaz-kiválasztási technikákat a Zsinórok adattár bekapcsolva Amazon SageMaker a kezdeti modell betanításához szükséges adatok mennyiségének csökkentése, valamint a kísérletek futtatása ezzel a megközelítéssel Amazon SageMaker kísérletek.

A gépi tanulás adatközpontú megközelítése

Mielőtt belemerülne a fejlettebb adatközpontú technikákba, például az adatalkészlet-kiválasztásba, többféle módon is javíthatja adatkészleteit, ha az adatcímkézési folyamatban egy sor alapelvet alkalmaz. Ennek érdekében a Ground Truth különféle mechanizmusokat támogat a címke konzisztenciájának és az adatok minőségének javítására.

A címke konzisztenciája fontos a modell teljesítményének javításához. Enélkül a modellek nem tudnak olyan döntési határt létrehozni, amely elválasztja a különböző osztályokhoz tartozó minden pontot. A következetesség biztosításának egyik módja a használata annotáció konszolidációja a Ground Truth-ban, amely lehetővé teszi, hogy egy adott példát több címkézőnek szolgáltasson ki, és a megadott összesített címkét használja alapigazságként az adott példához. A címke eltérését a Ground Truth által generált megbízhatósági pontszám méri. Ha eltérés mutatkozik a címkék között, nézze meg, nincs-e félreérthető a címkézőknek adott címkézési utasítás, amely eltávolítható. Ez a megközelítés enyhíti az egyes címkézők torzításának hatásait, ami központi szerepet játszik a címkék következetesebbé tételében.

Egy másik módja annak, hogy a modell teljesítményét az adatokra összpontosítva javítsuk, módszereket dolgozunk ki a címkék hibáinak elemzésére, amint azok azonosítják a legfontosabb javítandó adatok részhalmazt. ezt megteheti edzési adatkészleténél kézi erőfeszítések kombinációjával, beleértve a címkézett példákba való búvárkodást és a amazonfelhőóra a Ground Truth címkézési feladatok által generált naplók és metrikák. Az is fontos, hogy megvizsgáljuk azokat a hibákat, amelyeket a modell a következtetés időpontjában követ el, hogy meg lehessen hajtani az adatkészletünk következő címkézésének iterációját. E mechanizmusok mellett Amazon SageMaker Clarify lehetővé teszi az adattudósok és az ML mérnökök számára olyan algoritmusok futtatását, mint pl KernelSHAP hogy lehetővé tegyék számukra a modelljük által készített előrejelzések értelmezését. Mint említettük, a modell előrejelzéseinek mélyebb magyarázata a kezdeti címkézési folyamathoz köthető annak javítása érdekében.

Végül megfontolhatja a zajos vagy túlságosan felesleges példák kidobását. Ezzel csökkentheti a képzési időt azáltal, hogy eltávolítja azokat a példákat, amelyek nem járulnak hozzá a modell teljesítményének javításához. Egy adott adatkészlet hasznos részhalmazának manuális azonosítása azonban nehéz és időigényes. Az ebben a bejegyzésben leírt adatalkészlet-kiválasztási technikák alkalmazása lehetővé teszi, hogy automatizálja ezt a folyamatot a létrehozott keretek mentén.

Használási eset

Amint már említettük, az adatközpontú mesterséges intelligencia a modellbevitel javítására összpontosít, nem pedig magának a modellnek az architektúrájára. Miután ezeket az alapelveket alkalmazta az adatcímkézés vagy a jellemzők tervezése során, továbbra is a modellbevitelre összpontosíthat az adatrészhalmazok betanítási idejének kiválasztásával.

Ebben a bejegyzésben általánosítás alapú adatrész-kiválasztást alkalmazunk a hatékony és robusztus tanulás érdekében (RAGYOG), amely egyike a CORDS adattárban megvalósított számos adatalkészlet-kiválasztási technikának, egy tanító algoritmushoz. ResNet-18 modellt, hogy minimalizálja a modell besorolásához szükséges betanítási időt CIFAR-10 képeket. Az alábbiakban néhány mintakép látható a megfelelő címkékkel a CIFAR-10 adatkészletből.

CIFAR adatkészlet

A ResNet-18-at gyakran használják osztályozási feladatokra. Ez egy 18 rétegű mély konvolúciós neurális hálózat. A CIFAR-10 adatkészletet gyakran használják különféle technikák és megközelítések érvényességének értékelésére az ML-ben. 60,000 32 32 × 10-es színes képből áll, amelyek XNUMX osztályban vannak felcímkézve.

A következő részekben bemutatjuk, hogy a GLISTER hogyan tud bizonyos mértékig segíteni a következő kérdés megválaszolásában:

Egy adott adatkészlet hány százalékát használhatjuk fel, és még mindig jó modellteljesítményt érhetünk el a képzés során?

Ha a GLISTER-t alkalmazza az edzési algoritmusra, a tört hiperparaméterként kerül be az edzési algoritmusba. Ez az adott adatkészlet felhasználni kívánt százalékát jelenti. Mint minden hiperparaméter esetében, a modell és az adatok legjobb eredményét adó érték megtalálása hangolást igényel. Ebben a bejegyzésben nem megyünk bele mélyebben a hiperparaméter-hangolásba. További információkért lásd: Optimalizálja a hiperparamétereket az Amazon SageMaker automatikus modellhangolásával.

Számos tesztet futtatunk a SageMaker Experiments segítségével a megközelítés hatásának mérésére. Az eredmények a kezdeti adatkészlettől függően változnak, ezért fontos, hogy a megközelítést teszteljük adatainkkal összehasonlítva különböző részhalmazméreteknél.

Bár tárgyaljuk a GLISTER használatát képeken, alkalmazhatja a strukturált vagy táblázatos adatokkal dolgozó tanítási algoritmusokra is.

Adatrészhalmaz kiválasztása

Az adatalkészlet kiválasztásának célja a betanítási folyamat felgyorsítása, miközben minimalizálja a pontosságra gyakorolt ​​hatást és növeli a modell robusztusságát. Pontosabban, a GLISTER-ONLINE úgy választ ki egy részhalmazt, ahogy a modell tanul, és megpróbálja maximalizálni a betanítási adatrészhalmaz naplózási valószínűségét az Ön által megadott érvényesítési halmazon. Az adatalkészlet-kiválasztás ilyen módon történő optimalizálása csökkenti a valós adatkészletekben gyakran előforduló zaj- és osztálykiegyensúlyozatlanságot, és lehetővé teszi, hogy az alhalmaz-kiválasztási stratégia alkalmazkodjon a modell tanulásához.

A kezdeti GLISTER papír leírja a gyorsítás/pontosság kompromisszumot különböző adatalkészlet-méreteknél, ahogyan az a LeNet modell:

Részhalmaz mérete sebességnövekedés Pontosság
10% 6x -3%
30% 2.5x -1.20%
50% 1.5x -0.20%

A modell betanításához a SageMaker képzési munka egyéni képzési szkript segítségével. A képadatkészletünket is már feltöltöttük ide Amazon egyszerű tárolási szolgáltatás (Amazon S3). Mint minden SageMaker képzési munkánál, itt is meg kell határoznunk egy Estimator tárgy. A PyTorch becslő a sagemaker.pytorch csomag lehetővé teszi saját képzési szkriptünk futtatását egy felügyelt PyTorch tárolóban. A inputs változó átadta a becslőnek .fit függvény a betanítási és érvényesítési adatkészlet S3 helyének szótárát tartalmazza.

A train.py script fut, amikor egy betanítási feladat elindul. Ebben a szkriptben importáljuk a ResNet-18 modellt a CORDS könyvtárból, és átadjuk neki az adatkészletünkben lévő osztályok számát az alábbiak szerint:

from cords.utils.models import ResNet18 numclasses = 10
model = ResNet18(numclasses)

Ezután használjuk a gen_dataset függvény a CORDS-ból képzési, érvényesítési és tesztadatkészletek létrehozásához:

from cords.utils.data.datasets.SL import gen_dataset train_set, validation_set, test_set, numclasses = gen_dataset(
datadir="/opt/ml/input/data/training",
dset_name="cifar10",
feature="dss",
type="image")

Minden adatkészletből létrehozunk egy egyenértékű PyTorch adatbetöltőt:

train_loader = torch.utils.data.DataLoader(train_set,
batch_size=batch_size,
shuffle=True) validation_loader = torch.utils.data.DataLoader(validation_set,
batch_size=batch_size,
shuffle=False)

Végül ezeket az adatbetöltőket használjuk a GLISTERDataLoader a CORDS könyvtárból. A GLISTER-ONLINE kiválasztási stratégia megvalósítását használja, amely részhalmazok kiválasztását alkalmazza, amikor frissítjük a modellt a képzés során, amint azt ebben a bejegyzésben korábban tárgyaltuk.

Az objektum létrehozásához a kiválasztási stratégia specifikus argumentumokat adjuk át a DotMap tárgyat a train_loader, validation_loaderés logger:

import logging
from cords.utils.data.dataloader.SL.adaptive import GLISTERDataLoader
from dotmap import DotMap dss_args = # GLISTERDataLoader specific arguments
dss_args = DotMap(dss_args)
dataloader = GLISTERDataLoader(train_loader,
validation_loader,
dss_args,
logger,
batch_size=batch_size,
shuffle=True,
pin_memory=False)

A GLISTERDataLoader mostantól rendszeres adatbetöltőként alkalmazható egy képzési hurokra. Kiválasztja az adatalkészleteket a következő betanítási köteghez, ahogy a modell a modell elvesztése alapján tanul. Amint az előző táblázatban látható, az adatalkészlet-kiválasztási stratégia hozzáadása lehetővé teszi számunkra, hogy jelentősen csökkentsük a betanítási időt, még az adatalkészlet-kiválasztás további lépésével is, a pontosság kis kompromisszumával.

Az adattudósoknak és az ML mérnököknek gyakran kell értékelniük egy megközelítés érvényességét úgy, hogy összehasonlítják azt valamilyen alapértékkel. A következő részben bemutatjuk, hogyan kell ezt megtenni.

Kísérletkövetés

A SageMaker Experiments segítségével mérheti az adatalkészlet-kiválasztási megközelítés érvényességét. További információkért lásd 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.

A mi esetünkben négy kísérletet végzünk: egy alapvonalat az adatalkészlet-kiválasztás alkalmazása nélkül, és három másik kísérletet eltérően fraction paraméterek, amelyek az alhalmaz méretét jelentik a teljes adatkészlethez viszonyítva. Természetesen kisebbet használva fraction paraméter csökkenti a képzési időt, de a modell pontosságát is.

Ennél a bejegyzésnél minden edzési futam a Run a SageMaker kísérletekben. A kísérletünkhöz kapcsolódó futtatások egybe vannak csoportosítva Experiment tárgy. A futtatások egy közös kísérlethez kapcsolhatók a Estimator az SDK-val. Lásd a következő kódot:

from sagemaker.utils import unique_name_from_base
from sagemaker.experiments.run import Run, load_run experiment_name = unique_name_from_base("data-centric-experiment")
with Run(
experiment_name=experiment_name,
sagemaker_session=sess
) as run:
estimator = PyTorch('train.py',
source_dir="source",
role=role,
instance_type=instance_type,
instance_count=1,
framework_version=framework_version,
py_version='py3',
env={ 'SAGEMAKER_REQUIREMENTS': 'requirements.txt',
})
estimator.fit(inputs)

Egyéni edzési szkriptjének részeként futási mutatókat gyűjthet a használatával load_run:

from sagemaker.experiments.run import load_run
from sagemaker.session import Session if __name__ == "__main__":
args = parse_args()
session = Session(boto3.session.Session(region_name=args.region))
with load_run(sagemaker_session=session) as run:
train(args, run)

Ezután az előző művelet által visszaadott futási objektumot használva u korszakonként adatpontokat gyűjthet hívással run.log_metric(name, value, step) és megadja a metrika nevét, értékét és az aktuális korszakszámot.

Megközelítésünk érvényességének mérésére mérőszámokat gyűjtünk a képzési veszteségnek, a képzési pontosságnak, az érvényesítési veszteségnek, az érvényesítési pontosságnak és a korszak befejezéséhez szükséges időnek. Aztán a képzési munkák lebonyolítása után megtehetjük tekintse át kísérletünk eredményeit in Amazon SageMaker Studio vagy a SageMaker Experiments SDK-n keresztül.

Az érvényesítési pontosság megtekintéséhez a Studio programban válassza a lehetőséget Elemez a kísérleten Runs cimre.

Kísérletek listája

Adjon hozzá egy diagramot, állítsa be a diagram tulajdonságait, és válassza ki Teremt. Amint az a következő képernyőképen látható, az érvényesítési pontosság diagramja minden korszakban megjelenik az összes futtatásnál.

Kísérletek diagram

Az SDK lehetővé teszi a kísérletekkel kapcsolatos információk Pandas adatkeretként történő lekérését is:

from sagemaker.analytics import ExperimentAnalytics trial_component_analytics = ExperimentAnalytics(
sagemaker_session=sess.sagemaker_client,
experiment_name=experiment_name
)
analytic_table = trial_component_analytics.dataframe()

A képzési munkák opcionálisan rendezhetők. Például hozzátehetjük "metrics.validation:accuracy.max" mint értéke a sort_by paraméter átadva ExperimentAnalytics hogy az érvényesítési pontossággal elrendelt eredményt adja vissza.

Ahogy az várható volt, kísérleteink azt mutatják, hogy a GLISTER és az adatrész-kiválasztás alkalmazása a betanítási algoritmusra csökkenti a betanítási időt. Az alapvonali képzési algoritmusunk futtatásakor az egyes korszakok teljesítésének medián ideje 27 másodperc körül mozog. Ezzel szemben a GLISTER alkalmazása a teljes adatkészlet 50%-ának, 30%-ának és 10%-ának megfelelő részhalmaz kiválasztásához körülbelül 13, 8.5 és 2.75 másodperces korszakot eredményez ml.p3.2xnagy példányokon. .

Viszonylag minimális hatást tapasztalunk az érvényesítési pontosságra is, különösen ha 50%-os adatalkészleteket használunk. 100 korszakos edzés után az alapvonal 92.72%-os érvényesítési pontosságot produkál. Ezzel szemben a GLISTER alkalmazása a teljes adatkészlet 50%-ának, 30%-ának és 10%-ának megfelelő részhalmaz kiválasztásához 91.42%-os, 89.76%-os és 82.82%-os érvényesítési pontosságot eredményez.

Következtetés

A SageMaker Ground Truth és a SageMaker Experiments lehetővé teszik a gépi tanulás adatközpontú megközelítését, lehetővé téve az adattudósok és az ML mérnökök számára, hogy konzisztensebb adatkészleteket állítsanak elő, és nyomon kövessék a fejlettebb technikák hatását, miközben azokat a modellépítési fázisban alkalmazzák. Az ML adatközpontú megközelítésének megvalósítása lehetővé teszi a modell által igényelt adatok mennyiségének csökkentését és robusztusságának javítását.

Próbáld ki, és kommentben oszd meg velünk, mit gondolsz.


A szerzőkről

Használjon adatközpontú megközelítést az Amazon SageMaker PlatoBlockchain Data Intelligence modellek betanításához szükséges adatmennyiség minimalizálásához. Függőleges keresés. Ai.Nicolas Bernier megoldástervező, az AWS kanadai állami szektorának tagja. Jelenleg mesterképzést folytat a Deep Learning kutatási területtel, és öt AWS-tanúsítvánnyal rendelkezik, köztük az ML Specialty Certification-vel. Nicolas szenvedélyesen segíti ügyfeleit az AWS-rel kapcsolatos ismereteik elmélyítésében azáltal, hogy velük együttműködve üzleti kihívásaikat műszaki megoldásokká alakítja át.

Használjon adatközpontú megközelítést az Amazon SageMaker PlatoBlockchain Data Intelligence modellek betanításához szükséges adatmennyiség minimalizálásához. Függőleges keresés. Ai.Givanildo Alves az Amazon Web Services prototípus-készítési és felhőmérnöki csapatának prototípuskészítő építésze, aki az AWS-en elérhető művészet bemutatásával segíti az ügyfeleket az innovációban és a felgyorsításban, mivel már számos prototípust implementált a mesterséges intelligencia körül. Hosszú pályafutása van a szoftvermérnöki területen, korábban az Amazon.com.br szoftverfejlesztő mérnökeként dolgozott.

Időbélyeg:

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