Generatív adatintelligencia

Használja a Kubernetes Operatorokat az Amazon SageMaker új következtetési képességeihez, amelyek átlagosan 50%-kal csökkentik az LLM telepítési költségeit | Amazon webszolgáltatások

Találka:

Örömmel jelentjük be az új verziót Amazon SageMaker operátorok a Kubernetes számára használatával AWS-vezérlők Kuberneteshez (ACK). Az ACK a Kubernetes egyéni vezérlők építésének keretrendszere, ahol minden vezérlő egy AWS szolgáltatás API-val kommunikál. Ezek a vezérlők lehetővé teszik a Kubernetes-felhasználók számára, hogy AWS-erőforrásokat, például tárolócsoportokat, adatbázisokat vagy üzenetsorokat állítsanak elő egyszerűen a Kubernetes API használatával.

Engedje v1.2.9 a SageMaker ACK Operátorok támogatása a következtetési komponensek, amelyek eddig csak a SageMaker API-n és az AWS Software Development Kit-eken (SDK) keresztül voltak elérhetők. A következtetési összetevők segíthetnek optimalizálni a telepítési költségeket és csökkenteni a várakozási időt. Az új következtetési összetevő képességekkel egy vagy több alapmodellet (FM) telepíthet ugyanazon Amazon SageMaker végpont, és szabályozza, hogy hány gyorsító és mennyi memória legyen lefoglalva az egyes FM-ekhez. Ez segít javítani az erőforrások kihasználását, átlagosan 50%-kal csökkenti a modell üzembe helyezési költségeit, és lehetővé teszi a végpontok méretezését a használati esetekkel együtt. További részletekért lásd Az Amazon SageMaker új következtetési képességekkel bővíti az alapmodell telepítési költségeit és késleltetését.

A következtetési összetevők elérhetősége a SageMaker vezérlőn keresztül lehetővé teszi a Kuberneteset vezérlősíkként használó ügyfelek számára, hogy kihasználják a következtetési összetevőket, miközben modelleiket a SageMakeren telepítik.

Ebben a bejegyzésben bemutatjuk, hogyan használhatjuk a SageMaker ACK operátorokat a SageMaker következtetési összetevők telepítéséhez.

Hogyan működik az ACK

Demonstrálni hogyan működik az ACK, nézzünk egy példát a használatával Amazon egyszerű tárolási szolgáltatás (Amazon S3). A következő ábrán Alice a Kubernetes felhasználónk. Alkalmazása egy elnevezett S3 vödör létezésétől függ my-bucket.

Hogyan működik az ACK

A munkafolyamat a következő lépésekből áll:

  1. Alice felhívja kubectl apply, átad egy fájlt, amely leír egy Kubernetes egyéni erőforrás leírva az S3-as vödrét. kubectl apply átadja ezt a fájlt, az úgynevezett a nyilvánvaló, a Kubernetes vezérlő csomópontjában futó Kubernetes API-kiszolgálóra.
  2. A Kubernetes API-kiszolgáló megkapja az S3 gyűjtőcsoportot leíró jegyzéket, és megállapítja, hogy Alice rendelkezik-e engedélyek egyéni erőforrás létrehozásához kedves s3.services.k8s.aws/Bucket, és hogy az egyéni erőforrás megfelelően van formázva.
  3. Ha Alice jogosult, és az egyéni erőforrás érvényes, a Kubernetes API-kiszolgáló beírja az egyéni erőforrást a etcd adattár.
  4. Ezután azt válaszolja Alice-nek, hogy az egyéni erőforrás létrejött.
  5. Ezen a ponton az ACK szolgáltatás ellenőr az Amazon S3 számára, amely egy Kubernetes dolgozói csomóponton fut egy normál Kubernetes kontextusában Hüvely, értesítést kap arról, hogy egy új egyéni erőforrás s3.services.k8s.aws/Bucket létrejött.
  6. Az Amazon S3 ACK szolgáltatásvezérlője ezután kommunikál az Amazon S3 API-val, és hívja a S3 CreateBucket API a vödör létrehozásához az AWS-ben.
  7. Az Amazon S3 API-val való kommunikáció után az ACK szolgáltatásvezérlő meghívja a Kubernetes API szervert, hogy frissítse az egyéni erőforrást. állapot az Amazon S3-tól kapott információkkal.

Kulcs összetevők

Az új következtetési képességek a SageMaker valós idejű következtetési végpontjaira épülnek. A korábbiakhoz hasonlóan létrehozza a SageMaker-végpontot egy végpont-konfigurációval, amely meghatározza a példány típusát és a végpont kezdeti példányszámát. A modell egy új konstrukcióban, egy következtetési komponensben van konfigurálva. Itt adhatja meg a gyorsítók számát és a memória mennyiségét, amelyet a modell egyes példányaihoz szeretne lefoglalni, valamint a modell melléktermékeit, a tároló képét és a telepítendő modellpéldányok számát.

Az új következtetési képességeket innen használhatja Amazon SageMaker Studio, a SageMaker Python SDK, AWS SDK-kés AWS parancssori interfész (AWS CLI). Őket is támogatja AWS felhőképződés. Most már használhatod is velük SageMaker operátorok Kuberneteshez.

Megoldás áttekintése

Ehhez a demóhoz a SageMaker vezérlőt használjuk a Dolly v2 7B modell és másolata a FLAN-T5 XXL modell tól Átölelő arcmodell központ egy SageMaker valós idejű végponton az új következtetési képességek használatával.

Előfeltételek

A folytatáshoz rendelkeznie kell egy Kubernetes-fürttel a SageMaker ACK 1.2.9-es vagy újabb verziójával. Az an. biztosítására vonatkozó utasításokért Amazon Elastic Kubernetes szolgáltatás (Amazon EKS) cluster with Amazon rugalmas számítási felhő (Amazon EC2) Linux által felügyelt csomópontok exctl használatával, lásd Az Amazon EKS első lépései – exctl. A SageMaker vezérlő telepítésére vonatkozó utasításokat lásd: Gépi tanulás az ACK SageMaker vezérlővel.

Az LLM-ek üzemeltetéséhez hozzáférésre van szüksége a gyorsított példányokhoz (GPU-khoz). Ez a megoldás az ml.g5.12xlarge egy példányát használja; ellenőrizheti ezeknek a példányoknak az elérhetőségét az AWS-fiókjában, és szükség szerint kérheti ezeket a példányokat egy szolgáltatáskvóta-növelési kéréssel, a következő képernyőképen látható módon.

Szolgáltatáskvóta-növelési kérelem

Hozzon létre egy következtetési komponenst

A következtetési komponens létrehozásához adja meg a EndpointConfig, Endpoint, Modelés InferenceComponent YAML fájlok, hasonlóak az ebben a részben láthatókhoz. Használat kubectl apply -f <yaml file> a Kubernetes erőforrások létrehozásához.

Ezen keresztül listázhatja az erőforrás állapotát kubectl describe <resource-type>; például, kubectl describe inferencecomponent.

A következtetési összetevőt modellerőforrás nélkül is létrehozhatja. Olvassa el a dokumentumban található útmutatót API dokumentáció fül alatt találsz.

EndpointConfig YAML

A következő az EndpointConfig fájl kódja:

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

Végpont YAML

A következő az Endpoint fájl kódja:

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

YAML modell

A következő a modellfájl kódja:

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-ek

A következő YAML-fájlokban, tekintettel arra, hogy az ml.g5.12xlarge példány 4 GPU-val érkezik, 2 GPU-t, 2 CPU-t és 1,024 MB memóriát rendelünk minden modellhez:

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

Modellek meghívása

Mostantól a következő kóddal hívhatja meg a modelleket:

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)

Frissítsen egy következtetési összetevőt

Egy meglévő következtetési összetevő frissítéséhez frissítheti a YAML fájlokat, majd használhatja kubectl apply -f <yaml file>. A következő példa egy frissített fájlra:

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

Következtetési komponens törlése

Egy meglévő következtetési összetevő törléséhez használja a parancsot kubectl delete -f <yaml file>.

Elérhetőség és árképzés

Az új SageMaker következtetési képességek ma elérhetőek az AWS régiókban: US East (Ohio, Észak-Virginia), US West (Oregon), Ázsia és Csendes-óceán (Jakarta, Mumbai, Szöul, Szingapúr, Sydney, Tokió), Kanadában (Közép), Európában ( Frankfurt, Írország, London, Stockholm, Közel-Kelet (EAE) és Dél-Amerika (São Paulo). Az árak részleteiért látogasson el Amazon SageMaker árképzés.

Következtetés

Ebben a bejegyzésben bemutattuk, hogyan használhatjuk a SageMaker ACK operátorokat a SageMaker következtetési összetevők telepítéséhez. Indítsa el Kubernetes-fürtjét, és telepítse FM-jeit az új SageMaker következtetési képességekkel még ma!


A szerzőkről

Rajesh Ramchander az AWS professzionális szolgáltatások területén vezető ML mérnök. Segíti az ügyfeleket az AI/ML és a GenAI útjuk különböző szakaszaiban, a kezdőktől egészen az AI-first stratégiával vezető üzletükig.

Amit Arora az Amazon Web Services mesterséges intelligencia és ML specialistája, aki segít a vállalati ügyfeleknek felhőalapú gépi tanulási szolgáltatások használatában innovációik gyors skálázásához. Emellett adjunktus az MS adattudományi és analitikai programban a Washington DC-i Georgetown Egyetemen.

Suryansh Singh az AWS SageMaker szoftverfejlesztő mérnöke, és az ML-ben elosztott infrastruktúra-megoldások fejlesztésén dolgozik az AWS ügyfelek számára.

Saurabh Trikande az Amazon SageMaker Inference vezető termékmenedzsere. Szenvedélyesen dolgozik az ügyfelekkel, és a gépi tanulás demokratizálásának célja motiválja. A komplex ML-alkalmazások telepítésével, a több bérlős ML-modellekkel, a költségoptimalizálással és a mély tanulási modellek bevezetésének elérhetőbbé tételével kapcsolatos alapvető kihívásokra összpontosít. Szabadidejében Saurabh szeret túrázni, innovatív technológiákat tanulni, követi a TechCrunch-ot, és a családjával tölt időt.

Johna LiuJohna Liu az Amazon SageMaker csapat szoftverfejlesztő mérnöke. Jelenlegi munkája arra összpontosít, hogy segítse a fejlesztőket a gépi tanulási modellek hatékony üzemeltetésében és a következtetési teljesítmény javításában. Szenvedélyesen rajong a térbeli adatok elemzéséért és a mesterséges intelligencia felhasználásáért a társadalmi problémák megoldására.

spot_img

Legújabb intelligencia

spot_img

Beszélj velünk

Szia! Miben segíthetek?