AI

अमेज़ॅन सैजमेकर पाइपलाइनों के साथ मल्टी-अकाउंट मॉडल की तैनाती

अवतार

प्रकाशित

on

अमेज़न SageMaker पाइपलाइन पहला उद्देश्य-निर्मित है CI/CD मशीन लर्निंग (एमएल) के लिए सेवा। यह आपको एमएल वर्क-टू-एंड, एंड-टू-एंड एमएल वर्कफ्लोज़ बनाने और बनाने में मदद करता है, देव / सीडी के सर्वोत्तम प्रथाओं को एमएल में लागू करता है (एमएलओपीएस के रूप में भी जाना जाता है)।

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

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

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

पर्यावरण की तैयारी

इस अनुभाग में, आप तीन अलग-अलग AWS खातों को कॉन्फ़िगर करते हैं और उपयोग करते हैं सेजमेकर स्टूडियो एक प्रोजेक्ट तैयार करना जो डेटा साइंटिस्ट द्वारा बनाई गई ML पाइपलाइन के साथ CI / CD पाइपलाइन को एकीकृत करता है। निम्नलिखित आरेख पर्यावरण के संदर्भ वास्तुकला को दर्शाता है जो SageMaker कस्टम प्रोजेक्ट और कैसे बनाया जाता है AWS संगठन विभिन्न खातों को एकीकृत करता है।

निम्न आरेख पर्यावरण के संदर्भ वास्तुकला को दर्शाता है जो SageMaker कस्टम प्रोजेक्ट द्वारा बनाया गया है और AWS संगठन विभिन्न खातों को कैसे एकीकृत करता है।

आरेख में संगठन द्वारा प्रबंधित तीन अलग-अलग खाते हैं। साथ ही, तीन अलग-अलग उपयोगकर्ता भूमिकाएँ (जो एक ही व्यक्ति हो सकती हैं) इस वातावरण को संचालित करती हैं:

  • एमएल इंजीनियर - CI / CD पाइपलाइन, मॉडल रजिस्ट्री, और अन्य संसाधनों को बनाने वाली SageMaker Studio परियोजना के प्रावधान के लिए जिम्मेदार
  • आँकड़े वाला वैज्ञानिक - एमएल पाइपलाइन बनाने के लिए जिम्मेदार है जो मॉडल समूह के लिए पंजीकृत एक प्रशिक्षित मॉडल के साथ समाप्त होता है (जिसे भी संदर्भित किया जाता है मॉडल पैकेज समूह)
  • स्वीकृति प्रदान करने वाले - स्टेजिंग खाते में तैनात मॉडल का परीक्षण करने और उत्पादन तैनाती को मंजूरी देने के लिए जिम्मेदार

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

लेकिन इससे पहले कि आप आगे बढ़ें, आपको निम्नलिखित चरणों को पूरा करने की आवश्यकता है, जो अगले खंडों में विस्तृत हैं:

  1. डेटा वैज्ञानिकों (डेटा साइंस अकाउंट) द्वारा उपयोग किया जाने वाला एक एडब्ल्यूएस खाता बनाएँ।
  2. बनाएँ और कॉन्फ़िगर करें SageMaker स्टूडियो डोमेन डेटा विज्ञान खाते में।
  3. उत्पादन और मंचन के लिए दो अतिरिक्त खाते बनाएं।
  4. संगठनों का उपयोग करके एक संगठनात्मक संरचना बनाएं, फिर अतिरिक्त खातों को आमंत्रित और एकीकृत करें।
  5. पाइपलाइनों को चलाने और बाहरी खातों पर मॉडल तैनात करने के लिए आवश्यक अनुमतियों को कॉन्फ़िगर करें।
  6. कई खातों में मॉडल तैनात करने के लिए SageMaker प्रोजेक्ट टेम्पलेट आयात करें और इसे SageMaker Studio के लिए उपलब्ध करें।

अपने खाते में SageMaker Studio को कॉन्फ़िगर करना

पाइपलाइन के लिए अंतर्निहित समर्थन प्रदान करता है MLOps टेम्पलेट अपनी ML परियोजनाओं के लिए CI / CD का उपयोग करना आपके लिए आसान बनाना। ये MLOps टेम्पलेट के रूप में परिभाषित किए गए हैं अमेज़ॅन क्लाउडफ़ॉर्मेशन टेम्पलेट्स और के माध्यम से प्रकाशित किया AWS सेवा सूची। इन्हें SageMaker Studio, ML के लिए IDE के माध्यम से डेटा वैज्ञानिकों के लिए उपलब्ध कराया जाता है। अपने खाते में स्टूडियो को कॉन्फ़िगर करने के लिए, निम्नलिखित चरणों को पूरा करें:

  1. अपना SageMaker Studio डोमेन तैयार करें.
  2. इस खाते और स्टूडियो उपयोगकर्ताओं के लिए SageMaker प्रोजेक्ट टेम्प्लेट और SageMaker जम्पस्टार्ट सक्षम करें.

यदि आपके पास एक मौजूदा डोमेन है, तो आप इस विकल्प को सक्षम करने के लिए बस डोमेन या व्यक्तिगत उपयोगकर्ताओं के लिए सेटिंग्स को संपादित कर सकते हैं। इस विकल्प को सक्षम करना दो अलग बनाता है AWS पहचान और खाता प्रबंधन (IAM) आपके AWS खाते में भूमिकाएँ:

  • AmazonSageMakerServiceCatalogProductsLaunchRole - SageMaker द्वारा परियोजना टेम्पलेट्स को चलाने और आवश्यक अवसंरचना संसाधन बनाने के लिए उपयोग किया जाता है
  • AmazonSageMakerServiceCatalogProductsUseRole - सीआई / सीडी पाइपलाइन द्वारा नौकरी चलाने के लिए और लक्ष्य खातों पर मॉडल तैनात करने के लिए उपयोग किया जाता है

यदि आपने अपना SageMaker Studio डोमेन फिर से बनाया है: Invent 2020, यह अनुशंसा की जाती है कि आप अपने काम को प्रगति में सहेज कर अपने पर्यावरण को ताज़ा करें। पर पट्टिका मेनू, चुनें शटडाउन, और अपनी पसंद की पुष्टि करें।

  1. यदि आपने उन्हें अभी तक नहीं बनाया है, तो मचान और उत्पादन के लिए दो अन्य AWS खाते बनाएं और तैयार करें।

संगठनों को कॉन्फ़िगर करना

आपको संगठन में एक संरचना में डेटा विज्ञान खाते और दो अतिरिक्त खातों को जोड़ने की आवश्यकता है। जब आप बड़े होते हैं और अपने AWS संसाधनों को बढ़ाते हैं, तो संगठन आपको अपने वातावरण को केंद्र में रखने और नियंत्रित करने में मदद करता है। यह मुफ़्त है और आपकी शासन की रणनीति का लाभ उठाता है।

प्रत्येक खाते को एक अलग में जोड़ा जाना चाहिए संगठनात्मक इकाई (OU).

  1. संगठन कंसोल पर, निम्न की तरह OUs की संरचना बनाएँ:
  • जड़
    • multi-account-deploymenटी (OU)
      • 111111111111 (डेटा विज्ञान खाता- सेजमेकर स्टूडियो)
      • production (OU)
        • 222222222222 (AWS खाता)
      • staging (OU)
        • 333333333333 (AWS खाता)

संगठन को कॉन्फ़िगर करने के बाद, प्रत्येक खाता स्वामी को एक आमंत्रण मिलता है। मालिकों को निमंत्रण स्वीकार करने की आवश्यकता होती है, अन्यथा संगठन में खातों को शामिल नहीं किया जाता है।

  1. अब आपको जरूरत है AWS संगठनों के साथ विश्वसनीय पहुँच सक्षम करें ("सभी सुविधाएँ सक्षम करें" और "StackSets में विश्वसनीय पहुँच सक्षम करें").

यह प्रक्रिया आपके डेटा विज्ञान खाते को लक्ष्य खातों में संसाधनों का प्रावधान करने की अनुमति देती है। यदि आप ऐसा नहीं करते हैं, तो परिनियोजन प्रक्रिया विफल हो जाती है। साथ ही, यह सुविधा सेट संगठनों के साथ काम करने का पसंदीदा तरीका है, और इसमें बिलिंग विशेषताओं को समेकित करना शामिल है।

  1. अगला, ऑर्गनाइजेशन कंसोल पर, चुनें खाते व्यवस्थित करें.
  2. चुनें मचान.
  3. OU ID को नोट करें।
  4. के लिए इस प्रक्रिया को दोहराएं production OU।

उत्पादन OU के लिए इस प्रक्रिया को दोहराएं।

अनुमतियों को कॉन्फ़िगर करना

आपको प्रत्येक अतिरिक्त खाते में एक SageMaker निष्पादन भूमिका बनाने की आवश्यकता है। इन भूमिकाओं द्वारा ग्रहण किया जाता है AmazonSageMakerServiceCatalogProductsUseRole डेटा विज्ञान खाते में लक्ष्य खातों में अंतिम बिंदुओं को तैनात करने और उनका परीक्षण करने के लिए।

  1. में साइन इन करें एडब्ल्यूएस प्रबंधन कंसोल मंचन खाते के साथ।
  2. निम्न को चलाएँ CloudFormation टेम्पलेट.

यह टेम्पलेट आपके लिए एक नई SageMaker भूमिका बनाता है।

  1. निम्नलिखित पैरामीटर प्रदान करें:
    1. SageMakerRoleSuffix - एक छोटी स्ट्रिंग (बिना रिक्त स्थान या अल्फा-न्यूमेरिक वर्णों के साथ अधिकतम 10 लोअरकेस) जो निम्न उपसर्ग के बाद भूमिका नाम में जोड़ा जाता है: sagemaker-role-। अंतिम भूमिका नाम है sagemaker-role-<<sagemaker_role_suffix>>.
    2. पाइपलाइन - डेटा साइंस खाते से भूमिका का एआरएन जो आपके द्वारा बनाए जा रहे सेजमेकर भूमिका को मानता है। ARN को खोजने के लिए, डेटा साइंस खाते के साथ कंसोल में साइन इन करें। IAM कंसोल पर, चुनें भूमिकाओं और के लिए खोज AmazonSageMakerServiceCatalogProductsUseRole। इस भूमिका को चुनें और ARN की प्रतिलिपि बनाएँ (arn:aws:iam::<<data_science_acccount_id>>:role/service-role/AmazonSageMakerServiceCatalogProductsUseRole).
  2. स्टेजिंग खाते में इस भूमिका को बनाने के बाद, उत्पादन खाते के लिए इस प्रक्रिया को दोहराएं।

डेटा विज्ञान खाते में, अब आप की नीति कॉन्फ़िगर करते हैं अमेज़न सरल भंडारण सेवा (Amazon S3) बाल्टी प्रशिक्षित मॉडल को संग्रहीत करने के लिए उपयोग किया जाता है। इस पोस्ट के लिए, हम वर्तमान क्षेत्र के डिफ़ॉल्ट SageMaker बाल्टी का उपयोग करते हैं। इसका निम्नलिखित नाम प्रारूप है: sagemaker-<<region>>-<<aws_account_id>>.

  1. अमेज़ॅन S3 कंसोल पर, इस बाल्टी को खोजें, जो आपके द्वारा उपयोग किए जा रहे क्षेत्र और डेटा विज्ञान खाते की आईडी प्रदान करता है।

यदि आपको यह नहीं मिलता है, तो इस नाम प्रारूप के बाद एक नई बाल्टी बनाएं।

  1. पर अनुमतियाँ टैब, निम्नलिखित नीति जोड़ें:
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<<staging_account_id>>:root", "arn:aws:iam::<<production_account_id>>:root" ] }, "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::sagemaker-<<region>>-<<aws_account_id>>", "arn:aws:s3:::sagemaker-<<region>>-<<aws_account_id>>/*" ] } ]
    }

  1. अपनी सेटिंग्स सहेजें।

लक्ष्य खातों में अब तैनाती के दौरान प्रशिक्षित मॉडल को पढ़ने की अनुमति है।

अगला कदम भूमिकाओं में नई अनुमतियों को जोड़ना है AmazonSageMakerServiceCatalogProductsUseRole और AmazonSageMakerServiceCatalogProductsLaunchRole.

  1. डेटा विज्ञान खाते में, IAM कंसोल पर, चुनें भूमिकाओं.
  2. खोज AmazonSageMakerServiceCatalogProductsUseRole भूमिका और इसे चुनें।
  3. एक नई नीति जोड़ें और निम्नलिखित दर्ज करें JSON कोड.
  4. अपने परिवर्तन सहेजें।
  5. अब, खोजो AmazonSageMakerServiceCatalogProductsLaunchRole भूमिका, इसे चुनें और निम्नलिखित सामग्री के साथ एक नई नीति जोड़ें:
    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::aws-ml-blog/artifacts/sagemaker-pipeline-blog-resources/*" } ]
    }

  1. अपने परिवर्तन सहेजें।

बस! आपका वातावरण लगभग तैयार है। आपको केवल एक और कदम की आवश्यकता है और आप विभिन्न खातों में मॉडल का प्रशिक्षण और तैनाती शुरू कर सकते हैं।

कस्टम SageMaker स्टूडियो प्रोजेक्ट टेम्पलेट आयात करना

इस चरण में, आप अपने कस्टम प्रोजेक्ट टेम्पलेट को आयात करते हैं।

  1. डेटा विज्ञान खाते के साथ कंसोल में साइन इन करें।
  2. AWS सेवा कैटलॉग कंसोल पर, के तहत प्रशासन, चुनें पोर्टफोलियो.
  3. चुनें एक नया पोर्टफोलियो बनाएं.
  4. पोर्टफोलियो का नाम बताइए SageMaker Organization Templates.
  5. निम्नलिखित डाउनलोड करें टेम्पलेट आपके कंप्यूटर के लिए.
  6. नया पोर्टफोलियो चुनें।
  7. चुनें एक नया उत्पाद अपलोड करें.
  8. के लिए उत्पाद का नामदर्ज Multi Account Deployment.
  9. के लिए विवरण, दर्ज Multi account deployment project.
  10. के लिए मालिक, अपना नाम दर्ज करें।
  11. के अंतर्गत संस्करण विवरणके लिए, विधि, चुनें टेम्पलेट फ़ाइल का उपयोग करें.
  12. चुनें एक टेम्प्लेट अपलोड करें.
  13. आपके द्वारा डाउनलोड किए गए टेम्पलेट को अपलोड करें।
  14. के लिए संस्करण शीर्षक, चुनें 1.0.

शेष पैरामीटर वैकल्पिक हैं।

  1. चुनें समीक्षा.
  2. अपनी सेटिंग्स की समीक्षा करें और चुनें उत्पाद बनाएँ.
  3. चुनें ताज़ा करना नए उत्पाद को सूचीबद्ध करने के लिए।
  4. आपके द्वारा बनाया गया उत्पाद चुनें।
  5. पर टैग टैब, उत्पाद में निम्नलिखित टैग जोड़ें:
    1. कुंजी - sagemaker:studio-visibility
    2. वैल्यू - True

वापस पोर्टफोलियो विवरण में, आप निम्न स्क्रीनशॉट (विभिन्न आईडी के साथ) के समान कुछ देखते हैं।

वापस पोर्टफोलियो विवरण में, आप निम्न स्क्रीनशॉट (विभिन्न आईडी के साथ) के समान कुछ देखते हैं।

  1. पर की कमी टैब चुनें अड़चन पैदा करो.
  2. के लिए उत्पाद, चुनें मल्टी अकाउंट परिनियोजन (आपके द्वारा अभी बनाया गया उत्पाद)।
  3. के लिए बाधा प्रकार, चुनें लांच.
  4. के अंतर्गत बाधा लॉन्च करेंके लिए, विधि, चुनें IAM भूमिका का चयन करें.
  5. चुनें AmazonSageMakerServiceCatalogProductsLaunchRole.
  6. चुनें बनाएं.
  7. पर समूह, भूमिकाएँ, और उपयोगकर्ता टैब चुनें उपयोगकर्ता, समूह, भूमिकाएँ जोड़ें.
  8. पर भूमिकाओं टैब, अपने SageMaker Studio डोमेन को कॉन्फ़िगर करते समय आपके द्वारा उपयोग की जाने वाली भूमिका का चयन करें।
  9. चुनें पहुँच जोड़ें.

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

हो गया! अब इस टेम्पलेट का उपयोग करके एक प्रोजेक्ट बनाने का समय आ गया है।

अपना प्रोजेक्ट बनाना

पिछले अनुभागों में, आपने बहु-खाता वातावरण तैयार किया था। अगला कदम अपने नए टेम्पलेट का उपयोग करके एक प्रोजेक्ट बनाना है।

  1. डेटा विज्ञान खाते के साथ कंसोल में साइन इन करें।
  2. SageMaker कंसोल पर, अपने उपयोगकर्ता के साथ SageMaker स्टूडियो खोलें।
  3. चुनना घटक और रजिस्ट्रियां
  4. ड्रॉप-डाउन मेनू पर, चुनें परियोजनाएं.
  5. चुनें प्रोजेक्ट बनाएं.

प्रोजेक्ट बनाएं चुनें।

पर प्रोजेक्ट बनाएं पेज, SageMaker टेम्प्लेट डिफ़ॉल्ट रूप से चुना जाता है। यह विकल्प अंतर्निहित टेम्पलेट्स को सूचीबद्ध करता है। हालाँकि, आप मल्टी-अकाउंट परिनियोजन के लिए तैयार किए गए टेम्पलेट का उपयोग करना चाहते हैं।

  1. चुनें संगठन के खाके.
  2. चुनें मल्टी अकाउंट परिनियोजन.
  3. चुनें प्रोजेक्ट टेम्पलेट का चयन करें.

यदि आप टेम्पलेट नहीं देख सकते हैं, तो सुनिश्चित करें कि आपने पिछले अनुभाग में सभी चरणों को सही ढंग से पूरा किया है।

यदि आप टेम्पलेट नहीं देख सकते हैं, तो सुनिश्चित करें कि आपने पिछले अनुभाग में सभी चरणों को सही ढंग से पूरा किया है।

  1. में परियोजना विवरण अनुभाग, के लिए नाम, आईरिस-मल्टी -01 दर्ज करें।

प्रोजेक्ट का नाम 15 वर्ण या उससे कम होना चाहिए।

  1. में प्रोजेक्ट टेम्पलेट पैरामीटरप्रत्येक लक्ष्य खाते में बनाई गई भूमिकाओं के नाम का उपयोग करें (मंचन और उत्पादन) और निम्नलिखित गुण प्रदान करें:
    1. SageMakerExecutionRoleStagingName
    2. SageMakerExecutionRoleProdName
  2. मंचन और उत्पादन OUs के लिए आपके द्वारा पहले बनाई गई OU ID को पुनः प्राप्त करें और निम्नलिखित गुण प्रदान करें:
    1. OrganizationalUnitStagingId
    2. OrganizationalUnitProdId
  3. चुनें प्रोजेक्ट बनाएं.

प्रोजेक्ट बनाएं चुनें।

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

सभी संसाधनों का प्रावधान करने में कुछ मिनट लगते हैं, जिसके बाद परियोजना को परियोजना अनुभाग में सूचीबद्ध किया जाता है।

मॉडल का प्रशिक्षण शुरू करने के लिए पर्यावरण अब डेटा वैज्ञानिक के लिए तैयार है।

एक मॉडल को प्रशिक्षित करना

अब जब आपका प्रोजेक्ट तैयार हो गया है, यह एक मॉडल को प्रशिक्षित करने का समय है।

  1. डाउनलोड उदाहरण नोटबुक इस walkthrough के लिए उपयोग करने के लिए।
  2. चुनना फ़ोल्डर फ़ाइल क्षेत्र को फ़ाइल प्रबंधन में बदलने के लिए आइकन।
  3. चुनना फ़ोल्डर बनाएँ
  4. फ़ोल्डर के लिए एक नाम दर्ज करें।
  5. फ़ोल्डर का नाम चुनें।
  6. चुनना फाइल अपलोड
  7. आपके द्वारा डाउनलोड की गई Jupyter नोटबुक चुनें और इसे नई निर्देशिका में अपलोड करें।
  8. नया टैब खोलने के लिए नोटबुक चुनें।

नया टैब खोलने के लिए नोटबुक चुनें।

आपको कर्नेल चुनने के लिए प्रेरित किया जाता है।

  1. चुनें पायथन 3 (डेटा साइंस).
  2. चुनें चुनते हैं.

चुनें चुनें।

  1. नोटबुक के दूसरे सेल में, की जगह project_name आपके नाम के साथ वैरिएबल आपने अपना प्रोजेक्ट दिया (इस पोस्ट के लिए, iris-multi-01).

अब आप ज्यूपिटर नोटबुक चला सकते हैं। यह नोटबुक केवल दो चरणों के साथ एक बहुत ही सरल पाइपलाइन बनाता है: ट्रेन और रजिस्टर मॉडल। इसका उपयोग करता है आईरिस डेटासेट और यह XGBoost निर्मित कंटेनर एल्गोरिथ्म के रूप में।

  1. पूरी नोटबुक चलाएं।

निम्न कोड वाले सेल को चलाने के बाद प्रक्रिया में कुछ समय लगता है:

start_response = pipeline.start(parameters={ "TrainingInstanceCount": "1"
})

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

अद्यतन स्थिति चुनें और सहेजने से पहले अनुमोदन करें

यह डेटा वैज्ञानिक की नौकरी का अंत है लेकिन सीआई / सीडी पाइपलाइन चलाने की शुरुआत है।

अमेज़न EventBridge मॉडल रजिस्ट्री की निगरानी करता है। श्रोता प्रावधान के साथ एक नई तैनाती की नौकरी शुरू करता है AWS कोडपिपलीन वर्कफ़्लो (आपके साथ SageMaker Studio प्रोजेक्ट लॉन्च किया गया)।

  1. कोडपिपलाइन कंसोल पर, उपसर्ग के साथ शुरू होने वाली पाइपलाइन चुनें sagemaker-, आपके प्रोजेक्ट के नाम के बाद।

कोडपिपलाइन कंसोल पर, उपसर्ग sagemaker के साथ शुरू होने वाली पाइपलाइन का चयन करें-, जिसके बाद आपकी परियोजना का नाम आता है।

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

  1. चुनें समीक्षा.
  2. पाठ बॉक्स में एक अनुमोदन कारण दर्ज करें।
  3. चुनें अनुमोदन करना.

मॉडल अब उत्पादन खाते में तैनात किया गया है।

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

सफाई करना

इस उदाहरण में आपके द्वारा चुने गए सभी संसाधनों को साफ करने के लिए, निम्नलिखित चरणों को पूरा करें:

  1. अपने मुख्य खाते के साथ कंसोल में साइन इन करें।
  2. AWS CloudFormation कंसोल पर क्लिक करें StackSets और हटाएं निम्नलिखित आइटम (समापन बिंदु):
    1. ठेस - sagemaker-<<sagemaker-project-name>>-<<project-id>>-deploy-prod
    2. मचान - sagemaker-<<sagemaker-project-name>>-<<project-id>>-deploy-staging
  3. अपने लैपटॉप या वर्कस्टेशन टर्मिनल में, का उपयोग करें AWS कमांड लाइन इंटरफ़ेस (AWS CLI) और अपनी परियोजना को हटाने के लिए निम्नलिखित कोड दर्ज करें:
    aws sagemaker delete-project --project-name iris-multi-01

सुनिश्चित करें कि आप उपयोग कर रहे हैं AWS सीएलआई का नवीनतम संस्करण.

अपने SageMaker प्रोजेक्ट के लिए टेम्पलेट बनाना और कस्टमाइज़ करना

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

एक उत्पाद AWS सेवा कैटलॉग द्वारा प्रबंधित CloudFormation टेम्पलेट है। टेम्प्लेट और उनकी आवश्यकताओं के बारे में अधिक जानकारी के लिए, देखें AWS CloudFormation टेम्पलेट प्रारूप.

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

निम्न आरेख आपके कस्टम SageMaker प्रोजेक्ट टेम्पलेट बनाने और प्रकाशित करने के लिए आपके द्वारा आवश्यक मुख्य चरणों को दिखाता है।

निम्न आरेख आपके कस्टम SageMaker प्रोजेक्ट टेम्पलेट बनाने और प्रकाशित करने के लिए आपके द्वारा आवश्यक मुख्य चरणों को दिखाता है।

हमने अनुभागों में इन चरणों का अधिक विस्तार से वर्णन किया है कस्टम SageMaker स्टूडियो प्रोजेक्ट टेम्पलेट आयात करना और अपना प्रोजेक्ट बनाना.

एक एमएल इंजीनियर के रूप में, आप डिजाइन और कर सकते हैं एक नया CloudFormation टेम्पलेट बनाएं परियोजना के लिए, AWS सेवा कैटलॉग पोर्टफोलियो तैयार करें, और इसमें एक नया उत्पाद जोड़ें।

दोनों डेटा वैज्ञानिक और एमएल इंजीनियर कस्टम टेम्पलेट के साथ एक नई परियोजना बनाने के लिए SageMaker Studio का उपयोग कर सकते हैं। SageMaker AWS सेवा कैटलॉग को आमंत्रित करता है और CloudFormation टेम्पलेट में वर्णित बुनियादी ढांचे को प्रावधान करना शुरू करता है।

एक डेटा वैज्ञानिक के रूप में, आप अब मॉडल का प्रशिक्षण शुरू कर सकते हैं। आपके द्वारा इसे मॉडल रजिस्ट्री में पंजीकृत करने के बाद, CI / CD पाइपलाइन स्वचालित रूप से चलती है और मॉडल को लक्ष्य खातों पर तैनात करती है।

यदि आप एक पाठ संपादक में इस पोस्ट से CloudFormation टेम्पलेट को देखते हैं, तो आप देख सकते हैं कि यह इस पोस्ट में हमारे द्वारा डिज़ाइन किए गए आर्किटेक्चर को लागू करता है।

निम्नलिखित कोड टेम्पलेट का एक स्निपेट है:

Description: Toolchain template which provides the resources needed to represent infrastructure as code. This template specifically creates a CI/CD pipeline to deploy a given inference image and pretrained Model to two stages in CD -- staging and production.
Parameters: SageMakerProjectName: Type: String SageMakerProjectId: Type: String
…
<<other parameters>>
…
Resources: MlOpsArtifactsBucket: Type: AWS::S3::Bucket DeletionPolicy: Retain Properties: BucketName: …
… ModelDeployCodeCommitRepository: Type: AWS::CodeCommit::Repository Properties: RepositoryName: … RepositoryDescription: … Code: S3: Bucket: … Key: …
… ModelDeployBuildProject: Type: AWS::CodeBuild::Project
… ModelDeployPipeline: Type: AWS::CodePipeline::Pipeline
…

टेम्प्लेट के दो मुख्य भाग हैं: Parameters (टेम्पलेट के इनपुट पैरामीटर्स) और Resources। SageMaker प्रोजेक्ट टेम्प्लेट की आवश्यकता है कि आप अपने टेम्पलेट में दो इनपुट पैरामीटर जोड़ते हैं: SageMakerProjectName और SageMakerProjectId। इन मापदंडों का उपयोग SageMaker Studio द्वारा आंतरिक रूप से किया जाता है। यदि आवश्यक हो तो आप अन्य मापदंडों को जोड़ सकते हैं।

स्निपेट के संसाधन अनुभाग में, आप देख सकते हैं कि यह निम्नलिखित बनाता है:

  • एक नई S3 बाल्टी, जिसका उपयोग CI / CD पाइपलाइन द्वारा मध्यस्थ कलाकृतियों को संग्रहीत करने के लिए एक चरण से दूसरे चरण में किया जाता है।
  • An AWS कोडकॉमिट तैनाती और परीक्षण चरणों के दौरान उपयोग की जाने वाली कलाकृतियों को संग्रहीत करने के लिए भंडार।
  • An एडब्ल्यूएस कोडबिल्ड कलाकृतियों को प्राप्त करने के लिए परियोजना, और परियोजना के लिए उन्हें मान्य और कॉन्फ़िगर करें। मल्टी-अकाउंट टेम्प्लेट में, यह परियोजना एक नया मॉडल रजिस्ट्री भी बनाती है, जिसका उपयोग CI / CD पाइपलाइन द्वारा नए मॉडल को तैनात करने के लिए किया जाता है।
  • एक CodePipeline वर्कफ़्लो जो CI / CD पाइपलाइनों के सभी चरणों को ऑर्केस्ट्रेट करता है।

हर बार जब आप मॉडल रजिस्ट्री के लिए एक नया मॉडल पंजीकृत करते हैं या CodeCommit रेपो में एक नया विरूपण साक्ष्य धक्का देते हैं, तो यह CodePipeline वर्कफ़्लो शुरू होता है। इन घटनाओं को एक द्वारा कब्जा कर लिया जाता है EventBridge नियम, उसी टेम्पलेट द्वारा प्रावधानित। CI / CD पाइपलाइन में निम्नलिखित चरण हैं:

  • स्रोत - CodeCommit भंडार से कलाकृतियों को पढ़ता है और अन्य चरणों के साथ साझा करता है।
  • बनाएँ - निम्नलिखित करने के लिए CodeBuild प्रोजेक्ट चलाता है:
    • सत्यापित करें कि क्या एक मॉडल रजिस्ट्री पहले से ही बनाई गई है, और यदि आवश्यक हो तो एक बनाएं।
    • एक नया CloudFormation टेम्पलेट तैयार करें जो अगले दो परिनियोजन चरणों द्वारा उपयोग किया जाता है।
  • नियुक्त करना - निम्नलिखित घटक शामिल हैं:
    • DeployResourceStaging - में तैयार CloudFormation टेम्प्लेट हो जाता है Build कदम और एक नया ढेर तैनात करता है। यह स्टैक लक्ष्य खाते में एक नया SageMaker समापन बिंदु दिखाता है।
    • टेस्टस्टेजिंग - एक दूसरा कोडबुइल्ड प्रोजेक्ट को आमंत्रित करता है जो एक कस्टम पायथन स्क्रिप्ट चलाता है जो तैनात किए गए समापन बिंदु का परीक्षण करता है।
    • अनुमोदन - एक मैनुअल अनुमोदन कदम। यदि अनुमोदित है, तो यह उत्पादन में एक समापन बिंदु को तैनात करने के लिए अगले चरण पर जाता है, या यदि अनुमोदित नहीं है तो वर्कफ़्लो को समाप्त करता है।
  • DeployProd - के समान DeployStaging, यह एक ही CloudFormation टेम्पलेट का उपयोग करता है, लेकिन विभिन्न इनपुट मापदंडों के साथ। यह उत्पादन खाते में एक नए SageMaker समापन बिंदु को दर्शाता है। 

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

निष्कर्ष और अगले कदम

इस पोस्ट में, आपने देखा कि SageMaker पाइपलाइनों का उपयोग करके कई AWS खातों में ML मॉडल को प्रशिक्षित और तैनात करने के लिए अपने स्वयं के वातावरण को कैसे तैयार किया जाए।

SageMaker प्रोजेक्ट्स के साथ, यदि आप SageMaker प्रोजेक्ट टेम्प्लेट की लाइब्रेरी के रूप में अपने ML प्रोजेक्ट्स को प्रबंधित करना शुरू करते हैं, तो आपके पर्यावरण के शासन और सुरक्षा में काफी सुधार हो सकता है।

अगले चरण के रूप में, SageMaker प्रोजेक्ट टेम्पलेट को संशोधित करने का प्रयास करें और इसे अपने संगठन की आवश्यकताओं को पूरा करने के लिए अनुकूलित करें। जितने चाहें उतने चरण जोड़ें और ध्यान रखें कि आप CI / CD ईवेंट को कैप्चर कर सकते हैं और उपयोगकर्ताओं को सूचित कर सकते हैं या व्यापक समाधान बनाने के लिए अन्य सेवाओं को कॉल कर सकते हैं।


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

समीर अरुजो AWS / ML Solutions Architect in AWS है। वह एआईएस / एमएल समाधान बनाने वाले ग्राहकों को एडब्ल्यूएस प्लेटफॉर्म का उपयोग करके अपनी व्यावसायिक चुनौतियों को हल करने में मदद करता है। वह कंप्यूटर दृष्टि, प्राकृतिक भाषा प्रसंस्करण, पूर्वानुमान, किनारे पर एमएल, आदि से संबंधित कई एआई / एमएल परियोजनाओं पर काम कर रहे हैं। वह अपने खाली समय में हार्डवेयर और स्वचालन परियोजनाओं के साथ खेलना पसंद करते हैं, और रोबोटिक्स के लिए उनकी विशेष रुचि है।

स्रोत: https://aws.amazon.com/blogs/machine-learning/multi-account-model-deployment-with-amazon-sagemaker-pipelines/

पढ़ना जारी रखें

AI

ऐ वीकली: बिडेन ने चिप की कमी को दूर करने के लिए $ 37 बिलियन का आह्वान किया

अवतार

प्रकाशित

on

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


राष्ट्रपति बिडेन ने इस सप्ताह एक आपूर्ति श्रृंखला के कार्यकारी आदेश पर हस्ताक्षर किए और सेमीकंडक्टर की कमी को दूर करने के लिए $ 37 बिलियन का समर्थन किया।विस्तार में पढ़ें स्रोत: https://vtbeat.com/2021/02/26/ai-weekly-biden-calls-for-37-billion-to-address-chip-shortage/

पढ़ना जारी रखें

AI

TensorFlow: एक धोखा पत्र

अवतार

प्रकाशित

on

TensorFlow Google द्वारा डेटा प्रवाह ग्राफ़ के साथ संख्यात्मक अभिकलन के लिए विकसित एक खुला स्रोत सॉफ़्टवेयर लाइब्रेरी है। यह TensorFlow गाइड में पुस्तकालय क्यों मायने रखता है, इसका उपयोग कैसे करना है, आदि शामिल हैं। स्रोत: https://www.techrepublic.com/article/tensorflow-googles-open-source-software-library-for-machine-learning-the-smart-persons-guide/#ftag-RSS56d97e7

पढ़ना जारी रखें

AI

Amazon Athena, Amazon Translate और Amazon Comprehend के साथ SQL फ़ंक्शन का उपयोग करके पाठ का अनुवाद और विश्लेषण करें

अवतार

प्रकाशित

on

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

आप पहले से ही जानते हैं कि कैसे उपयोग करना है अमेज़न एथेना सरल एसक्यूएल कमांड और एथेना में अंतर्निहित कार्यों का उपयोग करके अमेज़ॅन एस 3 में डेटा को बदलना। अब आप एथेना का उपयोग टेक्स्ट फ़ील्ड के अनुवाद और विश्लेषण के लिए भी कर सकते हैं, धन्यवाद अमेज़न अनुवाद, Amazon Comprehend, और एथेना यूजर डिफाइंड फंक्शंस (यूडीएफ) की शक्ति।

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

  • एक पाठ क्षेत्र की प्रमुख भाषा का पता लगाएं
  • व्यक्त की गई प्रचलित धारणा का पता लगाएं- सकारात्मक, नकारात्मक, न तो या दोनों
  • डिटेक्ट या रिडक्ट इकाइयाँ (जैसे आइटम, स्थान या मात्रा)
  • PII का पता लगाएं या उसका निवारण करें
  • एक भाषा से दूसरी भाषा में पाठ का अनुवाद करें

यह पोस्ट निम्नलिखित लक्ष्यों को पूरा करती है:

  • आपको दिखाएं कि अपने AWS खाते में टेक्स्ट एनालिटिक्स फ़ंक्शंस को जल्दी से कैसे सेट करें (यह तेज़ और आसान है!)
  • संक्षेप में बताएं कि फ़ंक्शन कैसे काम करता है
  • प्रदर्शन और लागत पर चर्चा करें
  • एक ट्यूटोरियल प्रदान करें जहां हम अमेज़न उत्पाद समीक्षाओं पर कुछ पाठ विश्लेषिकी करते हैं
  • सभी उपलब्ध कार्यों का वर्णन करें

हम पोस्ट के अंत में सभी उपलब्ध कार्यों की एक सूची शामिल करते हैं; निम्नलिखित कोड कुछ उदाहरण प्रश्न और परिणाम दिखाता है:

USING FUNCTION detect_sentiment(text_col VARCHAR, lang VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT detect_sentiment('I am very happy', 'en') as sentiment sentiment POSITIVE USING FUNCTION detect_pii_entities(text_col VARCHAR, lang VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT detect_pii_entities('I am Bob, I live in Herndon VA, and I love cars', 'en') as pii pii [["NAME","Bob"],["ADDRESS","Herndon VA"]] USING FUNCTION redact_pii_entities(text_col VARCHAR, lang VARCHAR, type VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT redact_pii_entities('I am Bob, I live in Herndon VA, and I love cars', 'en', 'NAME,ADDRESS') as pii_redacted pii_redacted I am [NAME], I live in [ADDRESS], and I love cars USING FUNCTION translate_text(text_col VARCHAR, sourcelang VARCHAR, targetlang VARCHAR, terminologyname VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT translate_text('It is a beautiful day in the neighborhood', 'auto', 'fr', NULL) as translated_text translated_text C'est une belle journée dans le quartier

टेक्स्ट एनालिटिक्स UDF इंस्टॉल करें

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

निम्न चरणों के साथ prebuilt Lambda फ़ंक्शन स्थापित करें:

  1. पर नेविगेट करें टेक्स्टअनलीटिक्ससुफ़हैंडलर में आवेदन AWS सर्वर रहित अनुप्रयोग रिपॉजिटरी.
  2. में अनुप्रयोग सेटिंग्स अनुभाग, उनकी चूक पर सेटिंग्स रखें।
  3. चुनते हैं मैं स्वीकार करता हूं कि यह ऐप कस्टम IAM भूमिका बनाता है.
  4. चुनें तैनाती.

और बस! अब आपके पास एक नया लैंबडा फंक्शन है textanalytics-udf। आप एथेना में कुछ पाठ विश्लेषिकी प्रश्नों की कोशिश करने के लिए तैयार हैं।

यदि आप इसके बजाय स्रोत कोड से निर्माण और तैनाती करना पसंद करते हैं, तो अंत में दिशाएं देखें गिटहब रिपॉजिटरी README.

अपना पहला टेक्स्ट एनालिटिक्स क्वेरी चलाएँ

यदि आप एथेना के लिए नए हैं, तो आप समीक्षा कर सकते हैं Getting Started मार्गदर्शक।

इस लेखन के रूप में, एथेना यूडीएफ सुविधा अभी भी पूर्वावलोकन में है। इसे सक्षम करने के लिए, नाम से एक एथेना कार्यसमूह बनाएं AmazonAthenaPreviewFunctionality और उस कार्यसमूह से सभी UDF क्वेरी चलाएं।

SQL संपादक में निम्न क्वेरी दर्ज करें:

USING FUNCTION detect_sentiment(text_col VARCHAR, lang VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT detect_sentiment('I am very happy', 'en') as sentiment

आप एक सरल प्राप्त करें POSITIVE परिणाम। अब फिर से कोशिश करें, इनपुट टेक्स्ट को अलग-अलग करें - यह देखने के लिए कुछ कम सकारात्मक प्रयास करें कि लौटे हुए भाव कैसे बदलते हैं।

प्रत्येक संभावित भावना मान के लिए आत्मविश्वास स्कोर के साथ भावना प्राप्त करने के लिए, इसके बजाय निम्नलिखित क्वेरी का उपयोग करें:

USING FUNCTION detect_sentiment_all(text_col VARCHAR, lang VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT detect_sentiment_all('I am very happy', 'en') as sentiment

अब आपको एक JSON स्ट्रिंग है जिसमें सेंटीमेंट और सभी सेंटीमेंट स्कोर शामिल हैं:

{"sentiment":"POSITIVE","sentimentScore":{"positive":0.999519,"negative":7.407639E-5,"neutral":2.7478999E-4,"mixed":1.3210243E-4}}

आप का उपयोग कर सकते हैं अंतर्निहित JSON निष्कर्षण फ़ंक्शन एथेना में इस परिणाम पर आगे के विश्लेषण के लिए खेतों को निकालने के लिए।

यूडीएफ कैसे काम करता है

एथेना यूडीएफ ढांचे के बारे में अधिक जानकारी के लिए, देखें उपयोगकर्ता परिभाषित क्रियाओं के साथ क्वेरी करना.

जावा वर्ग टेक्स्टअनलीटिक्ससुफ़हैंडलर हमारे यूडीएफ लैम्ब्डा फ़ंक्शन हैंडलर को लागू करता है। इस क्लास में प्रत्येक टेक्स्ट एनालिटिक्स फ़ंक्शन की एक समान सार्वजनिक विधि है।

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

Amazon Comprehend API सेवा कोटा अनजाने उच्च उपयोग से आपकी लागत जोखिम को सीमित करने के लिए रेलिंग प्रदान करें (हम निम्नलिखित अनुभाग में इस पर अधिक चर्चा करते हैं)। डिफ़ॉल्ट रूप से, बहु-दस्तावेज़ बैच APIs प्रति सेकंड 250 रिकॉर्ड तक प्रक्रिया करते हैं, और एकल-दस्तावेज़ APIs 20 रिकॉर्ड प्रति सेकंड तक प्रक्रिया करते हैं। हमारे UDFs इन सीमाओं के भीतर रहने के लिए अनुरोध दर को नियंत्रित करने के लिए घातीय बैक ऑफ और रिट्री का उपयोग करते हैं। आप एपीआई का उपयोग करने के लिए दूसरे कोटे के लेनदेन में वृद्धि का अनुरोध कर सकते हैं कोटा अनुरोध टेम्पलेट पर एडब्ल्यूएस प्रबंधन कंसोल.

Amazon Comprehend और Amazon Translate प्रत्येक में अधिकतम 5,000 स्ट्रिंग बाइट्स की अधिकतम इनपुट स्ट्रिंग लंबाई लागू होती है। टेक्स्ट फ़ील्ड जो 8 utf-5,000 बाइट्स से अधिक लंबे होते हैं, उन्हें भाषा और भावना का पता लगाने के लिए 8 बाइट्स के लिए छोटा कर दिया जाता है, और अनुवाद और निकाय या PII डिटेक्शन और रिडक्शन के लिए 5,000 बाइट्स के कई टेक्स्ट ब्लॉक में वाक्य सीमाओं पर विभाजित किया जाता है। परिणाम तो संयुक्त हैं।

लागत का अनुकूलन

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

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

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

बड़ी संख्या में अलग-अलग रिकॉर्ड वाली टेबलों पर टेक्स्ट एनालिटिक्स प्रश्नों को चलाने से पहले हमेशा संभावित लागत का आकलन करें।

इस खंड में, हम दो उदाहरण लागत आकलन प्रदान करते हैं।

उदाहरण 1: ट्वीट की भाषा और भाव का विश्लेषण करें

मान लेते हैं कि आपके पास 10,000 ट्वीट रिकॉर्ड हैं, जिसकी औसत लंबाई 100 वर्ण प्रति ट्वीट है। आपकी SQL क्वेरी प्रत्येक ट्वीट के लिए प्रमुख भाषा और भाव का पता लगाती है। आप अपनी सेवा के दूसरे वर्ष में हैं (फ्री टियर अब लागू नहीं होता)। लागत विवरण इस प्रकार हैं:

  • प्रत्येक ट्वीट का आकार = 100 वर्ण
  • इकाइयों की संख्या (100 वर्ण) प्रति रिकॉर्ड (न्यूनतम 3 इकाइयाँ) = 3 है
  • कुल इकाइयाँ: 10,000 (रिकॉर्ड) x 3 (प्रति रिकॉर्ड इकाइयाँ) x 2 (प्रति रिकॉर्ड अमेज़न अनुरोध) = 60,000
  • मूल्य प्रति यूनिट = $ 0.0001
  • अमेज़ॅन कॉम्प्रिहेंड के लिए कुल लागत = [इकाइयों की संख्या] x [लागत प्रति यूनिट] = 60,000 x $ 0.0001 = $ 6.00 

उदाहरण 2: ट्वीट का अनुवाद करें

मान लेते हैं कि आपके ट्वीट्स में से 2,000 आपकी स्थानीय भाषा में नहीं हैं, इसलिए आप उन्हें ट्रांसलेट करने के लिए दूसरी SQL क्वेरी चलाते हैं। लागत विवरण इस प्रकार हैं:

  • प्रत्येक ट्वीट का आकार = 100 वर्ण
  • कुल वर्ण: 2,000 (रिकॉर्ड) * 100 (रिकॉर्ड प्रति वर्ण) x 1 (प्रति रिकॉर्ड अनुवाद का अनुरोध) = 200,000
  • मूल्य प्रति वर्ण = $ 0.000015
  • अमेज़ॅन अनुवाद के लिए कुल लागत = [वर्णों की संख्या] x [लागत प्रति चरित्र] = 200,000 x $ 0.000015 = $ 3.00

ग्राहक समीक्षाओं से अंतर्दृष्टि का विश्लेषण करें

यह हमारे नए पाठ विश्लेषिकी प्रश्नों को उपयोग करने का समय है।

ग्राहक समीक्षा से कार्रवाई योग्य अंतर्दृष्टि प्राप्त करने के लिए एक ट्यूटोरियल के लिए, देखें ट्यूटोरियल: Amazon Comprehend के साथ ग्राहक समीक्षा से अंतर्दृष्टि का विश्लेषण। यह पोस्ट उसी चुनौती के लिए एक वैकल्पिक दृष्टिकोण प्रदान करती है: एथेना और अमेज़ॅन कॉम्प्रिहेंड द्वारा संचालित एसक्यूएल प्रश्नों का उपयोग करना।

ट्यूटोरियल को पूरा होने में लगभग 10 मिनट लगते हैं, और अमेज़ॅन कॉम्प्रिहेंड के लिए $ 6 तक का खर्च आता है - अगर आप फ्री टियर के लिए पात्र हैं तो कोई लागत नहीं है।

एथेना में एक नया डेटाबेस बनाएँ

एथेना क्वेरी संपादक में निम्नलिखित क्वेरी चलाएँ:

CREATE DATABASE IF NOT EXISTS comprehendresults;

अपने डेटा स्रोत को कनेक्ट करते समय, अपना नया डेटाबेस चुनें।

ग्राहक समीक्षा डेटा युक्त एक स्रोत तालिका बनाएँ

हम उपयोग अमेज़न ग्राहक समीक्षा डेटासेट, अमेज़ॅन S3 में सार्वजनिक पहुंच के लिए सुविधाजनक रूप से होस्ट किया गया है।

  1. एथेना क्वेरी संपादक में निम्नलिखित क्वेरी चलाएँ:
    CREATE EXTERNAL TABLE amazon_reviews_parquet( marketplace string, customer_id string, review_id string, product_id string, product_parent string, product_title string, star_rating int, helpful_votes int, total_votes int, vine string, verified_purchase string, review_headline string, review_body string, review_date bigint, year int)
    PARTITIONED BY (product_category string)
    ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
    LOCATION 's3://amazon-reviews-pds/parquet/'
    

  1. के अंतर्गत टेबल्स, नई तालिका amazon_reviews_parquet खोजें।
  2. विकल्प मेनू से, चुनें विभाजन को लोड करें.
  1. नई तालिका का पूर्वावलोकन करें, amazon_reviews_parquet.
  1. औसत समीक्षा लंबाई का आकलन करने के लिए निम्नलिखित क्वेरी चलाएँ:
    SELECT AVG(LENGTH(review_body)) AS average_review_length FROM amazon_reviews_parquet

औसत समीक्षा की लंबाई लगभग 365 वर्ण है। यह प्रति रिकॉर्ड 4 अमेज़ॅन कॉम्प्रिहेंस यूनिट (1 यूनिट = 100 वर्ण) के बराबर है।

प्रत्येक समीक्षा के लिए भाषा का पता लगाएं

प्रत्येक समीक्षा की भाषा का पता लगाने के लिए, एथेना क्वेरी एडिटर में निम्नलिखित क्वेरी चलाएँ- इसे चलाने में केवल 1 मिनट से अधिक समय लगता है और $ 2 खर्च होता है:

CREATE TABLE amazon_reviews_with_language WITH (format='parquet') AS
USING FUNCTION detect_dominant_language(col1 VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf')
SELECT *, detect_dominant_language(review_body) AS language
FROM amazon_reviews_parquet
LIMIT 5000

यह क्वेरी एक नई तालिका बनाता है, amazon_reviews_with_language, एक नए कॉलम के साथ जोड़ा गया: language। लिमिट क्लॉज रिकॉर्ड की संख्या को 5,000 तक सीमित करता है।

लागत के रूप में गणना की जाती है: 5,000 (रिकॉर्ड) x 4 (प्रति रिकॉर्ड इकाइयाँ) x 1 (रिकॉर्ड के अनुसार अनुरोध) x $ 0.0001 (प्रति इकाई अमेज़न मूल्य) = $ 2। 

प्रत्येक भाषा के लिए समीक्षाओं की गणना के साथ, पता लगाए गए भाषा कोड को देखने के लिए निम्नलिखित क्वेरी को चलाएं:

SELECT language, count(*) AS count FROM amazon_reviews_with_language GROUP BY language ORDER BY count DESC

प्रत्येक समीक्षा के लिए भावना और संस्थाओं का पता लगाएं

भावना का पता लगाने के लिए, एथेना क्वेरी एडिटर में निम्न क्वेरी को चलाएं- इसमें दो टेक्स्ट एनालिटिक्स फ़ंक्शंस का उपयोग किया जाता है, इसे चलाने में लगभग 1 मिनट लगता है, और इसकी लागत $ 4 होती है:

CREATE TABLE amazon_reviews_with_text_analysis WITH (format='parquet') AS
USING FUNCTION detect_sentiment_all(col1 VARCHAR, lang VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf'), FUNCTION detect_entities_all(col1 VARCHAR, lang VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf')
SELECT *, detect_sentiment_all(review_body, language) AS sentiment, detect_entities_all(review_body, language) AS entities
FROM amazon_reviews_with_language
WHERE language IN ('ar', 'hi', 'ko', 'zh-TW', 'ja', 'zh', 'de', 'pt', 'en', 'it', 'fr', 'es')

यह क्वेरी एक नई तालिका बनाता है, amazon_reviews_with_text_analysisदो अतिरिक्त स्तंभों के साथ: sentiment और entities। WHERE क्लॉज़ परिणाम को अमेज़ॅन कॉम्प्रिहेंशन सेंटिमेंट और एंटिटी डिटेक्शन द्वारा समर्थित भाषाओं की सूची में सेट करता है।

लागत के रूप में गणना की जाती है: 5,000 (रिकॉर्ड) x 4 (प्रति रिकॉर्ड इकाइयाँ) x 2 (रिकॉर्ड के अनुसार अनुरोध) x $ 0.0001 (प्रति इकाई अमेज़न मूल्य) = $ 4।

नई तालिका का पूर्वावलोकन करें और नए के लिए कुछ मानों का निरीक्षण करें sentiment और entities कॉलम। इनमें नेस्टेड स्ट्रक्चर और फील्ड के साथ JSON स्ट्रिंग्स हैं।

निम्न स्क्रीनशॉट दिखाता है sentiment कॉलम विवरण।

निम्न स्क्रीनशॉट संस्थाओं कॉलम विवरण दिखाता है।

अगला, हम विश्लेषण के लिए इन स्तंभों को तैयार करने के लिए एथेना में JSON फ़ंक्शन का उपयोग करते हैं।

विश्लेषण के लिए भावना तैयार करें

एक नया टेबल बनाने के लिए निम्न SQL क्वेरी चलाएँ जिसमें सेंटीमेंट और सेंटीमेंट स्कोर अलग कॉलम में विस्तारित हैं:

CREATE TABLE sentiment_results_final WITH (format='parquet') AS
SELECT review_date, year, product_title, star_rating, language, CAST(JSON_EXTRACT(sentiment,'$.sentiment') AS VARCHAR) AS sentiment, CAST(JSON_EXTRACT(sentiment,'$.sentimentScore.positive') AS DOUBLE ) AS positive_score, CAST(JSON_EXTRACT(sentiment,'$.sentimentScore.negative') AS DOUBLE ) AS negative_score, CAST(JSON_EXTRACT(sentiment,'$.sentimentScore.neutral') AS DOUBLE ) AS neutral_score, CAST(JSON_EXTRACT(sentiment,'$.sentimentScore.mixed') AS DOUBLE ) AS mixed_score, review_headline, review_body
FROM amazon_reviews_with_text_analysis

नए का पूर्वावलोकन करें sentiment_results_final तालिका (निम्न स्क्रीनशॉट देखें)। क्या आम तौर पर भावना पाठ के साथ संरेखित होती है review_body मैदान? यह कैसे सहसंबद्ध है? star_rating? यदि आप किसी भी संदिग्ध भावना असाइनमेंट को देखते हैं, तो यह देखने के लिए कि क्या कम भावना के साथ असाइन किया गया था, आत्मविश्वास स्कोर की जाँच करें।

विश्लेषण के लिए इकाइयाँ तैयार करें

एक अलग स्तंभ (बाहरी क्वेरी) में प्रत्येक क्षेत्र के साथ अलग-अलग पंक्तियों (आंतरिक उप-वर्ग) में अनावश्यक पहचान वाली एक नई तालिका बनाने के लिए निम्न SQL क्वेरी चलाएँ:

CREATE TABLE entities_results_final WITH (format='parquet') AS
SELECT review_date, year, product_title, star_rating, language, CAST(JSON_EXTRACT(entity_element, '$.text') AS VARCHAR ) AS entity, CAST(JSON_EXTRACT(entity_element, '$.type') AS VARCHAR ) AS category, CAST(JSON_EXTRACT(entity_element, '$.score') AS DOUBLE ) AS score, CAST(JSON_EXTRACT(entity_element, '$.beginOffset') AS INTEGER ) AS beginoffset, CAST(JSON_EXTRACT(entity_element, '$.endOffset') AS INTEGER ) AS endoffset, review_headline, review_body
FROM
( SELECT * FROM ( SELECT *, CAST(JSON_PARSE(entities) AS ARRAY(json)) AS entities_array FROM amazon_reviews_with_text_analysis ) CROSS JOIN UNNEST(entities_array) AS t(entity_element)
)

नई तालिका की सामग्री का पूर्वावलोकन करें, entities_results_final (निम्नलिखित स्क्रीनशॉट देखें).

अमेज़ॅन क्विकसाइट (वैकल्पिक) में विज़ुअलाइज़ करें

एक वैकल्पिक कदम के रूप में, आप अपने परिणामों की कल्पना कर सकते हैं अमेज़न क्विकसाइट। निर्देशों के लिए, देखें चरण 5: अमेज़ॅन क्विकसाइट में अमेज़ॅन कॉम्प्रिहेंशन आउटपुट को विज़ुअलाइज़ करना.

आप पेड़ों के नक्शे के बजाय संस्थाओं के लिए नए शब्द क्लाउड विज़ुअल प्रकार का उपयोग कर सकते हैं। शब्द बादल चार्ट मेनू में, का चयन करें "अन्य" श्रेणियां छुपाएं.

अब आपके पास सेंटीमेंट और एंटिटी विज़ुअलाइज़ेशन वाला एक डैशबोर्ड है जो निम्न स्क्रीनशॉट के समान है।

समस्या निवारण

यदि आपकी क्वेरी विफल रहती है, तो जाँच करें अमेज़ॅन क्लाउडवॉच यूडीएफ लैम्बडा फ़ंक्शन द्वारा उत्पन्न मैट्रिक्स और लॉग।

  1. लैम्ब्डा कंसोल पर, खोजें textanalytics-udf समारोह.
  2. चुनें निगरानी.

आप क्लाउडवॉच मेट्रिक्स दिखा सकते हैं कि कितनी बार फ़ंक्शन चला, कितनी देर तक चलता है, कितनी बार विफल हुआ, और बहुत कुछ।

  1. चुनें CloudWatch में लॉग देखें अतिरिक्त समस्या निवारण अंतर्दृष्टि के लिए फ़ंक्शन लॉग स्ट्रीम खोलने के लिए।

लेम्बडा के माध्यम से CloudWatch मैट्रिक्स देखने के बारे में अधिक जानकारी के लिए, देखें लैंबडा कंसोल का उपयोग करना.

अतिरिक्त उपयोग के मामले

SQL पाठ विश्लेषण कार्यों के लिए कई उपयोग के मामले हैं। इस पोस्ट में दिखाए गए उदाहरण के अलावा, निम्नलिखित पर विचार करें:

  • वृद्धिशील एसक्यूएल प्रश्नों का उपयोग करके ईटीएल पाइपलाइनों को सरल बनाएं, पाठ डेटा को भावनाओं और संस्थाओं के साथ समृद्ध करने के लिए, जैसे कि सोशल मीडिया स्ट्रीम स्ट्रीमिंग द्वारा अमेज़न Kinesis डेटा Firehose
  • अपने ग्राहक सहायता ग्रंथों, ईमेल और समर्थन मामलों में भावना और संस्थाओं का पता लगाने के लिए SQL क्वेरी का उपयोग करें
  • ग्राहक या रोगी बातचीत से पीआईआई को फिर से तैयार करके शोध-तैयार डेटासेट तैयार करें
  • कई भाषाओं को एक सामान्य भाषा में मानकीकृत करें

इन कार्यों के लिए आपके पास अतिरिक्त उपयोग के मामले हो सकते हैं, या अतिरिक्त क्षमताएं जिन्हें आप जोड़कर देखना चाहते हैं, जैसे कि निम्नलिखित हैं:

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

इसके अतिरिक्त, कार्यान्वयन खुला स्रोत है, जिसका अर्थ है कि आप रेपो को क्लोन कर सकते हैं, कार्य को संशोधित और विस्तारित कर सकते हैं जैसा कि आप फिट देखते हैं, और (उम्मीद है) हमें पुल अनुरोध भेजें ताकि हम आपके सुधार को प्रोजेक्ट में वापस मर्ज कर सकें और इसे बेहतर बना सकें सब लोग।

सफाई करना

इस ट्यूटोरियल को पूरा करने के बाद, आप किसी भी AWS संसाधन को साफ़ करना चाहते हैं, जिसका आप अब उपयोग नहीं करना चाहते हैं। सक्रिय AWS संसाधन आपके खाते में शुल्क लगाना जारी रख सकते हैं।

  1. एथेना में, डेटाबेस और सभी तालिकाओं को छोड़ने के लिए निम्नलिखित क्वेरी चलाएँ:
    DROP DATABASE comprehendresults CASCADE

  1. AWS CloudFormation में, स्टैक को हटाएं serverlessrepo-TextAnalyticsUDFHandler.
  2. अपनी QuickSight सदस्यता रद्द करें.

निष्कर्ष

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

कृपया अपने विचार हमारे साथ टिप्पणी अनुभाग में, या परियोजना के मुद्दों अनुभाग में साझा करें गिटहब भंडार.

परिशिष्ट: उपलब्ध फ़ंक्शन संदर्भ

यह खंड वर्तमान में प्रदान किए गए कार्यों को संक्षेप में प्रस्तुत करता है। README फ़ाइल अतिरिक्त विवरण प्रदान करती है।

भाषा का पता लगाने

यह फ़ंक्शन Amazon Comprehend का उपयोग करता है बैचडक्टेक्टडोमिनेंटलंगेज एपीआई इनपुट पाठ के पहले 5,000 बाइट्स के आधार पर प्रमुख भाषा की पहचान करने के लिए।

निम्नलिखित कोड एक भाषा कोड देता है, जैसे कि फ्रेंच के लिए fr या अंग्रेजी के लिए en:

USING FUNCTION detect_dominant_language(text_col VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT detect_dominant_language('il fait beau à Orlando') as language

निम्नलिखित कोड भाषा कोड और इसी विश्वास स्कोर के एक JSON स्वरूपित सरणी देता है:

USING FUNCTION detect_dominant_language_all(text_col VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT detect_dominant_language_all('il fait beau à Orlando') as language_all

भाव का पता लगाएं

यह फ़ंक्शन Amazon Comprehend का उपयोग करता है BatchDetectSentiment एपीआई इनपुट पाठ के पहले 5,000 बाइट्स के आधार पर भावना की पहचान करने के लिए।

निम्न कोड पोसिटिव, NEGATIVE, NEUTRAL या MIXED के रूप में एक भाव देता है:

USING FUNCTION detect_sentiment(text_col VARCHAR, lang VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT detect_sentiment('Joe is very happy', 'en') as sentiment

निम्नलिखित कोड एक JSON स्वरूपित वस्तु देता है जिसमें प्रत्येक भावना मूल्य के लिए पहचाने गए भाव और आत्मविश्वास स्कोर होते हैं:

USING FUNCTION detect_sentiment_all(text_col VARCHAR, lang VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT detect_sentiment_all('Joe is very happy', 'en') as sentiment_all

संस्थाओं का पता लगाएं

यह फ़ंक्शन Amazon Comprehend का उपयोग करता है पता लगाने की क्षमता पीआईआई की पहचान करने के लिए एपीआई। कई अमेजन कॉम्प्रिहेंशन एपीआई कॉल में 5,000 बाइट्स से अधिक लंबे समय तक इनपुट टेक्स्ट होता है।

निम्न कोड एक JSON स्वरूपित ऑब्जेक्ट देता है जिसमें एक सरणी होती है इकाई प्रकार और मान:

USING FUNCTION detect_entities(text_col VARCHAR, lang VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT detect_entities('His name is Joe, he lives in Richmond VA, he bought an Amazon Echo Show on January 5th, and he loves it', 'en') as entities

निम्न कोड एक JSON स्वरूपित वस्तु देता है जिसमें PII इकाई प्रकारों की एक सरणी होती है, जिसमें उनके मान, स्कोर और वर्ण ऑफर्स शामिल होते हैं:

USING FUNCTION detect_entities_all(text_col VARCHAR, lang VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT detect_entities_all('His name is Joe, he lives in Richmond VA, he bought an Amazon Echo Show on January 5th, and he loves it', 'en') as entities_all

कम करने वाली इकाइयाँ

यह फ़ंक्शन निर्दिष्ट निकाय प्रकारों के लिए इकाई मानों की जगह “[ENTITY_TYPE]”। कई अमेजन कॉम्प्रिहेंशन एपीआई कॉल में 5,000 बाइट्स से अधिक लंबे समय तक इनपुट टेक्स्ट होता है। निम्नलिखित कोड देखें:

USING FUNCTION redact_entities(text_col VARCHAR, lang VARCHAR, types VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT redact_entities('His name is Joe, he lives in Richmond VA, he bought an Amazon Echo Show on January 5th, and he loves it', 'en', 'ALL') as entities_redacted

कमांड इनपुट स्ट्रिंग पर एक redacted संस्करण देता है। एक या अधिक निर्दिष्ट करें इकाई प्रकार मान्य की अल्पविराम से अलग की गई सूची प्रदान करके फिर से तैयार करना types प्रकार में स्ट्रिंग पैरामीटर, या ALL सभी प्रकार को कम करने के लिए।

PII का पता लगाएं

यह फ़ंक्शन उपयोग करता है DetectPiiEntities पीआईआई की पहचान करने के लिए एपीआई। कई अमेजन कॉम्प्रिहेंशन एपीआई कॉल में 5,000 बाइट्स से अधिक लंबे समय तक इनपुट टेक्स्ट होता है।

निम्न कोड एक JSON स्वरूपित ऑब्जेक्ट देता है जिसमें एक सरणी होती है PII इकाई प्रकार और मान:

USING FUNCTION detect_pii_entities(text_col VARCHAR, lang VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT detect_pii_entities('His name is Joe, his username is joe123 and he lives in Richmond VA', 'en') as pii

निम्न कोड एक JSON स्वरूपित वस्तु देता है जिसमें PII इकाई प्रकारों की एक सरणी होती है, जिसमें उनके स्कोर और वर्ण ऑफ़सेट होते हैं:

USING FUNCTION detect_pii_entities_all(text_col VARCHAR, lang VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT detect_pii_entities_all('His name is Joe, his username is joe123 and he lives in Richmond VA', 'en') as pii_all

Redact PII

यह फ़ंक्शन निर्दिष्ट PII इकाई प्रकारों के लिए PII मानों की जगह लेता है "[PII_ENTITY_TYPE]”। कई अमेजन कॉम्प्रिहेंशन एपीआई कॉल में 5,000 बाइट्स से अधिक लंबे समय तक इनपुट टेक्स्ट होता है। निम्नलिखित कोड देखें:

USING FUNCTION redact_pii_entities(text_col VARCHAR, lang VARCHAR, types VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT redact_pii_entities('His name is Joe, his username is joe123 and he lives in Richmond VA', 'en', 'ALL') as pii_redacted

फ़ंक्शन इनपुट स्ट्रिंग पर एक redacted संस्करण देता है। एक या अधिक निर्दिष्ट करें PII इकाई प्रकार में मान्य प्रकारों की अल्पविराम से पृथक सूची प्रदान करके पुनः प्राप्त करना type स्ट्रिंग पैरामीटर, या ALL सभी प्रकार को कम करने के लिए।

पाठ का अनुवाद करें

यह फ़ंक्शन स्रोत भाषा से भाषा को लक्षित करने के लिए पाठ का अनुवाद करता है। कई अमेज़न अनुवाद एपीआई कॉल्स में 5,000 बाइट्स से अधिक लंबे समय तक इनपुट टेक्स्ट होता है। निम्नलिखित कोड देखें:

USING FUNCTION translate_text(text_col VARCHAR, sourcelang VARCHAR, targetlang VARCHAR, customterminologyname VARCHAR) RETURNS VARCHAR TYPE LAMBDA_INVOKE WITH (lambda_name = 'textanalytics-udf') SELECT translate_text('It is a beautiful day in the neighborhood', 'auto', 'fr', NULL) as translated_text

फ़ंक्शन अनुवादित स्ट्रिंग लौटाता है। वैकल्पिक रूप से, स्रोत भाषा का ऑटो-पता करें (भाषा कोड के रूप में ऑटो का उपयोग करें, जो अमेज़ॅन कॉम्प्रिहेंशन का उपयोग करता है), और वैकल्पिक रूप से निर्दिष्ट करें कस्टम शब्दावली (अन्यथा उपयोग करें NULL एसटी customTerminologyName).


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

बॉब स्ट्रहानबॉब स्ट्रहान AWS भाषा AI सेवा टीम में एक प्रिंसिपल सॉल्यूशन आर्किटेक्ट है।

स्रोत: https://aws.amazon.com/blogs/machine-learning/translate-and-analyze-text-using-sql-functions-with-amazon-athena-amazon-translate-and-amazon-comprehend/

पढ़ना जारी रखें

AI

विज्ञान कथा, तकनीक और खेल के बीच संबंध और प्रेरणा

अवतार

प्रकाशित

on


डीन ताकाहाशी, रमीज नाम और टिम चांग विज्ञान कथा, तकनीक और खेल के बीच संबंध और प्रेरणाओं के बारे में बात करते हैं।विस्तार में पढ़ें स्रोत: https://vtbeat.com/2021/02/26/drawing-the-connections-and-inspirations-between-science-fiction-tech-and-games/

पढ़ना जारी रखें
QEC कोड का प्रस्तावित हार्डवेयर कार्यान्वयन। सर्किट में दो जोसेफसन जंक्शन होते हैं जो युग्मक द्वारा युग्मित होते हैं, लाल रंग में हाइलाइट किए जाते हैं। CREDIT M. Rymarz et al।, Phys Rev X (2021), https://doi.org/10.1103/PhysRevX.11.011032 (CC BY 4.0)
नैनो प्रौद्योगिकी4 दिन पहले

दोष-सहिष्णु qubit के लिए खाका: Forschungszentrum Jülich और RWTH आचेन विश्वविद्यालय के वैज्ञानिकों ने क्वांटम कंप्यूटरों के लिए एक सर्किट डिजाइन किया है जो स्वाभाविक रूप से आम त्रुटियों के खिलाफ संरक्षित है

ब्लॉक श्रृंखला5 दिन पहले

ब्लॉकचेन टेक्नोलॉजी के साथ फार्म-टू-शेल्फ जानकारी प्राप्त करने के लिए संयुक्त अरब अमीरात में कैरेफोर शॉपर्स

पीआर न्यूजवायर5 दिन पहले

अंतर्राष्ट्रीय एचपीवी जागरूकता दिवस शिखर सम्मेलन

QEC कोड का प्रस्तावित हार्डवेयर कार्यान्वयन। सर्किट में दो जोसेफसन जंक्शन होते हैं जो युग्मक द्वारा युग्मित होते हैं, लाल रंग में हाइलाइट किए जाते हैं। CREDIT M. Rymarz et al।, Phys Rev X (2021), https://doi.org/10.1103/PhysRevX.11.011032 (CC BY 4.0)
नैनो प्रौद्योगिकी4 दिन पहले

दोष-सहिष्णु qubit के लिए खाका: Forschungszentrum Jülich और RWTH आचेन विश्वविद्यालय के वैज्ञानिकों ने क्वांटम कंप्यूटरों के लिए एक सर्किट डिजाइन किया है जो स्वाभाविक रूप से आम त्रुटियों के खिलाफ संरक्षित है

AI5 दिन पहले

मुझे निकाल दिया गया है: सहकर्मियों को बेदखल करने के कुछ ही हफ्तों बाद नैतिकता इकाई के सह-नेतृत्व के रूप में Google एआई मेल्टडाउन में है

मोटर वाहन4 दिन पहले

FAA ने तीसरे लॉन्च और लैंडिंग के प्रयास के लिए स्पेसएक्स स्टारशिप प्रोटोटाइप को मंजूरी दी

QEC कोड का प्रस्तावित हार्डवेयर कार्यान्वयन। सर्किट में दो जोसेफसन जंक्शन होते हैं जो युग्मक द्वारा युग्मित होते हैं, लाल रंग में हाइलाइट किए जाते हैं। CREDIT M. Rymarz et al।, Phys Rev X (2021), https://doi.org/10.1103/PhysRevX.11.011032 (CC BY 4.0)
नैनो प्रौद्योगिकी5 दिन पहले

दोष-सहिष्णु qubit के लिए खाका: Forschungszentrum Jülich और RWTH आचेन विश्वविद्यालय के वैज्ञानिकों ने क्वांटम कंप्यूटरों के लिए एक सर्किट डिजाइन किया है जो स्वाभाविक रूप से आम त्रुटियों के खिलाफ संरक्षित है

पीआर न्यूजवायर5 दिन पहले

IAR सिस्टम्स प्रमुख एम्बेडेड डेवलपमेंट टूल्स में 64-बिट आर्म कोर सपोर्ट पेश करता है

नैनो प्रौद्योगिकी5 दिन पहले

एक नए पृथक लिम्फेटिक पोत लुमेन छिड़काव प्रणाली का उपयोग कर नैनोकणों की गतिशीलता

पीआर न्यूजवायर5 दिन पहले

क्यों फेमटेक आने वाले वर्षों में एक प्रमुख प्रवृत्ति बन जाएगा

पीआर न्यूजवायर5 दिन पहले

एंटीकोआगुलेंट रिवर्सल ड्रग्स मार्केट साइज वर्थ $ 1.81 बिलियन 2027 तक: ग्रैंड व्यू रिसर्च, इंक।

पीआर न्यूजवायर5 दिन पहले

विरासत स्वास्थ्य समाधान, इंक। नए राष्ट्रपति की घोषणा करता है

ग्लोब न्यूज़वायर5 दिन पहले

सावोसोलर पीएलसी की वार्षिक आम बैठक की सूचना

bioengineer4 दिन पहले

ग्राफीन ऑक्साइड झिल्ली कागज उद्योग ऊर्जा लागत को कम कर सकता है

पीआर न्यूजवायर5 दिन पहले

Thrasio € 500 मिलियन के लिए यूरोपीय प्रतिबद्धता बढ़ जाती है; एक और प्रमुख जर्मन अधिग्रहण की घोषणा की

नैनो प्रौद्योगिकी5 दिन पहले

क्वांटम दुनिया में एक गति सीमा भी लागू होती है: बॉन विश्वविद्यालय द्वारा अध्ययन जटिल क्वांटम संचालन के लिए न्यूनतम समय निर्धारित करता है

bioengineer4 दिन पहले

एचआईवी / एड्स महामारी से निपटने के लिए UH को $ 5 मिलियन मिलते हैं

पीआर न्यूजवायर5 दिन पहले

विश्वव्यापी पशुधन निगरानी उद्योग 2027 - मवेशी निगरानी के लिए बढ़ती मांग

bioengineer4 दिन पहले

तीन लंबे एंटीबायोटिक्स नशे की लत opioid दर्द relievers के लिए विकल्प प्रदान कर सकता है

bioengineer4 दिन पहले

बाहरी प्रदूषण इनडोर वायु गुणवत्ता को कैसे प्रभावित करता है

रुझान