রিয়েল-টাইম আর্টিফিশিয়াল ইন্টেলিজেন্স / মেশিন লার্নিং (AI/ML) ইউজ কেস, যেন ফ্রড প্রিভেনশন এবং রিকমেন্ডেশন, উত্থানে রয়েছে, এবং ফিচার স্টোর সফলভাবে প্রোডাকশনে ডিপ্লয় করার জন্য একটি কী ভূমিকা পালন করে। জনপ্রিয় ওপেন সোর্স ফিচার স্টোর Feast-এ অনুযায়ী, তাদের কমিউনিটি স্ল্যাকে ব্যবহারকারীরা যে সবচেয়ে कॉमन প্রশ্ন জিজ্ঞেস করে সেটি হচ্ছে: Feast কতটুকু স্কেলেবল/পারফরম্যান্ট? এটি কারণ রিয়েল-টাইম AI/ML-এর জন্য একটি ফিচার স্টোরের সবচেয়ে গুরুত্বপূর্ণ বৈশিষ্ট্য হচ্ছে অনলাইন স্টোর থেকে ML মডেলে অনলাইন প্রেডিকশন বা স্কোরিং-এর জন্য ফিচার সার্ভিং স্পীড। সফল ফিচার স্টোর কঠোর লেটেন্সি আপেক্ষা (মিলিসেকেন্ডে পরিমাপিত) পূরণ করতে পারে, কনসিস্টেন্টলি (p99 ভাবেই) এবং স্কেলে (মিলিয়ন কোয়েরি প্রতি সেকেন্ড পর্যন্ত, গিগাবাইট থেকে টেরাবাইট আকারের ডেটাসেটসহ) এবং একই সাথে কম টোটাল কস্ট অফ ओনারশিপ এবং উচ্চ Accuracy মেনটেইন করতে পারে।
যেমন আমরা এই পোস্টে দেখব, অনলাইন ফিচার স্টোরের পছন্দ, সেইসাথে ফিচার স্টোরের আর্কিটেকচার, গুরুত্বপূর্ণ ভূমিকা পালন করে কীভাবে পারফরম্যান্ট এবং কাস্ট-ইফেক্টিভ তা নির্ধারণ করতে। এই কারণে কোম্পানিগুলো প্রায়শই তাদের অনলাইন ফিচার স্টোর বেছে নেওয়ার আগে গভীর বেঞ্চমার্কিং করে যেন কোন আর্কিটেকচার বা অনলাইন ফিচার স্টোর সবচেয়ে পারফরম্যান্ট এবং কাস্ট-ইফেক্টিভ। এই পোস্টে, আমরা DIY ফিচার স্টোর তৈরি করে সফলভাবে রিয়েল-টাইম AI/ML ইউজ কেস ডিপ্লয় করেছেন এমন কোম্পানিগুলোর এবং ওপেন সোর্স ও কমার্শিয়াল ফিচার স্টোরের আর্কিটেকচার এবং বেঞ্চমার্ক রিভিউ করব। চলুন শুরু করি।
১. ওপেন সোর্স Feast
চলুন প্রথমে Feast ওপেন সোর্স ফিচার স্টোরের বেঞ্চমার্কিং ডেটা এবং ডেটা আর্কিটেকচার দেখি। Feast gần đây একটি বেঞ্চমার্ক করলো তার ফিচার সার্ভিং লেটেন্সি তুলনা করার জন্য বিভিন্ন অনলাইন স্টোর ব্যবহার করে (রিডিস vs Google Cloud Datastore vs AWS DynamoDB)। এছাড়াও এটি তুলনা করলো ফিচার এক্সট্র্যাক্ট করার বিভিন্ন মেকানিজমের স্পীড (যেমন Java gRPC সার্ভার, Python HTTP সার্ভার, ল্যাম্বডা ফাংশন, ইত্যাদি)। আপনি ফুল বেঞ্চমার্ক সেটআপ এবং এর রেজাল্ট এই ব্লগ পোস্টে পাবেন। বটম লাইন: Feast জাভা gRPC সার্ভার এবং অনলাইন স্টোর হিসেবে রিডিস ব্যবহার করে চरম পারফরম্যান্স পেয়েছিল।
উপরোক্ত ডায়াগ্রামে আপনি দেখতে পারেন অনলাইন মোর্টগেজ কোম্পানি Better.com কীভাবে ওপেন সোর্স Feast ফিচার স্টোর ব্যবহার করে তার লিড স্কোরিং র্যাঙ্কিং সিস্টেম বাস্তবায়ন করেছে। যেমন ভিতালি সার্জি, Better.com-এ সিনিয়র সফ্টওয়্যার ইঞ্জিনিয়ার, প্রেজেন্ট করেছেন, ফিচারগুলো অফলাইন স্টোর (S3, Snowflake, এবং Redshift) থেকে অনলাইন স্টোরে (রিডিস) ম্যাটেরিয়ালাইজ করা হয়েছে। এর পাশাপাশি, ফিচারগুলো স্ট্রিমিং সোর্স (Kafka টপিক) থেকে অনলাইন স্টোরে ইনজেস্টও করা হয়েছে। Feast gầnখন স্ট্রিমিং ডেটা সোর্সের জন্য সাপোর্ট যোগ করেছে (ব্যাচ ডেটা সোর্সের পাশাপাশি) যা বর্তমানে শুধু রিডিসের জন্য সাপোর্টেড। স্ট্রিমিং ডেটা সোর্স সাপোর্ট করা রিয়েল-টাইম AI/ML ইউজ কেসের জন্য খুব গুরুত্বপূর্ণ কারণ এই ইউজ কেসগুলো ফ্রেশ লাইভ ডেটার উপর নির্ভরশীল।
উদাহরণস্বরূপ, Better.com-এর লিড স্কোরিং ইউজ কেসে, নতুন লিডস পুরো দিন নিরंतर ইনজেস্ট হচ্ছে। ফিচারগুলো অনেক ভিন্ন সোর্স থেকে আসছে, এবং এন্টিটি (লিডস) এবং সেগুলো স্কোর করতে ব্যবহৃত ফিচারগুলো সবসময় আপডেট হচ্ছে, তাই লিডস র্যাঙ্ক এবং রি-র্যাঙ্ক হচ্ছে। যতক্ষণ একটি নতুন লিড ইনজেস্ট হয়, তা মডেল দ্বারা ইনজেস্ট এবং স্কোর করা হচ্ছে। একই সাথে যা অনলাইন স্টোরে ইনজেস্ট হচ্ছে, আমরা শীঘ্রই এটিকে রি-র্যাঙ্ক করতে চাই। Better.com-এর লিডস ৪৮ ঘন্টা পর পর এক্সপায়ার হয়, এবং এটি রিডিস অনলাইন স্টোরে সিম্পলি টাইম টু লিভ (TTL) ৪৮ ঘন্টা সেট করে বাস্তবায়ন করা হয়েছে, যাতে এন্টিটি (লিড) এবং অ্যাসোসিয়েটেড ফিচার ভেক্টর ৪৮ ঘন্টার পর এক্সপায়ার হয়। তাই ফিচার স্টোর আপনাকาร ভ্যালিড এন্টিটি বা ফিচার ছাড়া আপনাকার অনলাইন স্টোরেজ 차지 না করে স্বয়ংক্রিয়ভাবে ক্লিন হয়ে যায়।
Feast-এর আরেকটি আকর্ষণীয় বাস্তবায়ন হলো Microsoft Azure Feature Store। আপনি এর আর্কিটেকচার এখানে দেখতে পারেন। এটি অজিউর ক্লাউডে চলে যা লো লেটেন্সি রিয়েল-টাইম AI/ML ইউজ কেসের জন্য অপ্টিমাইজড, ব্যাচ এবং স্ট্রিমিং সোর্স উভয় সাপোর্ট করে, সেইসাথে Azure Data & AI ইকোসিস্টেমে ইন্টিগ্রেশন। ফিচারগুলো অনলাইন স্টোরে ইনজেস্ট হচ্ছে ব্যাচ সোর্স (Azure Synapse Serverless SQL, Azure Storage / ADLS) এবং স্ট্রিমিং সোর্স (Azure Event Hub) উভয় থেকে। আপনি যদি ইতিমধ্যে অজিউরতে ডিপ্লয়ড থাকেন বা অজিউর ইকোসিস্টেমের সাথে পরিচিত হন, তবে এই ফিচার স্টোর আপনার জন্য সঠিক হতে পারে। অনলাইন স্টোরের জন্য, এটি Azure Cache for Redis ব্যবহার করে, এবং অজিউর রিডিসের এন্টারপ্রাইজ টিয়ারসহ, এতে অ্যাক্টিভ-অ্যাক্টিভ জিও-ডুপ্লিকেশন অন্তর্ভুক্ত থাকে যা গ্লোবালি ডিস্ট্রিবিউটেড ক্যাশে তৈরি করে ৯৯.৯৯৯% আপটাইম পর্যন্ত। এছাড়াও, এন্টারপ্রাইজ ফ্ল্যাশ টিয়ার ব্যবহার করে আরও কস্ট রিডাকশন অর্জন করা যায় যা রিডিসকে টিয়ারড মেমরি আর্কিটেকচারে চালায় যা DRAM এবং Flash মেমরি (NVMe বা SSD) উভয় ব্যবহার করে ডেটা স্টোর করতে।
২. Wix DIY ফিচার স্টোর – MLOps প্ল্যাটফর্মের কোর্নারস্টোন
নিচে রিয়েল-টাইম AI/ML ইউজ কেস বাস্তবায়নের একটি ভিন্ন আর্কিটেকচার। এটি জনপ্রিয় ওয়েবসাইট বিল্ডিং প্ল্যাটফর্ম Wix-এর ফিচার স্টোর আর্কিটেকচার। এটি রিয়েল-টাইম ইউজ কেসের জন্য ব্যবহৃত হয় যেন রিকমেন্ডেশন, চর্ন এবং প্রিমিয়াম প্রেডিকশন, র্যাঙ্কিং, এবং স্প্যাম ক্লাসিফায়ার। Wix ২০০ মিলিয়ন から বেশি রেজিস্টার্ড ইউজার সার্ভ করে যাদের শুধু একটি ছোট অংশ যেকোনো সময় 'এ্যাক্টিভ ইউজার'। এর ফিচার স্টোর বাস্তবায়নে বড় প্রভাব ফেলেছিল। চলুন এটিকে একটু দেখি।
নিচের তথ্যটি রান রোমানো দ্বারা ডেলিভার করা একটি টেকটক প্রেজেন্টেশনের উপর ভিত্তি করে য toen Wix-এ ML Engineering হেড করতেন। ৯০% এর বেশি ডেটা যা Wix ফিচার স্টোরে সংরক্ষিত থাকে সেগুলো ক্লিকস্ট্রিম এবং ML মডেলগুলো ট্রিগার হয় প্রতি ওয়েবসাইট বা প্রতি ইউজার। রান ব্যাখ্যা করেন যে রিয়েল-টাইম ইউজ কেসের জন্য, লেটেন্সি একটি বড় ইস্যু। এছাড়া, তাদের কিছু প্রোডাকশন ইউজ কেসের জন্য, তারা মিলিসেকেন্ডের মধ্যে ফিচার ভেক্টর এক্সট্র্যাক্ট করতে চায়।
রয় ডেটা AWS-এ S3 বাকেটে Parquet ফাইল হিসেবে সংরক্ষিত থাকে, এবং বিজনেস ইউনিট (যেমন 'এডিটরস', 'রেস্টুরেন্টস', 'বুকিংস,' ইত্যাদি) এবং তারপর তারিখ অনুযায়ী পার্টিশন করা থাকে। এটি Wix ডেটা প্ল্যাটফর্মের অংশ যা তার ডেটা অ্যানালিস্টরা ব্যবহার করে যা Wix ML প্ল্যাটফর্মের বছরها আগে থেকে বিদ্যমান। একটি দৈনিক বিল্ড ব্যাচ প্রসেসে Spark, SQL ব্যবহার করে (যে মিনিট থেকে ঘন্টা সময় নেয়) সব ইউজার ইতিহাস ফিচার S3 থেকে এক্সট্র্যাক্ট করা হয়, পিভট এবং ইউজার অনুযায়ী অ্যাগ্রিগেট করা হয়, এবং অফলাইন স্টোরে (Apache Hbase) ইনজেস্ট করা হয়। এটি ইউজারের ইতিহাসের 'ইউজার' অনুযায়ী দ্রুত লুকআপ প্রদান করে। একবার সিস্টেম ডিটেক্ট করে যে একটি ইউজার বর্তমানে এ্যাক্টিভ, একটি 'वार্মআপ' প্রসেস ট্রিগার হয় এবং সেই ইউজারের ফিচারগুলো অনলাইন স্টোরে (রিডিস) লোড করা হয় যা অফলাইন স্টোর থেকে অনেক ছোট কারণ এখানে শুধু এ্যাক্টিভ ইউজারদের ইউজার ইতিহাস থাকে। এই 'वार্মআপ' প্রসেস বেশ কিছু সেকেন্ড সময় নিতে পারে। এবং অবশেষে, অনলাইন ফিচার স্টোরের ফিচারগুলো নিরंतर আপডেট হয় ফ্রেশ লাইভ রিয়েল-টাইম ডেটা ব্যবহার করে সরাসরি স্ট্রিমিং সোর্স থেকে প্রতি ইভেন্ট প্রতি ইউজার থেকে আসা (Apache Storm ব্যবহার করে)।
এই ধরণের আর্কিটেকচারের রাইট-টু-রিড রেশিও Feast আর্কিটেকচারের চেয়ে কম যা ম্যাটেরিয়ালাইজেশন এবং অনলাইন স্টোরেজের দৃষ্টিতে খুব ইফিশিয়েন্ট কারণ এটি অনলাইন স্টোরে শুধু এ্যাক্টিভ ইউজারদের ফিচার সংরক্ষণ করে সব ইউজারের বদলে। কারণ এ্যাক্টিভ ইউজাররা Wix-এ সমস্ত রেজিস্টার্ড ইউজারের একটি ছোট ভাগ নির্দেশ করে যেকোনো সময়, এতে বিশাল বাঁচত হয়। তবে এর একটি দাম আছে। অনলাইন স্টোর থেকে ফিচার রিট্রিভ খুব দ্রুত, মিলিসেকেন্ডের মধ্যে, কিন্তু শুধু যদি ফিচারগুলো ইতিমধ্যে অনলাইন স্টোরে থাকে। রেস কন্ডিশনের কারণে, কারণ वार্মআপ প্রসেস কিছু সেকেন্ড সময় নেয়, এটি যথেষ্ট দ্রুত রিলেভেন্ট ফিচার লোড করতে পারবে না সে क्षণে যখন ইউজার এ্যাক্টিভ হয়। তাই, সেই ইউজারের স্কোরিং বা প্রেডিকশন সিম্পলি ফেল করবে। এটা ঠিক আছে যতক্ষণ না ইউজ কেস ক্রিটিক্যাল ফ্লো বা মিশন-ক্রিটিক্যাল ইউজ কেসের অংশ নয় যেমন ট্রানজ্যাকশন অনুমোদন বা ফ্রড প্রিভেনশন। এই ধরণের আর্কিটেকচারও খুব স্পেসিফিক Wix-এর জন্য, যেখানে শুধু একটি ছোট অংশ ইউজার যেকোনো সময় এ্যাক্টিভ থাকে।
৩. কমার্শিয়াল ফিচার স্টোর Tecton
চলুন এখন কমার্শিয়াল এন্টারপ্রাইজ ফিচার স্টোর Tecton-এর আর্কিটেকচার দেখি। নিচের ডায়াগ্রামে দেখতে পারা যাচ্ছে, ব্যাচ ডেটা সোর্স এবং স্ট্রিমিং ডেটা সোর্সের পাশাপাশি, Tecton 'আউট-অফ-দ্য-বক্স' রিয়েল-টাইম ডেটা সোর্সও সাপোর্ট করে। এদের 'রিয়েল-টাইম ফিচারস' বা 'রিয়েল-টাইম' ট্রান্সফর্মেশনও বলা হয়। রিয়েল-টাইম ফিচার শুধু ইনফারেন্স রিকোয়েস্টে ক্যালকুলেট করা যেতে পারে। উদাহরণস্বরূপ সন্দেহজনক ট্রানজ্যাকশনের সাইজ এবং লাস্ট ট্রানজ্যাকশন সাইজের পার্থক্য। তাই, Better.com-এর ক্ষেত্রে ওপেন সোর্স Feast-এর সাথে, Better.com নিজে রিয়েল-টাইম ফিচারসের জন্য সাপোর্ট ডেভেলপ করেছিল। Tecton ফিচার স্টোরের সাথে, এটি সহজে বাস্তবায়ন করা যায় কারণ এটি ইতিমধ্যে ফিচার স্টোর দ্বারা নেটিভলি সাপোর্টেড। Feast এবং Wix ফিচার স্টোরের মত, Tectonও রেজিস্ট্রিতে ফিচার ডিফাইন করে যাতে লজিক্যাল ডেফিনিশন একবারই ডিফাইন হয় অফলাইন এবং অনলাইন স্টোর দুটোর জন্য। এটি সিগনিফিক্যান্টলি ট্রেনিং-সার্ভিং স্কিউ রিডিউস করে যাতে ML মডেলের উচ্চ Accuracy প্রোডাকশনেও মেনটেইন থাকে।
অফলাইন স্টোর, অনলাইন স্টোর, এবং বেঞ্চমার্কিংয়ের পছন্দের সन्दর্ভে, অফলাইন ফিচার স্টোরের জন্য Tecton S3 সাপোর্ট করে, অনলাইন স্টোরের জন্য Tecton এখন তার কাস্টোমারদের DynamoDB এবং Redis Enterprise Cloud-এর মধ্যে পছন্দ অফার করে। একটি недавপ্রেজেন্টেশনে, Tecton সিটিও কেভিন স্টাম্পফ অনলাইন ফিচার স্টোর কীভাবে বেছে নেওয়া যায় সেটি সম্পর্কে টিপস দিয়েছেন, কোম্পানির gần এডা করা বেঞ্চমার্কের ভিত্তিতে। লেটেন্সি এবং থ্রুপুট বেঞ্চমার্কিংর পাশাপাশি, Tecton অনলাইন স্টোরের কস্টও বেঞ্চমার্ক করেছে। এটি কেন গুরুত্বপূর্ণ? হাই থ্রুপুট বা লো লেটেন্সি ইউজ কেসের জন্য, অনলাইন স্টোরের কস্ট পুরো MLOps প্ল্যাটফর্মের টোটাল কস্ট অফ ওনারশিপের একটি বড় এবং গুরুত্বপূর্ণ অংশ হতে পারে, তাই যেকোনো কস্ট বাঁচত বিশাল হতে পারে।
Tecton-এর বেঞ্চমার্কিংয়ের বটম লাইন হচ্ছে Tecton-এর ব্যবহারকারীদের জন্য টিপিক্যাল হাই থ্রুপুট ইউজ কেসের জন্য, রিডিস এন্টারপ্রাইজ ৩x দ্রুত এবং একই সাথে ১৪x কম ব্যয়বহুল DynamoDB-এর তুলনায়।
তো ক্যাচ কী? আপনার যদি শুধু একটি ইউজ কেস থাকে, এবং সেটির হাই বা কনসিস্টেন্ট থ্রুপুট নেই, এবং সেটির কোনো কঠোর লেটেন্সি রিকোয়ারমেন্ট নেই, তবে আপনি DynamoDB-এ যেতে পারেন। Tecton-এর বেঞ্চমার্কের ফুল ডিটেইল এবং রেজাল্ট এখানে পাবেন।
৪. Lightricks কমার্শিয়াল ফিচার স্টোর Qwak ব্যবহার করে
নিচে ফিচার স্টোর আর্কিটেকচারের আরেকটি উদাহরণ। এটি Lightricks দ্বারা ব্যবহৃত, কমার্শিয়াল ফিচার স্টোর Qwak-এর ভিত্তিতে। Lightricks একটি ইউনিকর্ন কোম্পানি যা ভিডিও এবং ইমেজ এডিটিং মোবাইল অ্যাপ ডেভেলপ করে, বিশেষ করে তার সেলফি-এডিটিং অ্যাপ, Facetune-এর জন্য পরিচিত। এটি তার রিকমেন্ডেশন সিস্টেমের জন্য ফিচার স্টোর ব্যবহার করে।
উপরোক্ত ডায়াগ্রামে দেখানো হচ্ছে, Tecton-এর মত, Qwak ফিচার স্টোর তিনটি ধরনের ফিচার সোর্স সাপোর্ট করে – ব্যাচ, স্ট্রিমিং, এবং রিয়েল-টাইম ফিচার।
< p>এটি নোট করা গুরুত্বপূর্ণ যে Qwak ফিচার স্টোরের সাথে, ফিচারগুলোর ম্যাটেরিয়ালাইজেশন ফিচার স্টোরে সরাসরি রয় ডেটা সোর্স থেকে হয় উভয় অফলাইন স্টোর (S3-এ Parquet ফাইল) এবং অনলাইন স্টোর (রিডিস ব্যবহার করে) এর জন্য। এটি Wix, Feast, বা Tecton ফিচার স্টোরের উদাহরণের থেকে ভিন্ন যেখানে ব্যাচ সোর্সের জন্য অনলাইন স্টোরের ম্যাটেরিয়ালাইজেশন অফলাইন স্টোর থেকে অনলাইন স্টোরে করা হয়। এর সুবিধা হচ্ছে না শুধু ফিচার ট্রান্সফর্মেশন লজিক ট্রেনিং এবং সার্ভিং ফ্লো জুড়ে ইউনিফাইড (Feast, Wix, এবং Tecton ফিচার স্টোরের মত), বরং আসল ট্রান্সফর্মেশন বা ফিচার কম্পিউটেশনও ইউনিফর্মলি হয়, আরও ট্রেনিং-সার্ভিং স্কিউ কমিয়ে। অফলাইন এবং অনলাইনের জন্য রয় ডেটা থেকে সরাসরি ইউনিফাইড ডেটা পাইপলাইন থাকা প্রোডাকশনে আরও উচ্চ Accuracy নিশ্চিত করতে পারে। Qwak-এর ফিচার স্টোর আর্কিটেকচার এবং কম্পোনেন্ট সম্পর্কে আরও তথ্য এই প্রেজেন্টেশনে পাবেন।সারসংক্ষেপ
এই পোস্টে, আমরা রিয়েল-টাইম AI/ML-এর জন্য বেশ কিছু ফিচার স্টোরের বেঞ্চমার্ক এবং আর্কিটেকচারের মূল হাইলাইটস রিভিউ করেছি। প্রথমটি ওপেন সোর্স Feast, দ্বিতীয়টি DIY Wix ফিচার স্টোর, তৃতীয়টি Tecton থেকে, এবং চতুর্থটি Qwak দ্বারা। আমরা এছাড়াও এই কোম্পানিগুলো কর্তৃক করা কিছু বেঞ্চমার্কের হাইলাইটস রিভিউ করেছি যেন কোন অনলাইন স্টোর সবচেয়ে পারফরম্যান্ট এবং কাস্ট-ইফেক্টিভ। আমরা এছাড়াও এক্সপ্লোর করেছি কোন মেকানিজম বা ফিচার সার্ভার ব্যবহার করতে হয় অনলাইন স্টোর থেকে ফিচার এক্সট্র্যাক্ট করার জন্য। আমরা দেখেছি যে ফিচার স্টোরের পারফরম্যান্স এবং কস্টে উল্লেখযোগ্য পার্থক্য রয়েছে, আর্কিটেকচার, সাপোর্টেড ফিচার টাইপ, এবং সিলেক্টেড কম্পোনেন্টের উপর নির্ভর করে।
মূলত প্রকাশিত KDnuggets-এ।