অ্যামাজন ওপেনসার্চ সার্ভিসে এআই/এমএল সংযোগকারীর সাথে পাওয়ার নিউরাল অনুসন্ধান আমাজন ওয়েব সার্ভিসেস

অ্যামাজন ওপেনসার্চ সার্ভিসে এআই/এমএল সংযোগকারীর সাথে পাওয়ার নিউরাল অনুসন্ধান আমাজন ওয়েব সার্ভিসেস

উত্স নোড: 3068091

জন্য নিউরাল সার্চ ফিচার চালু করার সাথে সাথে আমাজন ওপেন সার্চ সার্ভিস OpenSearch 2.9-এ, শব্দার্থিক অনুসন্ধান এবং অন্যান্য ব্যবহারের ক্ষেত্রে AI/ML মডেলগুলির সাথে একীভূত করা এখন অনায়াসে। ওপেনসার্চ সার্ভিস 2020 সালে এর k-নিকটবর্তী প্রতিবেশী (k-NN) বৈশিষ্ট্যের প্রবর্তনের পর থেকে আভিধানিক এবং ভেক্টর অনুসন্ধান উভয়কেই সমর্থন করেছে; যাইহোক, শব্দার্থিক অনুসন্ধান কনফিগার করার জন্য মেশিন লার্নিং (ML) মডেলগুলিকে ইনজেস্ট করতে এবং অনুসন্ধান করার জন্য একটি কাঠামো তৈরি করতে হবে। নিউরাল সার্চ ফিচার ইনজেশন এবং সার্চের সময় টেক্সট-টু-ভেক্টর ট্রান্সফর্মেশনের সুবিধা দেয়। আপনি যখন অনুসন্ধানের সময় একটি নিউরাল ক্যোয়ারী ব্যবহার করেন, তখন ক্যোয়ারীটি একটি ভেক্টর এম্বেডিং-এ অনুবাদ করা হয় এবং কর্পাস থেকে নিকটতম ভেক্টর এম্বেডিং ফেরাতে k-NN ব্যবহার করা হয়।

স্নায়ু অনুসন্ধান ব্যবহার করতে, আপনাকে অবশ্যই একটি ML মডেল সেট আপ করতে হবে৷ আমরা AWS AI এবং ML পরিষেবাগুলিতে AI/ML সংযোগকারীগুলিকে কনফিগার করার পরামর্শ দিই (যেমন আমাজন সেজমেকার or আমাজন বেডরক) বা তৃতীয় পক্ষের বিকল্প। ওপেনসার্চ সার্ভিসে সংস্করণ 2.9 দিয়ে শুরু করে, এআই/এমএল সংযোগকারীগুলি আপনার ডেটা কর্পাস এবং ভেক্টর এম্বেডিংগুলিতে অনুসন্ধানের অনুবাদকে সহজ এবং কার্যকর করতে স্নায়ু অনুসন্ধানের সাথে একীভূত করে, যার ফলে ভেক্টর হাইড্রেশন এবং অনুসন্ধানের অনেক জটিলতা দূর হয়।

এই পোস্টে, আমরা ওপেনসার্চ সার্ভিস কনসোলের মাধ্যমে বহিরাগত মডেলগুলিতে AI/ML সংযোগকারীগুলিকে কীভাবে কনফিগার করতে হয় তা প্রদর্শন করি।

সমাধান ওভারভিউ

বিশেষত, এই পোস্টটি আপনাকে সেজমেকারের একটি মডেলের সাথে সংযোগ করার মাধ্যমে নিয়ে যায়। তারপরে আমরা আপনাকে একটি এমএল মডেলের সাথে সংযোগের মাধ্যমে সমর্থিত ব্যবহারের ক্ষেত্রে একটি উদাহরণ হিসাবে OpenSearch পরিষেবাতে শব্দার্থিক অনুসন্ধান কনফিগার করতে সংযোগকারী ব্যবহার করার মাধ্যমে আপনাকে গাইড করি। Amazon Bedrock এবং SageMaker ইন্টিগ্রেশন বর্তমানে OpenSearch Service console UI-তে সমর্থিত, এবং UI-সমর্থিত প্রথম এবং তৃতীয়-পক্ষের ইন্টিগ্রেশনের তালিকা বাড়তে থাকবে।

UI এর মাধ্যমে সমর্থিত নয় এমন যেকোন মডেলের জন্য, আপনি পরিবর্তে উপলব্ধ APIs ব্যবহার করে সেট আপ করতে পারেন এমএল ব্লুপ্রিন্ট. আরো তথ্যের জন্য, পড়ুন OpenSearch মডেলের ভূমিকা. আপনি প্রতিটি সংযোগকারীর জন্য ব্লুপ্রিন্ট খুঁজে পেতে পারেন ML Commons GitHub সংগ্রহস্থল.

পূর্বশর্ত

OpenSearch Service কনসোলের মাধ্যমে মডেলটিকে সংযুক্ত করার আগে, একটি OpenSearch Service ডোমেন তৈরি করুন৷ মানচিত্র একটি এডাব্লুএস আইডেন্টিটি এবং অ্যাক্সেস ম্যানেজমেন্ট (IAM) নামে ভূমিকা LambdaInvokeOpenSearchMLCommonsRole ব্যাকএন্ড ভূমিকা হিসাবে ml_full_access ওপেনসার্চ ড্যাশবোর্ডে সিকিউরিটি প্লাগইন ব্যবহার করে ভূমিকা, যা নিচের ভিডিওতে দেখানো হয়েছে। ওপেন সার্চ সার্ভিস ইন্টিগ্রেশন ওয়ার্কফ্লোটি ব্যবহার করার জন্য আগে থেকে পূর্ণ LambdaInvokeOpenSearchMLCommonsRole OpenSearch Service ডোমেন এবং SageMaker-এ স্থাপন করা মডেলের মধ্যে সংযোগকারী তৈরি করতে ডিফল্টরূপে IAM ভূমিকা। আপনি যদি OpenSearch Service কনসোল ইন্টিগ্রেশনে একটি কাস্টম IAM ভূমিকা ব্যবহার করেন, তাহলে নিশ্চিত করুন যে কাস্টম ভূমিকাটি ব্যাকএন্ড ভূমিকা হিসাবে ম্যাপ করা হয়েছে ml_full_access টেমপ্লেট স্থাপন করার আগে অনুমতি।

AWS CloudFormation ব্যবহার করে মডেলটি স্থাপন করুন

নিম্নলিখিত ভিডিওটি Amazon SageMaker-এ কয়েক মিনিটের মধ্যে একটি মডেল স্থাপন করতে ও AI সংযোগকারীর মাধ্যমে মডেল আইডি তৈরি করতে OpenSearch পরিষেবা কনসোল ব্যবহার করার পদক্ষেপগুলি প্রদর্শন করে৷ প্রথম ধাপ নির্বাচন করা হয় ঐক্যবদ্ধতা OpenSearch Service AWS কনসোলের নেভিগেশন ফলকে, যা উপলব্ধ ইন্টিগ্রেশনের একটি তালিকার দিকে নিয়ে যায়। ইন্টিগ্রেশন একটি UI এর মাধ্যমে সেট আপ করা হয়েছে, যা আপনাকে প্রয়োজনীয় ইনপুটগুলির জন্য অনুরোধ করবে।

ইন্টিগ্রেশন সেট আপ করতে, আপনাকে শুধুমাত্র OpenSearch Service ডোমেন এন্ডপয়েন্ট প্রদান করতে হবে এবং মডেল সংযোগটিকে অনন্যভাবে সনাক্ত করতে একটি মডেল নাম প্রদান করতে হবে। ডিফল্টরূপে, টেমপ্লেটটি আলিঙ্গন মুখ বাক্য-ট্রান্সফরমার মডেল স্থাপন করে, djl://ai.djl.huggingface.pytorch/sentence-transformers/all-MiniLM-L6-v2.

আপনি যখন চয়ন স্ট্যাক তৈরি করুন, আপনি রাউট করা হয়েছে এডাব্লুএস ক্লাউডফর্মেশন কনসোল CloudFormation টেমপ্লেট নিম্নলিখিত চিত্রে বিস্তারিত আর্কিটেকচার স্থাপন করে।

CloudFormation স্ট্যাক একটি তৈরি করে এডাব্লুএস ল্যাম্বদা অ্যাপ্লিকেশন যা থেকে একটি মডেল স্থাপন করে আমাজন সিম্পল স্টোরেজ সার্ভিস (Amazon S3), সংযোগকারী তৈরি করে এবং আউটপুটে মডেল আইডি তৈরি করে। তারপর আপনি একটি শব্দার্থিক সূচক তৈরি করতে এই মডেল আইডি ব্যবহার করতে পারেন।

যদি ডিফল্ট অল-MiniLM-L6-v2 মডেলটি আপনার উদ্দেশ্য পূরণ না করে, তাহলে আপনি একটি অ্যাক্সেসযোগ্য S3 অবজেক্ট হিসাবে আপনার মডেল আর্টিফ্যাক্টগুলি প্রদান করে নির্বাচিত মডেল হোস্টে (SageMaker বা Amazon Bedrock) আপনার পছন্দের যেকোন টেক্সট এমবেডিং মডেল স্থাপন করতে পারেন। বিকল্পভাবে, আপনি নিম্নলিখিতগুলির মধ্যে একটি নির্বাচন করতে পারেন৷ প্রাক-প্রশিক্ষিত ভাষার মডেল এবং সেজমেকারে এটি স্থাপন করুন। আপনার এন্ডপয়েন্ট এবং মডেল সেট আপ করার নির্দেশাবলীর জন্য, পড়ুন অ্যামাজন সেজমেকার ইমেজ উপলব্ধ.

SageMaker হল একটি সম্পূর্ণরূপে পরিচালিত পরিষেবা যা যেকোন ব্যবহারের ক্ষেত্রে উচ্চ-পারফরম্যান্স, কম খরচে ML সক্ষম করতে, মডেল মনিটরিং, সার্ভারহীন হোস্টিং, এবং ক্রমাগত প্রশিক্ষণ এবং স্থাপনার জন্য ওয়ার্কফ্লো অটোমেশনের মতো মূল সুবিধাগুলি প্রদান করে। SageMaker আপনাকে টেক্সট এমবেডিং মডেলের জীবনচক্র হোস্ট এবং পরিচালনা করার অনুমতি দেয় এবং OpenSearch পরিষেবাতে শব্দার্থিক অনুসন্ধানের প্রশ্নগুলি পাওয়ার জন্য সেগুলি ব্যবহার করে৷ সংযুক্ত হলে, SageMaker আপনার মডেলগুলি হোস্ট করে এবং SageMaker থেকে অনুমান ফলাফলের উপর ভিত্তি করে অনুসন্ধান করার জন্য OpenSearch পরিষেবা ব্যবহার করা হয়৷

ওপেন সার্চ ড্যাশবোর্ডের মাধ্যমে স্থাপন করা মডেলটি দেখুন

ক্লাউডফর্মেশন টেমপ্লেটটি ওপেন সার্চ সার্ভিস ডোমেনে মডেলটিকে সফলভাবে স্থাপন করা হয়েছে এবং মডেল আইডি পেতে, আপনি OpenSearch ড্যাশবোর্ড ডেভ টুলের মাধ্যমে ML Commons REST GET API ব্যবহার করতে পারেন।

GET _plugins REST API এখন মডেল স্ট্যাটাস দেখার জন্য অতিরিক্ত API প্রদান করে। নিম্নলিখিত কমান্ড আপনাকে দূরবর্তী মডেলের অবস্থা দেখতে দেয়:

GET _plugins/_ml/models/<modelid>

নিম্নলিখিত স্ক্রিনশটে দেখানো হয়েছে, ক DEPLOYED প্রতিক্রিয়ার অবস্থা নির্দেশ করে যে মডেলটি ওপেনসার্চ সার্ভিস ক্লাস্টারে সফলভাবে স্থাপন করা হয়েছে।

বিকল্পভাবে, আপনি ব্যবহার করে আপনার OpenSearch Service ডোমেনে স্থাপন করা মডেলটি দেখতে পারেন মেশিন লার্নিং OpenSearch ড্যাশবোর্ডের পৃষ্ঠা।

এই পৃষ্ঠাটি মডেল তথ্য এবং স্থাপন করা সমস্ত মডেলের অবস্থা তালিকাভুক্ত করে।

মডেল আইডি ব্যবহার করে নিউরাল পাইপলাইন তৈরি করুন

মডেলের স্ট্যাটাস যখন উভয় হিসাবে দেখায় DEPLOYED দেব টুলস বা সবুজ এবং উত্তরদায়ক OpenSearch ড্যাশবোর্ডে, আপনি আপনার নিউরাল ইনজেস্ট পাইপলাইন তৈরি করতে মডেল আইডি ব্যবহার করতে পারেন। নিম্নলিখিত ইনজেস্ট পাইপলাইনটি আপনার ডোমেনের OpenSearch Dashboards Dev Tools-এ চালানো হয়৷ নিশ্চিত করুন যে আপনি মডেল আইডিটি আপনার ডোমেনে স্থাপন করা মডেলের জন্য তৈরি করা অনন্য আইডি দিয়ে প্রতিস্থাপন করেছেন।

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 এবং মাত্রা SageMaker এ স্থাপন করা মডেলের জন্য উপযুক্ত। আপনি যদি SageMaker-এ অল-MiniLM-L6-v2 মডেল স্থাপন করার জন্য ডিফল্ট কনফিগারেশন ধরে রাখেন, তাহলে নিম্নলিখিত সেটিংসটি যেমন আছে তেমনি রাখুন এবং Dev Tools-এ কমান্ডটি চালান।

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" 
      } 
    }
  }
}

ভেক্টর তৈরি করতে নমুনা নথিগুলি গ্রহণ করুন

এই ডেমো জন্য, আপনি ingest করতে পারেন নমুনা খুচরা demostore পণ্য ক্যাটালগ নতুন semantic_demostore সূচক আপনার ডোমেন তথ্যের সাথে ব্যবহারকারীর নাম, পাসওয়ার্ড, এবং ডোমেন এন্ডপয়েন্ট প্রতিস্থাপন করুন এবং ওপেনসার্চ পরিষেবাতে কাঁচা ডেটা গ্রহণ করুন:

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

নতুন শব্দার্থক_ডেমোস্টোর সূচক যাচাই করুন

এখন যেহেতু আপনি OpenSearch Service ডোমেনে আপনার ডেটাসেট ইনজেস্ট করেছেন, সমস্ত ক্ষেত্র আনার জন্য একটি সাধারণ অনুসন্ধান ব্যবহার করে প্রয়োজনীয় ভেক্টর তৈরি করা হয়েছে কিনা তা যাচাই করুন। ক্ষেত্রগুলি হিসাবে সংজ্ঞায়িত হলে যাচাই করুন৷ knn_vectors প্রয়োজনীয় ভেক্টর আছে।

তুলনা অনুসন্ধান ফলাফল টুল ব্যবহার করে স্নায়ু অনুসন্ধান দ্বারা চালিত আভিধানিক অনুসন্ধান এবং শব্দার্থিক অনুসন্ধান তুলনা করুন

সার্জারির অনুসন্ধান ফলাফল টুল তুলনা করুন ওপেন সার্চ ড্যাশবোর্ডে প্রোডাকশন ওয়ার্কলোডের জন্য উপলব্ধ। আপনি নেভিগেট করতে পারেন অনুসন্ধান ফলাফল তুলনা করুন পৃষ্ঠা এবং আগে উত্পন্ন মডেল আইডি ব্যবহার করার জন্য কনফিগার করা আভিধানিক অনুসন্ধান এবং নিউরাল অনুসন্ধানের মধ্যে অনুসন্ধান ফলাফলের তুলনা করুন।

পরিষ্কার কর

আপনি CloudFormation স্ট্যাক মুছে এই পোস্টে নির্দেশাবলী অনুসরণ করে আপনার তৈরি সংস্থান মুছে ফেলতে পারেন। এটি Lambda রিসোর্স এবং S3 বালতি মুছে ফেলবে যাতে SageMaker-এ মোতায়েন করা মডেল রয়েছে। নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:

  1. AWS CloudFormation কনসোলে, আপনার স্ট্যাকের বিবরণ পৃষ্ঠাতে নেভিগেট করুন।
  2. বেছে নিন মুছে ফেলা.

  1. বেছে নিন মুছে ফেলা নিশ্চিত করতে.

আপনি AWS CloudFormation কনসোলে স্ট্যাক মুছে ফেলার অগ্রগতি নিরীক্ষণ করতে পারেন।

মনে রাখবেন, ক্লাউডফরমেশন স্ট্যাক মুছে ফেলার ফলে সেজমেকার ডোমেনে মোতায়েন করা মডেল এবং তৈরি করা AI/ML সংযোগকারী মুছে যাবে না। কারণ এই মডেল এবং সংযোগকারী ডোমেনের মধ্যে একাধিক সূচকের সাথে যুক্ত হতে পারে। একটি মডেল এবং এর সাথে যুক্ত সংযোগকারীকে বিশেষভাবে মুছে ফেলতে, নিম্নলিখিত স্ক্রিনশটগুলিতে দেখানো মডেল APIগুলি ব্যবহার করুন৷

প্রথমত, undeploy OpenSearch Service ডোমেন মেমরি থেকে মডেল:

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

তারপর আপনি মডেল সূচক থেকে মডেল মুছে ফেলতে পারেন:

DELETE /_plugins/_ml/models/<model_id>

অবশেষে, সংযোগকারী সূচক থেকে সংযোগকারী মুছুন:

DELETE /_plugins/_ml/connectors/<connector_id>

উপসংহার

এই পোস্টে, আপনি শিখেছেন কিভাবে সেজমেকারে একটি মডেল স্থাপন করতে হয়, OpenSearch পরিষেবা কনসোল ব্যবহার করে AI/ML সংযোগকারী তৈরি করতে হয় এবং নিউরাল অনুসন্ধান সূচক তৈরি করতে হয়। ওপেনসার্চ সার্ভিসে AI/ML সংযোগকারী কনফিগার করার ক্ষমতা বহিরাগত মডেলের সাথে ইন্টিগ্রেশনকে নেটিভ করে ভেক্টর হাইড্রেশন প্রক্রিয়াকে সহজ করে। আপনি নিউরাল ইনজেশন পাইপলাইন এবং স্নায়ু অনুসন্ধান ব্যবহার করে মিনিটের মধ্যে একটি নিউরাল অনুসন্ধান সূচক তৈরি করতে পারেন যা ইনজেস্ট এবং অনুসন্ধানের সময় ফ্লাইতে ভেক্টর এমবেডিং তৈরি করতে মডেল আইডি ব্যবহার করে।

এই AI/ML সংযোগকারী সম্পর্কে আরও জানতে, পড়ুন AWS পরিষেবার জন্য Amazon OpenSearch Service AI সংযোগকারী, শব্দার্থিক অনুসন্ধানের জন্য AWS CloudFormation টেমপ্লেট ইন্টিগ্রেশন, এবং তৃতীয় পক্ষের এমএল প্ল্যাটফর্মের জন্য সংযোগকারী তৈরি করা.


লেখক সম্পর্কে

অরুণা গোবিন্দরাজু একজন আমাজন ওপেনসার্চ স্পেশালিস্ট সলিউশন আর্কিটেক্ট এবং অনেক বাণিজ্যিক এবং ওপেন সোর্স সার্চ ইঞ্জিনের সাথে কাজ করেছেন। তিনি অনুসন্ধান, প্রাসঙ্গিকতা এবং ব্যবহারকারীর অভিজ্ঞতা সম্পর্কে উত্সাহী। সার্চ ইঞ্জিন আচরণের সাথে শেষ-ব্যবহারকারীর সংকেতগুলিকে সম্পর্কযুক্ত করার বিষয়ে তার দক্ষতা অনেক গ্রাহককে তাদের অনুসন্ধান অভিজ্ঞতা উন্নত করতে সাহায্য করেছে৷

ড্যাগনি ব্রাউন ওপেন সার্চে ফোকাস করা AWS-এর একজন প্রধান পণ্য ব্যবস্থাপক।

সময় স্ট্যাম্প:

থেকে আরো এডাব্লুএস বিগ ডেটা

Amazon OpenSearch Serverless এবং Amazon Bedrock Claude মডেলের জন্য একটি ভেক্টর ইঞ্জিনের সাহায্যে স্কেলেবল এবং সার্ভারহীন RAG ওয়ার্কফ্লো তৈরি করুন | আমাজন ওয়েব সার্ভিসেস

উত্স নোড: 2974106
সময় স্ট্যাম্প: নভেম্বর 21, 2023