paint-brush
এআই লুকানো সংযোগগুলি ম্যাপ করছে—এবং এটি কেবল শুরু হচ্ছেদ্বারা@andrei9735
নতুন ইতিহাস

এআই লুকানো সংযোগগুলি ম্যাপ করছে—এবং এটি কেবল শুরু হচ্ছে

দ্বারা Andrei4m2025/02/14
Read on Terminal Reader

অতিদীর্ঘ; পড়তে

সুপারিশ ইঞ্জিন থেকে শুরু করে নেটওয়ার্ক অপ্টিমাইজেশন পর্যন্ত, লিঙ্ক ভবিষ্যদ্বাণী একটি বহুমুখী হাতিয়ার যা মূল্য নিয়ে আসে।
featured image - এআই লুকানো সংযোগগুলি ম্যাপ করছে—এবং এটি কেবল শুরু হচ্ছে
Andrei HackerNoon profile picture
0-item

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


এখন পর্যন্ত, আমরা ইতিমধ্যেই টুইচ সোশ্যাল নেটওয়ার্কিং ডেটা নেপচুন ক্লাস্টারে লোড করেছি (এই সিরিজের পর্ব ১ এ বর্ণিত হিসাবে), এমএল প্রোফাইল ব্যবহার করে ডেটা এক্সপোর্ট করেছি (বিস্তারিত জানার জন্য পর্ব ২ দেখুন), ডেটা প্রিপ্রসেস করেছি (পর্ব ৩ এ ব্যাখ্যা করা হয়েছে), মডেলকে প্রশিক্ষণ দিয়েছি (পর্ব ৪ দেখুন), এবং এখন আমরা ভবিষ্যদ্বাণী তৈরি করতে প্রশিক্ষিত মডেলটি ব্যবহার করতে প্রস্তুত।


পর্ব ১ এখানে ; পর্ব ২ এখানে ; পর্ব ৩ এখানে; এবং পর্ব ৪ এখানে পড়ুন।

শেষবিন্দু তৈরি করা

আসুন ক্লাস্টারের API এবং S3-তে থাকা মডেল আর্টিফ্যাক্টগুলি ব্যবহার করে ইনফারেন্স এন্ডপয়েন্ট তৈরি করি। যথারীতি, আমাদের এমন একটি IAM রোল প্রয়োজন যার প্রথমে S3 এবং SageMaker-এ অ্যাক্সেস থাকবে। রোলটিতে একটি ট্রাস্ট পলিসিও থাকতে হবে যা আমাদের এটি নেপচুন ক্লাস্টারে যুক্ত করতে দেয় (ট্রাস্ট পলিসিটি এই গাইডের পার্ট 3-এ পাওয়া যাবে)। আমাদের VPC-এর ভিতর থেকে SageMaker এবং CloudWatch API-তে অ্যাক্সেসও প্রদান করতে হবে, তাই আমাদের এই সিরিজের পার্ট 1-এ ব্যাখ্যা করা VPC এন্ডপয়েন্টগুলির প্রয়োজন।


এই curl কমান্ডের সাহায্যে একটি ইনফারেন্স এন্ডপয়েন্ট তৈরি করতে ক্লাস্টারের API ব্যবহার করা যাক:

 curl -XPOST https://(YOUR_NEPTUNE_ENDPOINT):8182/ml/endpoints \ -H 'Content-Type: application/json' \ -d '{ "mlModelTrainingJobId": YOUR_MODEL_TRAINING_JOB_ID, "neptuneIamRoleArn": "arn:aws:iam::123456789012:role/NeptuneMLNeptuneRole" }'

আমরা ' instanceType ' এবং ' instanceCount ' প্যারামিটার ব্যবহার করে EC2 ইনস্ট্যান্স টাইপ নির্বাচন করতে পারি যা লিঙ্ক পূর্বাভাসের জন্য ব্যবহৃত হবে, এবং একাধিক ইনস্ট্যান্স স্থাপন করতে পারি। প্যারামিটারের সম্পূর্ণ তালিকা এখানে পাওয়া যাবে। আমরা ডিফল্ট ' ml.m5(d).xlarge ' ইনস্ট্যান্স ব্যবহার করব কারণ এতে আমাদের ছোট গ্রাফের জন্য পর্যাপ্ত CPU এবং RAM রয়েছে, এবং এই ইনস্ট্যান্স টাইপটি infer_instance_recommendation.json- এ সুপারিশ করা হয়েছিল যা আমাদের পূর্ববর্তী পর্যায়ে মডেল প্রশিক্ষণের পরে তৈরি হয়েছিল:

 { "disk_size": 12023356, "instance": "ml.m5d.xlarge", "mem_size": 13847612 }

API ইনফারেন্স এন্ডপয়েন্ট আইডি দিয়ে সাড়া দেয়:

 {"id":"b217165b-7780-4e73-9d8a-5b6f7cfef9f6"}

তারপর আমরা এই কমান্ডের সাহায্যে অনুমানের শেষ বিন্দুর অবস্থা পরীক্ষা করতে পারি:

 curl https://YOUR_NEPTUNE_ENDPOINT:8182/ml/endpoints/INFERENCE_ENDPOINT_ID?neptuneIamRole='arn:aws:iam::123456789012:role/NeptuneMLNeptuneRole'

এবং একবার এটি ' স্ট্যাটাস: ইনসার্ভিস ' এর মতো সাড়া দিলে,

 { "endpoint": { "name": "YOUR_INFERENCE_ENDPOINT_NAME-endpoint", "arn": "...", "status": "InService" }, "endpointConfig": {...}, "id": "YOUR_INFERENCE_ENDPOINT_ID", "status": "InService" }

এর মানে হল আমরা ডাটাবেস কোয়েরির সাথে এটি ব্যবহার শুরু করতে প্রস্তুত।

এন্ডপয়েন্টটি AWS কনসোল থেকেও দেখা এবং পরিচালনা করা যেতে পারে, SageMaker -> Inference -> Endpoints এর অধীনে।

শেষবিন্দু জিজ্ঞাসা করা

গ্রাফে নতুন 'অনুসরণ' লিঙ্কগুলি পূর্বাভাস দেওয়ার জন্য শেষ বিন্দু ব্যবহার করা যাক। এটি করার জন্য, আমাদের সম্ভাব্য নতুন লিঙ্কগুলির উৎস শীর্ষবিন্দু নির্বাচন করতে হবে।

যদি সোর্স ভার্টেক্সে ইতিমধ্যেই লিঙ্ক থাকে তবে এটি সাহায্য করে, তাই আমরা এই কোয়েরিটি ব্যবহার করে সর্বাধিক সংখ্যক বিদ্যমান লিঙ্ক (outE এবং inE সংযোগ) সহ ভার্টেক্সটি খুঁজে বের করব:

 gV() .group() .by() .by(bothE().count()) .order(local) .by(values, Order.desc) .limit(local, 1) .next()

ফলাফল হল

 {v[1773]: 1440}

যার অর্থ হল ID = 1773 সহ শীর্ষবিন্দুতে 1440টি সংযোগ রয়েছে (720 inE এবং 720 outE)।

নোড ১৭৭৩ থেকে শুরু হওয়া প্রান্তের সংখ্যা এবং সেই নোডে শেষ হওয়া প্রান্তের সংখ্যা জানতে আমরা এই কোয়েরিগুলি ব্যবহার করতে পারি:

 gV('1773').outE().count() gV('1773').inE().count()

প্রাথমিক ডেটাসেটে পারস্পরিক বন্ধুত্ব থাকার কারণে একই সংখ্যক inE এবং outE সংযোগ প্রত্যাশিত, এবং আমরা নেপচুন নির্দেশিত গ্রাফের সাথে কাজ করার জন্য বিপরীত প্রান্ত দিয়ে ডেটা বৃদ্ধি করেছি।


এবার আসুন পূর্বাভাসিত সংযোগগুলি জেনে নিই। এটি করার জন্য, আমরা Neptune ML predicates সহ একটি Gremlin কোয়েরি চালাব। আমরা inference endpoint এবং SageMaker ভূমিকা ব্যবহার করব যা DB ক্লাস্টারে যোগ করা হয়েছিল যাতে 1773 ব্যবহারকারীর অনুসরণকারী ব্যবহারকারীদের কমপক্ষে 0.1 (10%) একটি আত্মবিশ্বাসের থ্রেশহোল্ড (মডেল অনুসারে লিঙ্কের অস্তিত্বের ন্যূনতম সম্ভাবনা) পেতে পারে , তবে 1773 ব্যবহারকারী ইতিমধ্যে অনুসরণকারী ব্যবহারকারীদের বাদ দিয়ে:

 %%gremlin g.with('Neptune#ml.endpoint', 'YOUR_INFERENCE_ENDPOINT_NAME') .with('Neptune#ml.iamRoleArn', 'arn:aws:iam::123456789012:role/NeptuneMLSagemakerRole') .with('Neptune#ml.limit', 10000) .with('Neptune#ml.threshold', 0.1D) .V('1773') .out('follows') .with('Neptune#ml.prediction') .hasLabel('user') .not( __.in('follows').hasId('1773') )


এটি ৪টি ফলাফল প্রদান করে:

 "Result" "v[755]" "v[6086]" "v[6382]" "v[7005]"


আমাদের মডেল অনুসারে, কমপক্ষে ১০% সম্ভাবনা রয়েছে যে ব্যবহারকারী ১৭৭৩ এই ৪ জন ব্যবহারকারীর প্রত্যেককে অনুসরণ করবে। সম্ভবত আমরা AWS দ্বারা সুপারিশকৃত প্রশিক্ষণ কাজের সংখ্যা কমপক্ষে ১০-এ বৃদ্ধি করে মডেলটিকে উন্নত করতে পারি, এবং তারপরে ফলাফল মডেলের কর্মক্ষমতা এবং পূর্বাভাসিত লিঙ্কগুলির তুলনা করতে পারি। বাস্তব অ্যাপ্লিকেশনগুলিতে, গ্রাফে ব্যবহারকারীর প্রোফাইল এবং কার্যকলাপ ডেটা যোগ করলে ভবিষ্যদ্বাণীর নির্ভুলতাও উন্নত হয়।


সোশ্যাল নেটওয়ার্কিং ডেটাসেটে ভবিষ্যদ্বাণী করা সংযোগগুলি ব্যক্তিগতকৃত সুপারিশ প্রদান করতে ব্যবহার করা যেতে পারে যেমন বন্ধু এবং বিষয়বস্তুর পরামর্শ, ব্যবহারকারীর সম্পৃক্ততা এবং সম্প্রদায়ের বৃদ্ধি বৃদ্ধি, মন্থন হ্রাস করা এবং লক্ষ্যযুক্ত বিজ্ঞাপনের জন্য অতিরিক্ত ডেটা প্রদান করা।


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