Generatiivinen tiedustelu

Käytä Kubernetes Operatoreita Amazon SageMakerin uusiin päättelyominaisuuksiin, jotka vähentävät LLM:n käyttöönottokustannuksia keskimäärin 50 % | Amazon Web Services

Treffi:

Olemme iloisia voidessamme julkistaa uuden version Amazon SageMaker -operaattorit Kubernetesille käyttäen AWS-ohjaimet Kubernetesille (ACK). ACK on kehys Kubernetes mukautettujen ohjaimien rakentamiseen, jossa jokainen ohjain kommunikoi AWS-palvelun API:n kanssa. Näiden ohjainlaitteiden avulla Kubernetes-käyttäjät voivat tarjota AWS-resursseja, kuten ryhmiä, tietokantoja tai viestijonoja, yksinkertaisesti käyttämällä Kubernetes APIa.

Vapauta v1.2.9 SageMaker ACK -operaattoreista lisää tuen päättelykomponentit, jotka tähän asti olivat saatavilla vain SageMaker API:n ja AWS Software Development Kitin (SDK) kautta. Päättelykomponenttien avulla voit optimoida käyttöönottokustannukset ja vähentää viivettä. Uusien päättelykomponenttiominaisuuksien avulla voit ottaa käyttöön yhden tai useamman perusmallin (FM:n) samassa Amazon Sage Maker päätepiste ja hallita, kuinka monta kiihdytintä ja kuinka paljon muistia on varattu kullekin FM:lle. Tämä auttaa parantamaan resurssien käyttöä, alentaa mallin käyttöönottokustannuksia keskimäärin 50 % ja antaa sinun skaalata päätepisteitä yhdessä käyttötapaustesi kanssa. Katso lisätietoja Amazon SageMaker lisää uusia päättelyominaisuuksia, jotka auttavat vähentämään perusmallin käyttöönottokustannuksia ja viivettä.

Päättelykomponenttien saatavuus SageMaker-ohjaimen kautta antaa asiakkaille, jotka käyttävät Kubernetesia ohjaustasonaan, hyödyntää päättelykomponentteja samalla, kun ne käyttävät mallejaan SageMakerissa.

Tässä viestissä näytämme, kuinka SageMaker ACK -operaattoreita käytetään SageMakerin päättelykomponenttien käyttöönottamiseksi.

Kuinka ACK toimii

Näyttää miten ACK toimii, katsotaanpa esimerkkiä käyttämällä Amazonin yksinkertainen tallennuspalvelu (Amazon S3). Seuraavassa kaaviossa Alice on Kubernetes-käyttäjämme. Hänen sovelluksensa riippuu nimetyn S3-kauhan olemassaolosta my-bucket.

Kuinka ACK toimii

Työnkulku koostuu seuraavista vaiheista:

  1. Alice soittaa kubectl apply, välittää tiedoston, joka kuvaa Kubernetesin mukautettu resurssi kuvailee hänen S3-ämpäriään. kubectl apply välittää tämän tiedoston nimeltä a ilmeinen, Kubernetes-sovellusliittymäpalvelimelle, joka toimii Kubernetes-ohjainsolmussa.
  2. Kubernetes API -palvelin vastaanottaa S3-säilöä kuvaavan luettelon ja määrittää, onko Alicella Oikeudet luodaksesi mukautetun resurssin laji s3.services.k8s.aws/Bucket, ja että mukautettu resurssi on muotoiltu oikein.
  3. Jos Alice on valtuutettu ja mukautettu resurssi on kelvollinen, Kubernetes API -palvelin kirjoittaa mukautetun resurssin etcd tietovarasto.
  4. Sitten se vastaa Alicelle, että mukautettu resurssi on luotu.
  5. Tässä vaiheessa ACK-palvelu ohjain Amazon S3:lle, joka toimii Kubernetes-työntekijäsolmussa normaalin Kubernetesin yhteydessä Palko, saa ilmoituksen, että uusi mukautettu resurssi s3.services.k8s.aws/Bucket on luotu.
  6. Amazon S3:n ACK-palveluohjain kommunikoi sitten Amazon S3 API:n kanssa kutsuen S3 CreateBucket API luodaksesi kauhan AWS:ssä.
  7. Kun ACK-palveluohjain on kommunikoinut Amazon S3 API:n kanssa, se soittaa Kubernetes API -palvelimelle päivittääkseen mukautetun resurssin tila Amazon S3:lta saamansa tiedon kanssa.

Tärkeimmät komponentit

Uudet päättelyominaisuudet perustuvat SageMakerin reaaliaikaisiin päättelypäätepisteisiin. Kuten ennenkin, luot SageMaker-päätepisteen päätepistekokoonpanolla, joka määrittää päätepisteen ilmentymän tyypin ja alkuperäisen ilmentymän määrän. Malli on konfiguroitu uuteen konstruktiin, päättelykomponenttiin. Tässä määrität kiihdyttimien määrän ja muistin määrän, jotka haluat varata jokaiselle mallin kopiolle, sekä mallin artefaktit, säilön kuvan ja käyttöönotettavien mallikopioiden lukumäärän.

Voit käyttää uusia päättelyominaisuuksia osoitteesta Amazon SageMaker Studio, The SageMaker Python SDK, AWS SDK: tja AWS-komentoriviliitäntä (AWS CLI). Heitä tukevat myös AWS-pilven muodostuminen. Nyt voit myös käyttää niitä SageMaker-operaattorit Kubernetesille.

Ratkaisun yleiskatsaus

Tässä esittelyssä käytämme SageMaker-ohjainta kopion käyttöönottamiseksi Dolly v2 7B malli ja kopio FLAN-T5 XXL malli mistä Halaava Face Model Hub SageMakerin reaaliaikaisessa päätepisteessä käyttämällä uusia päättelyominaisuuksia.

Edellytykset

Jotta voit jatkaa, sinulla pitäisi olla Kubernetes-klusteri, jossa on asennettuna SageMaker ACK -ohjain v1.2.9 tai uudempi. Saat ohjeet an Amazonin elastisten kuberneettien palvelu (Amazon EKS) -klusterin kanssa Amazonin elastinen laskentapilvi (Amazon EC2) Linuxin hallitut solmut käyttämällä eksctl:ää, katso Amazon EKS:n käytön aloittaminen – eksctl. Katso SageMaker-ohjaimen asennusohjeet kohdasta Koneoppiminen ACK SageMaker -ohjaimella.

Tarvitset pääsyn kiihdytettyihin ilmentymiin (GPU) LLM:ien isännöimiseen. Tämä ratkaisu käyttää yhtä esiintymää ml.g5.12xlarge; voit tarkistaa näiden ilmentymien saatavuuden AWS-tililläsi ja pyytää näitä ilmentymiä tarvittaessa palvelukiintiöiden lisäyspyynnön kautta, kuten seuraavassa kuvakaappauksessa näkyy.

Palvelukiintiöiden lisäyspyyntö

Luo päättelykomponentti

Luodaksesi päättelykomponentin, määritä EndpointConfig, Endpoint, Modelja InferenceComponent YAML-tiedostoja, jotka ovat samanlaisia ​​kuin tässä osiossa. Käyttää kubectl apply -f <yaml file> Kubernetes-resurssien luomiseen.

Voit luetella resurssin tilan kautta kubectl describe <resource-type>; esimerkiksi, kubectl describe inferencecomponent.

Voit myös luoda päättelykomponentin ilman malliresurssia. Katso julkaisussa annetut ohjeet API-dokumentaatio lisätietoja.

EndpointConfig YAML

Seuraava on EndpointConfig-tiedoston koodi:

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

Päätepiste YAML

Seuraava on päätepistetiedoston koodi:

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

Malli YAML

Seuraava on mallitiedoston koodi:

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:t

Seuraavissa YAML-tiedostoissa, koska ml.g5.12xlarge -esiintymässä on 4 GPU:ta, varaamme kullekin mallille 2 GPU:ta, 2 CPU:ta ja 1,024 XNUMX Mt muistia:

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

Kutsu malleja

Voit nyt kutsua malleja käyttämällä seuraavaa koodia:

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)

Päivitä päättelykomponentti

Jos haluat päivittää olemassa olevan päättelykomponentin, voit päivittää YAML-tiedostot ja käyttää sitten kubectl apply -f <yaml file>. Seuraavassa on esimerkki päivitetystä tiedostosta:

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

Poista päättelykomponentti

Jos haluat poistaa olemassa olevan päättelykomponentin, käytä komentoa kubectl delete -f <yaml file>.

Saatavuus ja hinnoittelu

Uudet SageMaker-johtopäätökset ovat saatavilla tänään AWS:n alueilla USA:n itäosassa (Ohio, N. Virginia), US Westissä (Oregon), Aasian ja Tyynenmeren alueella (Jakarta, Mumbai, Soul, Singapore, Sydney, Tokio), Kanadassa (Keski), Euroopassa ( Frankfurt, Irlanti, Lontoo, Tukholma, Lähi-itä (UAE) ja Etelä-Amerikka (São Paulo). Katso hintatiedot osoitteesta Amazon SageMaker -hinnoittelu.

Yhteenveto

Tässä viestissä osoitimme, kuinka SageMaker ACK -operaattoreita käytetään SageMakerin päättelykomponenttien käyttöönottamiseksi. Käynnistä Kubernetes-klusterisi ja ota FM:t käyttöön käyttämällä uusia SageMaker-johtopäätösominaisuuksia jo tänään!


Tietoja Tekijät

Rajesh Ramchander on AWS:n asiantuntijapalveluiden johtava ML-insinööri. Hän auttaa asiakkaita AI/ML- ja GenAI-matkansa eri vaiheissa aina aloittavista aina niihin, jotka johtavat liiketoimintaansa AI-fir-strategialla.

Amit Arora on AI- ja ML-asiantuntijaarkkitehti Amazon Web Servicesissä, ja hän auttaa yritysasiakkaita käyttämään pilvipohjaisia ​​koneoppimispalveluita innovaatioiden nopeaan skaalaamiseen. Hän on myös dosentti MS-tietotiede- ja analytiikkaohjelmassa Georgetownin yliopistossa Washington DC:ssä.

Suryansh Singh on ohjelmistokehitysinsinööri AWS SageMakerissa ja kehittää ML-hajautettuja infrastruktuuriratkaisuja AWS-asiakkaille laajassa mittakaavassa.

Saurabh Trikande on Amazon SageMaker Inferencen -tuotepäällikkö. Hän on intohimoinen asiakkaiden kanssa työskentelyyn, ja häntä motivoi tavoite demokratisoida koneoppimista. Hän keskittyy ydinhaasteisiin, jotka liittyvät monimutkaisten ML-sovellusten käyttöönottoon, usean vuokralaisen ML-malleihin, kustannusten optimointiin ja syvän oppimismallien käyttöönoton helpottamiseen. Vapaa-ajallaan Saurabh nauttii vaelluksesta, innovatiivisten teknologioiden oppimisesta, TechCrunchia seuraamisesta ja perheen kanssa viettämisestä.

Johna LiuJohna Liu on ohjelmistokehitysinsinööri Amazon SageMaker -tiimissä. Hänen nykyinen työnsä keskittyy auttamaan kehittäjiä isännöimään tehokkaasti koneoppimismalleja ja parantamaan päättelyn suorituskykyä. Hän on intohimoinen paikkatietojen analysointiin ja tekoälyn käyttämiseen yhteiskunnallisten ongelmien ratkaisemisessa.

spot_img

Uusin älykkyys

spot_img

Keskustele kanssamme

Hei siellä! Kuinka voin olla avuksi?