Amazon SageMaker JumpStart पर GPT और ब्लूम मॉडल के साथ टेक्स्ट जेनरेशन चलाएं

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

विशिष्ट एमएल कार्यों के लिए जम्पस्टार्ट का उपयोग करने पर यह पोस्ट श्रृंखला में चौथा है। में पहिला पद, हमने जम्पस्टार्ट पर छवि वर्गीकरण उपयोग मामलों को चलाने का तरीका दिखाया। में दूसरी पोस्ट, हमने प्रदर्शित किया कि टेक्स्ट वर्गीकरण उपयोग के मामलों को कैसे चलाया जाता है। में तीसरी पोस्ट, हमने छवि विभाजन उपयोग मामलों को चलाया।

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

यदि आप सीधे जम्पस्टार्ट एपीआई कोड में कूदना चाहते हैं जिसे हम इस पोस्ट में देखते हैं, तो आप निम्नलिखित नमूना जुपिटर नोटबुक का उल्लेख कर सकते हैं: जम्पस्टार्ट का परिचय - टेक्स्ट जनरेशन.

जम्पस्टार्ट सिंहावलोकन

जम्पस्टार्ट आपको कोड की एक भी पंक्ति लिखे बिना विभिन्न कार्यों के लिए एमएल मॉडल के साथ आरंभ करने में मदद करता है। वर्तमान में, जम्पस्टार्ट आपको निम्नलिखित कार्य करने में सक्षम बनाता है:

  • सामान्य एमएल कार्यों के लिए पूर्व-प्रशिक्षित मॉडल तैनात करें - जम्पस्टार्ट आपको बड़े, सार्वजनिक रूप से उपलब्ध डेटासेट पर पूर्व-प्रशिक्षित मॉडलों की आसान तैनाती प्रदान करके बिना किसी विकास प्रयास के सामान्य एमएल कार्यों को संबोधित करने में सक्षम बनाता है। एमएल अनुसंधान समुदाय ने हाल ही में विकसित किए गए अधिकांश मॉडलों को सार्वजनिक रूप से उपयोग के लिए उपलब्ध कराने में बड़ी मात्रा में प्रयास किया है। जम्पस्टार्ट 300 से अधिक मॉडलों का एक संग्रह होस्ट करता है, जिसमें ऑब्जेक्ट डिटेक्शन, टेक्स्ट वर्गीकरण और टेक्स्ट जनरेशन जैसे 15 सबसे लोकप्रिय एमएल कार्य शामिल हैं, जिससे शुरुआती लोगों के लिए उनका उपयोग करना आसान हो जाता है। ये मॉडल लोकप्रिय मॉडल हब जैसे कि TensorFlow, PyTorch, Hugging Face और MXNet से लिए गए हैं।
  • पूर्व-प्रशिक्षित मॉडल को फाइन-ट्यून करें - जम्पस्टार्ट आपको अपने स्वयं के प्रशिक्षण एल्गोरिथम लिखने की आवश्यकता के बिना पूर्व-प्रशिक्षित मॉडल को ठीक करने की अनुमति देता है। एमएल में, एक डोमेन में सीखे गए ज्ञान को दूसरे डोमेन में स्थानांतरित करने की क्षमता को कहा जाता है सीखने का स्थानांतरण. आप अपने छोटे डेटासेट पर सटीक मॉडल तैयार करने के लिए ट्रांसफर लर्निंग का उपयोग कर सकते हैं, जिसमें मूल मॉडल के प्रशिक्षण में शामिल लोगों की तुलना में बहुत कम प्रशिक्षण लागत होती है। जम्पस्टार्ट में लाइटजीबीएम, कैटबॉस्ट, एक्सजीबूस्ट और स्किकिट-लर्न पर आधारित लोकप्रिय प्रशिक्षण एल्गोरिदम भी शामिल हैं, जिन्हें आप सारणीबद्ध प्रतिगमन और वर्गीकरण के लिए खरोंच से प्रशिक्षित कर सकते हैं।
  • पूर्व-निर्मित समाधानों का उपयोग करें - जम्पस्टार्ट आम एमएल उपयोग के मामलों के लिए 17 समाधानों का एक सेट प्रदान करता है, जैसे मांग पूर्वानुमान और औद्योगिक और वित्तीय अनुप्रयोग, जिन्हें आप कुछ ही क्लिक के साथ तैनात कर सकते हैं। समाधान एंड-टू-एंड एमएल एप्लिकेशन हैं जो एक विशेष व्यावसायिक उपयोग के मामले को हल करने के लिए विभिन्न एडब्ल्यूएस सेवाओं को एक साथ जोड़ते हैं। वे उपयोग करते हैं एडब्ल्यूएस CloudFormation त्वरित परिनियोजन के लिए टेम्प्लेट और संदर्भ आर्किटेक्चर, जिसका अर्थ है कि वे पूरी तरह से अनुकूलन योग्य हैं।
  • सेजमेकर एल्गोरिदम के लिए नोटबुक उदाहरण देखें - सेजमेकर डेटा वैज्ञानिकों और एमएल प्रैक्टिशनरों को प्रशिक्षण और एमएल मॉडल को जल्दी से तैनात करने में मदद करने के लिए बिल्ट-इन एल्गोरिदम का एक सूट प्रदान करता है। जम्पस्टार्ट नमूना नोटबुक प्रदान करता है जिसका उपयोग आप इन एल्गोरिदम का शीघ्रता से उपयोग करने के लिए कर सकते हैं।
  • प्रशिक्षण वीडियो और ब्लॉग की समीक्षा करें - जम्पस्टार्ट कई ब्लॉग पोस्ट और वीडियो भी प्रदान करता है जो आपको सिखाते हैं कि सेजमेकर के भीतर विभिन्न कार्यात्मकताओं का उपयोग कैसे करें।

जम्पस्टार्ट कस्टम वीपीसी सेटिंग्स को स्वीकार करता है और AWS प्रमुख प्रबंधन सेवा (AWS KMS) एन्क्रिप्शन कुंजियाँ, ताकि आप अपने एंटरप्राइज़ परिवेश में उपलब्ध मॉडलों और समाधानों का सुरक्षित रूप से उपयोग कर सकें। आप अपनी सुरक्षा सेटिंग्स को स्टूडियो के भीतर या सेजमेकर पायथन एसडीके के माध्यम से जम्पस्टार्ट में पास कर सकते हैं।

टेक्स्ट जनरेशन, GPT-2 और ब्लूम

टेक्स्ट जनरेशन टेक्स्ट उत्पन्न करने का कार्य है जो धाराप्रवाह है और मानव-लिखित टेक्स्ट से अप्रभेद्य प्रतीत होता है। इसे के रूप में भी जाना जाता है प्राकृतिक भाषा पीढ़ी.

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

ब्लूम एक ट्रांसफॉर्मर-आधारित टेक्स्ट जनरेशन मॉडल भी है और GPT-2 के समान ही प्रशिक्षित है। हालाँकि, ब्लूम को 46 विभिन्न भाषाओं और 13 प्रोग्रामिंग भाषाओं में पूर्व-प्रशिक्षित किया गया है। निम्नलिखित ब्लूम मॉडल के साथ टेक्स्ट जनरेशन चलाने का एक उदाहरण है:

Input: "Some people like dogs, some people like cats"
Output: "Some people like dogs, some people like cats some people like birds, some people like fish,"

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

निम्नलिखित खंड स्टूडियो यूआई और जम्पस्टार्ट एपीआई के माध्यम से, अनुमान करने के लिए चरण-दर-चरण डेमो प्रदान करते हैं। हम निम्नलिखित चरणों से गुजरते हैं:

  1. पूर्व-प्रशिक्षित मॉडल पर अनुमान लगाने और चलाने के लिए स्टूडियो यूआई के माध्यम से जम्पस्टार्ट तक पहुंचें।
  2. पूर्व-प्रशिक्षित मॉडल को परिनियोजित करने और अनुमान चलाने के लिए सेजमेकर पायथन एसडीके के साथ प्रोग्रामेटिक रूप से जम्पस्टार्ट का उपयोग करें।

स्टूडियो यूआई के माध्यम से जम्पस्टार्ट तक पहुंचें और पूर्व-प्रशिक्षित मॉडल के साथ अनुमान चलाएं

इस खंड में, हम स्टूडियो यूआई के माध्यम से जम्पस्टार्ट मॉडल को प्रशिक्षित और तैनात करने का तरीका प्रदर्शित करते हैं।

निम्नलिखित वीडियो आपको दिखाता है कि जम्पस्टार्ट पर एक पूर्व-प्रशिक्षित टेक्स्ट जनरेशन मॉडल को कैसे खोजा जाए और उसे कैसे परिनियोजित किया जाए। मॉडल पृष्ठ में मॉडल और उसके उपयोग के तरीके के बारे में बहुमूल्य जानकारी होती है। आप जम्पस्टार्ट में उपलब्ध किसी भी पूर्व-प्रशिक्षित मॉडल को परिनियोजित कर सकते हैं। अनुमान के लिए, हम ml.p3.2xlarge उदाहरण प्रकार चुनते हैं, क्योंकि यह कम कीमत बिंदु पर कम अनुमान विलंबता के लिए आवश्यक GPU त्वरण प्रदान करता है। SageMaker होस्टिंग उदाहरण को कॉन्फ़िगर करने के बाद, चुनें तैनाती. आपका स्थायी समापन बिंदु उठने और चलने में 20-25 मिनट लग सकते हैं।

एक बार आपका समापन बिंदु चालू हो जाने के बाद, यह अनुमान अनुरोधों का जवाब देने के लिए तैयार है!

अनुमान के लिए अपने समय को तेज करने के लिए, जम्पस्टार्ट एक नमूना नोटबुक प्रदान करता है जो आपको दिखाता है कि आपके नए परिनियोजित समापन बिंदु पर अनुमान कैसे चलाया जाए। चुनना नोटबुक खोलें के अंतर्गत Studio से एंडपॉइंट का इस्तेमाल करें.

सेजमेकर एसडीके के साथ प्रोग्रामेटिक रूप से जम्पस्टार्ट का उपयोग करें

पिछले भाग में, हमने दिखाया था कि कैसे आप जम्पस्टार्ट यूआई का उपयोग करके कुछ ही क्लिक में एक पूर्व-प्रशिक्षित मॉडल को अंतःक्रियात्मक रूप से परिनियोजित कर सकते हैं। हालांकि, आप सेजमेकर एसडीके में एकीकृत एपीआई का उपयोग करके जम्पस्टार्ट के मॉडल को प्रोग्रामेटिक रूप से भी उपयोग कर सकते हैं।

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

पूर्व-प्रशिक्षित मॉडल को तैनात करें

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

model_id, model_version = "huggingface-textgeneration-bloom-560m", "*"

# Retrieve the inference docker container uri
deploy_image_uri = image_uris.retrieve(
    region=None,
    framework=None,  # automatically inferred from model_id
    image_scope="inference",
    model_id=model_id,
    model_version=model_version,
    instance_type=inference_instance_type,
)

# Retrieve the inference script uri
deploy_source_uri = script_uris.retrieve(model_id=model_id, model_version=model_version, script_scope="inference")

base_model_uri = model_uris.retrieve(model_id=model_id, model_version=model_version, model_scope="inference")

ब्लूम एक बहुत बड़ा मॉडल है और इसे तैनात करने में 20-25 मिनट तक का समय लग सकता है। आप GPT-2 जैसे छोटे मॉडल का भी उपयोग कर सकते हैं। आप पूर्व-प्रशिक्षित GPT-2 मॉडल को परिनियोजित करने के लिए सेट कर सकते हैं model_id = huggingface-textgeneration-gpt2. जम्पस्टार्ट में अन्य उपलब्ध मॉडलों की सूची के लिए, देखें जम्पस्टार्ट उपलब्ध मॉडल तालिका.

इसके बाद, हम संसाधनों को a . में फीड करते हैं सेजमेकर मॉडल उदाहरण और एक समापन बिंदु तैनात करें:

# Create the SageMaker model instance
model = Model(
    image_uri=deploy_image_uri,
    source_dir=deploy_source_uri,
    model_data=base_model_uri,
    entry_point="inference.py",  # entry point file in source_dir and present in deploy_source_uri
    role=aws_role,
    predictor_cls=Predictor,
    name=endpoint_name,
)

# deploy the Model. Note that we need to pass Predictor class when we deploy model through Model class,
# for being able to run inference through the sagemaker API.
base_model_predictor = model.deploy(
    initial_instance_count=1,
    instance_type=inference_instance_type,
    predictor_cls=Predictor,
    endpoint_name=endpoint_name,
)

हमारे मॉडल को तैनात करने के बाद, हम वास्तविक समय में इससे पूर्वानुमान प्राप्त कर सकते हैं!

अनुमान चलाएँ

निम्नलिखित कोड स्निपेट आपको आउटपुट की तरह दिखने की एक झलक देता है। एक परिनियोजित मॉडल को अनुरोध भेजने के लिए, इनपुट टेक्स्ट की आपूर्ति करने की आवश्यकता है a utf-8 एन्कोडेड प्रारूप।

def query(model_predictor, text):
    """Query the model predictor."""

    encoded_text = json.dumps(text).encode("utf-8")

    query_response = model_predictor.predict(
        encoded_text,
        {
            "ContentType": "application/x-text",
            "Accept": "application/json",
        },
    )
    return query_response

समापन बिंदु प्रतिक्रिया एक JSON ऑब्जेक्ट है जिसमें इनपुट पाठ होता है जिसके बाद उत्पन्न पाठ होता है:

def parse_response(query_response):
    """Parse response and return the generated text."""

    model_predictions = json.loads(query_response)
    generated_text = model_predictions["generated_text"]
    return generated_text
    
text = "Some people like dogs, some people like cats"
query_response = query(model_predictor, text)
parse_response(query_response)

हमारा आउटपुट इस प्रकार है:

"Some people like dogs, some people like cats some people like birds, some people like fish,"

निष्कर्ष

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


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

Run text generation with GPT and Bloom models on Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertical Search. Ai.डॉ विवेक मदनी अमेज़ॅन सेजमेकर जम्पस्टार्ट टीम के साथ एक अनुप्रयुक्त वैज्ञानिक है। उन्होंने अर्बाना-शैंपेन में इलिनोइस विश्वविद्यालय से पीएचडी प्राप्त की और जॉर्जिया टेक में पोस्ट डॉक्टरेट शोधकर्ता थे। वह मशीन लर्निंग और एल्गोरिथम डिज़ाइन में एक सक्रिय शोधकर्ता हैं और उन्होंने EMNLP, ICLR, COLT, FOCS और SODA सम्मेलनों में पेपर प्रकाशित किए हैं।

Run text generation with GPT and Bloom models on Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertical Search. Ai.संतोष कुलकर्णी Amazon वेब सर्विसेज में एंटरप्राइज सॉल्यूशंस आर्किटेक्ट हैं जो ऑस्ट्रेलिया में खेल ग्राहकों के साथ काम करते हैं। उन्हें एआई/एमएल, बिग डेटा और सॉफ्टवेयर विकास में अपने ज्ञान का उपयोग करके व्यावसायिक समस्याओं को हल करने के लिए बड़े पैमाने पर वितरित एप्लिकेशन बनाने का शौक है।

Run text generation with GPT and Bloom models on Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Vertical Search. Ai.डॉ आशीष खेतानी Amazon SageMaker बिल्ट-इन एल्गोरिदम के साथ एक वरिष्ठ एप्लाइड साइंटिस्ट हैं और मशीन लर्निंग एल्गोरिदम विकसित करने में मदद करते हैं। उन्होंने यूनिवर्सिटी ऑफ इलिनॉयस अर्बाना चैंपियन से पीएचडी की उपाधि प्राप्त की। वह मशीन लर्निंग और सांख्यिकीय अनुमान में एक सक्रिय शोधकर्ता हैं और उन्होंने NeurIPS, ICML, ICLR, JMLR, ACL और EMNLP सम्मेलनों में कई पत्र प्रकाशित किए हैं।

समय टिकट:

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