Pak og implementer nemt klassiske ML og LLM'er med Amazon SageMaker, del 1: PySDK-forbedringer | Amazon Web Services

Pak og implementer nemt klassiske ML og LLM'er med Amazon SageMaker, del 1: PySDK-forbedringer | Amazon Web Services

Amazon SageMaker er en fuldt administreret tjeneste, der gør det muligt for udviklere og datavidenskabsfolk hurtigt og ubesværet at bygge, træne og implementere maskinlæringsmodeller (ML) i enhver skala. SageMaker gør det ligetil at implementere modeller i produktionen direkte gennem API-kald til tjenesten. Modeller er pakket i containere til robuste og skalerbare implementeringer. Selvom det giver forskellige indgangspunkter som SageMaker Python SDK, AWS SDK'er, SageMaker-konsollen og Amazon SageMaker Studio notebooks for at forenkle processen med at træne og implementere ML-modeller i stor skala, leder kunderne stadig efter bedre måder at implementere deres modeller til legepladstest og til at optimere produktionsimplementeringer.

Vi lancerer to nye måder at forenkle processen med at pakke og implementere modeller ved hjælp af SageMaker.

I dette indlæg introducerer vi den nye SageMaker Python SDK ModelBuilder erfaring, som har til formål at minimere indlæringskurven for nye SageMaker-brugere som datavidenskabsfolk, samtidig med at de hjælper erfarne MLOps-ingeniører med at maksimere udnyttelsen af ​​SageMaker-hostingtjenesterne. Det reducerer kompleksiteten af ​​den indledende opsætning og implementering og ved at give vejledning om bedste praksis for at udnytte SageMakers fulde muligheder. Vi giver detaljerede oplysninger og GitHub-eksempler for denne nye SageMaker-funktion.

Den anden nye lancering er at bruge den nye interaktive implementeringsoplevelse i SageMaker Studio. Det diskuterer vi i del 2.

Implementering af modeller til et SageMaker-slutpunkt indebærer en række trin for at gøre modellen klar til at blive hostet på et SageMaker-slutpunkt. Dette indebærer at få modelartefakter i det korrekte format og struktur, skabe inferenskode og specificere væsentlige detaljer som modelbilledets URL, Amazon Simple Storage Service (Amazon S3) placering af modelartefakter, serialiserings- og deserialiseringstrin og nødvendige AWS identitets- og adgangsstyring (IAM) roller for at lette passende adgangstilladelser. Efter dette kræver en endepunktskonfiguration at bestemme slutningstypen og konfigurere respektive parametre såsom instanstyper, tællinger og trafikfordeling blandt modelvarianter.

For yderligere at hjælpe vores kunder, når de bruger SageMaker-hosting, introducerede vi det nye ModelBuilder klasse i SageMaker Python SDK, som giver følgende vigtige fordele ved implementering af modeller til SageMaker-slutpunkter:

  • Forener implementeringsoplevelsen på tværs af rammer – Den nye oplevelse giver en ensartet arbejdsgang til implementering af modeller bygget ved hjælp af forskellige rammer som PyTorch, TensorFlow og XGBoost. Dette forenkler implementeringsprocessen.
  • Automatiserer modelimplementering – Opgaver som at vælge passende containere, indfange afhængigheder og håndtering af serialisering/deserialisering er automatiserede, hvilket reducerer den manuelle indsats, der kræves til implementering.
  • Giver en glidende overgang fra lokalt til SageMaker-hostet slutpunkt – Med minimale kodeændringer kan modeller nemt skiftes fra lokal test til implementering på et SageMaker-slutpunkt. Live logs gør fejlfinding problemfri.

Samlet set SageMaker ModelBuilder forenkler og strømliner modelpakningsprocessen for SageMaker-inferens ved at håndtere detaljer på lavt niveau og giver værktøjer til test, validering og optimering af slutpunkter. Dette forbedrer udviklerproduktiviteten og reducerer fejl.

I de følgende afsnit dykker vi dybt ned i detaljerne i denne nye funktion. Vi diskuterer også, hvordan man implementerer modeller til SageMaker-hosting ved hjælp af ModelBuilder, hvilket forenkler processen. Derefter fører vi dig gennem et par eksempler på forskellige rammer til at implementere både traditionelle ML-modeller og de grundlæggende modeller, som strømgenererende AI bruger cases.

Lær SageMaker ModelBuilder at kende

Den nye ModelBuilder er en Python-klasse fokuseret på at tage ML-modeller bygget ved hjælp af frameworks, som XGBoost eller PyTorch, og konvertere dem til modeller, der er klar til implementering på SageMaker. ModelBuilder tilvejebringer en build() funktion, som genererer artefakter i henhold til modelserveren, og en deploy() funktion til at implementere lokalt eller til et SageMaker-slutpunkt. Introduktionen af ​​denne funktion forenkler integrationen af ​​modeller med SageMaker-miljøet og optimerer dem til ydeevne og skalerbarhed. Følgende diagram viser hvordan ModelBuilder arbejder på højt plan.

Pak og implementer nemt klassiske ML og LLM'er med Amazon SageMaker, del 1: PySDK-forbedringer | Amazon Web Services PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

ModelBuilder klasse

Modelbygger klasse giver forskellige muligheder for tilpasning. Men for at implementere rammemodellen forventer modelbyggeren blot modellen, input, output og rolle:

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 klasse giver dig mulighed for at definere input og output for dit slutpunkt. Det giver skemabyggeren mulighed for at generere de tilsvarende rangeringsfunktioner til serialisering og deserialisering af input og output. Følgende klassefil indeholder alle mulighederne for tilpasning:

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

Men i de fleste tilfælde ville bare prøveinput og -output fungere. For eksempel:

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

Ved at give eksempel input og output, SchemaBuilder kan automatisk bestemme de nødvendige transformationer, hvilket gør integrationsprocessen mere ligetil. For mere avancerede brugssager er der fleksibilitet til at levere tilpassede oversættelsesfunktioner til både input og output, hvilket sikrer, at mere komplekse datastrukturer også kan håndteres effektivt. Vi demonstrerer dette i de følgende afsnit ved at implementere forskellige modeller med forskellige rammer ved hjælp af ModelBuilder.

Lokal tilstand oplevelse

I dette eksempel bruger vi ModelBuilder at implementere XGBoost-modellen lokalt. Du kan bruge Tilstand til at skifte mellem lokal test og implementering til et SageMaker-slutpunkt. Vi træner først XGBoost-modellen (lokalt eller i SageMaker) og gemmer modelartefakter i arbejdsbiblioteket:

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

Derefter opretter vi et ModelBuilder-objekt ved at videregive det faktiske modelobjekt, den SchemaBuilder der bruger prøvetestinput og -outputobjekterne (det samme input og output, som vi brugte, da vi trænede og testede modellen) til at udlede den nødvendige serialisering. Bemærk at vi bruger Mode.LOCAL_CONTAINER for at angive en lokal implementering. Derefter ringer vi til bygge funktion til automatisk at identificere det understøttede rammebeholderbillede samt scanne for afhængigheder. Se følgende kode:

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

Endelig kan vi ringe til deploy funktion i modelobjektet, som også giver live logning for lettere fejlretning. Du behøver ikke at angive instanstypen eller tælleren, fordi modellen vil blive implementeret lokalt. Hvis du har angivet disse parametre, vil de blive ignoreret. Denne funktion returnerer det forudsigelsesobjekt, som vi kan bruge til at forudsige med testdataene:

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

Valgfrit kan du også styre indlæsningen af ​​modellen og for- og efterbehandling vha InferenceSpec. Vi giver flere detaljer senere i dette indlæg. Ved brug af LOCAL_CONTAINER er en fantastisk måde at teste dit script lokalt, før det implementeres til et SageMaker-slutpunkt.

Se i model-builder-xgboost.ipynb eksempel for at teste udrulning både lokalt og til et SageMaker-slutpunkt ved hjælp af ModelBuilder.

Implementer traditionelle modeller til SageMaker-slutpunkter

I de følgende eksempler viser vi, hvordan du bruger ModelBuilder at implementere traditionelle ML-modeller.

XGBoost modeller

I lighed med det forrige afsnit kan du implementere en XGBoost-model til et SageMaker-slutpunkt ved at ændre mode parameter, når du opretter ModelBuilder objekt:

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
)

Bemærk, at når du implementerer til SageMaker-slutpunkter, skal du angive instanstypen og instansantallet, når du kalder deploy funktion.

Se i model-builder-xgboost.ipynb eksempel for at implementere en XGBoost-model.

Triton modeller

Du kan bruge ModelBuilder at betjene PyTorch-modeller på Triton Inference Server. Til det skal du angive model_server parameter som ModelServer.TRITON, bestå en model og have en SchemaBuilder objekt, som kræver prøveinput og -output fra modellen. ModelBuilder tager sig af resten for dig.

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
)

Der henvises til model-builder-triton.ipynb at implementere en model med Triton.

Hugging Face-modeller

I dette eksempel viser vi dig, hvordan du implementerer en fortrænet transformermodel leveret af Hugging Face til SageMaker. Vi vil bruge det kramme ansigt pipeline for at indlæse modellen, så vi opretter en brugerdefineret inferensspecifikation for 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()

Vi definerer også input og output af inferensarbejdsbelastningen ved at definere SchemaBuilder objekt baseret på modellens input og output:

schema = SchemaBuilder(value,output)

Så skaber vi ModelBuilder objekt og implementer modellen på et SageMaker-slutpunkt efter samme logik som vist i det andet eksempel:

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

Der henvises til model-builder-huggingface.ipynb at implementere en Hugging Face-pipelinemodel.

Implementer fundamentmodeller til SageMaker-slutpunkter

I de følgende eksempler viser vi, hvordan du bruger ModelBuilder at implementere fundamentmodeller. Ligesom de modeller, der er nævnt tidligere, er det eneste, der kræves, model-id'et.

Krammer Face Hub

Hvis du ønsker at implementere en fundamentmodel fra Krammer Face Hub, alt hvad du skal gøre er at bestå det forudtrænede model-ID. For eksempel implementerer følgende kodestykke meta-llama/Llama-2-7b-hf model lokalt. Du kan ændre tilstanden til Mode.SAGEMAKER_ENDPOINT at implementere til SageMaker-endepunkter.

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

For gatede modeller på Hugging Face Hub skal du anmode om adgang via Hugging Face Hub og bruge den tilknyttede nøgle ved at videregive den som miljøvariabel HUGGING_FACE_HUB_TOKEN. Nogle Hugging Face-modeller kræver muligvis en pålidelig fjernbetjeningskode. Den kan også indstilles som en miljøvariabel vha HF_TRUST_REMOTE_CODE. Som standard, ModelBuilder vil bruge en Hugging Face Text Generation Inference (TGI) container som den underliggende container til Hugging Face-modeller. Hvis du gerne vil bruge AWS Large Model Inference (LMI) containere, kan du konfigurere model_server parameter som ModelServer.DJL_SERVING når du konfigurerer ModelBuilder objekt.

Et pænt træk ved ModelBuilder er muligheden for at køre lokal tuning af containerparametrene, når du bruger LOCAL_CONTAINER mode. Denne funktion kan bruges ved blot at køre tuned_model = model.tune().

Der henvises til demo-model-bygger-huggingface-llama2.ipynb at implementere en Hugging Face Hub-model.

SageMaker JumpStart

Amazon SageMaker JumpStart tilbyder også en række præ-trænede foundation modeller. Ligesom processen med at implementere en model fra Hugging Face Hub, er model-id'et påkrævet. At implementere en SageMaker JumpStart-model til et SageMaker-slutpunkt er lige så ligetil som at køre følgende kode:

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

Se alle tilgængelige SageMaker JumpStart-model-id'er Indbyggede algoritmer med fortrænet modelbord. Henvise til model-builder-jumpstart-falcon.ipynb at implementere en SageMaker JumpStart-model.

Inferens komponent

ModelBulder giver dig mulighed for at bruge den nye inferenskomponentfunktion i SageMaker til at implementere modeller. For mere information om inferenskomponenter, se Reducer omkostningerne til modelimplementering med 50 % i gennemsnit ved at bruge SageMakers seneste funktioner. Du kan bruge inferenskomponenter til implementering med ModelBuilder ved at specificere endpoint_type=EndpointType.INFERENCE_COMPONENT_BASED i deploy() metode. Du kan også bruge tune() metode, som henter det optimale antal acceleratorer, og modificere det, hvis det kræves.

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

Der henvises til model-builder-inference-component.ipynb at implementere en model som en inferenskomponent.

Tilpas ModelBuilder-klassen

ModelBuilder klasse giver dig mulighed for at tilpasse modelindlæsning vha InferenceSpec.

Derudover kan du styre nyttelast og svarserialisering og deserialisering og tilpasse forbehandling og efterbehandling vha. CustomPayloadTranslator. Derudover, når du skal udvide vores præbyggede containere til modelimplementering på SageMaker, kan du bruge ModelBuilder at håndtere modelpakningsprocessen. I dette følgende afsnit giver vi flere detaljer om disse muligheder.

InferenceSpec

InferenceSpec tilbyder et ekstra lag af tilpasning. Det giver dig mulighed for at definere, hvordan modellen indlæses, og hvordan den vil håndtere indgående slutningsanmodninger. igennem InferenceSpec, kan du definere brugerdefinerede indlæsningsprocedurer for dine modeller, uden at standardindlæsningsmekanismerne. Denne fleksibilitet er særlig fordelagtig, når du arbejder med ikke-standardiserede modeller eller tilpassede inferensrørledninger. Invoke-metoden kan tilpasses, hvilket giver dig mulighed for at skræddersy, hvordan modellen behandler indkommende anmodninger (forbehandling og efterbehandling). Denne tilpasning kan være afgørende for at sikre, at slutningsprocessen stemmer overens med modellens specifikke behov. Se følgende kode:

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

Følgende kode viser et eksempel på brug af denne klasse:

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

CustomPayload Translator

Når man kalder SageMaker-endepunkter, sendes dataene gennem HTTP-nyttelaster med forskellige MIME-typer. F.eks. skal et billede, der sendes til slutpunktet til slutning, konverteres til bytes på klientsiden og sendes gennem HTTP-nyttelasten til slutpunktet. Når endepunktet modtager nyttelasten, skal det deserialisere bytestrengen tilbage til den datatype, der forventes af modellen (også kendt som deserialisering på serversiden). Når modellen er færdig med forudsigelsen, skal resultaterne serialiseres til bytes, der kan sendes tilbage gennem HTTP-nyttelasten til brugeren eller klienten. Når klienten modtager svarbytedataene, skal den udføre deserialisering på klientsiden for at konvertere bytesdataene tilbage til det forventede dataformat, såsom JSON. Som minimum du skal konvertere dataene til følgende (som nummereret i følgende diagram):

  1. Serialisering af slutningsanmodninger (håndteret af klienten)
  2. Deserialisering af slutningsanmodninger (håndteret af serveren eller algoritmen)
  3. Påberåber modellen mod nyttelasten
  4. Sender svar nyttelast tilbage
  5. Inferenssvar serialisering (håndteret af serveren eller algoritmen)
  6. Deserialisering af slutningssvar (håndteret af klienten)

Følgende diagram viser processen med serialisering og deserialisering under invokationsprocessen.

Pak og implementer nemt klassiske ML og LLM'er med Amazon SageMaker, del 1: PySDK-forbedringer | Amazon Web Services PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

I det følgende kodestykke viser vi et eksempel på CustomPayloadTranslator når yderligere tilpasning er nødvendig for at håndtere både serialisering og deserialisering på henholdsvis klient- og serversiden:

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

I demo-model-builder-pytorch.ipynb notesbog, demonstrerer vi, hvordan man nemt implementerer en PyTorch-model til et SageMaker-slutpunkt ved hjælp af ModelBuilder med CustomPayloadTranslator og InferenceSpec klasse.

Fasemodel for implementering

Hvis du ønsker at iscenesætte modellen til slutning eller i modelregistret, kan du bruge model.create() or model.register(). Den aktiverede model oprettes på tjenesten, og så kan du implementere senere. Se følgende kode:

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

Brug tilpassede beholdere

SageMaker leverer forudbyggede Docker-billeder for dets indbyggede algoritmer og de understøttede deep learning-rammer, der bruges til træning og inferens. Hvis en forudbygget SageMaker-beholder ikke opfylder alle dine krav, kan du udvide det eksisterende billede for at imødekomme dine behov. Ved at udvide et forudbygget billede kan du bruge de medfølgende deep learning-biblioteker og indstillinger uden at skulle oprette et billede fra bunden. Se SageMaker-dokumentet for flere detaljer om, hvordan de forudbyggede beholdere forlænges. ModelBuilder understøtter brugssager, når du medbringer dine egne containere, der er udvidet fra vores forudbyggede Docker-containere.

For at bruge dit eget containerbillede i dette tilfælde skal du indstille felterne image_uri , model_server når man definerer 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"]}
)

Her, den image_uri vil være containerbilledet ARN, der er gemt på din kontos Amazon Elastic Container Registry (Amazon ECR) repository. Et eksempel er vist som følger:

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

Når image_uri er indstillet, under ModelBuilder byggeprocessen springer den automatisk registrering af billedet over, da billedets URI leveres. Hvis model_server ikke er indstillet i ModelBuilder, vil du modtage en valideringsfejlmeddelelse, for eksempel:

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

Fra offentliggørelsen af ​​dette indlæg, ModelBuilder understøtter at medbringe egne containere, der er forlænget fra vores forudbyggede DLC-containerbilleder eller containere bygget med modelservere som Deep Java Library (DJL), Tekstgenereringsinferens (TGI), TorchServeog Triton-inferensserver.

Brugerdefinerede afhængigheder

Når du kører ModelBuilder.build(), som standard indfanger den automatisk dit Python-miljø i en requirements.txt fil og installerer den samme afhængighed i containeren. Men nogle gange vil dit lokale Python-miljø være i konflikt med miljøet i containeren. ModelBuilder giver dig en enkel måde at ændre de registrerede afhængigheder for at rette sådanne afhængighedskonflikter ved at give dig mulighed for at angive dine brugerdefinerede konfigurationer i ModelBuilder. Bemærk, at dette kun er til TorchServe og Triton med InferenceSpec. For eksempel kan du angive inputparameterafhængighederne, som er en Python-ordbog, i ModelBuilder som følger:

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

Vi definerer følgende felter:

  • auto – Om du skal forsøge at automatisk fange afhængighederne i dit miljø.
  • krav – En række af vejen til din egen requirements.txt fil. (Dette er valgfrit.)
  • skik – En liste over eventuelle andre tilpassede afhængigheder, som du vil tilføje eller ændre. (Dette er valgfrit.)

Hvis det samme modul er angivet flere steder, custom vil da have højeste prioritet requirementsog auto vil have laveste prioritet. Lad os f.eks. sige, at under autodetektion, ModelBuilder registrerer numpy==1.25Og en requirements.txt fil er forudsat, der specificerer numpy>=1.24,<1.26. Derudover er der en tilpasset afhængighed: custom = ["numpy==1.26.1"]. I dette tilfælde, numpy==1.26.1 vil blive valgt, når vi installerer afhængigheder i containeren.

Ryd op

Når du er færdig med at teste modellerne, skal du som bedste praksis slette slutpunktet for at spare omkostninger, hvis slutpunktet ikke længere er påkrævet. Du kan følge Ryd op sektion i hver af demo-notesbøgerne eller brug følgende kode til at slette modellen og slutpunktet, der er oprettet af demoen:

predictor.delete_model()
predictor.delete_endpoint()

Konklusion

Den nye SageMaker ModelBuilder-funktion forenkler processen med at implementere ML-modeller i produktion på SageMaker. Ved at håndtere mange af de komplekse detaljer bag kulisserne reducerer ModelBuilder indlæringskurven for nye brugere og maksimerer udnyttelsen for erfarne brugere. Med blot et par linjer kode kan du implementere modeller med indbyggede rammer som XGBoost, PyTorch, Triton og Hugging Face, såvel som modeller leveret af SageMaker JumpStart til robuste, skalerbare slutpunkter på SageMaker.

Vi opfordrer alle SageMaker-brugere til at prøve denne nye funktion ved at henvise til Modelbygger dokumentationsside. ModelBuilder er tilgængelig nu for alle SageMaker-brugere uden ekstra omkostninger. Udnyt denne forenklede arbejdsgang for at få dine modeller implementeret hurtigere. Vi ser frem til at høre, hvordan ModelBuilder accelererer din modeludviklings livscyklus!

Særlig tak til Sirisha Upadhyayala, Raymond Liu, Gary Wang, Dhawal Patel, Deepak Garg og Ram Vegiraju.


Om forfatterne

Pak og implementer nemt klassiske ML og LLM'er med Amazon SageMaker, del 1: PySDK-forbedringer | Amazon Web Services PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Melanie Li, PhD, er en Senior AI/ML Specialist TAM hos AWS med base i Sydney, Australien. Hun hjælper virksomhedskunder med at bygge løsninger ved hjælp af state-of-the-art AI/ML-værktøjer på AWS og giver vejledning om arkitektur og implementering af ML-løsninger med bedste praksis. I sin fritid elsker hun at udforske naturen og tilbringe tid med familie og venner.

Pak og implementer nemt klassiske ML og LLM'er med Amazon SageMaker, del 1: PySDK-forbedringer | Amazon Web Services PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Marc Karp er en ML-arkitekt hos Amazon SageMaker Service-teamet. Han fokuserer på at hjælpe kunder med at designe, implementere og administrere ML-arbejdsbelastninger i stor skala. I sin fritid nyder han at rejse og udforske nye steder.

Pak og implementer nemt klassiske ML og LLM'er med Amazon SageMaker, del 1: PySDK-forbedringer | Amazon Web Services PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Sam Edwards, er en Cloud Engineer (AI/ML) hos AWS Sydney med speciale i maskinlæring og Amazon SageMaker. Han brænder for at hjælpe kunder med at løse problemer relateret til maskinlæringsarbejdsgange og skabe nye løsninger til dem. Uden for arbejdet nyder han at dyrke ketsjersport og at rejse.

Pak og implementer nemt klassiske ML og LLM'er med Amazon SageMaker, del 1: PySDK-forbedringer | Amazon Web Services PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Raghu Ramesha er senior ML Solutions Architect hos Amazon SageMaker Service-teamet. Han fokuserer på at hjælpe kunder med at opbygge, implementere og migrere ML-produktionsarbejdsbelastninger til SageMaker i stor skala. Han har specialiseret sig i maskinlæring, kunstig intelligens og computersyn og har en mastergrad i datalogi fra UT Dallas. I sin fritid nyder han at rejse og fotografere.

Pak og implementer nemt klassiske ML og LLM'er med Amazon SageMaker, del 1: PySDK-forbedringer | Amazon Web Services PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Shiva Raaj Kotini arbejder som Principal Product Manager i Amazon SageMaker-produktporteføljen. Han fokuserer på modelimplementering, præstationsjustering og optimering i SageMaker til slutninger.

Pak og implementer nemt klassiske ML og LLM'er med Amazon SageMaker, del 1: PySDK-forbedringer | Amazon Web Services PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Mohan Gandhi er senior softwareingeniør hos AWS. Han har været hos AWS i de sidste 10 år og har arbejdet på forskellige AWS-tjenester som EMR, EFA og RDS. I øjeblikket er han fokuseret på at forbedre SageMaker Inference Experience. I sin fritid nyder han at vandre og maratonløb.

Tidsstempel:

Mere fra AWS maskinindlæring