Pakkaa ja ota käyttöön klassiset ML- ja LLM:t helposti Amazon SageMakerilla, osa 1: PySDK:n parannukset | Amazon Web Services

Pakkaa ja ota käyttöön klassiset ML- ja LLM:t helposti Amazon SageMakerilla, osa 1: PySDK:n parannukset | Amazon Web Services

Amazon Sage Maker on täysin hallittu palvelu, jonka avulla kehittäjät ja datatieteilijät voivat nopeasti ja vaivattomasti rakentaa, kouluttaa ja ottaa käyttöön koneoppimismalleja (ML) missä tahansa mittakaavassa. SageMaker tekee mallien ottamisesta tuotantoon yksinkertaista suoraan API-kutsujen kautta palveluun. Mallit on pakattu säiliöihin kestäviä ja skaalautuvia käyttöönottoja varten. Vaikka se tarjoaa useita aloituspisteitä, kuten SageMaker Python SDK, AWS SDK:t, SageMaker-konsoli ja Amazon SageMaker Studio kannettavat tietokoneet yksinkertaistaakseen koulutusta ja ML-mallien käyttöönottoa mittakaavassa, asiakkaat etsivät edelleen parempia tapoja ottaa mallinsa käyttöön leikkikenttätestaukseen ja optimoida tuotannon käyttöönotot.

Julkaisemme kaksi uutta tapaa yksinkertaistaa mallien pakkaus- ja käyttöönottoprosessia SageMakerin avulla.

Tässä viestissä esittelemme uuden SageMaker Python SDK:n ModelBuilder kokemus, jonka tavoitteena on minimoida uusien SageMaker-käyttäjien, kuten datatieteilijöiden, oppimiskäyrä ja samalla auttaa kokeneita MLOps-insinöörejä maksimoimaan SageMaker-isännöintipalvelujen hyödyntämisen. Se vähentää alkuasennuksen ja käyttöönoton monimutkaisuutta ja tarjoaa ohjeita parhaista käytännöistä SageMakerin kaikkien ominaisuuksien hyödyntämiseksi. Tarjoamme yksityiskohtaisia ​​tietoja ja GitHub-esimerkkejä tästä uudesta SageMaker-ominaisuudesta.

Toinen uusi julkaisu on käyttää SageMaker Studion uutta interaktiivista käyttöönottokokemusta. Keskustelemme tästä osassa 2.

Mallien käyttöönotto SageMaker-päätepisteessä edellyttää sarjan vaiheita mallin saattamiseksi valmiiksi isännöitäväksi SageMaker-päätepisteessä. Tämä edellyttää mallin artefaktien saamista oikeaan muotoon ja rakenteeseen, päättelykoodin luomista ja olennaisten yksityiskohtien, kuten mallin kuvan URL-osoitteen, määrittämistä, Amazonin yksinkertainen tallennuspalvelu (Amazon S3) mallin artefaktien sijainti, serialisointi- ja deserialisointivaiheet ja tarvittavat AWS-henkilöllisyyden ja käyttöoikeuksien hallinta (IAM) roolit, jotka helpottavat asianmukaisia ​​käyttöoikeuksia. Tämän jälkeen päätepisteen määrittäminen edellyttää päättelytyypin määrittämistä ja vastaavien parametrien, kuten ilmentymien tyypit, määrät ja liikenteen jakautuminen mallimuunnelmien kesken, määrittämistä.

Auttaaksemme asiakkaitamme entisestään SageMaker-isännöinnin käytössä esittelimme uuden ModelBuilder luokka SageMaker Python SDK:ssa, joka tuo seuraavat keskeiset edut käyttöönotettaessa malleja SageMaker-päätepisteisiin:

  • Yhdistää käyttöönottokokemuksen eri kehysten välillä – Uusi kokemus tarjoaa johdonmukaisen työnkulun eri kehyksillä, kuten PyTorch, TensorFlow ja XGBoost, rakennettujen mallien käyttöönotolle. Tämä yksinkertaistaa käyttöönottoprosessia.
  • Automatisoi mallin käyttöönoton – Tehtävät, kuten sopivien säilöjen valitseminen, riippuvuuksien kaappaaminen ja serialisoinnin/deserialoinnin käsittely, ovat automatisoituja, mikä vähentää käyttöönoton vaatimaa manuaalista työtä.
  • Tarjoaa sujuvan siirtymisen paikallisesta SageMaker-isännöimään päätepisteeseen – Vähimmäisillä koodimuutoksilla malleja voidaan helposti siirtää paikallisesta testauksesta käyttöönottoon SageMaker-päätepisteessä. Live-lokit tekevät virheenkorjauksesta saumatonta.

Kaiken kaikkiaan SageMaker ModelBuilder yksinkertaistaa ja virtaviivaistaa SageMaker-päätelmien mallipakkausprosessia käsittelemällä matalan tason yksityiskohtia ja tarjoaa työkaluja päätepisteiden testaamiseen, validointiin ja optimointiin. Tämä parantaa kehittäjien tuottavuutta ja vähentää virheitä.

Seuraavissa osioissa perehdymme tämän uuden ominaisuuden yksityiskohtiin. Keskustelemme myös mallien käyttöönotosta SageMaker-isännöintiin käyttämällä ModelBuilder, mikä yksinkertaistaa prosessia. Sitten opastamme sinut läpi muutaman esimerkin eri viitekehyksestä, jotta voit ottaa käyttöön sekä perinteisiä ML-malleja että perustavia malleja, jotka tukevat luovia tekoälyn käyttötapauksia.

SageMaker ModelBuilderiin tutustuminen

Uusi ModelBuilder on Python-luokka, joka keskittyy ottamaan ML-malleja, jotka on rakennettu käyttämällä kehyksiä, kuten XGBoost tai PyTorch, ja muuntaa ne malleiksi, jotka ovat valmiita käyttöönotettavaksi SageMakerissa. ModelBuilder tarjoaa a build() toiminto, joka luo artefaktit mallipalvelimen mukaan, ja a deploy() toiminto ottaa käyttöön paikallisesti tai SageMaker-päätepisteeseen. Tämän ominaisuuden käyttöönotto yksinkertaistaa mallien integrointia SageMaker-ympäristöön ja optimoi niiden suorituskyvyn ja skaalautuvuuden. Seuraava kaavio näyttää kuinka ModelBuilder toimii korkealla tasolla.

Pakkaa ja ota käyttöön klassiset ML- ja LLM:t helposti Amazon SageMakerilla, osa 1: PySDK:n parannukset | Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

ModelBuilder-luokka

- Mallinrakentaja luokka tarjoaa erilaisia ​​räätälöintivaihtoehtoja. Kuitenkin ottaakseen käyttöön kehysmallin mallinrakennusohjelma odottaa vain mallin, syötteen, tulosteen ja roolin:

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

- SchemaBuilder luokan avulla voit määrittää tulon ja lähdön päätepisteellesi. Sen avulla skeeman rakentaja voi luoda vastaavat järjestysfunktiot tulon ja lähdön sarjoittamista ja sarjoittamista varten. Seuraava luokkatiedosto sisältää kaikki mukautusvaihtoehdot:

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

Useimmissa tapauksissa vain näytesyöttö ja -tulostus toimisivat. Esimerkiksi:

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

Antamalla näytetulon ja -tulostuksen, SchemaBuilder voi automaattisesti määrittää tarvittavat muutokset, mikä tekee integraatioprosessista yksinkertaisemman. Edistyksellisissä käyttötapauksissa on joustavuutta tarjota mukautettuja käännöstoimintoja sekä syöttöä että tulosta varten, mikä varmistaa, että myös monimutkaisempia tietorakenteita voidaan käsitellä tehokkaasti. Esittelemme tämän seuraavissa osissa ottamalla käyttöön erilaisia ​​malleja erilaisilla kehyksillä ModelBuilder.

Kokemus paikallistilasta

Tässä esimerkissä käytämme ModelBuilder ottaa XGBoost-malli käyttöön paikallisesti. Voit käyttää Modea vaihtaaksesi paikallisen testauksen ja SageMaker-päätepisteen käyttöönoton välillä. Koulutamme ensin XGBoost-mallin (paikallisesti tai SageMakerissa) ja tallennamme mallin artefaktit työhakemistoon:

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

Sitten luomme ModelBuilder-objektin välittämällä varsinaisen malliobjektin, the SchemaBuilder joka käyttää näytetestin tulo- ja lähtöobjekteja (sama syöttö ja lähtö, joita käytimme mallin koulutuksessa ja testaamisessa) tarvittavan serialisoinnin päättelemiseen. Huomaa, että käytämme Mode.LOCAL_CONTAINER määrittääksesi paikallisen käyttöönoton. Sen jälkeen soitamme n rakentaa toiminto tunnistaa automaattisesti tuetun kehyssäilökuvan sekä etsii riippuvuuksia. Katso seuraava koodi:

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()

Lopuksi voimme soittaa deploy toiminto malliobjektissa, joka tarjoaa myös reaaliaikaisen kirjauksen virheenkorjauksen helpottamiseksi. Sinun ei tarvitse määrittää ilmentymän tyyppiä tai määrää, koska malli otetaan käyttöön paikallisesti. Jos annoit nämä parametrit, ne ohitetaan. Tämä funktio palauttaa ennustajaobjektin, jota voimme käyttää ennusteen tekemiseen testidatan avulla:

# 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)

Vaihtoehtoisesti voit myös ohjata mallin lataamista sekä esi- ja jälkikäsittelyä käyttämällä InferenceSpec. Annamme lisätietoja myöhemmin tässä viestissä. Käyttämällä LOCAL_CONTAINER on loistava tapa testata skriptiäsi paikallisesti ennen käyttöönottoa SageMaker-päätepisteessä.

Viittaavat model-builder-xgboost.ipynb esimerkki, jolla voit testata käyttöönottoa sekä paikallisesti että SageMaker-päätepisteeseen käyttämällä ModelBuilder.

Ota perinteisiä malleja käyttöön SageMaker-päätepisteissä

Seuraavissa esimerkeissä näytämme, kuinka sitä käytetään ModelBuilder ottaa käyttöön perinteisiä ML-malleja.

XGBoost mallit

Kuten edellisessä osiossa, voit ottaa XGBoost-mallin käyttöön SageMaker-päätepisteeseen muuttamalla mode parametria luotaessa ModelBuilder esine:

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
)

Huomaa, että kun otat käyttöön SageMaker-päätepisteisiin, sinun on määritettävä ilmentymän tyyppi ja ilmentymien määrä, kun kutsut deploy toiminto.

Viittaavat model-builder-xgboost.ipynb esimerkki XGBoost-mallin käyttöönotosta.

Triton mallit

Voit käyttää ModelBuilder palvella PyTorch-malleja Triton-päätepalvelin. Tätä varten sinun on määritettävä model_server parametri as ModelServer.TRITON, välitä malli ja sinulla on a SchemaBuilder objekti, joka vaatii mallista näytetuloja ja -ulostuloja. ModelBuilder hoitaa loput puolestasi.

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
)

Mainita model-builder-triton.ipynb ottaa mallin käyttöön Tritonin kanssa.

Halaavia kasvomalleja

Tässä esimerkissä näytämme, kuinka Hugging Facen tarjoama esikoulutettu muuntajamalli otetaan käyttöön SageMakerille. Haluamme käyttää Hugging Facea pipeline ladataksesi mallin, joten luomme mukautetun päättelyn spesifikaation 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()

Määrittelemme myös päättelytyökuorman syötteen ja tulosteen määrittämällä SchemaBuilder objekti mallin tulon ja lähdön perusteella:

schema = SchemaBuilder(value,output)

Sitten luomme ModelBuilder objekti ja ota malli käyttöön SageMaker-päätepisteessä noudattaen samaa logiikkaa kuin toisessa esimerkissä:

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'
)

Mainita model-builder-huggingface.ipynb ottaa käyttöön Hugging Face -putkimallin.

Ota perusmallit käyttöön SageMaker-päätepisteissä

Seuraavissa esimerkeissä näytämme, kuinka sitä käytetään ModelBuilder perustan mallien käyttöönottamiseksi. Kuten aiemmin mainitut mallit, vaaditaan vain mallitunnus.

Hugging Face Hub

Jos haluat ottaa käyttöön perustusmallin Hugging Face Hub, sinun tarvitsee vain välittää esikoulutettu mallitunnus. Esimerkiksi seuraava koodinpätkä ottaa käyttöön meta-laama/Llama-2-7b-hf malli paikallisesti. Voit vaihtaa tilaksi Mode.SAGEMAKER_ENDPOINT ottaa käyttöön SageMaker-päätepisteisiin.

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()

Hugging Face Hubin aidatuissa malleissa sinun on pyydettävä pääsy Hugging Face Hubin kautta ja käytettävä vastaavaa avainta välittämällä se ympäristömuuttujana HUGGING_FACE_HUB_TOKEN. Jotkin Hugging Face -mallit saattavat vaatia luotettavaa etäkoodia. Se voidaan asettaa ympäristömuuttujaksi myös käyttämällä HF_TRUST_REMOTE_CODE. Oletuksena, ModelBuilder käyttää halaavien kasvojen tekstin luomispäätelmää (TGI) -säiliö Hugging Face -mallien alla olevaksi säiliöksi. Jos haluat käyttää AWS Large Model Inference (LMI) kontit, voit määrittää model_server parametri as ModelServer.DJL_SERVING kun määrität ModelBuilder esine.

Siisti ominaisuus ModelBuilder on kyky suorittaa paikallista säilön parametrien viritystä, kun käytät LOCAL_CONTAINER -tilassa. Tätä ominaisuutta voi käyttää yksinkertaisesti ajamalla tuned_model = model.tune().

Mainita demo-model-builder-huggingface-llama2.ipynb ottaa käyttöön Hugging Face Hub -mallin.

SageMaker JumpStart

Amazon SageMaker JumpStart tarjoaa myös useita valmiiksi koulutettuja meikkimalleja. Kuten Hugging Face Hubin mallin käyttöönottoprosessissa, mallitunnus vaaditaan. SageMaker JumpStart -mallin käyttöönotto SageMaker-päätepisteeseen on yhtä yksinkertaista kuin seuraavan koodin suorittaminen:

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()

Katso kaikki saatavilla olevat SageMaker JumpStart -mallitunnukset kohdasta Sisäänrakennetut algoritmit esiopetetulla mallitaulukolla. Viitata model-builder-jumpstart-falcon.ipynb ottaa käyttöön SageMaker JumpStart -malli.

Päätelmäkomponentti

ModelBulder antaa sinun käyttää SageMakerin uutta päättelykomponenttiominaisuutta mallien käyttöönottoon. Lisätietoja päättelykomponenteista on kohdassa Pienennä mallin käyttöönottokustannuksia keskimäärin 50 % käyttämällä SageMakerin uusimpia ominaisuuksia. Voit käyttää päättelykomponentteja käyttöönotossa ModelBuilder määrittämällä endpoint_type=EndpointType.INFERENCE_COMPONENT_BASED vuonna deploy() menetelmä. Voit myös käyttää tune() menetelmällä, joka hakee optimaalisen määrän kiihdyttimiä ja muuttaa sitä tarvittaessa.

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, ... )

Mainita model-builder-inference-component.ipynb ottaa mallin käyttöön päättelykomponenttina.

Mukauta ModelBuilder-luokkaa

- ModelBuilder luokan avulla voit mukauttaa mallin latausta käyttämällä InferenceSpec.

Lisäksi voit ohjata hyötykuorman ja vastausten serialisointia ja deserialisointia sekä mukauttaa esi- ja jälkikäsittelyä CustomPayloadTranslator. Lisäksi, kun sinun on laajennettava valmiiksi rakennettuja säiliöitämme mallin käyttöönottoa varten SageMakerissa, voit käyttää ModelBuilder mallipakkausprosessin hoitamiseen. Tässä seuraavassa osiossa annamme lisätietoja näistä ominaisuuksista.

InferenceSpec

InferenceSpec tarjoaa ylimääräisen mukauttamiskerroksen. Sen avulla voit määrittää, kuinka malli ladataan ja kuinka se käsittelee saapuvia päättelypyyntöjä. Kautta InferenceSpec, voit määrittää mukautettuja latausmenettelyjä malleillesi ohittaen oletuslatausmekanismit. Tämä joustavuus on erityisen hyödyllistä työskenneltäessä ei-standardien mallien tai mukautettujen päättelyputkien kanssa. Kutsumenetelmää voidaan mukauttaa, jolloin voit räätälöidä, kuinka malli käsittelee saapuvat pyynnöt (esi- ja jälkikäsittely). Tämä räätälöinti voi olla välttämätöntä sen varmistamiseksi, että päättelyprosessi vastaa mallin erityistarpeita. Katso seuraava koodi:

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

Seuraava koodi näyttää esimerkin tämän luokan käytöstä:

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

CustomPayloadTranslator

Kun SageMaker-päätepisteitä kutsutaan, tiedot lähetetään HTTP-hyötykuormien kautta eri MIME-tyypeillä. Esimerkiksi päätepisteeseen johtopäätöstä varten lähetetty kuva on muutettava tavuiksi asiakaspuolella ja lähetettävä HTTP-hyötykuorman kautta päätepisteeseen. Kun päätepiste vastaanottaa hyötykuorman, sen on deserialisoitava tavumerkkijono takaisin tietotyyppiin, jonka malli odottaa (tunnetaan myös nimellä palvelinpuolen deserialisointi). Kun malli on valmis ennustuksen, tulokset on sarjoitettava tavuiksi, jotka voidaan lähettää takaisin HTTP-hyötykuorman kautta käyttäjälle tai asiakkaalle. Kun asiakas vastaanottaa vastaustavutiedot, sen on suoritettava asiakaspuolen sarjoittaminen, jotta tavutiedot muunnetaan takaisin odotettuun tietomuotoon, kuten JSON. Vähintään, sinun on muunnettava tiedot seuraavaa varten (seuraavassa kaaviossa numeroitu):

  1. Päätelmäpyynnön serialisointi (asiakkaan hoitama)
  2. Päätelmäpyynnön sarjoittaminen (palvelimen tai algoritmin hoitama)
  3. Mallin käynnistäminen hyötykuormaa vastaan
  4. Lähetetään vastauksen hyötykuormaa takaisin
  5. Päätelmävastauksen serialisointi (palvelimen tai algoritmin hoitama)
  6. Päätelmävastauksen deserialointi (asiakkaan hoitama)

Seuraavassa kaaviossa esitetään sarjoittaminen ja deserialisointi kutsuprosessin aikana.

Pakkaa ja ota käyttöön klassiset ML- ja LLM:t helposti Amazon SageMakerilla, osa 1: PySDK:n parannukset | Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Seuraavassa koodinpätkässä näytämme esimerkin CustomPayloadTranslator kun lisäräätälöintiä tarvitaan sekä serialisoinnin että deserialisoinnin käsittelemiseksi asiakas- ja palvelinpuolella, vastaavasti:

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

In demo-model-builder-pytorch.ipynb muistikirjassa, esittelemme, kuinka PyTorch-malli otetaan helposti käyttöön SageMaker-päätepisteeseen käyttämällä ModelBuilder jossa CustomPayloadTranslator ja InferenceSpec luokka.

Käyttöönoton vaihemalli

Jos haluat asettaa mallin päättelyä varten tai mallirekisteriin, voit käyttää model.create() or model.register(). Käytössä oleva malli luodaan palveluun, jonka jälkeen voit ottaa sen käyttöön myöhemmin. Katso seuraava koodi:

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

Käytä mukautettuja säiliöitä

SageMaker tarjoaa valmiiksi rakennetut Docker-kuvat sen sisäänrakennetuille algoritmeille ja tuetuille syväoppimiskehyksille, joita käytetään koulutukseen ja päättelyyn. Jos valmiiksi rakennettu SageMaker-säiliö ei täytä kaikkia vaatimuksiasi, voit laajentaa olemassa olevaa kuvaa tarpeidesi mukaan. Laajentamalla valmiiksi rakennettua kuvaa voit käyttää mukana olevia syväoppimiskirjastoja ja -asetuksia ilman, että sinun tarvitsee luoda kuvaa tyhjästä. Lisätietoja valmiiden säiliöiden laajentamisesta on SageMaker-asiakirjassa. ModelBuilder tukee käyttötapauksia, kun tuot omia konttejasi, jotka on laajennettu valmiiksi rakennetuista Docker-konteistamme.

Jos haluat käyttää tässä tapauksessa omaa säilökuvaasi, sinun on asetettava kentät image_uri ja model_server määriteltäessä 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"]}
)

Tässä, image_uri on tilillesi tallennettu säilön kuva ARN Amazonin elastisten säiliörekisteri (Amazon ECR) arkisto. Yksi esimerkki on esitetty seuraavasti:

# 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"

Kun image_uri on asetettu aikana ModelBuilder rakennusprosessissa, se ohittaa kuvan automaattisen tunnistuksen, kun kuvan URI toimitetaan. Jos model_server ei ole asetettu ModelBuilderiin, saat vahvistusvirhesanoman, esimerkiksi:

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

Tämän viestin julkaisusta lähtien ModelBuilder tukee omien konttien tuomista, jotka on laajennettu meiltä valmiiksi rakennetut DLC-konttikuvat tai kontit, jotka on rakennettu mallipalvelimilla, kuten Deep Java -kirjasto (DJL), Tekstin luomisen päättely (TGI), SoihtuPalveluja Triton-johtopäätöspalvelin.

Mukautetut riippuvuudet

Kun käytät ModelBuilder.build(), oletusarvoisesti se kaappaa Python-ympäristösi automaattisesti a requirements.txt tiedosto ja asentaa saman riippuvuuden säilöön. Joskus paikallinen Python-ympäristösi on kuitenkin ristiriidassa säilön ympäristön kanssa. ModelBuilder tarjoaa yksinkertaisen tavan muokata siepattuja riippuvuuksia tällaisten riippuvuusristiriitojen korjaamiseksi sallimalla sinun antaa mukautetut määritykset ModelBuilder. Huomaa, että tämä on vain TorchServe ja Triton with InferenceSpec. Voit esimerkiksi määrittää syöttöparametrien riippuvuudet, joka on Python-sanakirja, ModelBuilderissa seuraavasti:

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()

Määrittelemme seuraavat kentät:

  • auto – Yritetäänkö siepata automaattisesti ympäristösi riippuvuudet.
  • vaatimukset – Joukko polkua omaan requirements.txt tiedosto. (Tämä on valinnainen.)
  • asiakassuhde – Luettelo kaikista muista mukautetuista riippuvuuksista, joita haluat lisätä tai muokata. (Tämä on valinnainen.)

Jos sama moduuli on määritetty useaan paikkaan, custom on silloin korkein prioriteetti requirementsja auto on alhaisin prioriteetti. Oletetaan esimerkiksi, että automaattisen tunnistuksen aikana ModelBuilder havaitsee numpy==1.25, Ja requirements.txt toimitetaan tiedosto, joka määrittää numpy>=1.24,<1.26. Lisäksi on mukautettu riippuvuus: custom = ["numpy==1.26.1"]. Tässä tapauksessa, numpy==1.26.1 valitaan, kun asennamme riippuvuuksia säilöön.

Puhdistaa

Kun olet lopettanut mallien testauksen, poista päätepiste parhaana käytäntönä kustannusten säästämiseksi, jos päätepistettä ei enää tarvita. Voit seurata Puhdistaa -osio kussakin esittelykirjassa tai käytä seuraavaa koodia demon luoman mallin ja päätepisteen poistamiseen:

predictor.delete_model()
predictor.delete_endpoint()

Yhteenveto

Uusi SageMaker ModelBuilder -ominaisuus yksinkertaistaa ML-mallien käyttöönottoa tuotantoon SageMakerissa. Käsittelemällä monia monimutkaisia ​​yksityiskohtia kulissien takana, ModelBuilder vähentää uusien käyttäjien oppimiskäyrää ja maksimoi kokeneiden käyttäjien käytön. Vain muutamalla koodirivillä voit ottaa käyttöön malleja, joissa on sisäänrakennetut kehykset, kuten XGBoost, PyTorch, Triton ja Hugging Face, sekä SageMaker JumpStartin tarjoamia malleja vankoihin, skaalautuviin päätepisteisiin SageMakerissa.

Kannustamme kaikkia SageMaker-käyttäjiä kokeilemaan tätä uutta ominaisuutta viittaamalla Mallinrakentaja dokumentaatiosivu. ModelBuilder on nyt kaikkien SageMaker-käyttäjien saatavilla ilman lisämaksua. Hyödynnä tätä yksinkertaistettua työnkulkua saadaksesi mallisi käyttöön nopeammin. Odotamme innolla kuulevamme, kuinka ModelBuilder nopeuttaa mallinkehityksen elinkaarta!

Erityiset kiitokset Sirisha Upadhyayalalle, Raymond Liulle, Gary Wangille, Dhawal Patelille, Deepak Gargille ja Ram Vegirajulle.


Tietoja kirjoittajista

Pakkaa ja ota käyttöön klassiset ML- ja LLM:t helposti Amazon SageMakerilla, osa 1: PySDK:n parannukset | Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Melanie Li, PhD, on vanhempi AI/ML-asiantuntija TAM AWS:ssä Sydneyssä, Australiassa. Hän auttaa yritysasiakkaita rakentamaan ratkaisuja käyttämällä huippuluokan AI/ML-työkaluja AWS:ssä ja opastaa ML-ratkaisujen suunnittelussa ja toteuttamisessa parhaiden käytäntöjen mukaisesti. Vapaa-ajallaan hän rakastaa tutkia luontoa ja viettää aikaa perheen ja ystävien kanssa.

Pakkaa ja ota käyttöön klassiset ML- ja LLM:t helposti Amazon SageMakerilla, osa 1: PySDK:n parannukset | Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Marc Karp on ML-arkkitehti Amazon SageMaker Service -tiimin kanssa. Hän keskittyy auttamaan asiakkaita suunnittelemaan, ottamaan käyttöön ja hallitsemaan ML-työkuormia laajasti. Vapaa-ajallaan hän nauttii matkustamisesta ja uusien paikkojen tutkimisesta.

Pakkaa ja ota käyttöön klassiset ML- ja LLM:t helposti Amazon SageMakerilla, osa 1: PySDK:n parannukset | Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Sam Edwards, on pilvi-insinööri (AI/ML) AWS Sydneyssä ja on erikoistunut koneoppimiseen ja Amazon SageMakeriin. Hän haluaa auttaa asiakkaita ratkaisemaan koneoppimisen työnkulkuihin liittyviä ongelmia ja luomaan heille uusia ratkaisuja. Työn ulkopuolella hän harrastaa mailaurheilua ja matkustamista.

Pakkaa ja ota käyttöön klassiset ML- ja LLM:t helposti Amazon SageMakerilla, osa 1: PySDK:n parannukset | Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Raghu Ramesha on vanhempi ML-ratkaisuarkkitehti Amazon SageMaker Service -tiimissä. Hän keskittyy auttamaan asiakkaita rakentamaan, ottamaan käyttöön ja siirtämään ML-tuotannon työmäärät SageMakeriin suuressa mittakaavassa. Hän on erikoistunut koneoppimiseen, tekoälyyn ja tietokonenäköalueisiin, ja hänellä on tietojenkäsittelytieteen maisterin tutkinto UT Dallasista. Vapaa-ajallaan hän nauttii matkustamisesta ja valokuvaamisesta.

Pakkaa ja ota käyttöön klassiset ML- ja LLM:t helposti Amazon SageMakerilla, osa 1: PySDK:n parannukset | Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Shiva Raaj Kotini työskentelee päätuotepäällikkönä Amazon SageMakerin päättelytuoteportfoliossa. Hän keskittyy mallin käyttöönottoon, suorituskyvyn säätämiseen ja optimointiin SageMakerissa päätelmiä varten.

Pakkaa ja ota käyttöön klassiset ML- ja LLM:t helposti Amazon SageMakerilla, osa 1: PySDK:n parannukset | Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Mohan Gandhi on AWS:n vanhempi ohjelmistosuunnittelija. Hän on työskennellyt AWS:ssä viimeiset 10 vuotta ja työskennellyt useiden AWS-palvelujen, kuten EMR, EFA ja RDS, parissa. Tällä hetkellä hän keskittyy parantamaan SageMaker Inference -kokemusta. Vapaa-ajallaan hän harrastaa patikointia ja maratoneja.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen