Amazon SageMaker एसिंक्रोनस एंडपॉइंट के साथ Amazon SageMaker जम्पस्टार्ट फाउंडेशन मॉडल की तैनाती लागत को अनुकूलित करें | अमेज़न वेब सेवाएँ

Amazon SageMaker एसिंक्रोनस एंडपॉइंट के साथ Amazon SageMaker जम्पस्टार्ट फाउंडेशन मॉडल की तैनाती लागत को अनुकूलित करें | अमेज़न वेब सेवाएँ

उद्योगों की एक विस्तृत श्रृंखला में जेनेरिक एआई अनुप्रयोगों की सफलता ने दुनिया भर की उन कंपनियों का ध्यान और रुचि आकर्षित की है जो प्रतिस्पर्धियों की उपलब्धियों को पुन: पेश करना और उनसे आगे निकलना चाहते हैं या नए और रोमांचक उपयोग के मामलों को हल करना चाहते हैं। ये ग्राहक जनरेटिव एआई इनोवेशन को शक्ति देने वाले इंजन के रूप में टीआईआई फाल्कन, स्टेबल डिफ्यूजन एक्सएल, या ओपनएआई के जीपीटी-3.5 जैसे फाउंडेशन मॉडल पर विचार कर रहे हैं।

फाउंडेशन मॉडल जेनरेटिव एआई मॉडल का एक वर्ग है जो मानव-जैसी सामग्री को समझने और उत्पन्न करने में सक्षम हैं, बड़ी मात्रा में असंरचित डेटा के लिए धन्यवाद, जिस पर उन्हें प्रशिक्षित किया गया है। इन मॉडलों ने छवि निर्माण, अनुवाद और प्रश्न उत्तर सहित विभिन्न कंप्यूटर विज़न (सीवी) और प्राकृतिक भाषा प्रसंस्करण (एनएलपी) कार्यों में क्रांति ला दी है। वे कई एआई अनुप्रयोगों के लिए बिल्डिंग ब्लॉक्स के रूप में काम करते हैं और उन्नत बुद्धिमान प्रणालियों के विकास में एक महत्वपूर्ण घटक बन गए हैं।

हालाँकि, फाउंडेशन मॉडल की तैनाती महत्वपूर्ण चुनौतियों के साथ आ सकती है, खासकर लागत और संसाधन आवश्यकताओं के संदर्भ में। ये मॉडल अपने आकार के लिए जाने जाते हैं, जो अक्सर सैकड़ों लाखों से लेकर अरबों मापदंडों तक होते हैं। उनके बड़े आकार के लिए शक्तिशाली हार्डवेयर और महत्वपूर्ण मेमोरी क्षमता सहित व्यापक कम्प्यूटेशनल संसाधनों की आवश्यकता होती है। वास्तव में, फाउंडेशन मॉडल को तैनात करने के लिए कम्प्यूटेशनल लोड को कुशलतापूर्वक संभालने के लिए आमतौर पर कम से कम एक (अक्सर अधिक) जीपीयू की आवश्यकता होती है। उदाहरण के लिए, TII फाल्कन-40B इंस्ट्रक्ट मॉडल को मेमोरी में सफलतापूर्वक लोड करने के लिए कम से कम एक ml.g5.12xlarge इंस्टेंस की आवश्यकता होती है, लेकिन बड़े इंस्टेंस के साथ यह सबसे अच्छा प्रदर्शन करता है। परिणामस्वरूप, इन मॉडलों को तैनात करने और बनाए रखने का निवेश पर रिटर्न (आरओआई) व्यावसायिक मूल्य साबित करने के लिए बहुत कम हो सकता है, खासकर विकास चक्रों के दौरान या स्पाइकी वर्कलोड के लिए। यह संभवतः 24/7 लंबे सत्रों के लिए GPU-संचालित इंस्टेंसेस रखने की लागत के कारण है।

इस साल की शुरुआत में, हमने घोषणा की थी अमेज़ॅन बेडरॉक, अमेज़ॅन और हमारे जेनरेटिव एआई भागीदारों से फाउंडेशन मॉडल तक पहुंचने के लिए एक सर्वर रहित एपीआई। हालाँकि यह वर्तमान में निजी पूर्वावलोकन में है, इसका सर्वर रहित एपीआई आपको अमेज़ॅन, एंथ्रोपिक, स्टेबिलिटी एआई और एआई 21 से फाउंडेशन मॉडल का उपयोग करने की अनुमति देता है, बिना किसी एंडपॉइंट को तैनात किए। हालाँकि, हगिंग फेस जैसे समुदायों के ओपन-सोर्स मॉडल बहुत बढ़ रहे हैं, और उनमें से हर एक को अमेज़ॅन बेडरॉक के माध्यम से उपलब्ध नहीं कराया गया है।

इस पोस्ट में, हम इन स्थितियों को लक्षित करते हैं और बड़े फाउंडेशन मॉडल को तैनात करके उच्च लागत के जोखिम की समस्या का समाधान करते हैं अमेज़न SageMaker अतुल्यकालिक समापनबिंदु से अमेज़न SageMaker जम्पस्टार्ट. यह आर्किटेक्चर की लागत में कटौती करने में मदद कर सकता है, जिससे एंडपॉइंट को केवल तब चलने की अनुमति मिलती है जब अनुरोध कतार में होते हैं और थोड़े समय के लिए रहते हैं, जबकि जब कोई अनुरोध सेवा के लिए इंतजार नहीं कर रहा होता है तो इसे शून्य तक स्केल किया जा सकता है। यह बहुत सारे उपयोग के मामलों के लिए बहुत अच्छा लगता है; हालाँकि, एक समापन बिंदु जो शून्य तक कम हो गया है, निष्कर्ष निकालने में सक्षम होने से पहले एक ठंडा प्रारंभ समय पेश करेगा।

समाधान अवलोकन

निम्नलिखित चित्र हमारे समाधान वास्तुकला को दर्शाता है।

Optimize deployment cost of Amazon SageMaker JumpStart foundation models with Amazon SageMaker asynchronous endpoints | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

हम जो आर्किटेक्चर तैनात करते हैं वह बहुत सीधा है:

  • उपयोगकर्ता इंटरफ़ेस एक नोटबुक है, जिसे स्ट्रीमलिट या इसी तरह की तकनीक पर निर्मित वेब यूआई द्वारा प्रतिस्थापित किया जा सकता है। हमारे मामले में, नोटबुक एक है अमेज़ॅन सैजमेकर स्टूडियो नोटबुक, PyTorch 5 Python 2.0 CPU कर्नेल के साथ ml.m3.10.large इंस्टेंस पर चल रहा है।
  • नोटबुक तीन तरीकों से समापन बिंदु पर सवाल उठाती है: सेजमेकर पायथन एसडीके, पायथन के लिए एडब्ल्यूएस एसडीके (बोटो3), और लैंगचेन।
  • एंडपॉइंट सेजमेकर पर एसिंक्रोनस रूप से चल रहा है, और एंडपॉइंट पर, हम फाल्कन-40बी इंस्ट्रक्शन मॉडल को तैनात करते हैं। यह वर्तमान में निर्देश मॉडल के मामले में अत्याधुनिक है और सेजमेकर जम्पस्टार्ट में उपलब्ध है। एक एकल एपीआई कॉल हमें एंडपॉइंट पर मॉडल को तैनात करने की अनुमति देती है।

सेजमेकर अतुल्यकालिक अनुमान क्या है?

सेजमेकर एसिंक्रोनस इंट्रेंस सेजमेकर में चार परिनियोजन विकल्पों में से एक है, जिसमें वास्तविक समय समापन बिंदु, बैच इंट्रेंस और सर्वर रहित इंट्रेंस शामिल हैं। विभिन्न परिनियोजन विकल्पों के बारे में अधिक जानने के लिए, देखें अनुमान के लिए मॉडल तैनात करें.

सेजमेकर अतुल्यकालिक अनुमान आने वाले अनुरोधों को कतारबद्ध करता है और उन्हें अतुल्यकालिक रूप से संसाधित करता है, जिससे यह विकल्प 1 जीबी तक के बड़े पेलोड आकार, लंबे प्रसंस्करण समय और लगभग वास्तविक समय विलंबता आवश्यकताओं वाले अनुरोधों के लिए आदर्श बन जाता है। हालाँकि, मुख्य लाभ जो यह बड़े फाउंडेशन मॉडल के साथ काम करते समय प्रदान करता है, विशेष रूप से अवधारणा के प्रमाण (पीओसी) के दौरान या विकास के दौरान, जब कोई अनुरोध नहीं होता है तो शून्य की आवृत्ति गणना में स्केल करने के लिए अतुल्यकालिक अनुमान को कॉन्फ़िगर करने की क्षमता होती है। प्रक्रिया, जिससे लागत बचती है। सेजमेकर एसिंक्रोनस अनुमान के बारे में अधिक जानकारी के लिए देखें अतुल्यकालिक अनुमान. निम्नलिखित चित्र इस वास्तुकला को दर्शाता है।

Optimize deployment cost of Amazon SageMaker JumpStart foundation models with Amazon SageMaker asynchronous endpoints | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

एक अतुल्यकालिक अनुमान समापन बिंदु को तैनात करने के लिए, आपको एक बनाना होगा AsyncInferenceConfig वस्तु। यदि आप बनाते हैं AsyncInferenceConfig इसके तर्कों को निर्दिष्ट किए बिना, डिफ़ॉल्ट S3OutputPath होगा s3://sagemaker-{REGION}-{ACCOUNTID}/async-endpoint-outputs/{UNIQUE-JOB-NAME} और S3FailurePath होगा s3://sagemaker-{REGION}-{ACCOUNTID}/async-endpoint-failures/{UNIQUE-JOB-NAME}.

सेजमेकर जम्पस्टार्ट क्या है?

हमारा मॉडल सेजमेकर जम्पस्टार्ट से आता है, जो सेजमेकर की एक विशेषता है जो पूर्व-प्रशिक्षित मॉडल, समाधान टेम्पलेट और उदाहरण नोटबुक की पेशकश करके मशीन लर्निंग (एमएल) यात्रा को तेज करता है। यह विभिन्न प्रकार की समस्या के लिए पूर्व-प्रशिक्षित मॉडलों की एक विस्तृत श्रृंखला तक पहुंच प्रदान करता है, जिससे आप अपने एमएल कार्यों को एक ठोस आधार के साथ शुरू कर सकते हैं। सेजमेकर जंपस्टार्ट सामान्य उपयोग के मामलों के लिए समाधान टेम्पलेट और सीखने के लिए उदाहरण नोटबुक भी प्रदान करता है। सेजमेकर जम्पस्टार्ट के साथ, आप एक-क्लिक समाधान लॉन्च और व्यावहारिक एमएल अनुभव के लिए व्यापक संसाधनों के साथ अपनी एमएल परियोजनाओं को शुरू करने के लिए आवश्यक समय और प्रयास को कम कर सकते हैं।

निम्नलिखित स्क्रीनशॉट सेजमेकर जम्पस्टार्ट यूआई पर उपलब्ध कुछ मॉडलों का एक उदाहरण दिखाता है।

Optimize deployment cost of Amazon SageMaker JumpStart foundation models with Amazon SageMaker asynchronous endpoints | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

मॉडल तैनात करें

हमारा पहला कदम मॉडल को सेजमेकर पर तैनात करना है। ऐसा करने के लिए, हम सेजमेकर जम्पस्टार्ट या सेजमेकर पायथन एसडीके के लिए यूआई का उपयोग कर सकते हैं, जो एक एपीआई प्रदान करता है जिसका उपयोग हम मॉडल को एसिंक्रोनस एंडपॉइंट पर तैनात करने के लिए कर सकते हैं:

%%time
from sagemaker.jumpstart.model import JumpStartModel, AsyncInferenceConfig
from sagemaker.serializers import JSONSerializer
from sagemaker.deserializers import JSONDeserializer model_id, model_version = "huggingface-llm-falcon-40b-instruct-bf16", "*"
my_model = JumpStartModel(model_id=model_id)
predictor = my_model.deploy( initial_instance_count=0, instance_type="ml.g5.12xlarge", async_inference_config=AsyncInferenceConfig()
)

इस कॉल को पूरा होने में लगभग 10 मिनट लग सकते हैं. इस समय के दौरान, एंडपॉइंट को घुमाया जाता है, मॉडल कलाकृतियों के साथ कंटेनर को एंडपॉइंट पर डाउनलोड किया जाता है, मॉडल कॉन्फ़िगरेशन को सेजमेकर जम्पस्टार्ट से लोड किया जाता है, फिर एसिंक्रोनस एंडपॉइंट को DNS एंडपॉइंट के माध्यम से उजागर किया जाता है। यह सुनिश्चित करने के लिए कि हमारा एंडपॉइंट शून्य तक स्केल कर सकता है, हमें एप्लिकेशन ऑटो स्केलिंग का उपयोग करके एसिंक्रोनस एंडपॉइंट पर ऑटो स्केलिंग को कॉन्फ़िगर करने की आवश्यकता है। आपको पहले अपने एंडपॉइंट वैरिएंट को एप्लिकेशन ऑटो स्केलिंग के साथ पंजीकृत करना होगा, स्केलिंग नीति को परिभाषित करना होगा और फिर स्केलिंग नीति को लागू करना होगा। इस कॉन्फ़िगरेशन में, हम एक कस्टम मीट्रिक का उपयोग करते हैं CustomizedMetricSpecificationकहा जाता है, ApproximateBacklogSizePerInstance, जैसा कि निम्नलिखित कोड में दिखाया गया है। की विस्तृत सूची के लिए अमेज़ॅन क्लाउडवॉच आपके अतुल्यकालिक अनुमान समापन बिंदु के साथ उपलब्ध मेट्रिक्स, देखें क्लाउडवॉच से निगरानी.

import boto3 client = boto3.client("application-autoscaling")
resource_id = "endpoint/" + my_model.endpoint_name + "/variant/" + "AllTraffic" # Configure Autoscaling on asynchronous endpoint down to zero instances
response = client.register_scalable_target( ServiceNamespace="sagemaker", ResourceId=resource_id, ScalableDimension="sagemaker:variant:DesiredInstanceCount", MinCapacity=0, # Miminum number of instances we want to scale down to - scale down to 0 to stop incurring in costs MaxCapacity=1, # Maximum number of instances we want to scale up to - scale up to 1 max is good enough for dev
) response = client.put_scaling_policy( PolicyName="Invocations-ScalingPolicy", ServiceNamespace="sagemaker", # The namespace of the AWS service that provides the resource. ResourceId=resource_id, # Endpoint name ScalableDimension="sagemaker:variant:DesiredInstanceCount", # SageMaker supports only Instance Count PolicyType="TargetTrackingScaling", # 'StepScaling'|'TargetTrackingScaling' TargetTrackingScalingPolicyConfiguration={ "TargetValue": 5.0, # The target value for the metric. - here the metric is - SageMakerVariantInvocationsPerInstance "CustomizedMetricSpecification": { "MetricName": "ApproximateBacklogSizePerInstance", "Namespace": "AWS/SageMaker", "Dimensions": [{"Name": "EndpointName", "Value": my_model.endpoint_name}], "Statistic": "Average", }, "ScaleInCooldown": 600, # The amount of time, in seconds, after a scale in activity completes before another scale in activity can start. "ScaleOutCooldown": 300, # ScaleOutCooldown - The amount of time, in seconds, after a scale out activity completes before another scale out activity can start. # 'DisableScaleIn': True|False - indicates whether scale in by the target tracking policy is disabled. # If the value is true, scale in is disabled and the target tracking policy won't remove capacity from the scalable resource. },
)

आप यह सत्यापित कर सकते हैं कि सेजमेकर कंसोल पर नेविगेट करके, चुनकर यह नीति सफलतापूर्वक सेट की गई है endpoints के अंतर्गत अनुमान नेविगेशन फलक में, और उस समापन बिंदु की तलाश कर रहे हैं जिसे हमने अभी तैनात किया है।

Optimize deployment cost of Amazon SageMaker JumpStart foundation models with Amazon SageMaker asynchronous endpoints | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

अतुल्यकालिक समापन बिंदु को लागू करें

समापन बिंदु को लागू करने के लिए, आपको अनुरोध पेलोड डालना होगा अमेज़न सरल भंडारण सेवा (अमेज़ॅन S3) और इस पेलोड को एक भाग के रूप में एक पॉइंटर प्रदान करें InvokeEndpointAsync अनुरोध। आह्वान पर, सेजमेकर प्रसंस्करण के लिए अनुरोध को कतारबद्ध करता है और प्रतिक्रिया के रूप में एक पहचानकर्ता और आउटपुट स्थान लौटाता है। प्रसंस्करण के बाद, SageMaker परिणाम को Amazon S3 स्थान पर रखता है। आप वैकल्पिक रूप से सफलता या त्रुटि सूचनाएं प्राप्त करना चुन सकते हैं अमेज़न सरल अधिसूचना सेवा (अमेज़ॅन एसएनएस)।

सेजमेकर पायथन एसडीके

तैनाती पूरी होने के बाद, यह वापस आ जाएगा AsyncPredictor वस्तु। एसिंक्रोनस अनुमान लगाने के लिए, आपको Amazon S3 पर डेटा अपलोड करना होगा और इसका उपयोग करना होगा predict_async() इनपुट के रूप में S3 URI के साथ विधि। यह एक लौटाएगा AsyncInferenceResponse ऑब्जेक्ट, और आप इसका उपयोग करके परिणाम की जांच कर सकते हैं get_response() विधि.

वैकल्पिक रूप से, यदि आप समय-समय पर किसी परिणाम की जांच करना चाहते हैं और इसे तैयार होने पर वापस करना चाहते हैं, तो इसका उपयोग करें predict() तरीका। हम इस दूसरी विधि का उपयोग निम्नलिखित कोड में करते हैं:

import time # Invoking the asynchronous endpoint with the SageMaker Python SDK
def query_endpoint(payload): """Query endpoint and print the response""" response = predictor.predict_async( data=payload, input_path="s3://{}/{}".format(bucket, prefix), ) while True: try: response = response.get_result() break except: print("Inference is not ready ...") time.sleep(5) print(f"33[1m Input:33[0m {payload['inputs']}") print(f"33[1m Output:33[0m {response[0]['generated_text']}") query_endpoint(payload)

बोटो3

आइए अब अन्वेषण करें invoke_endpoint_async Boto3 से विधि sagemaker-runtime ग्राहक। यह डेवलपर्स को एसिंक्रोनस रूप से सेजमेकर एंडपॉइंट को लागू करने में सक्षम बनाता है, जो प्रगति ट्रैकिंग और बाद में प्रतिक्रिया की पुनर्प्राप्ति के लिए एक टोकन प्रदान करता है। Boto3 SageMaker Python SDK की तरह एसिंक्रोनस अनुमान के पूरा होने तक प्रतीक्षा करने का कोई तरीका प्रदान नहीं करता है get_result() संचालन। इसलिए, हम इस तथ्य का लाभ उठाते हैं कि Boto3 अमेज़ॅन S3 में अनुमान आउटपुट को संग्रहीत करेगा response["OutputLocation"]. हम अमेज़ॅन S3 पर अनुमान फ़ाइल लिखे जाने की प्रतीक्षा करने के लिए निम्नलिखित फ़ंक्शन का उपयोग कर सकते हैं:

import json
import time
import boto3
from botocore.exceptions import ClientError s3_client = boto3.client("s3") # Wait until the prediction is generated
def wait_inference_file(bucket, prefix): while True: try: response = s3_client.get_object(Bucket=bucket, Key=prefix) break except ClientError as ex: if ex.response['Error']['Code'] == 'NoSuchKey': print("Waiting for file to be generated...") time.sleep(5) next else: raise except Exception as e: print(e.__dict__) raise return response

इस फ़ंक्शन के साथ, अब हम समापन बिंदु को क्वेरी कर सकते हैं:

# Invoking the asynchronous endpoint with the Boto3 SDK
import boto3 sagemaker_client = boto3.client("sagemaker-runtime") # Query the endpoint function
def query_endpoint_boto3(payload): """Query endpoint and print the response""" response = sagemaker_client.invoke_endpoint_async( EndpointName=my_model.endpoint_name, InputLocation="s3://{}/{}".format(bucket, prefix), ContentType="application/json", Accept="application/json" ) output_url = response["OutputLocation"] output_prefix = "/".join(output_url.split("/")[3:]) # Read the bytes of the file from S3 in output_url with Boto3 output = wait_inference_file(bucket, output_prefix) output = json.loads(output['Body'].read())[0]['generated_text'] # Emit output print(f"33[1m Input:33[0m {payload['inputs']}") print(f"33[1m Output:33[0m {output}") query_endpoint_boto3(payload)

लैंगचैन

लैंगचेन अक्टूबर 2022 में हैरिसन चेज़ द्वारा लॉन्च किया गया एक ओपन-सोर्स फ्रेमवर्क है। यह विभिन्न प्रणालियों और डेटा स्रोतों के साथ एकीकरण प्रदान करके बड़े भाषा मॉडल (एलएलएम) का उपयोग करके अनुप्रयोगों के विकास को सरल बनाता है। लैंगचेन दस्तावेज़ विश्लेषण, सारांशीकरण, चैटबॉट निर्माण, कोड विश्लेषण और बहुत कुछ करने की अनुमति देता है। सैकड़ों डेवलपर्स के योगदान और उद्यम फर्मों से महत्वपूर्ण फंडिंग के साथ, इसने लोकप्रियता हासिल की है। लैंगचेन बाहरी स्रोतों के साथ एलएलएम के कनेक्शन को सक्षम बनाता है, जिससे गतिशील, डेटा-उत्तरदायी एप्लिकेशन बनाना संभव हो जाता है। यह विकास प्रक्रिया को सुव्यवस्थित करने के लिए लाइब्रेरी, एपीआई और दस्तावेज़ीकरण प्रदान करता है।

लैंगचेन अपने ढांचे के साथ सेजमेकर एंडपॉइंट्स का उपयोग करने के लिए लाइब्रेरी और उदाहरण प्रदान करता है, जिससे सेजमेकर पर होस्ट किए गए एमएल मॉडल को श्रृंखला के "मस्तिष्क" के रूप में उपयोग करना आसान हो जाता है। लैंगचेन सेजमेकर के साथ कैसे एकीकृत होता है, इसके बारे में अधिक जानने के लिए, देखें सेजमेकर एंडपॉइंट लैंगचेन दस्तावेज़ में।

लैंगचेन के वर्तमान कार्यान्वयन की एक सीमा यह है कि यह मूल रूप से अतुल्यकालिक समापन बिंदुओं का समर्थन नहीं करता है। लैंगचेन के लिए एक अतुल्यकालिक समापन बिंदु का उपयोग करने के लिए, हमें एक नई कक्षा को परिभाषित करना होगा, SagemakerAsyncEndpoint, जो विस्तार करता है SagemakerEndpoint क्लास पहले से ही लैंगचेन में उपलब्ध है। इसके अतिरिक्त, हम निम्नलिखित जानकारी प्रदान करते हैं:

  • S3 बकेट और उपसर्ग जहां अतुल्यकालिक अनुमान इनपुट (और आउटपुट) को संग्रहीत करेगा
  • समय समाप्त होने से पहले प्रतीक्षा करने के लिए अधिकतम सेकंड
  • An updated _call() समापन बिंदु को क्वेरी करने के लिए फ़ंक्शन invoke_endpoint_async() के बजाय invoke_endpoint()
  • यदि एसिंक्रोनस एंडपॉइंट कोल्ड स्टार्ट में है तो उसे जगाने का एक तरीका (शून्य तक घटाया गया)

नव निर्मित की समीक्षा करना SagemakerAsyncEndpoint, तुम बाहर की जाँच कर सकते हैं sagemaker_async_endpoint.py पट्टिका गिटहब पर उपलब्ध.

from typing import Dict
from langchain import PromptTemplate
from langchain.llms.sagemaker_endpoint import LLMContentHandler
from langchain.chains import LLMChain
from sagemaker_async_endpoint import SagemakerAsyncEndpoint class ContentHandler(LLMContentHandler): content_type:str = "application/json" accepts:str = "application/json" len_prompt:int = 0 def transform_input(self, prompt: str, model_kwargs: Dict) -> bytes: self.len_prompt = len(prompt) input_str = json.dumps({"inputs": prompt, "parameters": {"max_new_tokens": 100, "do_sample": False, "repetition_penalty": 1.1}}) return input_str.encode('utf-8') def transform_output(self, output: bytes) -> str: response_json = output.read() res = json.loads(response_json) ans = res[0]['generated_text'] return ans chain = LLMChain( llm=SagemakerAsyncEndpoint( input_bucket=bucket, input_prefix=prefix, endpoint_name=my_model.endpoint_name, region_name=sagemaker.Session().boto_region_name, content_handler=ContentHandler(), ), prompt=PromptTemplate( input_variables=["query"], template="{query}", ),
) print(chain.run(payload['inputs']))

क्लीन अप

जब आप समापन बिंदु से अनुमानों की पीढ़ी का परीक्षण कर लें, तो अतिरिक्त शुल्क से बचने के लिए समापन बिंदु को हटाना याद रखें:

predictor.delete_endpoint()

निष्कर्ष

टीआईआई फाल्कन जैसे बड़े फाउंडेशन मॉडल को तैनात करते समय, लागत का अनुकूलन महत्वपूर्ण है। इन मॉडलों के लिए शक्तिशाली हार्डवेयर और पर्याप्त मेमोरी क्षमता की आवश्यकता होती है, जिससे बुनियादी ढांचे की लागत अधिक हो जाती है। सेजमेकर एसिंक्रोनस इंट्रेंस, एक परिनियोजन विकल्प जो एसिंक्रोनस रूप से अनुरोधों को संसाधित करता है, कोई लंबित अनुरोध न होने पर इंस्टेंस गिनती को शून्य पर स्केल करके खर्चों को कम करता है। इस पोस्ट में, हमने दिखाया कि बड़े सेजमेकर जम्पस्टार्ट फाउंडेशन मॉडल को सेजमेकर एसिंक्रोनस एंडपॉइंट्स पर कैसे तैनात किया जाए। हमने एसिंक्रोनस एंडपॉइंट्स को लागू करने और परिणाम प्राप्त करने के विभिन्न तरीकों को समझाने के लिए सेजमेकर पायथन एसडीके, बोटो3 और लैंगचेन का उपयोग करके कोड उदाहरण प्रदान किए हैं। ये तकनीकें डेवलपर्स और शोधकर्ताओं को उन्नत भाषा समझ प्रणालियों के लिए फाउंडेशन मॉडल की क्षमताओं का उपयोग करते हुए लागत को अनुकूलित करने में सक्षम बनाती हैं।

अतुल्यकालिक अनुमान और सेजमेकर जम्पस्टार्ट के बारे में अधिक जानने के लिए, निम्नलिखित पोस्ट देखें:


लेखक के बारे में

डेविड की तस्वीरडेविड गैलीटेली ईएमईए क्षेत्र में एआई/एमएल के लिए विशेषज्ञ समाधान आर्किटेक्ट हैं। वह ब्रुसेल्स में स्थित है और पूरे बेनेलक्स में ग्राहकों के साथ मिलकर काम करता है। वह बहुत छोटा था, जब से वह 7 साल की उम्र में कोड करना शुरू कर दिया था, तब से वह एक डेवलपर रहा है, उसने विश्वविद्यालय में एआई/एमएल सीखना शुरू कर दिया था, और तब से इसके साथ प्यार हो गया है।

समय टिकट:

से अधिक AWS मशीन लर्निंग