Generatiivne andmeluure

Kasutage Kubernetese operaatoreid Amazon SageMakeri uute järelduste tegemiseks, mis vähendavad LLM-i juurutamiskulusid keskmiselt 50% | Amazoni veebiteenused

kuupäev:

Meil on hea meel teatada uuest versioonist Amazon SageMakeri operaatorid Kubernetese jaoks kasutades AWS-kontrollerid Kubernetese jaoks (ACK). ACK on raamistik Kubernetese kohandatud kontrollerite loomiseks, kus iga kontroller suhtleb AWS-i teenuse API-ga. Need kontrollerid võimaldavad Kubernetese kasutajatel pakkuda AWS-i ressursse, nagu ämbrid, andmebaasid või sõnumijärjekorrad, lihtsalt Kubernetese API abil.

Vabastage v1.2.9 SageMaker ACK-operaatorid lisab tuge järelduskomponendid, mis seni olid saadaval ainult SageMaker API ja AWS-i tarkvaraarenduskomplektide (SDK) kaudu. Järelduskomponendid võivad aidata teil optimeerida juurutuskulusid ja vähendada latentsust. Uute järelduskomponentide võimaluste abil saate juurutada ühe või mitu alusmudelit (FM-i). Amazon SageMaker lõpp-punkti ja juhtida, kui palju kiirendeid ja kui palju mälu on iga FM jaoks reserveeritud. See aitab parandada ressursside kasutamist, vähendab mudeli juurutamise kulusid keskmiselt 50% ja võimaldab teil skaleerida lõpp-punkte koos kasutusjuhtudega. Täpsemalt vt Amazon SageMaker lisab uusi järeldusvõimalusi, mis aitavad vähendada vundamendimudeli juurutamiskulusid ja latentsust.

Järelduskomponentide kättesaadavus SageMakeri kontrolleri kaudu võimaldab klientidel, kes kasutavad Kubernetest oma juhtimistasandina, kasutada järelduskomponente, juurutades oma mudeleid SageMakeris.

Selles postituses näitame, kuidas kasutada SageMakeri ACK-operaatoreid SageMakeri järelduskomponentide juurutamiseks.

Kuidas ACK töötab

Demonstreerima kuidas ACK töötab, vaatame näidet kasutades Amazoni lihtne salvestusteenus (Amazon S3). Järgmisel diagrammil on Alice meie Kubernetese kasutaja. Tema rakendus sõltub nimelise S3 ämbri olemasolust my-bucket.

Kuidas ACK töötab

Töövoog koosneb järgmistest sammudest:

  1. Alice helistab kubectl apply, edastades faili, mis kirjeldab Kubernetes kohandatud ressurss kirjeldades oma S3 ämbrit. kubectl apply edastab selle faili nimega a manifest, Kubernetese kontrolleri sõlmes töötavasse Kubernetes API serverisse.
  2. Kubernetes API server võtab vastu manifesti, mis kirjeldab S3 ämbrit ja teeb kindlaks, kas Alice'il on Õigused kohandatud ressursi loomiseks lahke s3.services.k8s.aws/Bucketja kohandatud ressurss on õigesti vormindatud.
  3. Kui Alice on volitatud ja kohandatud ressurss on kehtiv, kirjutab Kubernetes API server kohandatud ressursi oma etcd andmehoidla.
  4. Seejärel vastab see Alice'ile, et kohandatud ressurss on loodud.
  5. Sel hetkel ACK teenus kontroller Amazon S3 jaoks, mis töötab Kubernetese töötaja sõlmes tavalise Kubernetese kontekstis Kaun, teatatakse, et uus kohandatud ressurss s3.services.k8s.aws/Bucket on loodud.
  6. Amazon S3 teenusekontroller ACK suhtleb seejärel Amazon S3 API-ga, helistades S3 CreateBucket API ämbri loomiseks AWS-is.
  7. Pärast Amazon S3 API-ga suhtlemist kutsub ACK teenusekontroller Kubernetes API serverit kohandatud ressursi värskendamiseks. staatus Amazon S3-lt saadud teabega.

Põhikomponendid

Uued järeldusvõimalused põhinevad SageMakeri reaalajas järelduste lõpp-punktidel. Nagu varemgi, loote SageMakeri lõpp-punkti lõpp-punkti konfiguratsiooniga, mis määrab lõpp-punkti eksemplari tüübi ja esialgse eksemplaride arvu. Mudel on konfigureeritud uues konstruktsioonis, järelduskomponendis. Siin saate määrata kiirendite arvu ja mälumahu, mille soovite mudeli igale eksemplarile eraldada, koos mudeli artefaktide, konteineri kujutise ja juurutatavate mudelikoopiate arvuga.

Saate kasutada uusi järeldusvõimalusi alates Amazon SageMaker Studio, SageMaker Python SDK, AWS-i SDK-dja AWS-i käsurea liides (AWS CLI). Neid toetavad ka AWS CloudFormation. Nüüd saate neid ka koos kasutada SageMakeri operaatorid Kubernetese jaoks.

Lahenduse ülevaade

Selle demo jaoks kasutame SageMakeri kontrollerit, et juurutada koopia Dolly v2 7B mudel ja koopia FLAN-T5 XXL mudel alates Kallistavate näomudelite keskus SageMakeri reaalajas lõpp-punktis, kasutades uusi järeldusvõimalusi.

Eeldused

Järgimiseks peaks teil olema Kubernetese klaster, kuhu on installitud SageMaker ACK-kontroller v1.2.9 või uuem. Juhised selle kohta, kuidas varustada an Amazoni elastse Kubernetese teenus (Amazon EKS) klaster koos Amazon Elastic Compute Cloud (Amazon EC2) Linuxi hallatavad sõlmed kasutavad eksctl-i, vt Amazon EKS-iga alustamine – eksctl. Juhised SageMakeri kontrolleri installimise kohta leiate aadressilt Masinõpe ACK SageMakeri kontrolleriga.

LLM-ide majutamiseks vajate juurdepääsu kiirendatud eksemplaridele (GPU-dele). See lahendus kasutab ühte eksemplari ml.g5.12xlarge; saate kontrollida nende eksemplaride saadavust oma AWS-i kontol ja taotleda neid eksemplare vastavalt vajadusele teenusekvootide suurendamise taotluse kaudu, nagu on näidatud järgmisel ekraanipildil.

Teenuskvootide suurendamise taotlus

Looge järelduskomponent

Järelduskomponendi loomiseks määratlege EndpointConfig, Endpoint, Modelja InferenceComponent YAML-failid, mis on sarnased selles jaotises näidatud failidega. Kasuta kubectl apply -f <yaml file> Kubernetese ressursside loomiseks.

Ressursi oleku saate loetleda kaudu kubectl describe <resource-type>; näiteks, kubectl describe inferencecomponent.

Järelduskomponendi saate luua ka ilma mudeliressursita. Vaadake jaotises esitatud juhiseid API dokumentatsioon rohkem üksikasju.

EndpointConfig YAML

Järgmine on faili EndpointConfig kood:

apiVersion: sagemaker.services.k8s.aws/v1alpha1
kind: EndpointConfig
metadata:
  name: inference-component-endpoint-config
spec:
  endpointConfigName: inference-component-endpoint-config
  executionRoleARN: <EXECUTION_ROLE_ARN>
  productionVariants:
  - variantName: AllTraffic
    instanceType: ml.g5.12xlarge
    initialInstanceCount: 1
    routingConfig:
      routingStrategy: LEAST_OUTSTANDING_REQUESTS

Lõpp-punkt YAML

Järgmine on lõpp-punkti faili kood:

apiVersion: sagemaker.services.k8s.aws/v1alpha1
kind: Endpoint
metadata:
  name: inference-component-endpoint
spec:
  endpointName: inference-component-endpoint
  endpointConfigName: inference-component-endpoint-config

Mudel YAML

Järgmine on mudeli faili kood:

apiVersion: sagemaker.services.k8s.aws/v1alpha1
kind: Model
metadata:
  name: dolly-v2-7b
spec:
  modelName: dolly-v2-7b
  executionRoleARN: <EXECUTION_ROLE_ARN>
  containers:
  - image: 763104351884.dkr.ecr.us-east-1.amazonaws.com/huggingface-pytorch-tgi-inference:2.0.1-tgi0.9.3-gpu-py39-cu118-ubuntu20.04
    environment:
      HF_MODEL_ID: databricks/dolly-v2-7b
      HF_TASK: text-generation
---
apiVersion: sagemaker.services.k8s.aws/v1alpha1
kind: Model
metadata:
  name: flan-t5-xxl
spec:
  modelName: flan-t5-xxl
  executionRoleARN: <EXECUTION_ROLE_ARN>
  containers:
  - image: 763104351884.dkr.ecr.us-east-1.amazonaws.com/huggingface-pytorch-tgi-inference:2.0.1-tgi0.9.3-gpu-py39-cu118-ubuntu20.04
    environment:
      HF_MODEL_ID: google/flan-t5-xxl
      HF_TASK: text-generation

InferenceComponent YAML-id

Arvestades, et ml.g5.12xlarge eksemplaril on 4 GPU-d, eraldame järgmistes YAML-failides igale mudelile 2 GPU-d, 2 CPU-d ja 1,024 MB mälu:

apiVersion: sagemaker.services.k8s.aws/v1alpha1
kind: InferenceComponent
metadata:
  name: inference-component-dolly
spec:
  inferenceComponentName: inference-component-dolly
  endpointName: inference-component-endpoint
  variantName: AllTraffic
  specification:
    modelName: dolly-v2-7b
    computeResourceRequirements:
      numberOfAcceleratorDevicesRequired: 2
      numberOfCPUCoresRequired: 2
      minMemoryRequiredInMb: 1024
  runtimeConfig:
    copyCount: 1

apiVersion: sagemaker.services.k8s.aws/v1alpha1
kind: InferenceComponent
metadata:
  name: inference-component-flan
spec:
  inferenceComponentName: inference-component-flan
  endpointName: inference-component-endpoint
  variantName: AllTraffic
  specification:
    modelName: flan-t5-xxl
    computeResourceRequirements:
      numberOfAcceleratorDevicesRequired: 2
      numberOfCPUCoresRequired: 2
      minMemoryRequiredInMb: 1024
  runtimeConfig:
    copyCount: 1

Kutsuge mudeleid

Nüüd saate mudeleid kutsuda järgmise koodi abil:

import boto3
import json

sm_runtime_client = boto3.client(service_name="sagemaker-runtime")
payload = {"inputs": "Why is California a great place to live?"}

response_dolly = sm_runtime_client.invoke_endpoint(
    EndpointName="inference-component-endpoint",
    InferenceComponentName="inference-component-dolly",
    ContentType="application/json",
    Accept="application/json",
    Body=json.dumps(payload),
)
result_dolly = json.loads(response_dolly['Body'].read().decode())
print(result_dolly)

response_flan = sm_runtime_client.invoke_endpoint(
    EndpointName="inference-component-endpoint",
    InferenceComponentName="inference-component-flan",
    ContentType="application/json",
    Accept="application/json",
    Body=json.dumps(payload),
)
result_flan = json.loads(response_flan['Body'].read().decode())
print(result_flan)

Järelduskomponendi värskendamine

Olemasoleva järelduskomponendi värskendamiseks saate värskendada YAML-faile ja seejärel kasutada kubectl apply -f <yaml file>. Järgmine on värskendatud faili näide:

apiVersion: sagemaker.services.k8s.aws/v1alpha1
kind: InferenceComponent
metadata:
  name: inference-component-dolly
spec:
  inferenceComponentName: inference-component-dolly
  endpointName: inference-component-endpoint
  variantName: AllTraffic
  specification:
    modelName: dolly-v2-7b
    computeResourceRequirements:
      numberOfAcceleratorDevicesRequired: 2
      numberOfCPUCoresRequired: 4 # Update the numberOfCPUCoresRequired.
      minMemoryRequiredInMb: 1024
  runtimeConfig:
    copyCount: 1

Kustutage järelduskomponent

Olemasoleva järelduskomponendi kustutamiseks kasutage käsku kubectl delete -f <yaml file>.

Kättesaadavus ja hinnakujundus

Uued SageMakeri järeldusvõimalused on täna saadaval AWS-i piirkondades USA idaosas (Ohio, N. Virginia), USA lääneosas (Oregon), Aasia ja Vaikse ookeani piirkonnas (Jakarta, Mumbai, Soul, Singapur, Sydney, Tokyo), Kanadas (Kesk), Euroopas ( Frankfurt, Iirimaa, London, Stockholm, Lähis-Ida (AÜE) ja Lõuna-Ameerika (São Paulo). Hinna üksikasjade saamiseks külastage Amazon SageMakeri hinnakujundus.

Järeldus

Selles postituses näitasime, kuidas kasutada SageMakeri ACK-operaatoreid SageMakeri järelduskomponentide juurutamiseks. Käivitage oma Kubernetese klaster ja juurutage oma FM-id, kasutades uusi SageMakeri järeldusvõimalusi juba täna!


Autoritest

Rajesh Ramchander on AWS-i professionaalsete teenuste peamine ML-insener. Ta aitab kliente nende tehisintellekti/ML-i ja GenAI teekonna erinevates etappides, alates nendest, kes alles alustavad, kuni nendeni, kes juhivad oma äri tehisintellekti esmajoones strateegiaga.

Amit Arora on AI ja ML spetsialistarhitekt ettevõttes Amazon Web Services, aidates ettevõtetel kasutada pilvepõhiseid masinõppeteenuseid, et oma uuendusi kiiresti skaleerida. Ta on ka MS andmeteaduse ja -analüütika programmi adjunkt Georgetowni ülikoolis Washingtonis.

Suryansh Singh on AWS SageMakeri tarkvaraarenduse insener ja töötab AWS-i klientide jaoks ulatusliku ML-levitatud infrastruktuurilahenduste väljatöötamisega.

Saurabh Trikande on Amazon SageMaker Inference'i vanemtootejuht. Ta on kirglik töö klientidega ja teda motiveerib eesmärk demokratiseerida masinõpe. Ta keskendub põhiprobleemidele, mis on seotud keeruliste ML-rakenduste, mitme rentniku ML-mudelite, kulude optimeerimise ja süvaõppemudelite juurutamise kättesaadavamaks muutmisega. Vabal ajal naudib Saurabh matkamist, uuenduslike tehnoloogiate õppimist, TechCrunchi jälgimist ja perega aega veetmist.

Johna LiuJohna Liu on Amazon SageMakeri meeskonna tarkvaraarenduse insener. Tema praegune töö keskendub sellele, et aidata arendajatel masinõppemudeleid tõhusalt hostida ja järelduste toimivust parandada. Ta on kirglik ruumiandmete analüüsi ja AI kasutamise vastu ühiskondlike probleemide lahendamiseks.

spot_img

Uusim intelligentsus

spot_img

Jututuba koos meiega

Tere! Kuidas ma teid aidata saan?