জেনারেটিভ ডেটা ইন্টেলিজেন্স

Amazon SageMaker-এ নতুন অনুমান ক্ষমতার জন্য Kubernetes অপারেটর ব্যবহার করুন যা LLM স্থাপনার খরচ গড়ে 50% কমিয়ে দেয় | আমাজন ওয়েব সার্ভিসেস

তারিখ:

আমরা এর একটি নতুন সংস্করণ ঘোষণা করতে পেরে আনন্দিত Kubernetes জন্য Amazon SageMaker অপারেটর ব্যবহার করে কুবারনেটস (ACK) এর জন্য AWS কন্ট্রোলার. ACK হল Kubernetes কাস্টম কন্ট্রোলার তৈরির জন্য একটি কাঠামো, যেখানে প্রতিটি কন্ট্রোলার একটি AWS পরিষেবা API এর সাথে যোগাযোগ করে। এই কন্ট্রোলারগুলি Kubernetes ব্যবহারকারীদের AWS সংস্থান যেমন বালতি, ডাটাবেস, বা বার্তা সারিগুলি সহজভাবে Kubernetes API ব্যবহার করে সরবরাহ করার অনুমতি দেয়।

মুক্তি v1.2.9 SageMaker ACK অপারেটর এর জন্য সমর্থন যোগ করে অনুমান উপাদান, যা এখন পর্যন্ত শুধুমাত্র SageMaker API এবং AWS সফটওয়্যার ডেভেলপমেন্ট কিটস (SDKs) এর মাধ্যমে উপলব্ধ ছিল। অনুমান উপাদানগুলি আপনাকে স্থাপনার খরচ অপ্টিমাইজ করতে এবং বিলম্ব কমাতে সাহায্য করতে পারে। নতুন অনুমান উপাদান ক্ষমতার সাথে, আপনি একই উপর এক বা একাধিক ফাউন্ডেশন মডেল (FMs) স্থাপন করতে পারেন আমাজন সেজমেকার প্রতিটি এফএম-এর জন্য কতগুলি অ্যাক্সিলারেটর এবং কত মেমরি সংরক্ষিত রয়েছে তা এন্ডপয়েন্ট এবং নিয়ন্ত্রণ করে। এটি সম্পদের ব্যবহার উন্নত করতে সাহায্য করে, মডেল স্থাপনের খরচ গড়ে 50% কমিয়ে দেয় এবং আপনাকে আপনার ব্যবহারের ক্ষেত্রে একত্রে এন্ডপয়েন্ট স্কেল করতে দেয়। আরো বিস্তারিত জানার জন্য, দেখুন আমাজন সেজমেকার ফাউন্ডেশন মডেল স্থাপনের খরচ এবং লেটেন্সি কমাতে সাহায্য করার জন্য নতুন অনুমান ক্ষমতা যুক্ত করেছে.

সেজমেকার কন্ট্রোলারের মাধ্যমে অনুমান উপাদানগুলির প্রাপ্যতা সেই গ্রাহকদেরকে সক্ষম করে যারা তাদের কন্ট্রোল প্লেন হিসাবে কুবারনেটস ব্যবহার করে সেজমেকারে তাদের মডেলগুলি স্থাপন করার সময় অনুমানের উপাদানগুলির সুবিধা নিতে।

এই পোস্টে, আমরা দেখাই কিভাবে SageMaker ACK অপারেটর ব্যবহার করতে হয় SageMaker অনুমান উপাদান স্থাপন করতে।

কিভাবে ACK কাজ করে

প্রদর্শন করার জন্যে ACK কিভাবে কাজ করে, আসুন একটি উদাহরণ ব্যবহার করে তাকান আমাজন সিম্পল স্টোরেজ সার্ভিস (Amazon S3)। নিম্নলিখিত চিত্রে, এলিস আমাদের কুবারনেটস ব্যবহারকারী। তার আবেদন একটি S3 বালতি নামের অস্তিত্বের উপর নির্ভর করে my-bucket.

কিভাবে ACK কাজ করে

কর্মপ্রবাহ নিম্নলিখিত পদক্ষেপ নিয়ে গঠিত:

  1. এলিস একটি কল জারি kubectl apply, একটি ফাইলে পাস করা যা একটি Kubernetes বর্ণনা করে কাস্টম সম্পদ তার S3 বালতি বর্ণনা. kubectl apply এই ফাইলটি পাস করে, যাকে বলা হয় স্পষ্ট, Kubernetes কন্ট্রোলার নোডে চলমান Kubernetes API সার্ভারে।
  2. Kubernetes API সার্ভার S3 বালতি বর্ণনা করে ম্যানিফেস্ট পায় এবং অ্যালিসের আছে কিনা তা নির্ধারণ করে অনুমতি একটি কাস্টম সম্পদ তৈরি করতে রকম s3.services.k8s.aws/Bucket, এবং কাস্টম সম্পদ সঠিকভাবে বিন্যাস করা হয়েছে।
  3. যদি অ্যালিস অনুমোদিত হয় এবং কাস্টম রিসোর্স বৈধ হয়, Kubernetes API সার্ভার তার কাস্টম রিসোর্স লিখে etcd অস্ত্রোপচার.
  4. এটি তখন অ্যালিসকে সাড়া দেয় যে কাস্টম রিসোর্স তৈরি করা হয়েছে।
  5. এই সময়ে, ACK পরিষেবা নিয়ামক Amazon S3 এর জন্য, যা একটি সাধারণ Kubernetes এর প্রেক্ষাপটে একটি Kubernetes কর্মী নোডে চলছে শুঁটি, বিজ্ঞাপিত যে ধরনের একটি নতুন কাস্টম সম্পদ s3.services.k8s.aws/Bucket তৈরি করা হয়েছে.
  6. Amazon S3-এর জন্য ACK পরিষেবা নিয়ন্ত্রক তারপর Amazon S3 API-এর সাথে যোগাযোগ করে, কল করে S3 CreateBucket API AWS-এ বালতি তৈরি করতে।
  7. Amazon S3 API এর সাথে যোগাযোগ করার পর, ACK পরিষেবা নিয়ন্ত্রক কাস্টম রিসোর্স আপডেট করার জন্য কুবারনেটস এপিআই সার্ভারকে কল করে অবস্থা এটি Amazon S3 থেকে প্রাপ্ত তথ্যের সাথে।

মূল উপাদান

নতুন অনুমান ক্ষমতা SageMaker এর রিয়েল-টাইম ইনফারেন্স এন্ডপয়েন্টের উপর তৈরি করে। আগের মতো, আপনি একটি এন্ডপয়েন্ট কনফিগারেশন সহ সেজমেকার এন্ডপয়েন্ট তৈরি করেন যা শেষ পয়েন্টের জন্য ইনস্ট্যান্সের ধরণ এবং প্রাথমিক উদাহরণ গণনাকে সংজ্ঞায়িত করে। মডেলটি একটি নতুন নির্মাণে কনফিগার করা হয়েছে, একটি অনুমান উপাদান। এখানে, আপনি মডেল আর্টিফ্যাক্ট, কন্টেইনার ইমেজ এবং মোতায়েন করার জন্য মডেল কপির সংখ্যা সহ একটি মডেলের প্রতিটি অনুলিপিতে আপনি যে পরিমাণ এক্সিলারেটর এবং মেমরির পরিমাণ বরাদ্দ করতে চান তা নির্দিষ্ট করুন।

আপনি থেকে নতুন অনুমান ক্ষমতা ব্যবহার করতে পারেন অ্যামাজন সেজমেকার স্টুডিও, দ্য সেজমেকার পাইথন এসডিকে, এডাব্লু এসডি, এবং এডাব্লুএস কমান্ড লাইন ইন্টারফেস (AWS CLI)। তারাও সমর্থিত এডাব্লুএস ক্লাউডফর্মেশন. এখন আপনি তাদের সাথে ব্যবহার করতে পারেন Kubernetes জন্য SageMaker অপারেটর.

সমাধান ওভারভিউ

এই ডেমোর জন্য, আমরা এর একটি অনুলিপি স্থাপন করতে SageMaker কন্ট্রোলার ব্যবহার করি ডলি v2 7B মডেল এবং এর একটি অনুলিপি FLAN-T5 XXL মডেল থেকে হাগিং ফেস মডেল হাব নতুন অনুমান ক্ষমতা ব্যবহার করে একটি সেজমেকার রিয়েল-টাইম এন্ডপয়েন্টে।

পূর্বশর্ত

অনুসরণ করার জন্য, আপনার SageMaker ACK কন্ট্রোলার v1.2.9 বা তার উপরে ইনস্টল সহ একটি Kubernetes ক্লাস্টার থাকা উচিত। একটি বিধান কিভাবে নির্দেশাবলী জন্য অ্যামাজন ইলাস্টিক কুবারনেটস পরিষেবা (Amazon EKS) এর সাথে ক্লাস্টার অ্যামাজন ইলাস্টিক কম্পিউট ক্লাউড (Amazon EC2) eksctl ব্যবহার করে লিনাক্স পরিচালিত নোড, দেখুন Amazon EKS – eksctl দিয়ে শুরু করা. SageMaker কন্ট্রোলার ইনস্টল করার নির্দেশাবলীর জন্য, পড়ুন ACK SageMaker কন্ট্রোলারের সাথে মেশিন লার্নিং.

এলএলএম হোস্ট করার জন্য আপনার এক্সিলারেটেড ইনস্ট্যান্সে (জিপিইউ) অ্যাক্সেস প্রয়োজন। এই সমাধানটি ml.g5.12xlarge এর একটি উদাহরণ ব্যবহার করে; আপনি আপনার AWS অ্যাকাউন্টে এই দৃষ্টান্তগুলির উপলব্ধতা পরীক্ষা করতে পারেন এবং নিম্নলিখিত স্ক্রিনশটে দেখানো হিসাবে পরিষেবা কোটা বৃদ্ধির অনুরোধের মাধ্যমে প্রয়োজন অনুসারে এই দৃষ্টান্তগুলির জন্য অনুরোধ করতে পারেন৷

পরিষেবা কোটা বৃদ্ধি অনুরোধ

একটি অনুমান উপাদান তৈরি করুন

আপনার অনুমান উপাদান তৈরি করতে, সংজ্ঞায়িত করুন EndpointConfig, Endpoint, Model, এবং InferenceComponent YAML ফাইল, এই বিভাগে দেখানো ফাইলগুলির মতো। ব্যবহার করুন kubectl apply -f <yaml file> Kubernetes সম্পদ তৈরি করতে.

আপনি এর মাধ্যমে সম্পদের অবস্থা তালিকা করতে পারেন kubectl describe <resource-type>; উদাহরণ স্বরূপ, kubectl describe inferencecomponent.

আপনি একটি মডেল সংস্থান ছাড়াই অনুমান উপাদান তৈরি করতে পারেন। প্রদত্ত নির্দেশিকা পড়ুন API ডকুমেন্টেশন আরো বিস্তারিত জানার জন্য.

EndpointConfig YAML

নিম্নলিখিত EndpointConfig ফাইলের জন্য কোড:

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

শেষবিন্দু YAML

নিম্নলিখিত এন্ডপয়েন্ট ফাইলের জন্য কোড:

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

মডেল YAML

নিম্নলিখিত মডেল ফাইলের জন্য কোড:

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

ইনফারেন্স কম্পোনেন্ট YAMLs

নিম্নলিখিত YAML ফাইলগুলিতে, ml.g5.12xlarge ইনস্ট্যান্স 4টি GPU-এর সাথে আসে, আমরা প্রতিটি মডেলের জন্য 2 GPU, 2 CPU এবং 1,024 MB মেমরি বরাদ্দ করছি:

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

মডেল আহ্বান করুন

আপনি এখন নিম্নলিখিত কোড ব্যবহার করে মডেল আহ্বান করতে পারেন:

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)

একটি অনুমান উপাদান আপডেট করুন

একটি বিদ্যমান অনুমান উপাদান আপডেট করতে, আপনি YAML ফাইল আপডেট করতে পারেন এবং তারপর ব্যবহার করতে পারেন kubectl apply -f <yaml file>. নিম্নলিখিত একটি আপডেট ফাইলের একটি উদাহরণ:

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

একটি অনুমান উপাদান মুছুন

একটি বিদ্যমান অনুমান উপাদান মুছে ফেলতে, কমান্ডটি ব্যবহার করুন kubectl delete -f <yaml file>.

প্রাপ্যতা এবং মূল্য

নতুন SageMaker অনুমান ক্ষমতা আজ AWS অঞ্চল মার্কিন পূর্ব (ওহিও, এন. ভার্জিনিয়া), US পশ্চিম (ওরেগন), এশিয়া প্যাসিফিক (জাকার্তা, মুম্বাই, সিউল, সিঙ্গাপুর, সিডনি, টোকিও), কানাডা (মধ্য), ইউরোপ ( ফ্রাঙ্কফুর্ট, আয়ারল্যান্ড, লন্ডন, স্টকহোম), মধ্যপ্রাচ্য (ইউএই), এবং দক্ষিণ আমেরিকা (সাও পাওলো)। মূল্য বিবরণের জন্য, দেখুন অ্যামাজন সেজমেকার প্রাইসিং.

উপসংহার

এই পোস্টে, আমরা দেখিয়েছি কিভাবে SageMaker ACK অপারেটর ব্যবহার করতে হয় SageMaker অনুমান উপাদান স্থাপন করতে। আপনার Kubernetes ক্লাস্টার চালু করুন এবং আজই নতুন SageMaker অনুমান ক্ষমতা ব্যবহার করে আপনার FM গুলি স্থাপন করুন!


লেখক সম্পর্কে

রাজেশ রামচন্দর AWS-এ পেশাগত পরিষেবায় একজন প্রধান এমএল ইঞ্জিনিয়ার। তিনি গ্রাহকদের তাদের AI/ML এবং GenAI যাত্রার বিভিন্ন পর্যায়ে সাহায্য করেন, যেগুলি সবেমাত্র শুরু হচ্ছে থেকে শুরু করে যারা AI-প্রথম কৌশল নিয়ে তাদের ব্যবসার নেতৃত্ব দিচ্ছে।

অমিত অরোরা অ্যামাজন ওয়েব সার্ভিসেস-এর একজন AI এবং ML বিশেষজ্ঞ স্থপতি, এন্টারপ্রাইজ গ্রাহকদের তাদের উদ্ভাবনগুলি দ্রুত স্কেল করতে ক্লাউড-ভিত্তিক মেশিন লার্নিং পরিষেবাগুলি ব্যবহার করতে সহায়তা করে৷ এছাড়াও তিনি ওয়াশিংটন ডিসির জর্জটাউন ইউনিভার্সিটির এমএস ডেটা সায়েন্স এবং অ্যানালিটিক্স প্রোগ্রামের একজন সহকারী প্রভাষক।

সূর্য্য সিং তিনি AWS SageMaker-এর একজন সফ্টওয়্যার ডেভেলপমেন্ট প্রকৌশলী এবং AWS গ্রাহকদের জন্য ML-বিতরণ করা পরিকাঠামো সমাধান তৈরিতে কাজ করেন।

সৌরভ ত্রিকন্দে অ্যামাজন সেজমেকার ইনফারেন্সের একজন সিনিয়র প্রোডাক্ট ম্যানেজার। তিনি গ্রাহকদের সাথে কাজ করার জন্য উত্সাহী এবং মেশিন লার্নিংকে গণতান্ত্রিক করার লক্ষ্য দ্বারা অনুপ্রাণিত৷ তিনি জটিল এমএল অ্যাপ্লিকেশন স্থাপন, মাল্টি-টেন্যান্ট এমএল মডেল, খরচ অপ্টিমাইজেশান, এবং গভীর শিক্ষার মডেলগুলিকে আরও অ্যাক্সেসযোগ্য করে তোলার সাথে সম্পর্কিত মূল চ্যালেঞ্জগুলিতে মনোনিবেশ করেন। অবসর সময়ে, সৌরভ হাইকিং, উদ্ভাবনী প্রযুক্তি সম্পর্কে শেখা, টেকক্রাঞ্চ অনুসরণ করা এবং তার পরিবারের সাথে সময় কাটানো উপভোগ করেন।

জোনা লিউজোনা লিউ অ্যামাজন সেজমেকার দলের একজন সফটওয়্যার ডেভেলপমেন্ট ইঞ্জিনিয়ার। তার বর্তমান কাজটি ডেভেলপারদের দক্ষতার সাথে মেশিন লার্নিং মডেলগুলি হোস্ট করতে এবং অনুমান কর্মক্ষমতা উন্নত করতে সহায়তা করে। তিনি স্থানিক ডেটা বিশ্লেষণ এবং সামাজিক সমস্যা সমাধানের জন্য AI ব্যবহার করার বিষয়ে উত্সাহী।

স্পট_আইএমজি

সর্বশেষ বুদ্ধিমত্তা

স্পট_আইএমজি

আমাদের সাথে খোস গল্প কর

হাই সেখানে! আপনাকে কিভাবে সাহায্য করতে পারি?