Vi är glada över att kunna presentera en ny version av Amazon SageMaker-operatörer för Kubernetes med AWS-kontroller för Kubernetes (ACK). ACK är ett ramverk för att bygga Kubernetes anpassade kontroller, där varje kontrollenhet kommunicerar med ett AWS-tjänst-API. Dessa kontroller tillåter Kubernetes-användare att tillhandahålla AWS-resurser som hinkar, databaser eller meddelandeköer helt enkelt genom att använda Kubernetes API.
Släpp v1.2.9 av SageMaker ACK Operators lägger till stöd för slutledningskomponenter, som fram till nu endast var tillgängliga via SageMaker API och AWS Software Development Kits (SDK). Inferenskomponenter kan hjälpa dig att optimera distributionskostnaderna och minska latensen. Med de nya inferenskomponentfunktionerna kan du distribuera en eller flera grundmodeller (FM) på samma Amazon SageMaker endpoint och kontrollera hur många acceleratorer och hur mycket minne som är reserverat för varje FM. Detta hjälper till att förbättra resursutnyttjandet, minskar modelldistributionskostnaderna i genomsnitt med 50 % och låter dig skala slutpunkter tillsammans med dina användningsfall. För mer information, se Amazon SageMaker lägger till nya slutledningsfunktioner för att hjälpa till att minska implementeringskostnader och latens för grundmodeller.
Tillgängligheten av inferenskomponenter genom SageMaker-kontrollern gör det möjligt för kunder som använder Kubernetes som sitt kontrollplan att dra fördel av inferenskomponenter medan de distribuerar sina modeller på SageMaker.
I det här inlägget visar vi hur man använder SageMaker ACK Operators för att distribuera SageMaker inferenskomponenter.
Hur ACK fungerar
Att demonstrera hur ACK fungerar, låt oss titta på ett exempel med hjälp av Amazon enkel lagringstjänst (Amazon S3). I följande diagram är Alice vår Kubernetes-användare. Hennes ansökan beror på att det finns en S3-skopa med namnet my-bucket
.
Arbetsflödet består av följande steg:
- Alice ringer till
kubectl apply
, skickar in en fil som beskriver en Kubernetes anpassad resurs beskriver hennes S3 hink.kubectl apply
skickar denna fil, som kallas a uppenbart, till Kubernetes API-server som körs i Kubernetes styrenhetsnod. - Kubernetes API-server tar emot manifestet som beskriver S3-hinken och avgör om Alice har behörigheter att skapa en anpassad resurs av slag
s3.services.k8s.aws/Bucket
och att den anpassade resursen är korrekt formaterad. - Om Alice är auktoriserad och den anpassade resursen är giltig, skriver Kubernetes API-server den anpassade resursen till sin
etcd
datalagring. - Den svarar sedan till Alice att den anpassade resursen har skapats.
- Vid denna tidpunkt, ACK-tjänsten styrenhet för Amazon S3, som körs på en Kubernetes-arbetsnod inom ramen för en normal Kubernetes Pod, meddelas att en ny anpassad resurs av slag
s3.services.k8s.aws/Bucket
Har skapats. - ACK-tjänststyrenheten för Amazon S3 kommunicerar sedan med Amazon S3 API och anropar S3 CreateBucket API för att skapa hinken i AWS.
- Efter att ha kommunicerat med Amazon S3 API, anropar ACK-tjänstkontrollanten Kubernetes API-server för att uppdatera den anpassade resursens status med information den fått från Amazon S3.
Nyckelkomponenter
De nya slutledningsfunktionerna bygger på SageMakers slutpunkter i realtid. Som tidigare skapar du SageMaker-slutpunkten med en slutpunktskonfiguration som definierar instanstypen och det initiala antalet instanser för slutpunkten. Modellen är konfigurerad i en ny konstruktion, en slutledningskomponent. Här anger du antalet acceleratorer och mängden minne som du vill allokera till varje kopia av en modell, tillsammans med modellartefakter, behållarbild och antalet modellkopior som ska distribueras.
Du kan använda de nya slutledningsfunktionerna från Amazon SageMaker Studio, den SageMaker Python SDK, AWS SDK: eroch AWS-kommandoradsgränssnitt (AWS CLI). De får också stöd av AWS molnformation. Nu kan du också använda dem med SageMaker-operatörer för Kubernetes.
Lösningsöversikt
För denna demo använder vi SageMaker-kontrollern för att distribuera en kopia av Dolly v2 7B modell och en kopia av FLAN-T5 XXL modell från Hugging Face Model Hub på en SageMaker-slutpunkt i realtid med de nya slutledningsfunktionerna.
Förutsättningar
För att följa med bör du ha ett Kubernetes-kluster med SageMaker ACK-kontrollern v1.2.9 eller högre installerad. För instruktioner om hur man tillhandahåller en Amazon Elastic Kubernetes-tjänst (Amazon EKS) kluster med Amazon Elastic Compute Cloud (Amazon EC2) Linux-hanterade noder med eksctl, se Komma igång med Amazon EKS – eksctl. För instruktioner om hur du installerar SageMaker-styrenheten, se Maskininlärning med ACK SageMaker Controller.
Du behöver tillgång till accelererade instanser (GPU) för att vara värd för LLM:erna. Denna lösning använder en instans av ml.g5.12xlarge; du kan kontrollera tillgängligheten för dessa instanser i ditt AWS-konto och begära dessa instanser efter behov via en begäran om ökning av servicekvoter, som visas i följande skärmdump.
Skapa en slutledningskomponent
För att skapa din slutledningskomponent, definiera EndpointConfig
, Endpoint
, Model
och InferenceComponent
YAML-filer, liknande de som visas i det här avsnittet. Använda sig av kubectl apply -f <yaml file>
för att skapa Kubernetes-resurserna.
Du kan lista resursens status via kubectl describe <resource-type>
; till exempel, kubectl describe inferencecomponent
.
Du kan också skapa slutledningskomponenten utan en modellresurs. Se vägledningen i API dokumentation för mer detaljer.
EndpointConfig YAML
Följande är koden för EndpointConfig-filen:
Slutpunkt YAML
Följande är koden för Endpoint-filen:
Modell YAML
Följande är koden för modellfilen:
InferenceComponent YAMLs
I följande YAML-filer, med tanke på att ml.g5.12xlarge-instansen kommer med 4 GPU:er, allokerar vi 2 GPU:er, 2 processorer och 1,024 XNUMX MB minne till varje modell:
Åberopa modeller
Du kan nu anropa modellerna med följande kod:
Uppdatera en slutledningskomponent
För att uppdatera en befintlig slutledningskomponent kan du uppdatera YAML-filerna och sedan använda kubectl apply -f <yaml file>
. Följande är ett exempel på en uppdaterad fil:
Ta bort en slutledningskomponent
För att ta bort en befintlig slutledningskomponent, använd kommandot kubectl delete -f <yaml file>
.
Tillgänglighet och prissättning
De nya SageMakers slutledningsfunktioner är tillgängliga idag i AWS-regionerna USA East (Ohio, N. Virginia), USA West (Oregon), Asia Pacific (Jakarta, Mumbai, Seoul, Singapore, Sydney, Tokyo), Kanada (Central), Europa ( Frankfurt, Irland, London, Stockholm), Mellanöstern (FAE) och Sydamerika (São Paulo). För prisinformation, besök Amazon SageMaker Prissättning.
Slutsats
I det här inlägget visade vi hur man använder SageMaker ACK Operators för att distribuera SageMaker inferenskomponenter. Starta upp ditt Kubernetes-kluster och distribuera dina FM-enheter med de nya SageMakers slutledningsfunktioner idag!
Om författarna
Rajesh Ramchander är Principal ML Engineer in Professional Services på AWS. Han hjälper kunder i olika skeden av deras AI/ML- och GenAI-resa, från de som precis har börjat hela vägen till de som leder sin verksamhet med en AI-first-strategi.
Amit Arora är en AI- och ML-specialistarkitekt på Amazon Web Services, som hjälper företagskunder att använda molnbaserade maskininlärningstjänster för att snabbt skala sina innovationer. Han är också adjungerad lektor i MS datavetenskap och analysprogrammet vid Georgetown University i Washington DC
Suryansh Singh är mjukvaruutvecklingsingenjör på AWS SageMaker och arbetar med att utveckla ML-distribuerade infrastrukturlösningar för AWS-kunder i stor skala.
Saurabh Trikande är senior produktchef för Amazon SageMaker Inference. Han brinner för att arbeta med kunder och motiveras av målet att demokratisera maskininlärning. Han fokuserar på kärnutmaningar relaterade till att distribuera komplexa ML-applikationer, multi-tenant ML-modeller, kostnadsoptimeringar och att göra implementeringen av djupinlärningsmodeller mer tillgänglig. På sin fritid gillar Saurabh att vandra, lära sig om innovativ teknik, följa TechCrunch och umgås med sin familj.
Johna Liu är en mjukvaruutvecklingsingenjör i Amazon SageMaker-teamet. Hennes nuvarande arbete fokuserar på att hjälpa utvecklare att effektivt vara värd för maskininlärningsmodeller och förbättra slutledningsprestanda. Hon brinner för rumslig dataanalys och att använda AI för att lösa samhällsproblem.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoData.Network Vertical Generative Ai. Styrka dig själv. Tillgång här.
- PlatoAiStream. Web3 Intelligence. Kunskap förstärkt. Tillgång här.
- Platoesg. Kol, CleanTech, Energi, Miljö, Sol, Avfallshantering. Tillgång här.
- PlatoHealth. Biotech och kliniska prövningar Intelligence. Tillgång här.
- Källa: https://aws.amazon.com/blogs/machine-learning/use-kubernetes-operators-for-new-inference-capabilities-in-amazon-sagemaker-that-reduce-llm-deployment-costs-by-50-on-average/