जेनेरिक एआई अनुप्रयोगों को तेजी से अपनाने के साथ, उच्च थ्रूपुट के साथ कथित विलंबता को कम करने के लिए इन अनुप्रयोगों को समय पर प्रतिक्रिया देने की आवश्यकता है। फाउंडेशन मॉडल (एफएम) को अक्सर लाखों से लेकर अरबों और उससे अधिक के पैमाने के मापदंडों वाले डेटा के विशाल संग्रह पर पूर्व-प्रशिक्षित किया जाता है। बड़े भाषा मॉडल (एलएलएम) एक प्रकार के एफएम हैं जो उपयोगकर्ता के अनुमान की प्रतिक्रिया के रूप में पाठ उत्पन्न करते हैं। अनुमान मापदंडों के अलग-अलग विन्यास के साथ इन मॉडलों का अनुमान लगाने से असंगत विलंबता हो सकती है। असंगतता उस मॉडल से अपेक्षित प्रतिक्रिया टोकन की अलग-अलग संख्या या मॉडल को तैनात किए गए त्वरक के प्रकार के कारण हो सकती है।
किसी भी मामले में, पूर्ण प्रतिक्रिया की प्रतीक्षा करने के बजाय, आप अपने अनुमानों के लिए प्रतिक्रिया स्ट्रीमिंग का दृष्टिकोण अपना सकते हैं, जो उत्पन्न होते ही जानकारी का बड़ा हिस्सा वापस भेज देता है। यह आपको विलंबित पूर्ण प्रतिक्रिया के बजाय वास्तविक समय में स्ट्रीम की गई आंशिक प्रतिक्रियाओं को देखने की अनुमति देकर एक इंटरैक्टिव अनुभव बनाता है।
इसकी आधिकारिक घोषणा के साथ अमेज़ॅन सेजमेकर रीयल-टाइम अनुमान अब प्रतिक्रिया स्ट्रीमिंग का समर्थन करता है, अब आप उपयोग करते समय लगातार अनुमान प्रतिक्रियाओं को क्लाइंट पर स्ट्रीम कर सकते हैं अमेज़न SageMaker प्रतिक्रिया स्ट्रीमिंग के साथ वास्तविक समय का अनुमान। यह समाधान आपको चैटबॉट्स, वर्चुअल असिस्टेंट और म्यूजिक जेनरेटर जैसे विभिन्न जेनरेटिव एआई अनुप्रयोगों के लिए इंटरैक्टिव अनुभव बनाने में मदद करेगा। यह पोस्ट आपको दिखाती है कि टाइम टू फर्स्ट बाइट (टीटीएफबी) के रूप में तेजी से प्रतिक्रिया समय कैसे प्राप्त करें और लामा 2 मॉडल का अनुमान लगाते समय समग्र विलंबता को कैसे कम करें।
समाधान को लागू करने के लिए, हम सेजमेकर का उपयोग करते हैं, जो पूरी तरह से प्रबंधित बुनियादी ढांचे, टूल और वर्कफ़्लो के साथ किसी भी उपयोग के मामले के लिए डेटा तैयार करने और मशीन लर्निंग (एमएल) मॉडल बनाने, प्रशिक्षित करने और तैनात करने के लिए एक पूरी तरह से प्रबंधित सेवा है। सेजमेकर द्वारा प्रदान किए जाने वाले विभिन्न परिनियोजन विकल्पों के बारे में अधिक जानकारी के लिए, देखें अमेज़ॅन सेजमेकर मॉडल होस्टिंग अक्सर पूछे जाने वाले प्रश्न. आइए समझें कि हम प्रतिक्रिया स्ट्रीमिंग के साथ वास्तविक समय अनुमान का उपयोग करके विलंबता के मुद्दों को कैसे संबोधित कर सकते हैं।
समाधान अवलोकन
क्योंकि हम एलएलएम के साथ वास्तविक समय अनुमान से जुड़ी उपर्युक्त विलंबता को संबोधित करना चाहते हैं, आइए पहले समझें कि हम लामा 2 के लिए वास्तविक समय अनुमान के लिए प्रतिक्रिया स्ट्रीमिंग समर्थन का उपयोग कैसे कर सकते हैं। हालांकि, कोई भी एलएलएम वास्तविक के साथ प्रतिक्रिया स्ट्रीमिंग समर्थन का लाभ उठा सकता है -समय अनुमान.
लामा 2 7 अरब से लेकर 70 अरब मापदंडों के पैमाने पर पूर्व-प्रशिक्षित और ठीक-ठीक जेनरेटिव टेक्स्ट मॉडल का एक संग्रह है। लामा 2 मॉडल केवल डिकोडर आर्किटेक्चर वाले ऑटोरेग्रेसिव मॉडल हैं। जब संकेत और अनुमान पैरामीटर प्रदान किए जाते हैं, तो लामा 2 मॉडल पाठ प्रतिक्रियाएं उत्पन्न करने में सक्षम होते हैं। इन मॉडलों का उपयोग अनुवाद, सारांशीकरण, प्रश्न उत्तर और चैट के लिए किया जा सकता है।
इस पोस्ट के लिए, हम लामा 2 चैट मॉडल को तैनात करते हैं meta-llama/Llama-2-13b-chat-hf
प्रतिक्रिया स्ट्रीमिंग के साथ वास्तविक समय अनुमान लगाने के लिए सेजमेकर पर।
जब सेजमेकर एंडपॉइंट पर मॉडल तैनात करने की बात आती है, तो आप विशेष का उपयोग करके मॉडल को कंटेनरीकृत कर सकते हैं एडब्ल्यूएस डीप लर्निंग कंटेनर (डीएलसी) छवियाँ लोकप्रिय ओपन सोर्स लाइब्रेरीज़ के लिए उपलब्ध हैं। लामा 2 मॉडल टेक्स्ट जनरेशन मॉडल हैं; आप इनमें से किसी एक का उपयोग कर सकते हैं सेजमेकर पर हगिंग फेस एलएलएम अनुमान कंटेनर हगिंग फेस द्वारा संचालित पाठ निर्माण अनुमान (टीजीआई) या एडब्ल्यूएस डीएलसी के लिए बड़े मॉडल का अनुमान (एलएमआई)।
इस पोस्ट में, हम G2 इंस्टेंसेस द्वारा संचालित वास्तविक समय अनुमान के लिए सेजमेकर होस्टिंग पर डीएलसी का उपयोग करके लामा 13 5बी चैट मॉडल को तैनात करते हैं। G5 इंस्टेंसेस ग्राफ़िक्स-सघन अनुप्रयोगों और एमएल अनुमान के लिए उच्च-प्रदर्शन वाले GPU-आधारित इंस्टेंस हैं। आप इंस्टेंस कॉन्फ़िगरेशन के अनुसार उचित परिवर्तनों के साथ समर्थित इंस्टेंस प्रकार p4d, p3, g5 और g4dn का भी उपयोग कर सकते हैं।
.. पूर्वापेक्षाएँ
इस समाधान को लागू करने के लिए, आपके पास निम्नलिखित होना चाहिए:
- एक एडब्ल्यूएस खाते के साथ AWS पहचान और अभिगम प्रबंधन समाधान के हिस्से के रूप में बनाए गए संसाधनों को प्रबंधित करने की अनुमति के साथ (IAM) भूमिका।
- यदि आप पहली बार इसके साथ काम कर रहे हैं अमेज़ॅन सैजमेकर स्टूडियो, आपको सबसे पहले एक बनाना होगा सेजमेकर डोमेन.
- एक हगिंग फेस अकाउंट. साइन अप करें यदि आपके पास पहले से खाता नहीं है तो अपने ईमेल से।
- हगिंग फेस पर उपलब्ध मॉडलों की निर्बाध पहुंच के लिए, विशेष रूप से लामा जैसे गेटेड मॉडल, फाइन-ट्यूनिंग और अनुमान उद्देश्यों के लिए, आपके पास रीड एक्सेस टोकन प्राप्त करने के लिए एक हगिंग फेस खाता होना चाहिए। अपने हगिंग फेस खाते के लिए साइन अप करने के बाद, लॉगिन मुआयना करने के लिए https://huggingface.co/settings/tokens रीड एक्सेस टोकन बनाने के लिए।
- लामा 2 तक पहुंच, उसी ईमेल आईडी का उपयोग करके जिसका उपयोग आपने हगिंग फेस के लिए साइन अप करने के लिए किया था।
- हगिंग फेस के माध्यम से उपलब्ध लामा 2 मॉडल गेटेड मॉडल हैं। लामा मॉडल का उपयोग मेटा लाइसेंस द्वारा नियंत्रित होता है। मॉडल वज़न और टोकनाइज़र डाउनलोड करने के लिए, लामा तक पहुंच का अनुरोध करें और उनका लाइसेंस स्वीकार करें.
- आपको पहुंच प्रदान किए जाने के बाद (आमतौर पर कुछ दिनों में), आपको एक ईमेल पुष्टिकरण प्राप्त होगा। इस उदाहरण के लिए, हम मॉडल का उपयोग करते हैं
Llama-2-13b-chat-hf
, लेकिन आपको अन्य वेरिएंट तक भी पहुंचने में सक्षम होना चाहिए।
दृष्टिकोण 1: चेहरे को गले लगाना टीजीआई
इस अनुभाग में, हम आपको दिखाते हैं कि इसे कैसे तैनात किया जाए meta-llama/Llama-2-13b-chat-hf
हगिंग फेस टीजीआई का उपयोग करके प्रतिक्रिया स्ट्रीमिंग के साथ सेजमेकर रीयल-टाइम एंडपॉइंट पर मॉडल। निम्न तालिका इस परिनियोजन के लिए विशिष्टताओं को रेखांकित करती है।
विशिष्टता | वैल्यू |
कंटेनर | आलिंगन चेहरा टीजीआई |
मॉडल का नाम | मेटा-लामा/लामा-2-13बी-चैट-एचएफ |
एमएल उदाहरण | एमएल.g5.12xबड़ा |
अनुमान | प्रतिक्रिया स्ट्रीमिंग के साथ वास्तविक समय |
मॉडल तैनात करें
सबसे पहले, आप तैनात किए जाने वाले एलएलएम के लिए आधार छवि पुनः प्राप्त करें। फिर आप आधार छवि पर मॉडल बनाते हैं। अंत में, आप वास्तविक समय अनुमान के लिए सेजमेकर होस्टिंग के लिए मॉडल को एमएल इंस्टेंस पर तैनात करते हैं।
आइए देखें कि प्रोग्रामेटिक रूप से परिनियोजन कैसे प्राप्त किया जाए। संक्षिप्तता के लिए, इस अनुभाग में केवल उस कोड पर चर्चा की गई है जो परिनियोजन चरणों में मदद करता है। परिनियोजन के लिए पूर्ण स्रोत कोड नोटबुक में उपलब्ध है llama-2-hf-tgi/llama-2-13b-chat-hf/1-deploy-llama-2-13b-chat-hf-tgi-sagemaker.ipynb.
पूर्व-निर्मित के माध्यम से टीजीआई द्वारा संचालित नवीनतम हगिंग फेस एलएलएम डीएलसी प्राप्त करें सेजमेकर डीएलसी. आप इस छवि का उपयोग तैनात करने के लिए करते हैं meta-llama/Llama-2-13b-chat-hf
सेजमेकर पर मॉडल। निम्नलिखित कोड देखें:
निम्नानुसार परिभाषित कॉन्फ़िगरेशन मापदंडों के साथ मॉडल के लिए पर्यावरण को परिभाषित करें:
बदलें <YOUR_HUGGING_FACE_READ_ACCESS_TOKEN>
कॉन्फ़िगरेशन पैरामीटर के लिए HUGGING_FACE_HUB_TOKEN
आपके हगिंग फेस प्रोफ़ाइल से प्राप्त टोकन के मूल्य के साथ, जैसा कि इस पोस्ट के पूर्वावश्यकता अनुभाग में बताया गया है। कॉन्फ़िगरेशन में, आप किसी मॉडल की प्रति प्रतिकृति में उपयोग किए जाने वाले GPU की संख्या को 4 के रूप में परिभाषित करते हैं SM_NUM_GPUS
. फिर आप तैनात कर सकते हैं meta-llama/Llama-2-13b-chat-hf
ml.g5.12xlarge इंस्टेंस पर मॉडल जो 4 GPU के साथ आता है।
अब आप इसका उदाहरण बना सकते हैं HuggingFaceModel
उपर्युक्त पर्यावरण विन्यास के साथ:
अंत में, विभिन्न पैरामीटर मानों के साथ मॉडल पर उपलब्ध तैनाती विधि के लिए तर्क प्रदान करके मॉडल को तैनात करें endpoint_name
, initial_instance_count
, तथा instance_type
:
अनुमान लगाना
हगिंग फेस टीजीआई डीएलसी मॉडल में किसी भी अनुकूलन या कोड परिवर्तन के बिना प्रतिक्रियाओं को स्ट्रीम करने की क्षमता के साथ आता है। आप उपयोग कर सकते हैं invoke_endpoint_with_response_stream यदि आप Boto3 या का उपयोग कर रहे हैं InvokeEndpointWithResponseStream सेजमेकर पायथन एसडीके के साथ प्रोग्रामिंग करते समय।
RSI InvokeEndpointWithResponseStream
सेजमेकर का एपीआई डेवलपर्स को सेजमेकर मॉडल से प्रतिक्रियाओं को वापस स्ट्रीम करने की अनुमति देता है, जो कथित विलंबता को कम करके ग्राहकों की संतुष्टि में सुधार करने में मदद कर सकता है। यह जेनरेटिव एआई मॉडल के साथ निर्मित अनुप्रयोगों के लिए विशेष रूप से महत्वपूर्ण है, जहां संपूर्ण प्रतिक्रिया की प्रतीक्षा करने की तुलना में तत्काल प्रसंस्करण अधिक महत्वपूर्ण है।
इस उदाहरण के लिए, हम मॉडल का अनुमान लगाने के लिए Boto3 का उपयोग करते हैं और SageMaker API का उपयोग करते हैं invoke_endpoint_with_response_stream
के रूप में इस प्रकार है:
तर्क CustomAttributes
मान पर सेट है accept_eula=false
. RSI accept_eula
पैरामीटर को सेट करना होगा true
लामा 2 मॉडल से सफलतापूर्वक प्रतिक्रिया प्राप्त करने के लिए। प्रयोग के सफल मंगलाचरण के बाद invoke_endpoint_with_response_stream
, विधि बाइट्स की एक प्रतिक्रिया स्ट्रीम लौटा देगी।
निम्न आरेख इस वर्कफ़्लो को दिखाता है।
आपको एक पुनरावर्तक की आवश्यकता है जो बाइट्स की धारा पर लूप करता है और उन्हें पढ़ने योग्य पाठ में पार्स करता है। LineIterator
कार्यान्वयन यहां पाया जा सकता है llama-2-hf-tgi/llama-2-13b-chat-hf/utils/LineIterator.py. अब आप मॉडल का अनुमान लगाते समय उन्हें पेलोड के रूप में उपयोग करने के लिए प्रॉम्प्ट और निर्देश तैयार करने के लिए तैयार हैं।
एक संकेत और निर्देश तैयार करें
इस चरण में, आप अपने एलएलएम के लिए संकेत और निर्देश तैयार करते हैं। लामा 2 को संकेत देने के लिए, आपके पास निम्नलिखित संकेत टेम्पलेट होना चाहिए:
आप विधि में प्रोग्रामेटिक रूप से परिभाषित प्रॉम्प्ट टेम्पलेट बनाते हैं build_llama2_prompt
, जो उपरोक्त प्रॉम्प्ट टेम्पलेट के साथ संरेखित होता है। फिर आप उपयोग के मामले के अनुसार निर्देशों को परिभाषित करें। इस मामले में, हम मॉडल को मार्केटिंग अभियान के लिए एक ईमेल जेनरेट करने का निर्देश दे रहे हैं जैसा कि इसमें बताया गया है get_instructions
तरीका। इन विधियों के लिए कोड में है llama-2-hf-tgi/llama-2-13b-chat-hf/2-sagemaker-realtime-inference-llama-2-13b-chat-hf-tgi-streaming-response.ipynb स्मरण पुस्तक। निष्पादित किए जाने वाले कार्य के साथ संयुक्त अनुदेश तैयार करें जैसा कि इसमें बताया गया है user_ask_1
के रूप में इस प्रकार है:
हम build_llama2_prompt द्वारा उत्पन्न प्रॉम्प्ट टेम्पलेट के अनुसार प्रॉम्प्ट बनाने के निर्देश पास करते हैं।
हम कुंजी के साथ संकेत के साथ-साथ अनुमान पैरामीटर भी जोड़ते हैं stream
मान के साथ True
अंतिम पेलोड बनाने के लिए। पेलोड को भेजें get_realtime_response_stream
, जिसका उपयोग प्रतिक्रिया स्ट्रीमिंग के साथ एक समापन बिंदु को लागू करने के लिए किया जाएगा:
एलएलएम से उत्पन्न पाठ को आउटपुट पर स्ट्रीम किया जाएगा जैसा कि निम्नलिखित एनीमेशन में दिखाया गया है।
दृष्टिकोण 2: डीजेएल सर्विंग के साथ एलएमआई
इस अनुभाग में, हम प्रदर्शित करते हैं कि इसे कैसे तैनात किया जाए meta-llama/Llama-2-13b-chat-hf
डीजेएल सर्विंग के साथ एलएमआई का उपयोग करके प्रतिक्रिया स्ट्रीमिंग के साथ सेजमेकर रीयल-टाइम एंडपॉइंट पर मॉडल। निम्न तालिका इस परिनियोजन के लिए विशिष्टताओं को रेखांकित करती है।
विशिष्टता | वैल्यू |
कंटेनर | डीजेएल सर्विंग के साथ एलएमआई कंटेनर छवि |
मॉडल का नाम | मेटा-लामा/लामा-2-13बी-चैट-एचएफ |
एमएल उदाहरण | एमएल.g5.12xबड़ा |
अनुमान | प्रतिक्रिया स्ट्रीमिंग के साथ वास्तविक समय |
आप सबसे पहले मॉडल डाउनलोड करें और उसे स्टोर करें अमेज़न सरल भंडारण सेवा (अमेज़ॅन एस3)। फिर आप मॉडल के S3 उपसर्ग को दर्शाते हुए S3 URI निर्दिष्ट करते हैं serving.properties
फ़ाइल। इसके बाद, आप तैनात किए जाने वाले एलएलएम के लिए आधार छवि पुनः प्राप्त करते हैं। फिर आप आधार छवि पर मॉडल बनाते हैं। अंत में, आप वास्तविक समय अनुमान के लिए सेजमेकर होस्टिंग के लिए मॉडल को एमएल इंस्टेंस पर तैनात करते हैं।
आइए देखें कि उपरोक्त परिनियोजन चरणों को प्रोग्रामेटिक रूप से कैसे प्राप्त किया जाए। संक्षिप्तता के लिए, केवल वह कोड जो परिनियोजन चरणों में सहायता करता है, इस अनुभाग में विस्तृत है। इस परिनियोजन के लिए पूर्ण स्रोत कोड नोटबुक में उपलब्ध है llama-2-lmi/llama-2-13b-chat/1-deploy-llama-2-13b-chat-lmi-response-streaming.ipynb.
हगिंग फेस से मॉडल स्नैपशॉट डाउनलोड करें और अमेज़ॅन S3 पर मॉडल कलाकृतियाँ अपलोड करें
उपरोक्त शर्तों के साथ, सेजमेकर नोटबुक इंस्टेंस पर मॉडल डाउनलोड करें और फिर इसे आगे की तैनाती के लिए S3 बकेट पर अपलोड करें:
ध्यान दें कि भले ही आप वैध एक्सेस टोकन प्रदान नहीं करते हैं, मॉडल डाउनलोड हो जाएगा। लेकिन जब आप ऐसा कोई मॉडल तैनात करते हैं, तो मॉडल प्रस्तुत करना सफल नहीं होगा। इसलिए, इसे बदलने की अनुशंसा की जाती है <YOUR_HUGGING_FACE_READ_ACCESS_TOKEN>
तर्क के लिए token
आपके हगिंग फेस प्रोफ़ाइल से प्राप्त टोकन के मूल्य के साथ जैसा कि पूर्वापेक्षाओं में बताया गया है। इस पोस्ट के लिए, हम लामा 2 के लिए आधिकारिक मॉडल का नाम निर्दिष्ट करते हैं जैसा कि मूल्य के साथ हगिंग फेस पर पहचाना गया है meta-llama/Llama-2-13b-chat-hf
. असम्पीडित मॉडल को डाउनलोड किया जाएगा local_model_path
उपर्युक्त कोड चलाने के परिणामस्वरूप।
फ़ाइलें Amazon S3 पर अपलोड करें और URI प्राप्त करें, जिसका बाद में उपयोग किया जाएगा serving.properties
.
आप इसकी पैकेजिंग करेंगे meta-llama/Llama-2-13b-chat-hf
निर्दिष्ट कॉन्फ़िगरेशन का उपयोग करके डीजेएल सर्विंग के साथ एलएमआई कंटेनर छवि पर मॉडल serving.properties
. फिर आप सेजमेकर एमएल इंस्टेंस ml.g5.12xlarge पर कंटेनर छवि पर पैक किए गए मॉडल कलाकृतियों के साथ मॉडल को तैनात करते हैं। फिर आप रीयल-टाइम अनुमान के लिए सेजमेकर होस्टिंग के लिए इस एमएल इंस्टेंस का उपयोग करते हैं।
डीजेएल सर्विंग के लिए मॉडल कलाकृतियाँ तैयार करें
बनाकर अपना मॉडल आर्टिफैक्ट तैयार करें serving.properties
विन्यास फाइल:
हम इस कॉन्फ़िगरेशन फ़ाइल में निम्नलिखित सेटिंग्स का उपयोग करते हैं:
- इंजन - यह डीजेएल के उपयोग के लिए रनटाइम इंजन को निर्दिष्ट करता है। संभावित मूल्यों में शामिल हैं
Python
,DeepSpeed
,FasterTransformer
, तथाMPI
. इस मामले में, हम इसे सेट करते हैंMPI
. मॉडल समानांतरीकरण और अनुमान (एमपीआई) सभी उपलब्ध जीपीयू में मॉडल को विभाजित करने की सुविधा प्रदान करता है और इसलिए अनुमान को तेज करता है। - option.entryPoint - यह विकल्प निर्दिष्ट करता है कि आप डीजेएल सर्विंग द्वारा प्रस्तावित किस हैंडलर का उपयोग करना चाहेंगे। संभावित मान हैं
djl_python.huggingface
,djl_python.deepspeed
, तथाdjl_python.stable-diffusion
। हम प्रयोग करते हैंdjl_python.huggingface
चेहरे को गले लगाने में तेजी लाने के लिए. - विकल्प.टेन्सर_समानांतर_डिग्री - यह विकल्प मॉडल पर निष्पादित टेंसर समानांतर विभाजनों की संख्या निर्दिष्ट करता है। आप उन GPU उपकरणों की संख्या निर्धारित कर सकते हैं जिन पर एक्सेलेरेट को मॉडल को विभाजित करने की आवश्यकता है। यह पैरामीटर प्रति मॉडल श्रमिकों की संख्या को भी नियंत्रित करता है जो डीजेएल सेवा चलने पर शुरू किए जाएंगे। उदाहरण के लिए, यदि हमारे पास 4 जीपीयू मशीन है और हम चार विभाजन बना रहे हैं, तो अनुरोधों को पूरा करने के लिए हमारे पास प्रति मॉडल एक कर्मचारी होगा।
- option.low_cpu_mem_usage - यह मॉडल लोड करते समय सीपीयू मेमोरी उपयोग को कम करता है। हमारा सुझाव है कि आप इसे इस पर सेट करें
TRUE
. - विकल्प.रोलिंग_बैच - यह समर्थित रणनीतियों में से एक का उपयोग करके पुनरावृत्ति-स्तरीय बैचिंग को सक्षम बनाता है। मूल्यों में शामिल हैं
auto
,scheduler
, तथाlmi-dist
। हम प्रयोग करते हैंlmi-dist
लामा 2 के लिए निरंतर बैचिंग चालू करने के लिए। - option.max_rolling_batch_size - यह निरंतर बैच में समवर्ती अनुरोधों की संख्या को सीमित करता है। मान डिफ़ॉल्ट रूप से 32 है.
- option.model_id - आपको प्रतिस्थापित करना चाहिए
{{model_id}}
के अंदर होस्ट किए गए पूर्व-प्रशिक्षित मॉडल की मॉडल आईडी के साथ हगिंग फेस पर मॉडल भंडार या मॉडल कलाकृतियों के लिए S3 पथ।
अधिक कॉन्फ़िगरेशन विकल्प यहां पाए जा सकते हैं कॉन्फ़िगरेशन और सेटिंग्स.
क्योंकि डीजेएल सर्विंग को उम्मीद है कि मॉडल कलाकृतियों को .tar फ़ाइल में पैक और स्वरूपित किया जाएगा, .tar फ़ाइल को Amazon S3 पर संपीड़ित और अपलोड करने के लिए निम्नलिखित कोड स्निपेट चलाएँ:
डीजेएल सर्विंग के साथ नवीनतम एलएमआई कंटेनर छवि पुनर्प्राप्त करें
इसके बाद, आप मॉडल को तैनात करने के लिए एलएमआई के लिए सेजमेकर के पास उपलब्ध डीएलसी का उपयोग करते हैं। के लिए सेजमेकर छवि यूआरआई पुनः प्राप्त करें djl-deepspeed
कंटेनर प्रोग्रामेटिक रूप से निम्नलिखित कोड का उपयोग कर रहा है:
आप इसे तैनात करने के लिए उपरोक्त छवि का उपयोग कर सकते हैं meta-llama/Llama-2-13b-chat-hf
सेजमेकर पर मॉडल। अब आप मॉडल बनाने के लिए आगे बढ़ सकते हैं।
मॉडल बनाएं
आप वह मॉडल बना सकते हैं जिसका कंटेनर का उपयोग करके बनाया गया है inference_image_uri
और S3 URI पर स्थित मॉडल सर्विंग कोड द्वारा दर्शाया गया है s3_code_artifact:
अब आप एंडपॉइंट कॉन्फ़िगरेशन के लिए सभी विवरणों के साथ मॉडल कॉन्फ़िगरेशन बना सकते हैं।
मॉडल कॉन्फ़िगरेशन बनाएं
पहचाने गए मॉडल के लिए मॉडल कॉन्फ़िगरेशन बनाने के लिए निम्नलिखित कोड का उपयोग करें model_name
:
मॉडल कॉन्फ़िगरेशन को इसके लिए परिभाषित किया गया है ProductionVariants
प्राचल InstanceType
एमएल उदाहरण के लिए ml.g5.12xlarge. आप भी प्रदान करें ModelName
उसी नाम का उपयोग करें जिसका उपयोग आपने पिछले चरण में मॉडल बनाने के लिए किया था, जिससे मॉडल और एंडपॉइंट कॉन्फ़िगरेशन के बीच संबंध स्थापित हो सके।
अब जब आपने मॉडल और मॉडल कॉन्फ़िगरेशन को परिभाषित कर लिया है, तो आप सेजमेकर एंडपॉइंट बना सकते हैं।
सेजमेकर एंडपॉइंट बनाएं
निम्नलिखित कोड स्निपेट का उपयोग करके मॉडल को तैनात करने के लिए समापन बिंदु बनाएं:
आप निम्नलिखित कोड स्निपेट का उपयोग करके परिनियोजन की प्रगति देख सकते हैं:
परिनियोजन सफल होने के बाद, समापन बिंदु स्थिति होगी InService
. अब जब समापन बिंदु तैयार है, तो आइए प्रतिक्रिया स्ट्रीमिंग के साथ अनुमान लगाएं।
प्रतिक्रिया स्ट्रीमिंग के साथ वास्तविक समय का अनुमान
जैसा कि हमने हगिंग फेस टीजीआई के लिए पिछले दृष्टिकोण में बताया था, आप उसी विधि का उपयोग कर सकते हैं get_realtime_response_stream
सेजमेकर एंडपॉइंट से प्रतिक्रिया स्ट्रीमिंग शुरू करने के लिए। एलएमआई दृष्टिकोण का उपयोग करके अनुमान लगाने के लिए कोड है llama-2-lmi/llama-2-13b-chat/2-inference-llama-2-13b-chat-lmi-response-streaming.ipynb स्मरण पुस्तक। LineIterator
कार्यान्वयन स्थित है llama-2-lmi/utils/LineIterator.py। ध्यान दें कि LineIterator
एलएमआई कंटेनर पर तैनात लामा 2 चैट मॉडल के लिए अलग है LineIterator
हगिंग फेस टीजीआई अनुभाग में संदर्भित। LineIterator
एलएमआई कंटेनर के साथ अनुमानित लामा 2 चैट मॉडल से बाइट स्ट्रीम पर लूप djl-deepspeed
संस्करण 0.25.0. निम्नलिखित सहायक फ़ंक्शन के माध्यम से किए गए अनुमान अनुरोध से प्राप्त प्रतिक्रिया स्ट्रीम को पार्स करेगा invoke_endpoint_with_response_stream
एपीआई:
पूर्ववर्ती विधि द्वारा पढ़े गए डेटा की धारा को प्रिंट करती है LineIterator
मानव-पठनीय प्रारूप में।
आइए जानें कि मॉडल का अनुमान लगाते समय उन्हें पेलोड के रूप में उपयोग करने के लिए प्रॉम्प्ट और निर्देश कैसे तैयार करें।
क्योंकि आप हगिंग फेस टीजीआई और एलएमआई दोनों में एक ही मॉडल का अनुमान लगा रहे हैं, संकेत और निर्देश तैयार करने की प्रक्रिया समान है। इसलिए, आप तरीकों का उपयोग कर सकते हैं get_instructions
और build_llama2_prompt
अनुमान लगाने के लिए.
RSI get_instructions
विधि निर्देश लौटाती है। निष्पादित किए जाने वाले कार्य के साथ संयुक्त निर्देश बनाएं जैसा कि इसमें बताया गया है user_ask_2
के रूप में इस प्रकार है:
प्रॉम्प्ट टेम्पलेट के अनुसार प्रॉम्प्ट बनाने के लिए निर्देश पास करें build_llama2_prompt:
अंतिम पेलोड बनाने के लिए हम अनुमान मापदंडों को संकेत के साथ जोड़ते हैं। फिर आप पेलोड को भेजें get_realtime_response_stream,
जिसका उपयोग प्रतिक्रिया स्ट्रीमिंग के साथ समापन बिंदु को लागू करने के लिए किया जाता है:
एलएलएम से उत्पन्न पाठ को आउटपुट पर स्ट्रीम किया जाएगा जैसा कि निम्नलिखित एनीमेशन में दिखाया गया है।
क्लीन अप
अनावश्यक शुल्कों से बचने के लिए, इसका उपयोग करें एडब्ल्यूएस प्रबंधन कंसोल पोस्ट में उल्लिखित दृष्टिकोणों को चलाने के दौरान बनाए गए समापन बिंदुओं और उससे जुड़े संसाधनों को हटाने के लिए। दोनों परिनियोजन दृष्टिकोणों के लिए, निम्नलिखित सफाई दिनचर्या निष्पादित करें:
बदलें <SageMaker_Real-time_Endpoint_Name>
परिवर्तनशील के लिए endpoint_name
वास्तविक समापन बिंदु के साथ.
दूसरे दृष्टिकोण के लिए, हमने अमेज़ॅन S3 पर मॉडल और कोड कलाकृतियों को संग्रहीत किया। आप निम्नलिखित कोड का उपयोग करके S3 बाल्टी को साफ़ कर सकते हैं:
निष्कर्ष
इस पोस्ट में, हमने चर्चा की कि प्रतिक्रिया टोकन की अलग-अलग संख्या या अनुमान मापदंडों का एक अलग सेट एलएलएम से जुड़ी विलंबता को कैसे प्रभावित कर सकता है। हमने दिखाया कि प्रतिक्रिया स्ट्रीमिंग की सहायता से समस्या का समाधान कैसे किया जाए। फिर हमने एडब्ल्यूएस डीएलसी-एलएमआई और हगिंग फेस टीजीआई का उपयोग करके लामा 2 चैट मॉडल को तैनात करने और अनुमान लगाने के लिए दो दृष्टिकोणों की पहचान की।
अब आपको स्ट्रीमिंग प्रतिक्रिया के महत्व को समझना चाहिए और यह कैसे कथित विलंबता को कम कर सकता है। स्ट्रीमिंग प्रतिक्रिया से उपयोगकर्ता अनुभव में सुधार हो सकता है, अन्यथा आपको तब तक इंतजार करना पड़ेगा जब तक एलएलएम पूरी प्रतिक्रिया तैयार नहीं कर लेता। इसके अतिरिक्त, प्रतिक्रिया स्ट्रीमिंग के साथ लामा 2 चैट मॉडल को तैनात करने से उपयोगकर्ता अनुभव में सुधार होता है और आपके ग्राहक खुश होते हैं।
आप आधिकारिक एडब्ल्यूएस-नमूने देख सकते हैं अमेज़ॅन-सेजमेकर-llama2-प्रतिक्रिया-स्ट्रीमिंग-रेसिपी इसमें अन्य लामा 2 मॉडल वेरिएंट के लिए तैनाती शामिल है।
संदर्भ
लेखक के बारे में
पवन कुमार राव नवुले अमेज़न वेब सर्विसेज में सॉल्यूशन आर्किटेक्ट हैं। वह भारत में आईएसवी के साथ काम करते हैं ताकि उन्हें एडब्ल्यूएस पर नवाचार करने में मदद मिल सके। वह "गेटिंग स्टार्टेड विद वी प्रोग्रामिंग" पुस्तक के प्रकाशित लेखक हैं। उन्होंने भारतीय प्रौद्योगिकी संस्थान (आईआईटी), हैदराबाद से डेटा साइंस में कार्यकारी एम.टेक की पढ़ाई की। उन्होंने इंडियन स्कूल ऑफ बिजनेस मैनेजमेंट एंड एडमिनिस्ट्रेशन से आईटी विशेषज्ञता में एक्जीक्यूटिव एमबीए भी किया और वाग्देवी इंस्टीट्यूट ऑफ टेक्नोलॉजी एंड साइंस से इलेक्ट्रॉनिक्स एंड कम्युनिकेशन इंजीनियरिंग में बी.टेक किया। पवन एक AWS सर्टिफाइड सॉल्यूशंस आर्किटेक्ट प्रोफेशनल हैं और उनके पास AWS सर्टिफाइड मशीन लर्निंग स्पेशलिटी, Microsoft सर्टिफाइड प्रोफेशनल (MCP) और Microsoft सर्टिफाइड टेक्नोलॉजी स्पेशलिस्ट (MCTS) जैसे अन्य प्रमाणपत्र हैं। वह एक ओपन-सोर्स उत्साही भी हैं। अपने खाली समय में, वह सिया और रिहाना की महान जादुई आवाज़ें सुनना पसंद करते हैं।
सुधांशु नफरत AWS के साथ प्रमुख AI/ML विशेषज्ञ हैं और ग्राहकों को उनकी MLOps और जेनरेटिव AI यात्रा पर सलाह देने के लिए उनके साथ काम करते हैं। अमेज़ॅन से पहले अपनी पिछली भूमिका में, उन्होंने ग्राउंड-अप ओपन सोर्स-आधारित एआई और गेमिफ़िकेशन प्लेटफ़ॉर्म बनाने के लिए टीमों की अवधारणा, निर्माण और नेतृत्व किया और 100 से अधिक ग्राहकों के साथ इसका सफलतापूर्वक व्यावसायीकरण किया। सुधांशु ने कुछ पेटेंट अपने नाम किए हैं, दो किताबें और कई पेपर और ब्लॉग लिखे हैं, और विभिन्न तकनीकी मंचों पर अपने दृष्टिकोण प्रस्तुत किए हैं। वह एक विचारशील नेता और वक्ता रहे हैं, और लगभग 25 वर्षों से उद्योग में हैं। उन्होंने दुनिया भर में फॉर्च्यून 1000 ग्राहकों के साथ काम किया है और हाल ही में भारत में डिजिटल देशी ग्राहकों के साथ काम किया है।
- एसईओ संचालित सामग्री और पीआर वितरण। आज ही प्रवर्धित हो जाओ।
- प्लेटोडेटा.नेटवर्क वर्टिकल जेनरेटिव एआई। स्वयं को शक्तिवान बनाएं। यहां पहुंचें।
- प्लेटोआईस्ट्रीम। Web3 इंटेलिजेंस। ज्ञान प्रवर्धित। यहां पहुंचें।
- प्लेटोईएसजी. कार्बन, क्लीनटेक, ऊर्जा, पर्यावरण, सौर, कचरा प्रबंधन। यहां पहुंचें।
- प्लेटोहेल्थ। बायोटेक और क्लिनिकल परीक्षण इंटेलिजेंस। यहां पहुंचें।
- स्रोत: https://aws.amazon.com/blogs/machine-learning/inference-llama-2-models-with-real-time-response-streaming-using-amazon-sagemaker/
- :हैस
- :है
- :कहाँ
- $यूपी
- 1
- 10
- 100
- 11
- 12
- 14
- 15% तक
- 150
- 16
- 19
- 1st
- 25
- 32
- 385
- 50
- 7
- 70
- 8
- 9
- a
- क्षमता
- योग्य
- About
- में तेजी लाने के
- तेज करता
- त्वरक
- स्वीकार करें
- पहुँच
- लेखा
- पाना
- के पार
- कार्य
- वास्तविक
- इसके अतिरिक्त
- पता
- प्रशासन
- अपनाना
- दत्तक ग्रहण
- लाभ
- सलाह देना
- को प्रभावित
- बाद
- AI
- एआई मॉडल
- ऐ / एमएल
- शॉट
- संरेखित करता है
- सब
- की अनुमति दे
- की अनुमति देता है
- साथ में
- पहले ही
- भी
- वीरांगना
- अमेज़न SageMaker
- अमेज़ॅन वेब सेवा
- an
- और
- एनीमेशन
- की घोषणा
- घोषणा
- कोई
- एपीआई
- अनुप्रयोगों
- दृष्टिकोण
- दृष्टिकोण
- उपयुक्त
- वास्तु
- स्थापत्य
- हैं
- तर्क
- तर्क
- AS
- सहायकों
- जुड़े
- At
- लेखक
- उपलब्ध
- से बचने
- एडब्ल्यूएस
- वापस
- आधार
- बैचिंग
- BE
- क्योंकि
- किया गया
- से पहले
- के बीच
- परे
- बिलियन
- अरबों
- बिन
- ब्लॉग
- परिवर्तन
- किताब
- पुस्तकें
- के छात्रों
- निर्माण
- बनाता है
- बनाया गया
- व्यापार
- लेकिन
- by
- कॉल
- अभियान
- कर सकते हैं
- सक्षम
- मामला
- प्रमाणपत्र
- प्रमाणित
- परिवर्तन
- प्रभार
- बातचीत
- chatbots
- स्वच्छ
- ग्राहक
- ग्राहकों
- क्लब
- कोड
- संग्रह
- COM
- संयुक्त
- आता है
- संचार
- समवर्ती
- विन्यास
- पुष्टि
- कंटेनर
- कंटेनरों
- निरंतर
- लगातार
- नियंत्रण
- सका
- युगल
- कूपन
- कवर
- कवर
- बनाना
- बनाया
- बनाता है
- बनाना
- श्रेय
- ग्राहक
- ग्राहक संतुष्टि
- ग्राहक
- तिथि
- डेटा विज्ञान
- दिन
- गहरा
- ध्यान लगा के पढ़ना या सीखना
- चूक
- परिभाषित
- परिभाषित
- विलंबित
- दिखाना
- तैनात
- तैनात
- तैनाती
- तैनाती
- विस्तृत
- विवरण
- डेवलपर्स
- डिवाइस
- विभिन्न
- डिजिटल
- चर्चा की
- dont
- डाउनलोड
- दौरान
- पूर्व
- भी
- इलेक्ट्रानिक्स
- ईमेल
- सक्षम बनाता है
- endpoint
- इंजन
- अभियांत्रिकी
- सरगर्म
- संपूर्ण
- वातावरण
- विशेष रूप से
- स्थापना
- और भी
- उदाहरण
- कार्यकारी
- उम्मीद
- उम्मीद
- अनुभव
- अनुभव
- का पता लगाने
- चेहरा
- की सुविधा
- असत्य
- और तेज
- पट्टिका
- फ़ाइलें
- अंतिम
- अंत में
- प्रथम
- पहली बार
- निम्नलिखित
- इस प्रकार है
- के लिए
- प्रपत्र
- प्रारूप
- धन
- मंचों
- पाया
- बुनियाद
- चार
- मुक्त
- से
- पूर्ण
- पूरी तरह से
- समारोह
- आगे
- Gamification
- सुरक्षा पूर्ण
- उत्पन्न
- उत्पन्न
- सृजन
- पीढ़ी
- उत्पादक
- जनरेटिव एआई
- जनरेटर
- मिल
- gif
- ग्लोब
- Go
- शासित
- GPU
- GPUs
- दी गई
- महान
- खुश
- नफरत
- है
- he
- मदद
- मदद करता है
- उच्च प्रदर्शन
- उच्चतर
- उसके
- रखती है
- मेजबानी
- होस्टिंग
- कैसे
- How To
- तथापि
- एचटीएमएल
- http
- HTTPS
- हगिंग फ़ेस
- मानव पठनीय
- ID
- पहचान
- पहचान
- if
- दिखाता है
- की छवि
- छवियों
- तत्काल
- लागू करने के
- कार्यान्वयन
- आयात
- महत्व
- महत्वपूर्ण
- में सुधार
- सुधार
- in
- शामिल
- सहित
- इंडिया
- भारतीय
- संकेत दिया
- उद्योग
- करें-
- इंफ्रास्ट्रक्चर
- कुछ नया
- निवेश
- निविष्टियां
- अंदर
- उदाहरण
- बजाय
- संस्थान
- निर्देश
- इंटरैक्टिव
- इंटरनेट
- मुद्दों
- IT
- आईटी इस
- यात्रा
- JSON
- कुंजी
- कुमार
- भाषा
- बड़ा
- विलंब
- विलंबता मुद्दे
- बाद में
- ताज़ा
- लांच
- नेतृत्व
- नेता
- सीख रहा हूँ
- नेतृत्व
- लंबाई
- पुस्तकालयों
- लाइसेंस
- पसंद
- सीमाएं
- लाइन
- बात सुनो
- लामा
- एलएलएम
- लोड हो रहा है
- स्थित
- प्यार करता है
- मशीन
- यंत्र अधिगम
- बनाया गया
- बनाना
- बनाता है
- प्रबंधन
- कामयाब
- प्रबंध
- विपणन (मार्केटिंग)
- मैक्स
- मई..
- एमसीपी
- याद
- उल्लेख किया
- मेटा
- तरीका
- तरीकों
- माइक्रोसॉफ्ट
- लाखों
- ML
- एमएलओपीएस
- आदर्श
- मॉडल
- महीने
- अधिक
- अधिकांश
- संगीत
- चाहिए
- नाम
- नामांकित
- देशी
- लगभग
- आवश्यकता
- की जरूरत है
- नया
- अगला
- नोट
- नोटबुक
- अभी
- संख्या
- वस्तुओं
- निरीक्षण
- प्राप्त
- प्राप्त
- of
- प्रस्तुत
- सरकारी
- अक्सर
- on
- ONE
- केवल
- खुला
- खुला स्रोत
- विकल्प
- ऑप्शंस
- or
- अन्य
- अन्यथा
- रूपरेखा
- उत्पादन
- के ऊपर
- कुल
- पैक
- पैकेजिंग
- कागजात
- समानांतर
- प्राचल
- पैरामीटर
- भाग
- पास
- पेटेंट
- पथ
- प्रति
- माना जाता है
- निष्पादन
- प्रदर्शन
- अनुमतियाँ
- प्लेटफार्म
- प्लेटो
- प्लेटो डेटा इंटेलिजेंस
- प्लेटोडाटा
- अंक
- लोकप्रिय
- संभव
- पद
- संचालित
- पूर्ववर्ती
- तैयार करना
- तैयारी
- आवश्यक शर्तें
- प्रस्तुत
- पिछला
- प्रिंसिपल
- प्रिंट
- मुसीबत
- बढ़ना
- प्रक्रिया
- प्रसंस्कृत
- प्रसंस्करण
- एस्ट्रो मॉल
- उत्पाद चालू करना
- पेशेवर
- प्रोफाइल
- प्रोग्रामिंग
- प्रगति
- गुण
- प्रदान करना
- बशर्ते
- प्रदान करता है
- प्रदान कर
- प्रकाशित
- प्रयोजनों
- अजगर
- pytorch
- प्रश्न
- लेकर
- उपवास
- बल्कि
- पढ़ना
- तैयार
- वास्तविक
- वास्तविक समय
- महसूस करना
- प्राप्त करना
- प्राप्त
- हाल ही में
- की सिफारिश
- की सिफारिश की
- को कम करने
- कम कर देता है
- को कम करने
- उल्लेख
- संबंध
- की जगह
- उत्तर
- कोष
- का अनुरोध
- अनुरोधों
- उपयुक्त संसाधन चुनें
- प्रतिक्रिया
- प्रतिक्रिया
- प्रतिक्रियाएं
- परिणाम
- वापसी
- रिटर्न
- भूमिका
- सामान्य
- रन
- दौड़ना
- चलाता है
- क्रम
- sagemaker
- वही
- संतोष
- स्केल
- स्कूल के साथ
- विज्ञान
- एसडीके
- निर्बाध
- दूसरा
- अनुभाग
- देखना
- भेजें
- भेजता
- सेवा
- सेवा
- सेवाएँ
- सेवारत
- सेट
- सेटिंग्स
- कई
- कम
- चाहिए
- दिखाना
- पता चला
- दिखाया
- दिखाता है
- हस्ताक्षर
- सरल
- आशुचित्र
- टुकड़ा
- समाधान
- समाधान ढूंढे
- जल्दी
- स्रोत
- स्रोत कोड
- वक्ता
- विशेषज्ञ
- विशेषीकृत
- विशेषता
- विनिर्देशों
- विनिर्दिष्ट
- शुरू
- स्थिति
- कदम
- कदम
- रुकें
- भंडारण
- की दुकान
- संग्रहित
- रणनीतियों
- धारा
- स्ट्रीम किया
- स्ट्रीमिंग
- स्ट्रीमिंग सेवा
- सफल
- सफल
- सफलतापूर्वक
- ऐसा
- समर्थन
- समर्थित
- समर्थन करता है
- तालिका
- लेना
- कार्य
- टीमों
- तकनीक
- तकनीकी
- टेक्नोलॉजी
- टेम्पलेट
- टेक्स्ट
- से
- कि
- RSI
- लेकिन हाल ही
- उन
- फिर
- वहाँ।
- जिसके चलते
- इसलिये
- इन
- वे
- इसका
- हालांकि?
- विचार
- THROUGHPUT
- पहर
- बार
- सेवा मेरे
- टोकन
- टोकन
- उपकरण
- रेलगाड़ी
- अनुवाद करें
- <strong>उद्देश्य</strong>
- मोड़
- दो
- टाइप
- प्रकार
- आम तौर पर
- समझना
- अनावश्यक
- जब तक
- प्रयोग
- उपयोग
- उदाहरण
- प्रयुक्त
- उपयोगकर्ता
- उपयोगकर्ता अनुभव
- का उपयोग
- वैध
- मूल्य
- मान
- परिवर्तनशील
- विभिन्न
- परिवर्तनीय
- व्यापक
- संस्करण
- के माध्यम से
- देखें
- वास्तविक
- भेंट
- आवाज
- प्रतीक्षा
- इंतज़ार कर रही
- करना चाहते हैं
- we
- वेब
- वेब सेवाओं
- कुंआ
- थे
- कब
- कौन कौन से
- जब
- पूरा का पूरा
- किसका
- मर्जी
- साथ में
- अंदर
- बिना
- काम किया
- कामगार
- श्रमिकों
- वर्कफ़्लो
- workflows
- काम कर रहे
- कार्य
- होगा
- लिखना
- लिखा हुआ
- साल
- आप
- आपका
- जेफिरनेट