अमेज़ॅन ओपनसर्च सेवा में एआई/एमएल कनेक्टर के साथ पावर न्यूरल खोज | अमेज़न वेब सेवाएँ

अमेज़ॅन ओपनसर्च सेवा में एआई/एमएल कनेक्टर के साथ पावर न्यूरल खोज | अमेज़न वेब सेवाएँ

स्रोत नोड: 3068091

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

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

इस पोस्ट में, हम प्रदर्शित करते हैं कि ओपनसर्च सर्विस कंसोल के माध्यम से एआई/एमएल कनेक्टर्स को बाहरी मॉडलों में कैसे कॉन्फ़िगर किया जाए।

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

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

यूआई के माध्यम से समर्थित किसी भी मॉडल के लिए, आप इसके बजाय उपलब्ध एपीआई और का उपयोग करके उन्हें सेट कर सकते हैं एमएल ब्लूप्रिंट. अधिक जानकारी के लिए देखें ओपनसर्च मॉडल का परिचय. आप इसमें प्रत्येक कनेक्टर के लिए ब्लूप्रिंट पा सकते हैं एमएल कॉमन्स गिटहब रिपॉजिटरी.

.. पूर्वापेक्षाएँ

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

AWS CloudFormation का उपयोग करके मॉडल परिनियोजित करें

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

एकीकरण स्थापित करने के लिए, आपको केवल ओपनसर्च सर्विस डोमेन एंडपॉइंट प्रदान करना होगा और मॉडल कनेक्शन को विशिष्ट रूप से पहचानने के लिए एक मॉडल नाम प्रदान करना होगा। डिफ़ॉल्ट रूप से, टेम्पलेट हगिंग फेस वाक्य-ट्रांसफॉर्मर मॉडल को तैनात करता है, djl://ai.djl.huggingface.pytorch/sentence-transformers/all-MiniLM-L6-v2.

जब आप चुनते हैं स्टैक बनाएँ, आपको रूट किया गया है एडब्ल्यूएस CloudFormation सांत्वना देना। क्लाउडफॉर्मेशन टेम्प्लेट निम्नलिखित आरेख में विस्तृत आर्किटेक्चर को तैनात करता है।

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

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

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

ओपनसर्च डैशबोर्ड के माध्यम से तैनात मॉडल देखें

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

GET _plugins REST API अब मॉडल स्थिति देखने के लिए अतिरिक्त API भी प्रदान करता है। निम्न आदेश आपको दूरस्थ मॉडल की स्थिति देखने की अनुमति देता है:

GET _plugins/_ml/models/<modelid>

जैसा कि निम्नलिखित स्क्रीनशॉट में दिखाया गया है, a DEPLOYED प्रतिक्रिया में स्थिति इंगित करती है कि मॉडल ओपनसर्च सेवा क्लस्टर पर सफलतापूर्वक तैनात किया गया है।

वैकल्पिक रूप से, आप इसका उपयोग करके अपने OpenSearch सेवा डोमेन पर तैनात मॉडल को देख सकते हैं मशीन लर्निंग ओपनसर्च डैशबोर्ड का पृष्ठ।

यह पृष्ठ मॉडल जानकारी और तैनात किए गए सभी मॉडलों की स्थितियों को सूचीबद्ध करता है।

मॉडल आईडी का उपयोग करके तंत्रिका पाइपलाइन बनाएं

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

PUT _ingest/pipeline/neural-pipeline
{
  "description": "Semantic Search for retail product catalog ",
  "processors" : [
    {
      "text_embedding": {
        "model_id": "sfG4zosBIsICJFsINo3X",
        "field_map": {
           "description": "desc_v",
           "name": "name_v"
        }
      }
    }
  ]
}

डिफ़ॉल्ट पाइपलाइन के रूप में तंत्रिका पाइपलाइन का उपयोग करके सिमेंटिक खोज सूचकांक बनाएं

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

PUT semantic_demostore
{
  "settings": {
    "index.knn": true,  
    "default_pipeline": "neural-pipeline",
    "number_of_shards": 1,
    "number_of_replicas": 1
  },
  "mappings": {
    "properties": {
      "desc_v": {
        "type": "knn_vector",
        "dimension": 384,
        "method": {
          "name": "hnsw",
          "engine": "nmslib",
          "space_type": "cosinesimil"
        }
      },
      "name_v": {
        "type": "knn_vector",
        "dimension": 384,
        "method": {
          "name": "hnsw",
          "engine": "nmslib",
          "space_type": "cosinesimil"
        }
      },
      "description": {
        "type": "text" 
      },
      "name": {
        "type": "text" 
      } 
    }
  }
}

वेक्टर उत्पन्न करने के लिए नमूना दस्तावेज़ों को ग्रहण करें

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

curl -XPOST -u 'username:password' 'https://domain-end-point/_bulk' --data-binary @semantic_demostore.json -H 'Content-Type: application/json'

नए सिमेंटिक_डेमोस्टोर इंडेक्स को मान्य करें

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

तुलना खोज परिणाम टूल का उपयोग करके तंत्रिका खोज द्वारा संचालित शाब्दिक खोज और शब्दार्थ खोज की तुलना करें

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

क्लीन अप

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

  1. AWS क्लाउडफ़ॉर्मेशन कंसोल पर, अपने स्टैक विवरण पृष्ठ पर जाएँ।
  2. चुनें मिटाना.

  1. चुनें मिटाना पुष्टि करने के लिए।

आप AWS CloudFormation कंसोल पर स्टैक हटाने की प्रगति की निगरानी कर सकते हैं।

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

सबसे पहले, undeploy ओपनसर्च सेवा डोमेन मेमोरी से मॉडल:

POST /_plugins/_ml/models/<model_id>/_undeploy

फिर आप मॉडल को मॉडल इंडेक्स से हटा सकते हैं:

DELETE /_plugins/_ml/models/<model_id>

अंत में, कनेक्टर इंडेक्स से कनेक्टर हटाएं:

DELETE /_plugins/_ml/connectors/<connector_id>

निष्कर्ष

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

इन AI/ML कनेक्टर्स के बारे में अधिक जानने के लिए, देखें AWS सेवाओं के लिए Amazon OpenSearch सेवा AI कनेक्टर, सिमेंटिक खोज के लिए AWS क्लाउडफ़ॉर्मेशन टेम्पलेट एकीकरण, तथा तृतीय-पक्ष एमएल प्लेटफ़ॉर्म के लिए कनेक्टर बनाना.


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

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

डैग्नी ब्रौन AWS में एक प्रधान उत्पाद प्रबंधक है जो OpenSearch पर केंद्रित है।

समय टिकट:

से अधिक एडब्ल्यूएस बिग डेटा

अमेज़ॅन ओपनसर्च सर्वरलेस और अमेज़ॅन बेडरॉक क्लाउड मॉडल के लिए वेक्टर इंजन के साथ स्केलेबल और सर्वर रहित आरएजी वर्कफ़्लो बनाएं | अमेज़न वेब सेवाएँ

स्रोत नोड: 2974106
समय टिकट: नवम्बर 21, 2023