কিভাবে Roblox মেশিন লার্নিং অপ্টিমাইজড ব্লুম ফিল্টার দিয়ে স্পার্ক জয়েন কোয়েরির খরচ কমায় - রোবলক্স ব্লগ

কিভাবে Roblox মেশিন লার্নিং অপ্টিমাইজড ব্লুম ফিল্টার দিয়ে স্পার্ক জয়েন কোয়েরির খরচ কমায় – রোবলক্স ব্লগ

উত্স নোড: 2983061

বিমূর্ত

রোব্লক্সে প্রতিদিন, 65.5 মিলিয়ন ব্যবহারকারী মিলিয়ন মিলিয়ন অভিজ্ঞতার সাথে জড়িত, মোট 14.0 বিলিয়ন ঘন্টা ত্রৈমাসিক। এই মিথস্ক্রিয়া একটি পেটাবাইট-স্কেল ডেটা লেক তৈরি করে, যা বিশ্লেষণ এবং মেশিন লার্নিং (ML) উদ্দেশ্যে সমৃদ্ধ হয়। আমাদের ডেটা লেকে ফ্যাক্ট এবং ডাইমেনশন টেবিলে যোগদান করা রিসোর্স-ইনটেনসিভ, তাই এটিকে অপ্টিমাইজ করতে এবং ডাটা এলোমেলো করা কমাতে, আমরা শিখেছি ব্লুম ফিল্টার [১]—এমএল ব্যবহার করে স্মার্ট ডেটা স্ট্রাকচার। উপস্থিতির পূর্বাভাস দিয়ে, এই ফিল্টারগুলি যোগদানের ডেটাকে যথেষ্ট পরিমাণে ছাঁটাই করে, দক্ষতা বাড়ায় এবং খরচ কমায়। সেই সাথে, আমরা আমাদের মডেল আর্কিটেকচারগুলিকেও উন্নত করেছি এবং প্রসেসিংয়ের জন্য মেমরি এবং CPU ঘন্টা হ্রাস করার পাশাপাশি অপারেশনাল স্থিতিশীলতা বাড়ানোর জন্য তারা যে উল্লেখযোগ্য সুবিধাগুলি অফার করে তা প্রদর্শন করেছি।

ভূমিকা

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

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

শেখা ব্লুম ফিল্টারগুলির সাথে যোগদানের দক্ষতা বৃদ্ধি করা

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

প্রথাগত ব্লুম ফিল্টার থেকে শেখা ব্লুম ফিল্টারে বিবর্তন

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

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

এই কাজের অংশ হিসাবে, আমরা আমাদের শেখা ব্লুম ফিল্টার পদ্ধতির মূল্যায়নের জন্য দুটি মেট্রিক স্থাপন করেছি: সূচকের চূড়ান্ত ক্রমিক বস্তুর আকার এবং যোগদানের প্রশ্নগুলি সম্পাদনের সময় CPU খরচ। 

বাস্তবায়ন চ্যালেঞ্জ নেভিগেট

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

দ্বিতীয় চ্যালেঞ্জটি মডেল আর্কিটেকচার এবং প্রশিক্ষণ বৈশিষ্ট্যগুলিকে কেন্দ্র করে। ফিশিং ইউআরএলগুলির ক্লাসিক সমস্যার বিপরীতে [১], আমাদের জয়েন কী (যা বেশিরভাগ ক্ষেত্রে ব্যবহারকারী/অভিজ্ঞতার জন্য অনন্য শনাক্তকারী) অন্তর্নিহিতভাবে তথ্যপূর্ণ ছিল না। এটি আমাদের সম্ভাব্য মডেল বৈশিষ্ট্য হিসাবে মাত্রা বৈশিষ্ট্যগুলি অন্বেষণ করতে পরিচালিত করেছে যা ফ্যাক্ট টেবিলে একটি মাত্রা সত্তা উপস্থিত আছে কিনা তা অনুমান করতে সাহায্য করতে পারে৷ উদাহরণস্বরূপ, একটি ফ্যাক্ট টেবিল কল্পনা করুন যেখানে একটি নির্দিষ্ট ভাষায় অভিজ্ঞতার জন্য ব্যবহারকারীর সেশনের তথ্য রয়েছে। ভৌগোলিক অবস্থান বা ব্যবহারকারীর মাত্রার ভাষা পছন্দ বৈশিষ্ট্য একটি স্বতন্ত্র ব্যবহারকারী ফ্যাক্ট টেবিলে উপস্থিত আছে কি না তার ভাল সূচক হবে।

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

শেখা ব্লুম ফিল্টার ব্যবহার করে আমাদের আপডেট করা যোগদানের প্রশ্নটি নীচে দেখানো হয়েছে:

ফলাফল

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

শিখেছি ব্লুম ফিল্টার আকার তুলনা

নীচে দেখানো হিসাবে, প্রদত্ত মিথ্যা ইতিবাচক হারের দিকে তাকালে, শেখা ব্লুম ফিল্টারের দুটি রূপ প্রথাগত ব্লুম ফিল্টারগুলির তুলনায় মোট বস্তুর আকার 17-42% বৃদ্ধি করে।

উপরন্তু, আমাদের গ্রেডিয়েন্ট বুস্টেড ট্রি ভিত্তিক মডেলের বৈশিষ্ট্যগুলির একটি ছোট উপসেট ব্যবহার করে, আমরা দ্রুত অনুমান করার সময় অপ্টিমাইজেশানের একটি ছোট শতাংশ হারিয়েছি।

ব্লুম ফিল্টার ব্যবহারের ফলাফল শিখেছি 

এই বিভাগে, আমরা বিভিন্ন মেট্রিক্স জুড়ে নিয়মিত যোগদানের সাথে ব্লুম ফিল্টার-ভিত্তিক যোগদানের কর্মক্ষমতা তুলনা করি। 

নীচের সারণীটি শেখা ব্লুম ফিল্টারগুলির সাথে এবং ব্যবহার না করে কাজের চাপের কর্মক্ষমতা তুলনা করে। 1% মোট মিথ্যা ইতিবাচক সম্ভাবনা সহ একটি শেখা ব্লুম ফিল্টার উভয় প্রকারের যোগদানের জন্য একই ক্লাস্টার কনফিগারেশন বজায় রেখে নীচের তুলনা প্রদর্শন করে। 

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

দ্বিতীয়ত, শেখা ব্লুম ফিল্টারগুলির মোট ডেটা সাইজ প্রায় 80% কম এবং নিয়মিত যোগদানের তুলনায় প্রায় 80% কম মোট শাফেল বাইট লেখা থাকে। এটি নীচে আলোচনার মতো আরও স্থিতিশীল যোগদানের কার্যক্ষমতার দিকে নিয়ে যায়। 

আমরা পরীক্ষা-নিরীক্ষার অধীনে আমাদের অন্যান্য উৎপাদন কাজের চাপেও সম্পদের ব্যবহার কম দেখেছি। পাঁচটি কাজের চাপের মধ্যে দুই সপ্তাহের মধ্যে, শেখা ব্লুম ফিল্টার পদ্ধতি গড়ে দৈনিক খরচ সঞ্চয় of 25%, যা মডেল প্রশিক্ষণ এবং সূচক তৈরির জন্যও দায়ী।

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

তথ্যসূত্র

[১] T. Kraska, A. Beutel, EH Chi, J. Dean, এবং N. Polyzotis. শেখা সূচক কাঠামোর ক্ষেত্রে। https://arxiv.org/abs/1712.01208, 2017.

[২] এম মিটজেনমাচার। স্যান্ডউইচিং দ্বারা শেখা ব্লুম ফিল্টার অপ্টিমাইজ করা। 

https://arxiv.org/abs/1803.01474, 2018.


¹৩০ জুন, ২০২৩ শেষ হওয়া ৩ মাসের হিসাবে

²3 জুন, 30 তারিখে শেষ হওয়া 2023 মাসের হিসাবে

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

থেকে আরো Roblox