Egyszerűen csomagolja be és telepítse a klasszikus ML és LLM-eket az Amazon SageMaker segítségével, 1. rész: PySDK fejlesztések | Amazon webszolgáltatások

Egyszerűen csomagolja be és telepítse a klasszikus ML és LLM-eket az Amazon SageMaker segítségével, 1. rész: PySDK fejlesztések | Amazon webszolgáltatások

Amazon SageMaker egy teljesen felügyelt szolgáltatás, amely lehetővé teszi a fejlesztők és adattudósok számára, hogy gyorsan és könnyedén építsenek, képezzenek és telepítsenek gépi tanulási (ML) modelleket bármilyen léptékben. A SageMaker egyszerűvé teszi a modellek üzembe helyezését közvetlenül a szolgáltatás API-hívásai révén. A modellek konténerekbe vannak csomagolva a robusztus és méretezhető telepítés érdekében. Bár különféle belépési pontokat biztosít, például a SageMaker Python SDK-t, az AWS SDK-kat, a SageMaker konzolt és Amazon SageMaker Studio Az ML-modellek betanításának és nagyszabású üzembe helyezésének egyszerűsítése érdekében az ügyfelek még mindig jobb módszereket keresnek modelljeik játszótéri tesztelésére és a termelési telepítések optimalizálására.

Két új módszert vezetünk be a SageMaker segítségével a modellek csomagolásának és üzembe helyezésének egyszerűsítésére.

Ebben a bejegyzésben bemutatjuk az új SageMaker Python SDK-t ModelBuilder tapasztalat, amelynek célja, hogy minimalizálja a tanulási görbét az új SageMaker-felhasználók, például az adatkutatók számára, ugyanakkor segíti a tapasztalt MLOps mérnököket a SageMaker hosting szolgáltatások maximális kihasználásában. Csökkenti a kezdeti beállítás és üzembe helyezés bonyolultságát, és útmutatást ad a SageMaker teljes képességeinek kihasználásához szükséges legjobb gyakorlatokhoz. Részletes információkat és GitHub-példákat biztosítunk ehhez az új SageMaker-képességhez.

A másik új bevezetés a SageMaker Studio új interaktív telepítési élményének használata. Ezt a 2. részben tárgyaljuk.

A modellek SageMaker-végponton való üzembe helyezése egy sor lépést foglal magában, amelyekkel a modell készen áll a SageMaker-végponton való tárolásra. Ez magában foglalja a modell műtermékek megfelelő formátumba és szerkezetbe állítását, következtetési kód létrehozását, valamint olyan lényeges részletek megadását, mint a modellkép URL-címe, Amazon egyszerű tárolási szolgáltatás (Amazon S3) a modell műtermékeinek helye, a szerializálás és a deszerializálás lépései, valamint a szükséges lépések AWS Identity and Access Management (IAM) szerepköröket a megfelelő hozzáférési engedélyek elősegítése érdekében. Ezt követően egy végpont-konfigurációhoz meg kell határozni a következtetés típusát, és be kell állítania a megfelelő paramétereket, például a példánytípusokat, a számokat és a forgalom elosztását a modellváltozatok között.

Hogy további segítséget nyújtsunk ügyfeleinknek a SageMaker tárhely használatában, bemutattuk az új ModelBuilder osztály a SageMaker Python SDK-ban, amely a következő kulcsfontosságú előnyöket nyújtja a modellek SageMaker végpontokon való üzembe helyezésekor:

  • Egységesíti a telepítési élményt a keretrendszerek között – Az új élmény konzisztens munkafolyamatot biztosít a különböző keretrendszerek (például PyTorch, TensorFlow és XGBoost) felhasználásával készült modellek üzembe helyezéséhez. Ez leegyszerűsíti a telepítési folyamatot.
  • Automatizálja a modell bevezetését – Az olyan feladatok, mint a megfelelő tárolók kiválasztása, a függőségek rögzítése és a szerializálás/deszerializálás kezelése automatizáltak, csökkentve a telepítéshez szükséges kézi erőfeszítést.
  • Zökkenőmentes átmenetet biztosít a helyi és a SageMaker által üzemeltetett végpont között – Minimális kódmódosításokkal a modellek egyszerűen átállíthatók a helyi tesztelésről a SageMaker végponton történő telepítésre. Az élő naplók zökkenőmentessé teszik a hibakeresést.

Összességében a SageMaker ModelBuilder leegyszerűsíti és racionalizálja a SageMaker következtetések modellcsomagolási folyamatát az alacsony szintű részletek kezelésével, és eszközöket biztosít a végpontok teszteléséhez, érvényesítéséhez és optimalizálásához. Ez javítja a fejlesztői termelékenységet és csökkenti a hibákat.

A következő szakaszokban ennek az új funkciónak a részleteibe mélyedünk bele. Azt is megvitatjuk, hogyan lehet modelleket telepíteni a SageMaker tárhelyre ModelBuilder, ami leegyszerűsíti a folyamatot. Ezután bemutatunk néhány példát a különböző keretrendszerekhez, amelyek segítségével mind a hagyományos ML-modelleket, mind pedig a generatív mesterséges intelligencia felhasználási eseteit támogató alapmodelleket telepítheti.

A SageMaker ModelBuilder megismerése

Az új ModelBuilder egy Python osztály, amely a keretrendszerek, például az XGBoost vagy a PyTorch segítségével épített ML-modellek átvételére és azok SageMakeren történő bevezetésre kész modellekké való átalakítására összpontosít. ModelBuilder biztosít build() függvény, amely a modellszervernek megfelelően generálja a melléktermékeket, és a deploy() függvény helyileg vagy egy SageMaker végpontra történő telepítéséhez. Ennek a funkciónak a bevezetése leegyszerűsíti a modellek integrálását a SageMaker környezetbe, optimalizálva azokat a teljesítmény és a méretezhetőség szempontjából. Az alábbi diagram bemutatja, hogyan ModelBuilder magas szinten működik.

Package and deploy classical ML and LLMs easily with Amazon SageMaker, part 1: PySDK Improvements | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

ModelBuilder osztály

A ModelBuilder osztály különböző testreszabási lehetőségeket kínál. A keretmodell üzembe helyezéséhez azonban a modellkészítő csak a modellt, a bemenetet, a kimenetet és a szerepet várja:

class ModelBuilder( model, # model id or model object role_arn, # IAM role schema_builder, # defines the input and output mode, # select between local deployment and depoy to SageMaker Endpoints ...
)

SchemaBuilder

A SchemaBuilder osztály lehetővé teszi a végpont bemenetének és kimenetének meghatározását. Lehetővé teszi a sémakészítő számára, hogy előállítsa a megfelelő rendező függvényeket a bemenet és a kimenet sorosításához és deszerializálásához. A következő osztályfájl tartalmazza az összes testreszabási lehetőséget:

class SchemaBuilder( sample_input: Any, sample_output: Any, input_translator: CustomPayloadTranslator = None, output_translator: CustomPayloadTranslator = None
)

A legtöbb esetben azonban csak minta bemenet és kimenet működik. Például:

input = "How is the demo going?"
output = "Comment la démo va-t-elle?"
schema = SchemaBuilder(input, output)

Minta be- és kimenet biztosításával, SchemaBuilder képes automatikusan meghatározni a szükséges átalakításokat, így az integrációs folyamat egyszerűbbé válik. Fejlettebb felhasználási esetekben rugalmasan biztosítható egyéni fordítási funkciók mind a bemenethez, mind a kimenethez, így biztosítva, hogy a bonyolultabb adatstruktúrák is hatékonyan kezelhetők legyenek. Ezt mutatjuk be a következő szakaszokban különböző modellek telepítésével, különféle keretrendszerekkel ModelBuilder.

Helyi mód tapasztalat

Ebben a példában használjuk ModelBuilder az XGBoost modell helyi telepítéséhez. A Mode segítségével válthat a helyi tesztelés és a SageMaker-végponton történő üzembe helyezés között. Először betanítjuk az XGBoost modellt (helyileg vagy a SageMakerben), és a modell melléktermékeit a munkakönyvtárban tároljuk:

# Train the model
model = XGBClassifier()
model.fit(X_train, y_train)
model.save_model(model_dir + "/my_model.xgb")

Ezután létrehozunk egy ModelBuilder objektumot a tényleges modellobjektum, a SchemaBuilder amely a minta teszt bemeneti és kimeneti objektumokat használja (ugyanazt a bemenetet és kimenetet, amelyet a modell betanításakor és tesztelésekor használtunk) a szükséges szerializálásra. Vegye figyelembe, hogy használjuk Mode.LOCAL_CONTAINER helyi telepítés megadásához. Ezt követően hívjuk a épít funkció automatikusan azonosítja a támogatott keretrendszer-tároló képét, és keresi a függőségeket. Lásd a következő kódot:

model_builder_local = ModelBuilder( model=model, schema_builder=SchemaBuilder(X_test, y_pred), role_arn=execution_role, mode=Mode.LOCAL_CONTAINER
)
xgb_local_builder = model_builder_local.build()

Végül hívhatjuk a deploy függvényt a modellobjektumban, amely élő naplózást is biztosít a könnyebb hibakeresés érdekében. Nem kell megadnia a példány típusát vagy számát, mert a modell helyileg kerül telepítésre. Ha megadta ezeket a paramétereket, a rendszer figyelmen kívül hagyja őket. Ez a függvény visszaadja azt a prediktor objektumot, amellyel előrejelzést készíthetünk a tesztadatokkal:

# note: all the serialization and deserialization is handled by the model builder.
predictor_local = xgb_local_builder.deploy(
# instance_type='ml.c5.xlarge',
# initial_instance_count=1
) # Make prediction for test data. predictor_local.predict(X_test)

Opcionálisan szabályozhatja a modell betöltését, valamint az elő- és utófeldolgozást is InferenceSpec. További részleteket a bejegyzés későbbi részében közölünk. Használata LOCAL_CONTAINER nagyszerű módja annak, hogy helyileg tesztelje a szkriptet a SageMaker végponton való üzembe helyezés előtt.

Utal model-builder-xgboost.ipynb példa a helyi és a SageMaker végpontra történő telepítés tesztelésére ModelBuilder.

Telepítsen hagyományos modelleket a SageMaker végpontjaira

A következő példákban bemutatjuk, hogyan kell használni ModelBuilder hagyományos ML modellek telepítésére.

XGBoost modellek

Az előző szakaszhoz hasonlóan telepíthet egy XGBoost modellt egy SageMaker végpontra a mode paraméter létrehozásakor a ModelBuilder tárgy:

model_builder = ModelBuilder( model=model, schema_builder=SchemaBuilder(sample_input=sample_input, sample_output=sample_output), role_arn=execution_role, mode=Mode.SAGEMAKER_ENDPOINT
)
xgb_builder = model_builder.build()
predictor = xgb_builder.deploy( instance_type='ml.c5.xlarge', initial_instance_count=1
)

Vegye figyelembe, hogy a SageMaker végpontokra történő telepítéskor meg kell adnia a példánytípust és a példányszámot a deploy funkciót.

Utal model-builder-xgboost.ipynb példa egy XGBoost modell üzembe helyezésére.

Triton modellek

Használhatja ModelBuilder PyTorch modellek kiszolgálására Triton következtetési szerver. Ehhez meg kell adni a model_server paraméter as ModelServer.TRITON, adja át a modellt, és rendelkezzen a SchemaBuilder objektum, amely minta bemeneteket és kimeneteket igényel a modelltől. A többiről a ModelBuilder gondoskodik.

model_builder = ModelBuilder( model=model, schema_builder=SchemaBuilder(sample_input=sample_input, sample_output=sample_output), role_arn=execution_role, model_server=ModelServer.TRITON, mode=Mode.SAGEMAKER_ENDPOINT
) triton_builder = model_builder.build() predictor = triton_builder.deploy( instance_type='ml.g4dn.xlarge', initial_instance_count=1
)

Hivatkozni model-builder-triton.ipynb hogy telepítsünk egy modellt a Tritonnal.

Ölelő arcmodellek

Ebben a példában bemutatjuk, hogyan telepíthet egy előre betanított transzformátormodellt, amelyet a Hugging Face biztosított a SageMaker számára. Használni akarjuk az Ölelő Arcot pipeline a modell betöltéséhez, ezért létrehozunk egy egyéni következtetési specifikációt a számára ModelBuilder:

# custom inference spec with hugging face pipeline
class MyInferenceSpec(InferenceSpec): def load(self, model_dir: str): return pipeline("translation_en_to_fr", model="t5-small") def invoke(self, input, model): return model(input) inf_spec = MyInferenceSpec()

Meghatározzuk a következtetési munkaterhelés bemenetét és kimenetét is a SchemaBuilder objektum a modell bemenete és kimenete alapján:

schema = SchemaBuilder(value,output)

Ezután létrehozzuk a ModelBuilder objektumot, és telepítse a modellt egy SageMaker végpontra, ugyanazt a logikát követve, mint a másik példában:

builder = ModelBuilder( inference_spec=inf_spec, mode=Mode.SAGEMAKER_ENDPOINT, # you can change it to Mode.LOCAL_CONTAINER for local testing schema_builder=schema, image_uri=image,
)
model = builder.build( role_arn=execution_role, sagemaker_session=sagemaker_session,
)
predictor = model.deploy( initial_instance_count=1, instance_type='ml.g5.2xlarge'
)

Hivatkozni model-builder-huggingface.ipynb egy Hugging Face folyamatmodell üzembe helyezéséhez.

Telepítsen alapmodelleket a SageMaker végpontokra

A következő példákban bemutatjuk, hogyan kell használni ModelBuilder alapozási modellek telepítésére. A korábban említett modellekhez hasonlóan itt is csak a modellazonosítóra van szükség.

Átölelő Arc Hub

Ha alapozási modellt szeretne telepíteni Átölelő Arc Hub, csak át kell adnia az előre betanított modellazonosítót. Például a következő kódrészlet telepíti a meta-láma/Llama-2-7b-hf modell helyben. Módosíthatja a módot Mode.SAGEMAKER_ENDPOINT a SageMaker végpontjaihoz való telepítéshez.

model_builder = ModelBuilder( model="meta-llama/Llama-2-7b-hf", schema_builder=SchemaBuilder(sample_input, sample_output), model_path="/home/ec2-user/SageMaker/LoadTestResources/meta-llama2-7b", #local path where artifacts will be saved mode=Mode.LOCAL_CONTAINER, env_vars={ # Llama 2 is a gated model and requires a Hugging Face Hub token. "HUGGING_FACE_HUB_TOKEN": "<YourHuggingFaceToken>" }
)
model = model_builder.build()
local_predictor = model.deploy()

A Hugging Face Hub kapuzott modelljeihez hozzáférést kell kérnie a Hugging Face Hubon keresztül, és a kapcsolódó kulcsot környezeti változóként átadva kell használnia. HUGGING_FACE_HUB_TOKEN. Egyes Hugging Face modellek megbízható távoli kódot igényelhetnek. Környezeti változóként is beállítható HF_TRUST_REMOTE_CODE. Alapértelmezés szerint, ModelBuilder ölelő arc szöveggenerációs következtetést fog használni (TGI) tároló, mint a Hugging Face modellek mögöttes tárolója. Ha szeretné használni az AWS Large Model Inference (LMI) konténerek, beállíthatja a model_server paraméter as ModelServer.DJL_SERVING amikor konfigurálja a ModelBuilder tárgy.

Egy ügyes tulajdonsága ModelBuilder a tárolóparaméterek helyi hangolásának futtatása, amikor használja LOCAL_CONTAINER mód. Ez a funkció egyszerűen futással használható tuned_model = model.tune().

Hivatkozni demo-model-builder-huggingface-llama2.ipynb hogy telepítsünk egy Hugging Face Hub modellt.

SageMaker JumpStart

Amazon SageMaker JumpStart számos előre betanított alapozó modellt is kínál. Csakúgy, mint a Hugging Face Hub modelljének üzembe helyezéséhez, a modellazonosítóra is szükség van. A SageMaker JumpStart modell telepítése egy SageMaker végpontra olyan egyszerű, mint a következő kód futtatása:

model_builder = ModelBuilder( model="huggingface-llm-falcon-7b-bf16", schema_builder=SchemaBuilder(sample_input, sample_output), role_arn=execution_role
) sm_ep_model = model_builder.build() predictor = sm_ep_model.deploy()

Az összes elérhető SageMaker JumpStart modellazonosítót lásd: Beépített algoritmusok előre betanított modelltáblázattal. Hivatkozni model-builder-jumpstart-falcon.ipynb a SageMaker JumpStart modell telepítéséhez.

Következtetési komponens

ModelBulder lehetővé teszi a SageMaker új következtetési összetevőjének használatát a modellek telepítéséhez. A következtetési összetevőkkel kapcsolatos további információkért lásd Csökkentse átlagosan 50%-kal a modell bevezetési költségeit a SageMaker legújabb funkcióival. Használhat következtetési összetevőket a telepítéshez ModelBuilder megadásával endpoint_type=EndpointType.INFERENCE_COMPONENT_BASED a deploy() módszer. Használhatja továbbá a tune() módszerrel, amely lekéri az optimális számú gyorsítót, és szükség esetén módosítja azt.

resource_requirements = ResourceRequirements( requests={ "num_accelerators": 4, "memory": 1024, "copies": 1, }, limits={},
) goldfinch_predictor_2 = model_2.deploy( mode=Mode.SAGEMAKER_ENDPOINT, endpoint_type=EndpointType.INFERENCE_COMPONENT_BASED, ... )

Hivatkozni model-builder-inference-component.ipynb hogy egy modellt következtetési komponensként telepítsünk.

Szabja testre a ModelBuilder osztályt

A ModelBuilder osztály lehetővé teszi a modellbetöltés testreszabását InferenceSpec.

Ezenkívül vezérelheti a hasznos terhelést és a válaszok szerializálását és deszerializálását, valamint testreszabhatja az elő- és utófeldolgozást a CustomPayloadTranslator. Ezen túlmenően, ha ki kell bővítenie előre elkészített konténereinket a SageMakeren való modelltelepítéshez, használhatja ModelBuilder a modellcsomagolási folyamat kezelésére. A következő részben ezekről a képességekről adunk további részleteket.

InferenceSpec

InferenceSpec további testreszabási réteget kínál. Lehetővé teszi annak meghatározását, hogy a modell hogyan legyen betöltve, és hogyan kezelje a bejövő következtetési kéréseket. Keresztül InferenceSpec, egyedi betöltési eljárásokat határozhat meg modelljeihez, megkerülve az alapértelmezett betöltési mechanizmusokat. Ez a rugalmasság különösen előnyös, ha nem szabványos modellekkel vagy egyedi következtetési csővezetékekkel dolgozik. Az invoke metódus testreszabható, így személyre szabható, hogy a modell hogyan dolgozza fel a bejövő kéréseket (elő- és utófeldolgozás). Ez a testreszabás elengedhetetlen lehet annak biztosításához, hogy a következtetési folyamat igazodjon a modell speciális igényeihez. Lásd a következő kódot:

class InferenceSpec(abc.ABC): @abc.abstractmethod def load(self, model_dir: str): pass @abc.abstractmethod def invoke(self, input_object: object, model: object): pass

A következő kód példát mutat az osztály használatára:

class MyInferenceSpec(InferenceSpec): def load(self, model_dir: str): return // model object def invoke(self, input, model): return model(input)

CustomPayloadTranslator

A SageMaker-végpontok meghívásakor az adatok különböző MIME-típusokkal rendelkező HTTP-terheléseken keresztül kerülnek elküldésre. Például a végpontra következtetés céljából küldött képet az ügyféloldalon bájtokká kell alakítani, és a HTTP hasznos adathordozón keresztül el kell küldeni a végponthoz. Amikor a végpont megkapja a hasznos terhet, vissza kell szerializálnia a bájtkarakterláncot a modell által elvárt adattípusra (más néven szerveroldali deszerializálás). Miután a modell befejezte az előrejelzést, az eredményeket bájtokká kell szerializálni, amelyeket a HTTP hasznos adaton keresztül vissza lehet küldeni a felhasználónak vagy az ügyfélnek. Amikor az ügyfél megkapja a válaszbájtadatokat, kliensoldali deszerializálást kell végrehajtania, hogy a bájtadatokat a várt adatformátumba, például JSON-ba konvertálja vissza. Minimum, konvertálnia kell az adatokat a következőkhöz (a következő ábra számozása szerint):

  1. Következtetési kérelem sorozatosítása (az ügyfél kezeli)
  2. Következtetési kérés deszerializálása (a szerver vagy az algoritmus kezeli)
  3. A modell meghívása a hasznos teher ellen
  4. Válasz hasznos teher visszaküldése
  5. Következtetési válasz sorozatosítása (a szerver vagy az algoritmus kezeli)
  6. Következtetési válasz deszerializálása (az ügyfél kezeli)

A következő diagram a szerializálás és a deszerializálás folyamatát mutatja be a meghívási folyamat során.

Package and deploy classical ML and LLMs easily with Amazon SageMaker, part 1: PySDK Improvements | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

A következő kódrészletben egy példát mutatunk be CustomPayloadTranslator ha további testreszabásra van szükség a szerializálás és a deszerializáció kezeléséhez a kliens és a szerver oldalon:

from sagemaker.serve import CustomPayloadTranslator # request translator
class MyRequestTranslator(CustomPayloadTranslator): # This function converts the payload to bytes - happens on client side def serialize_payload_to_bytes(self, payload: object) -> bytes: # converts the input payload to bytes ... ... return //return object as bytes # This function converts the bytes to payload - happens on server side def deserialize_payload_from_stream(self, stream) -> object: # convert bytes to in-memory object ... ... return //return in-memory object # response translator class MyResponseTranslator(CustomPayloadTranslator): # This function converts the payload to bytes - happens on server side def serialize_payload_to_bytes(self, payload: object) -> bytes: # converts the response payload to bytes ... ... return //return object as bytes # This function converts the bytes to payload - happens on client side def deserialize_payload_from_stream(self, stream) -> object: # convert bytes to in-memory object ... ... return //return in-memory object

A demo-model-builder-pytorch.ipynb notebook, bemutatjuk, hogyan lehet egyszerűen telepíteni egy PyTorch-modellt egy SageMaker-végpontra a használatával ModelBuilder a ... val CustomPayloadTranslator és a InferenceSpec osztály.

Stage modell a telepítéshez

Ha a modellt következtetésre vagy a modellnyilvántartásba szeretné helyezni, használhatja model.create() or model.register(). Az engedélyezett modell létrejön a szolgáltatáson, majd később telepítheti. Lásd a következő kódot:

model_builder = ModelBuilder( model=model, schema_builder=SchemaBuilder(X_test, y_pred), role_arn=execution_role, )
deployable_model = model_builder.build() deployable_model.create() # deployable_model.register() for model registry

Használjon egyedi konténereket

A SageMaker biztosítja előre elkészített Docker képek beépített algoritmusaiért és a képzéshez és következtetésekhez használt támogatott mély tanulási keretrendszerekért. Ha egy előre elkészített SageMaker tároló nem felel meg az összes követelménynek, bővítheti a meglévő képet, hogy megfeleljen igényeinek. Egy előre elkészített kép kiterjesztésével használhatja a mellékelt mély tanulási könyvtárakat és beállításokat anélkül, hogy a semmiből kellene képet létrehoznia. Az előre elkészített tárolók kiterjesztésével kapcsolatos további részletekért tekintse meg a SageMaker dokumentumot. ModelBuilder támogatja a felhasználási eseteket, amikor saját konténereit hozza magával, amelyek az előre elkészített Docker konténereinkből vannak kibővítve.

Ebben az esetben a saját tárolókép használatához be kell állítania a mezőket image_uri és a model_server meghatározásakor ModelBuilder:

model_builder = ModelBuilder( model=model, # Pass in the actual model object. its "predict" method will be invoked in the endpoint. schema_builder=SchemaBuilder(X_test, y_pred), # Pass in a "SchemaBuilder" which will use the sample test input and output objects to infer the serialization needed. role_arn=execution_role, image_uri=image_uri, # REQUIRED FOR BYOC: Passing in image hosted in personal ECR Repo model_server=ModelServer.TORCHSERVE, # REQUIRED FOR BYOC: Passing in model server of choice mode=Mode.SAGEMAKER_ENDPOINT, dependencies={"auto": True, "custom": ["protobuf==3.20.2"]}
)

Itt a image_uri a fiókjában tárolt ARN tárolókép lesz Amazon Elastic Container Registry (Amazon ECR) adattár. Egy példa a következőképpen látható:

# Pulled the xgboost:1.7-1 DLC and pushed to personal ECR repo
image_uri = "<your_account_id>.dkr.ecr.us-west-2.amazonaws.com/my-byoc:xgb"

Amikor a image_uri alatt van beállítva ModelBuilder Az építési folyamat során kihagyja a kép automatikus észlelését, amint a kép URI-ja rendelkezésre áll. Ha model_server nincs beállítva a ModelBuilderben, akkor egy érvényesítési hibaüzenetet fog kapni, például:

ValueError: Model_server must be set when image_uri is set. Supported model servers: {<ModelServer.TRITON: 5>, <ModelServer.DJL_SERVING: 4>, <ModelServer.TORCHSERVE: 1>}

A bejegyzés megjelenése óta ModelBuilder támogatja a saját konténerek hozását, amelyek a mi kínálatunkból származnak előre elkészített DLC-tároló képek vagy a modellszerverekkel épített konténerek, mint pl Deep Java Library (DJL), Szöveggenerálási következtetés (TGI), TorchServeés Triton következtetési szerver.

Egyéni függőségek

Amikor fut ModelBuilder.build(), alapértelmezés szerint automatikusan rögzíti a Python-környezetet a requirements.txt fájlt, és ugyanazt a függőséget telepíti a tárolóba. Néha azonban a helyi Python-környezet ütközik a tárolóban lévő környezettel. ModelBuilder egyszerű módot biztosít a rögzített függőségek módosítására az ilyen függőségi ütközések kijavítása érdekében azáltal, hogy lehetővé teszi az egyéni konfigurációk megadását ModelBuilder. Vegye figyelembe, hogy ez csak a TorchServe és a Triton esetében használható InferenceSpec. Például megadhatja a bemeneti paraméter-függőségeket, amely egy Python-szótár, a ModelBuilderben az alábbiak szerint:

dependency_config = { "auto" = True, "requirements" = "/path/to/your/requirements.txt" "custom" = ["module>=1.2.3,<1.5", "boto3==1.16.*", "some_module@http://some/url"]
} ModelBuilder( # Other params dependencies=dependency_config,
).build()

A következő mezőket határozzuk meg:

  • auto – Megpróbálja-e automatikusan rögzíteni a környezet függőségeit.
  • követelmények – A sajátodhoz vezető út füzére requirements.txt fájlt. (Ez opcionális.)
  • szokás – A hozzáadni vagy módosítani kívánt egyéb egyéni függőségek listája. (Ez opcionális.)

Ha ugyanaz a modul több helyen is meg van adva, custom akkor a legmagasabb prioritás lesz requirementsés auto legalacsonyabb prioritású lesz. Tegyük fel például, hogy az automatikus észlelés során ModelBuilder érzékeli numpy==1.25, És egy requirements.txt fájl van megadva, amely meghatározza numpy>=1.24,<1.26. Ezenkívül van egy egyéni függőség: custom = ["numpy==1.26.1"]. Ebben az esetben, numpy==1.26.1 akkor lesz kiválasztva, amikor függőségeket telepítünk a tárolóba.

Tisztítsuk meg

Ha végzett a modellek tesztelésével, legjobb gyakorlatként törölje a végpontot a költségek megtakarítása érdekében, ha a végpontra már nincs szükség. Követheti a Tisztítsuk meg szakaszt mindegyik demó notebookban, vagy használja a következő kódot a demó által létrehozott modell és végpont törléséhez:

predictor.delete_model()
predictor.delete_endpoint()

Következtetés

Az új SageMaker ModelBuilder képesség leegyszerűsíti az ML modellek üzembe helyezésének folyamatát a SageMakeren. Azáltal, hogy a színfalak mögött sok összetett részletet kezel, a ModelBuilder csökkenti az új felhasználók tanulási görbéjét, és maximalizálja a kihasználást a tapasztalt felhasználók számára. Csak néhány sornyi kóddal telepítheti a beépített keretrendszerrel rendelkező modelleket, mint például az XGBoost, PyTorch, Triton és Hugging Face, valamint a SageMaker JumpStart által biztosított modelleket a SageMaker robusztus, méretezhető végpontjaiba.

Arra biztatjuk a SageMaker összes felhasználóját, hogy próbálja ki ezt az új képességet, hivatkozva a ModelBuilder dokumentációs oldal. A ModelBuilder mostantól minden SageMaker-felhasználó számára elérhető, további költségek nélkül. Használja ki ezt az egyszerűsített munkafolyamatot a modellek gyorsabb üzembe helyezéséhez. Kíváncsian várjuk, hogy a ModelBuilder hogyan gyorsítja fel a modellfejlesztési életciklusát!

Külön köszönet Sirisha Upadhyayala-nak, Raymond Liunak, Gary Wangnak, Dhawal Patelnek, Deepak Gargnak és Ram Vegirajunak.


A szerzőkről

Package and deploy classical ML and LLMs easily with Amazon SageMaker, part 1: PySDK Improvements | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Melanie Li, PhD, az AWS vezető AI/ML specialistája, Sydney-ben, Ausztráliában. Segít a vállalati ügyfeleknek megoldásokat építeni a legkorszerűbb AI/ML eszközökkel az AWS-en, és útmutatást ad az ML-megoldások megtervezéséhez és megvalósításához a legjobb gyakorlatok alapján. Szabadidejében szereti felfedezni a természetet, családjával és barátaival tölteni az időt.

Package and deploy classical ML and LLMs easily with Amazon SageMaker, part 1: PySDK Improvements | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Marc Karp ML építész az Amazon SageMaker Service csapatánál. Arra összpontosít, hogy segítse az ügyfeleket az ML-munkaterhelések nagyszabású tervezésében, telepítésében és kezelésében. Szabadidejében szívesen utazik és új helyeket fedez fel.

Package and deploy classical ML and LLMs easily with Amazon SageMaker, part 1: PySDK Improvements | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Sam Edwards, felhőmérnök (AI/ML) az AWS Sydney-nél, a gépi tanulásra és az Amazon SageMakerre szakosodott. Szenvedélyesen segít ügyfeleinek a gépi tanulási munkafolyamatokkal kapcsolatos problémák megoldásában, és új megoldásokat hoz létre számukra. Munkán kívül szeret ütősportolni és utazni.

Package and deploy classical ML and LLMs easily with Amazon SageMaker, part 1: PySDK Improvements | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Raghu Ramesha az Amazon SageMaker Service csapatának vezető ML Solutions Architect. Arra összpontosít, hogy segítse az ügyfeleket az ML termelési munkaterhelések nagyarányú SageMaker-re való felépítésében, telepítésében és migrálásában. A gépi tanulás, a mesterséges intelligencia és a számítógépes látás tartományaira specializálódott, és az UT Dallas Egyetemen szerzett mesterfokozatot számítástechnikából. Szabadidejében szívesen utazik és fényképez.

Package and deploy classical ML and LLMs easily with Amazon SageMaker, part 1: PySDK Improvements | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Shiva Raaj Kotini fő termékmenedzserként dolgozik az Amazon SageMaker következtetési termékportfóliójában. A következtetések levonásához a SageMakerben a modell bevezetésére, a teljesítményhangolásra és az optimalizálásra összpontosít.

Package and deploy classical ML and LLMs easily with Amazon SageMaker, part 1: PySDK Improvements | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Mohan Gandhi az AWS vezető szoftvermérnöke. Az elmúlt 10 évben az AWS-nél dolgozott, és különféle AWS-szolgáltatásokon dolgozott, mint például az EMR, az EFA és az RDS. Jelenleg a SageMaker Inference Experience fejlesztésére összpontosít. Szabadidejében szeret túrázni és maratonozni.

Időbélyeg:

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