Suntem încântați să anunțăm o nouă versiune a Operatori Amazon SageMaker pentru Kubernetes folosind Controlere AWS pentru Kubernetes (ACK). ACK este un cadru pentru construirea de controlere personalizate Kubernetes, în care fiecare controler comunică cu un API de serviciu AWS. Aceste controlere permit utilizatorilor Kubernetes să furnizeze resurse AWS, cum ar fi compartimente, baze de date sau cozi de mesaje, pur și simplu utilizând API-ul Kubernetes.
Eliberați v1.2.9 al operatorilor SageMaker ACK adaugă suport pentru componente de inferență, care până acum erau disponibile numai prin API-ul SageMaker și prin kiturile de dezvoltare software (SDK-uri) AWS. Componentele de inferență vă pot ajuta să optimizați costurile de implementare și să reduceți latența. Cu noile capabilități ale componentelor de inferență, puteți implementa unul sau mai multe modele de fundație (FM) pe același Amazon SageMaker punct final și controlați câte acceleratoare și câtă memorie este rezervată pentru fiecare FM. Acest lucru ajută la îmbunătățirea utilizării resurselor, reduce costurile de implementare a modelului în medie cu 50% și vă permite să scalați punctele finale împreună cu cazurile dvs. de utilizare. Pentru mai multe detalii, vezi Amazon SageMaker adaugă noi capabilități de inferență pentru a ajuta la reducerea costurilor de implementare a modelului de bază și a latenței.
Disponibilitatea componentelor de inferență prin controlerul SageMaker le permite clienților care folosesc Kubernetes ca plan de control să profite de componentele de inferență în timp ce își implementează modelele pe SageMaker.
În această postare, arătăm cum să folosiți operatorii SageMaker ACK pentru a implementa componentele de inferență SageMaker.
Cum funcționează ACK
A demonstra cum funcționează ACK, să ne uităm la un exemplu de utilizare Serviciul Amazon de stocare simplă (Amazon S3). În diagrama următoare, Alice este utilizatorul nostru Kubernetes. Aplicația ei depinde de existența unei găleți S3 numită my-bucket
.
Fluxul de lucru constă din următorii pași:
- Alice trimite un apel la
kubectl apply
, trecând un fișier care descrie un Kubernetes resursă personalizată descriindu-i găleata S3.kubectl apply
trece acest fișier, numit a manifesta, către serverul API Kubernetes care rulează în nodul controlerului Kubernetes. - Serverul API Kubernetes primește manifestul care descrie compartimentul S3 și determină dacă Alice are permisiuni pentru a crea o resursă personalizată de natural
s3.services.k8s.aws/Bucket
și că resursa personalizată este formatată corect. - Dacă Alice este autorizată și resursa personalizată este validă, serverul API Kubernetes scrie resursa personalizată în
etcd
depozit de date. - Apoi îi răspunde lui Alice că resursa personalizată a fost creată.
- În acest moment, serviciul ACK controlor pentru Amazon S3, care rulează pe un nod de lucru Kubernetes în contextul unui Kubernetes normal Păstaie, este notificat că o nouă resursă personalizată de acest fel
s3.services.k8s.aws/Bucket
a fost creat. - Controlerul de serviciu ACK pentru Amazon S3 comunică apoi cu API-ul Amazon S3, apelând la S3 CreateBucket API pentru a crea găleata în AWS.
- După comunicarea cu Amazon S3 API, controlerul serviciului ACK apelează serverul API Kubernetes pentru a actualiza resursele personalizate. Starea cu informațiile primite de la Amazon S3.
Componente cheie
Noile capabilități de inferență se bazează pe punctele finale de inferență în timp real ale SageMaker. Ca și înainte, creați punctul final SageMaker cu o configurație a punctului final care definește tipul de instanță și numărul inițial de instanță pentru punctul final. Modelul este configurat într-un nou construct, o componentă de inferență. Aici, specificați numărul de acceleratoare și cantitatea de memorie pe care doriți să o alocați fiecărei copii a unui model, împreună cu artefactele modelului, imaginea containerului și numărul de copii ale modelului de implementat.
Puteți utiliza noile capacități de inferență de la Amazon SageMaker Studio, SageMaker Python SDK, SDK-uri AWS, și Interfața liniei de comandă AWS (AWS CLI). Sunt susținute și de Formarea AWS Cloud. Acum le poți folosi și cu Operatori SageMaker pentru Kubernetes.
Prezentare generală a soluțiilor
Pentru această demonstrație, folosim controlerul SageMaker pentru a implementa o copie a fișierului Model Dolly v2 7B și o copie a Model FLAN-T5 XXL de la Hugging Face Model Hub pe un punct final în timp real SageMaker folosind noile capabilități de inferență.
Cerințe preliminare
Pentru a urma, ar trebui să aveți un cluster Kubernetes cu controlerul SageMaker ACK v1.2.9 sau mai recent instalat. Pentru instrucțiuni despre cum să furnizați un Serviciul Amazon Elastic Kubernetes (Amazon EKS) cluster cu Cloud Elastic de calcul Amazon (Amazon EC2) Noduri gestionate Linux folosind eksctl, vezi Noțiuni introductive cu Amazon EKS – eksctl. Pentru instrucțiuni despre instalarea controlerului SageMaker, consultați Învățare automată cu controlerul ACK SageMaker.
Aveți nevoie de acces la instanțe accelerate (GPU) pentru găzduirea LLM-urilor. Această soluție folosește o instanță de ml.g5.12xlarge; puteți verifica disponibilitatea acestor instanțe în contul dvs. AWS și puteți solicita aceste instanțe după cum este necesar printr-o solicitare de creștere a cotelor de servicii, așa cum se arată în următoarea captură de ecran.
Creați o componentă de inferență
Pentru a crea componenta de inferență, definiți EndpointConfig
, Endpoint
, Model
, și InferenceComponent
Fișiere YAML, similare cu cele afișate în această secțiune. Utilizare kubectl apply -f <yaml file>
pentru a crea resursele Kubernetes.
Puteți enumera starea resursei prin kubectl describe <resource-type>
; de exemplu, kubectl describe inferencecomponent
.
De asemenea, puteți crea componenta de inferență fără o resursă de model. Consultați îndrumările furnizate în Documentație API pentru mai multe detalii.
EndpointConfig YAML
Următorul este codul pentru fișierul EndpointConfig:
Punctul final YAML
Următorul este codul pentru fișierul Endpoint:
Model YAML
Următorul este codul pentru fișierul Model:
InferenceComponent YAML-uri
În următoarele fișiere YAML, având în vedere că instanța ml.g5.12xlarge vine cu 4 GPU-uri, alocam 2 GPU-uri, 2 CPU-uri și 1,024 MB de memorie fiecărui model:
Invocați modele
Acum puteți invoca modelele folosind următorul cod:
Actualizați o componentă de inferență
Pentru a actualiza o componentă de inferență existentă, puteți actualiza fișierele YAML și apoi le puteți utiliza kubectl apply -f <yaml file>
. Următorul este un exemplu de fișier actualizat:
Ștergeți o componentă de inferență
Pentru a șterge o componentă de inferență existentă, utilizați comanda kubectl delete -f <yaml file>
.
Disponibilitate și prețuri
Noile capabilități de inferență SageMaker sunt disponibile astăzi în regiunile AWS SUA de Est (Ohio, N. Virginia), SUA de Vest (Oregon), Asia Pacific (Jakarta, Mumbai, Seul, Singapore, Sydney, Tokyo), Canada (Central), Europa ( Frankfurt, Irlanda, Londra, Stockholm), Orientul Mijlociu (EAU) și America de Sud (São Paulo). Pentru detalii despre preț, vizitați Prețuri Amazon SageMaker.
Concluzie
În această postare, am arătat cum să folosiți operatorii SageMaker ACK pentru a implementa componentele de inferență SageMaker. Porniți-vă clusterul Kubernetes și implementați-vă FM-urile folosind noile capabilități de inferență SageMaker astăzi!
Despre Autori
Rajesh Ramchander este inginer principal ML în servicii profesionale la AWS. El ajută clienții în diferite etape ale călătoriei lor AI/ML și GenAI, de la cei care abia au început până la cei care își conduc afacerea cu o strategie de AI.
Amit Arora este arhitect specialist AI și ML la Amazon Web Services, ajutând clienții întreprinderilor să folosească servicii de învățare automată bazate pe cloud pentru a-și scala rapid inovațiile. El este, de asemenea, lector adjunct în programul MS de știință a datelor și analiză la Universitatea Georgetown din Washington DC
Suryansh Singh este inginer de dezvoltare software la AWS SageMaker și lucrează la dezvoltarea soluțiilor de infrastructură distribuite ML pentru clienții AWS la scară.
Saurabh Trikande este Senior Product Manager pentru Amazon SageMaker Inference. Este pasionat de lucrul cu clienții și este motivat de obiectivul democratizării învățării automate. El se concentrează pe provocările de bază legate de implementarea de aplicații ML complexe, modele ML multi-locatari, optimizări ale costurilor și de a face implementarea modelelor de învățare profundă mai accesibilă. În timpul liber, lui Saurabh îi place să facă drumeții, să învețe despre tehnologii inovatoare, să urmeze TechCrunch și să petreacă timpul cu familia sa.
Ioana Liu este inginer de dezvoltare software în echipa Amazon SageMaker. Activitatea ei actuală se concentrează pe a ajuta dezvoltatorii să găzduiască eficient modele de învățare automată și să îmbunătățească performanța de inferență. Este pasionată de analiza datelor spațiale și de utilizarea inteligenței artificiale pentru a rezolva problemele societale.
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- PlatoData.Network Vertical Generative Ai. Împuterniciți-vă. Accesați Aici.
- PlatoAiStream. Web3 Intelligence. Cunoștințe amplificate. Accesați Aici.
- PlatoESG. carbon, CleanTech, Energie, Mediu inconjurator, Solar, Managementul deșeurilor. Accesați Aici.
- PlatoHealth. Biotehnologie și Inteligență pentru studii clinice. Accesați Aici.
- Sursa: 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/