ایمیزون اوپن سرچ سروس میں AI/ML کنیکٹرز کے ساتھ پاور نیورل سرچ | ایمیزون ویب سروسز

ایمیزون اوپن سرچ سروس میں AI/ML کنیکٹرز کے ساتھ پاور نیورل سرچ | ایمیزون ویب سروسز

ماخذ نوڈ: 3068091

کے لیے نیورل سرچ فیچر کے آغاز کے ساتھ ایمیزون اوپن سرچ سروس OpenSearch 2.9 میں، اب AI/ML ماڈلز کے ساتھ ضم کرنا آسان ہے تاکہ سیمنٹک سرچ اور دیگر استعمال کے معاملات کو تقویت ملے۔ اوپن سرچ سروس نے 2020 میں اپنے k-قریب ترین پڑوسی (k-NN) خصوصیت کے متعارف ہونے کے بعد سے لغوی اور ویکٹر تلاش دونوں کی حمایت کی ہے۔ تاہم، سیمنٹک سرچ کو ترتیب دینے کے لیے مشین لرننگ (ML) ماڈلز کو ضم کرنے اور تلاش کرنے کے لیے ایک فریم ورک بنانے کی ضرورت ہوتی ہے۔ عصبی تلاش کی خصوصیت ادخال اور تلاش کے دوران متن سے ویکٹر کی تبدیلی کی سہولت فراہم کرتی ہے۔ جب آپ تلاش کے دوران نیورل استفسار استعمال کرتے ہیں، تو استفسار کا ترجمہ ویکٹر ایمبیڈنگ میں کیا جاتا ہے اور k-NN کا استعمال کارپس سے قریب ترین ویکٹر ایمبیڈنگز واپس کرنے کے لیے کیا جاتا ہے۔

نیورل سرچ استعمال کرنے کے لیے، آپ کو ایک ایم ایل ماڈل سیٹ اپ کرنا ہوگا۔ ہم تجویز کرتے ہیں کہ AI/ML کنیکٹرز کو AWS AI اور ML سروسز (جیسے ایمیزون سیج میکر or ایمیزون بیڈرک) یا تیسرے فریق کے متبادل۔ OpenSearch سروس پر ورژن 2.9 کے ساتھ شروع کرتے ہوئے، AI/ML کنیکٹر آپ کے ڈیٹا کارپس اور ویکٹر ایمبیڈنگز کے سوالات کے ترجمے کو آسان اور فعال بنانے کے لیے عصبی تلاش کے ساتھ مربوط ہوتے ہیں، اس طرح ویکٹر ہائیڈریشن اور تلاش کی زیادہ تر پیچیدگیوں کو دور کرتے ہیں۔

اس پوسٹ میں، ہم اوپن سرچ سروس کنسول کے ذریعے بیرونی ماڈلز سے AI/ML کنیکٹرز کو کنفیگر کرنے کا طریقہ دکھاتے ہیں۔

حل کا جائزہ

خاص طور پر، یہ پوسٹ آپ کو SageMaker میں ایک ماڈل سے منسلک کرنے کے ذریعے لے جاتی ہے۔ پھر ہم اوپن سرچ سروس پر سیمنٹک سرچ کو کنفیگر کرنے کے لیے کنیکٹر استعمال کرنے کے لیے آپ کی رہنمائی کرتے ہیں ایک مثال کے طور پر جو کہ ML ماڈل سے کنکشن کے ذریعے سپورٹ کیا جاتا ہے۔ Amazon Bedrock اور SageMaker کے انضمام کو فی الحال OpenSearch سروس کنسول UI پر تعاون حاصل ہے، اور UI کے تعاون یافتہ فرسٹ اور تھرڈ پارٹی انضمام کی فہرست میں اضافہ ہوتا رہے گا۔

ایسے کسی بھی ماڈل کے لیے جو UI کے ذریعے تعاون یافتہ نہیں ہیں، آپ اس کے بجائے دستیاب APIs کا استعمال کرتے ہوئے انہیں ترتیب دے سکتے ہیں۔ ایم ایل بلیو پرنٹس. مزید معلومات کے لیے رجوع کریں۔ اوپن سرچ ماڈلز کا تعارف. آپ میں ہر کنیکٹر کے بلیو پرنٹس تلاش کر سکتے ہیں۔ ML Commons GitHub ذخیرہ.

شرائط

ماڈل کو اوپن سرچ سروس کنسول کے ذریعے مربوط کرنے سے پہلے، ایک اوپن سرچ سروس ڈومین بنائیں۔ نقشہ ایک AWS شناخت اور رسائی کا انتظام (IAM) نام سے کردار LambdaInvokeOpenSearchMLCommonsRole پر پسدید کردار کے طور پر ml_full_access اوپن سرچ ڈیش بورڈز پر سیکیورٹی پلگ ان کا استعمال کرتے ہوئے کردار، جیسا کہ درج ذیل ویڈیو میں دکھایا گیا ہے۔ اوپن سرچ سروس انٹیگریشن ورک فلو کو استعمال کرنے کے لیے پہلے سے بھرا ہوا ہے۔ LambdaInvokeOpenSearchMLCommonsRole OpenSearch سروس ڈومین اور SageMaker پر تعینات ماڈل کے درمیان کنیکٹر بنانے کے لیے IAM کا کردار بطور ڈیفالٹ۔ اگر آپ OpenSearch سروس کنسول انٹیگریشنز پر اپنی مرضی کے مطابق IAM رول استعمال کرتے ہیں، تو یقینی بنائیں کہ کسٹم رول کو بیک اینڈ رول کے ساتھ میپ کیا گیا ہے۔ ml_full_access ٹیمپلیٹ کو تعینات کرنے سے پہلے کی اجازت۔

AWS CloudFormation کا استعمال کرتے ہوئے ماڈل کو تعینات کریں۔

مندرجہ ذیل ویڈیو Amazon SageMaker پر منٹوں کے اندر ایک ماڈل کو تعینات کرنے اور AI کنیکٹرز کے ذریعے ماڈل ID تیار کرنے کے لیے OpenSearch سروس کنسول کو استعمال کرنے کے اقدامات کو ظاہر کرتی ہے۔ پہلا قدم انتخاب کرنا ہے۔ انضمام OpenSearch سروس AWS کنسول پر نیویگیشن پین میں، جو دستیاب انضمام کی فہرست کی طرف جاتا ہے۔ انضمام کو UI کے ذریعے ترتیب دیا گیا ہے، جو آپ کو ضروری معلومات کے لیے اشارہ کرے گا۔

انضمام کو ترتیب دینے کے لیے، آپ کو صرف OpenSearch سروس ڈومین اینڈ پوائنٹ فراہم کرنے اور ماڈل کنکشن کی منفرد شناخت کرنے کے لیے ایک ماڈل نام فراہم کرنے کی ضرورت ہے۔ پہلے سے طے شدہ طور پر، ٹیمپلیٹ Hugging Face جملہ-ٹرانسفارمرز ماڈل کو تعینات کرتا ہے، djl://ai.djl.huggingface.pytorch/sentence-transformers/all-MiniLM-L6-v2.

جب آپ کا انتخاب کریں اسٹیک بنائیں، آپ کو روٹ کیا جاتا ہے۔ AWS کلاؤڈ فارمیشن تسلی. CloudFormation ٹیمپلیٹ مندرجہ ذیل خاکہ میں تفصیلی فن تعمیر کو متعین کرتا ہے۔

CloudFormation اسٹیک ایک تخلیق کرتا ہے۔ او ڈبلیو ایس لامبڈا۔ ایپلی کیشن جو ایک ماڈل کو تعینات کرتی ہے۔ ایمیزون سادہ اسٹوریج سروس (ایمیزون S3)، کنیکٹر بناتا ہے، اور آؤٹ پٹ میں ماڈل ID تیار کرتا ہے۔ اس کے بعد آپ اس ماڈل آئی ڈی کو سیمنٹک انڈیکس بنانے کے لیے استعمال کر سکتے ہیں۔

اگر پہلے سے طے شدہ تمام-MiniLM-L6-v2 ماڈل آپ کے مقصد کو پورا نہیں کرتا ہے، تو آپ اپنے ماڈل کے نمونے ایک قابل رسائی S3 آبجیکٹ کے طور پر فراہم کر کے منتخب کردہ ماڈل ہوسٹ (SageMaker یا Amazon Bedrock) پر اپنی پسند کا کوئی بھی ٹیکسٹ ایمبیڈنگ ماڈل لگا سکتے ہیں۔ متبادل طور پر، آپ درج ذیل میں سے ایک کو منتخب کر سکتے ہیں۔ پہلے سے تربیت یافتہ زبان کے ماڈل اور اسے سیج میکر پر تعینات کریں۔ اپنا اختتامی نقطہ اور ماڈل ترتیب دینے کی ہدایات کے لیے، ملاحظہ کریں۔ دستیاب ایمیزون سیج میکر امیجز.

SageMaker ایک مکمل طور پر منظم سروس ہے جو اعلیٰ کارکردگی، کسی بھی استعمال کے معاملے کے لیے کم لاگت ML کو فعال کرنے کے لیے ٹولز کا ایک وسیع سیٹ اکٹھا کرتی ہے، جس میں کلیدی فوائد کی فراہمی جیسے ماڈل مانیٹرنگ، سرور لیس ہوسٹنگ، اور ورک فلو آٹومیشن مسلسل ٹریننگ اور تعیناتی کے لیے۔ سیج میکر آپ کو ٹیکسٹ ایمبیڈنگ ماڈلز کے لائف سائیکل کی میزبانی اور ان کا نظم کرنے کی اجازت دیتا ہے، اور اوپن سرچ سروس میں سیمنٹک تلاش کے سوالات کو طاقت دینے کے لیے ان کا استعمال کرتا ہے۔ منسلک ہونے پر، SageMaker آپ کے ماڈلز کی میزبانی کرتا ہے اور OpenSearch سروس کا استعمال SageMaker کے نتائج کی بنیاد پر استفسار کرنے کے لیے کیا جاتا ہے۔

اوپن سرچ ڈیش بورڈز کے ذریعے تعینات کردہ ماڈل دیکھیں

CloudFormation ٹیمپلیٹ نے OpenSearch سروس ڈومین پر ماڈل کو کامیابی کے ساتھ تعینات کرنے اور ماڈل ID حاصل کرنے کے لیے، آپ OpenSearch Dashboards Dev Tools کے ذریعے ML Commons REST GET API استعمال کر سکتے ہیں۔

GET _plugins REST API اب ماڈل کی حیثیت کو دیکھنے کے لیے اضافی APIs فراہم کرتا ہے۔ درج ذیل کمانڈ آپ کو ریموٹ ماڈل کی حیثیت دیکھنے کی اجازت دیتی ہے۔

GET _plugins/_ml/models/<modelid>

جیسا کہ مندرجہ ذیل اسکرین شاٹ میں دکھایا گیا ہے، a DEPLOYED جواب میں اسٹیٹس اس بات کی نشاندہی کرتا ہے کہ ماڈل اوپن سرچ سروس کلسٹر پر کامیابی کے ساتھ تعینات ہے۔

متبادل طور پر، آپ اپنے اوپن سرچ سروس ڈومین پر تعینات ماڈل کو استعمال کر کے دیکھ سکتے ہیں۔ مشین لرننگ اوپن سرچ ڈیش بورڈز کا صفحہ۔

یہ صفحہ ماڈل کی معلومات اور تعینات کردہ تمام ماڈلز کے حالات کی فہرست دیتا ہے۔

ماڈل ID کا استعمال کرتے ہوئے نیورل پائپ لائن بنائیں

جب ماڈل کی حیثیت یا تو ظاہر ہوتی ہے۔ DEPLOYED دیو ٹولز میں یا سبز اور جواب دیں OpenSearch ڈیش بورڈز میں، آپ اپنی نیورل انجسٹ پائپ لائن بنانے کے لیے ماڈل ID استعمال کر سکتے ہیں۔ درج ذیل انجیسٹ پائپ لائن آپ کے ڈومین کے OpenSearch Dashboards Dev Tools میں چلائی جاتی ہے۔ اس بات کو یقینی بنائیں کہ آپ ماڈل ID کو اپنے ڈومین پر تعینات کردہ ماڈل کے لیے تیار کردہ منفرد ID سے تبدیل کرتے ہیں۔

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

ویکٹر بنانے کے لیے نمونے کے دستاویزات کا استعمال کریں۔

اس ڈیمو کے لیے، آپ نگل سکتے ہیں۔ نمونہ خوردہ ڈیموسٹور پروڈکٹ کیٹلاگ نئے پر semantic_demostore انڈیکس صارف کا نام، پاس ورڈ، اور ڈومین اینڈ پوائنٹ کو اپنی ڈومین کی معلومات سے بدلیں اور خام ڈیٹا کو OpenSearch سروس میں داخل کریں:

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

نئے semantic_demostore انڈیکس کی توثیق کریں۔

اب جب کہ آپ نے اپنا ڈیٹا سیٹ OpenSearch سروس کے ڈومین میں داخل کر لیا ہے، توثیق کریں کہ کیا مطلوبہ ویکٹر تمام فیلڈز کو حاصل کرنے کے لیے ایک سادہ تلاش کا استعمال کرتے ہوئے تیار کیے گئے ہیں۔ اگر فیلڈز کی وضاحت کی گئی ہو تو تصدیق کریں۔ knn_vectors مطلوبہ ویکٹر ہیں.

تلاش کے نتائج کا موازنہ کرنے والے ٹول کا استعمال کرتے ہوئے عصبی تلاش سے چلنے والی لغوی تلاش اور سیمنٹک تلاش کا موازنہ کریں۔

۔ تلاش کے نتائج کے ٹول کا موازنہ کریں۔ OpenSearch ڈیش بورڈز پر پیداواری کام کے بوجھ کے لیے دستیاب ہے۔ آپ نیویگیٹ کر سکتے ہیں۔ تلاش کے نتائج کا موازنہ کریں۔ صفحہ اور لغوی تلاش اور اعصابی تلاش کے درمیان استفسار کے نتائج کا موازنہ کریں جو پہلے تیار کردہ ماڈل ID کو استعمال کرنے کے لیے ترتیب دی گئی ہیں۔

صاف کرو

آپ CloudFormation اسٹیک کو حذف کر کے اس پوسٹ میں دی گئی ہدایات پر عمل کرتے ہوئے اپنے تخلیق کردہ وسائل کو حذف کر سکتے ہیں۔ یہ لیمبڈا وسائل اور S3 بالٹی کو حذف کر دے گا جس میں وہ ماڈل شامل ہے جو SageMaker میں تعینات کیا گیا تھا۔ درج ذیل مراحل کو مکمل کریں:

  1. AWS CloudFormation کنسول پر، اپنے اسٹیک تفصیلات کے صفحہ پر جائیں۔
  2. میں سے انتخاب کریں خارج کر دیں.

  1. میں سے انتخاب کریں خارج کر دیں تصدیق کے لئے.

آپ AWS CloudFormation کنسول پر اسٹیک ڈیلیٹ کرنے کی پیشرفت کی نگرانی کر سکتے ہیں۔

نوٹ کریں کہ CloudFormation اسٹیک کو حذف کرنے سے SageMaker ڈومین پر تعینات ماڈل اور تخلیق کردہ AI/ML کنیکٹر حذف نہیں ہوتا ہے۔ اس کی وجہ یہ ہے کہ یہ ماڈلز اور کنیکٹر ڈومین کے اندر ایک سے زیادہ اشاریہ جات سے منسلک ہو سکتے ہیں۔ ماڈل اور اس سے منسلک کنیکٹر کو خاص طور پر حذف کرنے کے لیے، ماڈل APIs کا استعمال کریں جیسا کہ مندرجہ ذیل اسکرین شاٹس میں دکھایا گیا ہے۔

سب سے پہلے، undeploy اوپن سرچ سروس ڈومین میموری سے ماڈل:

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

پھر آپ ماڈل انڈیکس سے ماڈل کو حذف کر سکتے ہیں:

DELETE /_plugins/_ml/models/<model_id>

آخر میں، کنیکٹر انڈیکس سے کنیکٹر کو حذف کریں:

DELETE /_plugins/_ml/connectors/<connector_id>

نتیجہ

اس پوسٹ میں، آپ نے سیکھا کہ سیج میکر میں ماڈل کیسے لگانا ہے، اوپن سرچ سروس کنسول کا استعمال کرتے ہوئے AI/ML کنیکٹر بنانا ہے، اور نیورل سرچ انڈیکس بنانا ہے۔ OpenSearch سروس میں AI/ML کنیکٹرز کو کنفیگر کرنے کی صلاحیت بیرونی ماڈلز میں انضمام کو مقامی بنا کر ویکٹر ہائیڈریشن کے عمل کو آسان بناتی ہے۔ آپ نیورل انجیشن پائپ لائن اور نیورل سرچ کا استعمال کرتے ہوئے منٹوں میں نیورل سرچ انڈیکس بنا سکتے ہیں جو ادخال اور تلاش کے دوران فلائی پر ویکٹر ایمبیڈنگ بنانے کے لیے ماڈل ID کا استعمال کرتی ہے۔

ان AI/ML کنیکٹرز کے بارے میں مزید جاننے کے لیے، رجوع کریں۔ AWS خدمات کے لیے Amazon OpenSearch Service AI کنیکٹر, AWS CloudFormation ٹیمپلیٹ انضمام معنوی تلاش کے لیے، اور تھرڈ پارٹی ایم ایل پلیٹ فارمز کے لیے کنیکٹر بنانا.


مصنفین کے بارے میں

ارونا گووندراجو ایک Amazon OpenSearch سپیشلسٹ سولیوشن آرکیٹیکٹ ہے اور اس نے بہت سے تجارتی اور اوپن سورس سرچ انجنوں کے ساتھ کام کیا ہے۔ وہ تلاش، مطابقت اور صارف کے تجربے کے بارے میں پرجوش ہے۔ اختتامی صارف کے سگنلز کو سرچ انجن کے رویے کے ساتھ منسلک کرنے میں اس کی مہارت نے بہت سے صارفین کو اپنے تلاش کے تجربے کو بہتر بنانے میں مدد کی ہے۔

ڈیگنی براؤن اوپن سرچ پر مرکوز AWS میں پرنسپل پروڈکٹ مینیجر ہے۔

ٹائم اسٹیمپ:

سے زیادہ AWS بگ ڈیٹا