இந்த தளத்தின் உள்ளடக்கம் செயற்கை நுண்ணறிவு (AI) அல்லது இயந்திர மொழிபெயர்ப்பு தொழில்நுட்பம் மூலம் மொழிபெயர்க்கப்பட்டுள்ளது; பிழைகள் இருக்கலாம்.

Skip to content

மெஷின் லேர்னிங் மேம்படுத்தப்பட்ட ப்ளூம் ஃபில்டர்கள் மூலம் ஸ்பார்க் ஜாயின் வினவல் செலவுகளை ராப்லாக்ஸ் எவ்வாறு குறைக்கிறது

சுருக்கம்

ரோப்லாக்ஸில் ஒவ்வொரு நாளும், 70 மில்லியன் பயனர்கள் மில்லியன் கணக்கான அனுபவங்களில் ஈடுபடுகிறார்கள், இது காலாண்டுக்கு மொத்தம் 16 பில்லியன் மணிநேரம் ஆகும். இந்த ஊடாடல் ஒரு பெட்டபைட் அளவிலான தரவு ஏரியை உருவாக்குகிறது, இது பகுப்பாய்வு மற்றும் இயந்திர கற்றல் (ML) நோக்கங்களுக்காக வளப்படுத்தப்படுகிறது. எங்கள் தரவு ஏரியில் உண்மை மற்றும் பரிமாண அட்டவணைகளை இணைப்பது அதிக வளங்களைக் கொண்டது, எனவே இதை மேம்படுத்தவும் தரவு பரிமாற்றத்தை குறைக்கவும், நாங்கள் கற்றுக்கொண்ட ப்ளூம் ஃபில்டர்களை [1] ஏற்றுக்கொண்டோம்—இது இயந்திர கற்றலைப் பயன்படுத்தும் புத்திசாலித்தனமான தரவுக் கட்டமைப்புகளாகும். உள்ளிருப்பைக் கணிப்பதன் மூலம், இந்த வடிகட்டிகள் இணைப்புத் தரவை கணிசமாகக் குறைத்து, செயல்திறனை மேம்படுத்தி செலவுகளைக் குறைக்கின்றன. இந்தச் செயல்பாட்டில், எங்கள் மாதிரி கட்டமைப்புகளையும் மேம்படுத்தினோம். மேலும், செயலாக்கத்திற்கான நினைவகம் மற்றும் சிபியு (CPU) நேரத்தைக் குறைப்பதிலும், செயல்பாட்டு நிலைத்தன்மையை அதிகரிப்பதிலும் அவை வழங்கும் குறிப்பிடத்தக்க நன்மைகளை நிரூபித்தோம்.

அறிமுகம்

எங்கள் தரவு ஏரியில், திறமையான அணுகலுக்காக உண்மை அட்டவணைகள் மற்றும் தரவுக் கோள்கள் காலப்பகுதியாகப் பிரிக்கப்பட்டுள்ளன, அதேசமயம் பரிமாண அட்டவணைகளில் அத்தகைய பிரிவினைகள் இல்லை, மேலும் புதுப்பித்தல்களின் போது அவற்றை உண்மை அட்டவணைகளுடன் இணைப்பது வள-செறிவுமிக்கதாகும். இணைப்பின் முக்கியப் பகுதி, இணைக்கப்படும் உண்மை அட்டவணையின் காலப்பகுதியால் இயக்கப்படுகிறது. அந்த நேரப் பிரிவில் உள்ள பரிமாண அலகுகள், முழுமையான பரிமாண தரவுத்தொகுப்பில் உள்ளவற்றில் ஒரு சிறிய பகுதியாகும். இதன் விளைவாக, இந்த இணைப்புகளில் உள்ள பெரும்பாலான கலக்கப்பட்ட பரிமாணத் தரவுகள் இறுதியில் நிராகரிக்கப்படுகின்றன. இந்த செயல்முறையை மேம்படுத்தவும், தேவையற்ற கலக்கலைக் குறைக்கவும், நாங்கள் தனித்துவமான இணைப்பு விசைகளில் ப்ளூம் ஃபில்டர்களைப் பயன்படுத்துவதைக் கருத்தில் கொண்டோம், ஆனால் ஃபில்டர் அளவு மற்றும் நினைவகப் பயன்பாட்டுச் சிக்கல்களை எதிர்கொண்டோம்.

அவற்றைச் சமாளிக்க, நாங்கள் லேர்ன்ட் ப்ளூம் ஃபில்டர்களை (Learned Bloom Filters) ஆராய்ந்தோம். இது ஒரு எம்.எல்.-அடிப்படையிலான (ML-based) தீர்வாகும், இது குறைந்த தவறான நேர்மறை விகிதங்களைப் (false positive rates) பராமரிக்கும் அதே வேளையில் ப்ளூம் ஃபில்டரின் அளவைக் குறைக்கிறது. இந்தப் புதுமை, கணக்கீட்டுச் செலவுகளைக் குறைப்பதன் மூலமும், அமைப்பு நிலைத்தன்மையை மேம்படுத்துவதன் மூலமும் இணைப்பு செயல்பாடுகளின் செயல்திறனை அதிகரிக்கிறது. எங்கள் விநியோகிக்கப்பட்ட கணினிச் சூழலில் (distributed computing environment) உள்ள வழக்கமான மற்றும் மேம்படுத்தப்பட்ட இணைப்பு செயல்முறைகளைப் பின்வரும் வரைபடம் விளக்குகிறது.

லெர்ன்ட் ப்ளூம் ஃபில்டர்கள் மூலம் ஜாயின் செயல்திறனை மேம்படுத்துதல்

உண்மை மற்றும் பரிமாண அட்டவணைகளுக்கு இடையேயான இணைப்பை மேம்படுத்த, நாங்கள் கற்றுக்கொண்ட ப்ளூம் ஃபில்டர் (Learned Bloom Filter) செயலாக்கத்தை ஏற்றுக்கொண்டோம். நாங்கள் உண்மை அட்டவணையில் உள்ள கீகள் (keys) இருந்து ஒரு குறியீட்டை உருவாக்கி, பின்னர் இணைப்பு செயல்பாட்டிற்கு முன்பு பரிமாண தரவை முன்கூட்டியே வடிகட்ட அந்தக் குறியீட்டைப் பயன்படுத்தினோம். 

பாரம்பரிய ப்ளூம் ஃபில்டர்களிலிருந்து கற்றுக்கொண்ட ப்ளூம் ஃபில்டர்கள் வரை பரிணாமம்

ஒரு பாரம்பரிய ப்ளூம் ஃபில்டர் திறமையானது என்றாலும், எங்களுக்குத் தேவையான தவறான நேர்மறை விகிதத்தை அடைய, அதை ஏற்ற வேண்டிய ஒவ்வொரு வொர்க்கர் நோடிலும் அது 15-25% கூடுதல் நினைவகத்தைச் சேர்க்கிறது. ஆனால் லேர்ன்ட் ப்ளூம் ஃபில்டர்களைப் பயன்படுத்தி, அதே தவறான நேர்மறை விகிதத்தைப் பராமரிக்கும் அதே வேளையில், நாங்கள் கணிசமாகக் குறைக்கப்பட்ட குறியீட்டு அளவை அடைந்தோம். ப்ளூம் ஃபில்டர் ஒரு இரும வகைப்பாட்டுப் பிரச்சினையாக மாற்றப்பட்டதே இதற்குக் காரணம். நேர்மறை லேபிள்கள் குறியீட்டில் மதிப்புகள் இருப்பதைக் குறிக்கின்றன, அதேசமயம் எதிர்மறை லேபிள்கள் அவை இல்லை என்பதைக் குறிக்கின்றன.

ஒரு ML மாடலை அறிமுகப்படுத்துவது, மதிப்புகளுக்கான ஆரம்பச் சோதனையை எளிதாக்குகிறது, அதைத் தொடர்ந்து தவறான எதிர்மறைகளை நீக்குவதற்காக ஒரு காப்பு ப்ளூம் ஃபில்டர் (backup Bloom Filter) செயல்படுகிறது. மாடலின் சுருக்கப்பட்ட பிரதிநிதித்துவம் மற்றும் காப்பு ப்ளூம் ஃபில்டருக்குத் தேவைப்படும் கீகளின் (keys) எண்ணிக்கை குறைக்கப்பட்டதிலிருந்து இந்தக் குறைக்கப்பட்ட அளவு உருவாகிறது. இது வழக்கமான ப்ளூம் ஃபில்டர் அணுகுமுறையிலிருந்து இதை வேறுபடுத்துகிறது. 

இந்தப் பணியின் ஒரு பகுதியாக, எங்கள் கற்றுக்கொண்ட ப்ளூம் ஃபில்டர் அணுகுமுறையை மதிப்பிடுவதற்கு இரண்டு அளவீடுகளை நாங்கள் நிறுவினோம்: குறியீட்டின் இறுதி வரிசைப்படுத்தப்பட்ட பொருள் அளவு மற்றும் இணைப்பு வினவல்களைச் செயல்படுத்தும்போது ஏற்படும் சிபியு நுகர்வு. 

செயல்பாட்டுச் சவால்களைச் சமாளித்தல்

எங்களின் ஆரம்பகட்ட சவாலாக, ஃபேக்ட் டேபிளில் சில பரிமாண டேபிள் கீகள் மட்டுமே இருந்த, மிகவும் ஒருதலைப்பட்சமான பயிற்சி தரவுத்தொகுப்பைக் கையாள்வது இருந்தது. அவ்வாறு செய்யும்போது, டேபிள்களுக்கு இடையில் தோராயமாக மூன்று கீகளில் ஒன்று என்ற விகிதத்தில் ஒரு கீகள் ஒன்றுடன் ஒன்று பொருந்துவதை நாங்கள் கவனித்தோம். இதைச் சமாளிக்க, நாங்கள் சாண்ட்விச் லேர்ன்ட் ப்ளூம் ஃபில்டர் அணுகுமுறையை [2] பயன்படுத்தினோம். இது, ஃபேக்ட் டேபிளிலிருந்து விடுபட்டிருந்த பெரும்பாலான கீகளை நீக்குவதன் மூலம் தரவுத்தொகுப்பு விநியோகத்தை மறுசமநிலைப்படுத்த, ஒரு ஆரம்பகட்ட பாரம்பரிய ப்ளூம் ஃபில்டரை ஒருங்கிணைக்கிறது, இதன் மூலம் தரவுத்தொகுப்பிலிருந்து எதிர்மறை மாதிரிகளை திறம்பட நீக்குகிறது. அதன்பிறகு, ஆரம்ப புளூம் ஃபில்டரில் சேர்க்கப்பட்ட கீகள் மற்றும் தவறான நேர்மறை முடிவுகள் மட்டுமே, "கற்றுக்கொண்ட ஆரக்கிள்" என்று அடிக்கடி குறிப்பிடப்படும் எம்எல் (ML) மாடலுக்கு அனுப்பப்பட்டன. இந்த அணுகுமுறை, கற்றுக்கொண்ட ஆரக்கிளுக்கான நன்கு சமநிலையான பயிற்சித் தரவுத்தொகுப்பை உருவாக்கியது, சார்பு சிக்கலைத் திறம்பட சமாளித்தது.

இரண்டாவது சவால் மாதிரி கட்டமைப்பு மற்றும் பயிற்சி அம்சங்களை மையமாகக் கொண்டிருந்தது. ஃபிஷிங் URL-களின் [1] வழக்கமான சிக்கலைப் போலல்லாமல், எங்கள் இணைப்பு விசைகள் (பெரும்பாலான சந்தர்ப்பங்களில் பயனர்கள்/அனுபவங்களுக்கான தனித்துவமான அடையாளங்காட்டிகள்) இயல்பாகவே தகவல் நிறைந்ததாக இல்லை. இது, ஒரு பரிமாண என்டிட்டி உண்மை அட்டவணையில் உள்ளதா என்பதைக் கணிக்க உதவும் சாத்தியமான மாதிரி அம்சங்களாக பரிமாண பண்புகளை ஆராய எங்களை வழிநடத்தியது. உதாரணமாக, ஒரு குறிப்பிட்ட மொழியில் உள்ள அனுபவங்களுக்கான பயனர் அமர்வுத் தகவல்களைக் கொண்ட ஒரு உண்மை அட்டவணையைக் கற்பனை செய்து பாருங்கள். பயனர் பரிமாணத்தின் புவியியல் இருப்பிடம் அல்லது மொழி விருப்பப் பண்பு, ஒரு தனிப்பட்ட பயனர் உண்மை அட்டவணையில் இருக்கிறாரா இல்லையா என்பதைக் குறிக்கும் நல்ல குறிகாட்டிகளாக இருக்கும்.

மூன்றாவது சவாலான அனுமானத் தாமதம், தவறான எதிர்மறைகளைக் குறைத்து விரைவான பதில்களை வழங்கும் மாதிரிகளைத் தேவைப்பட்டது. இந்த முக்கிய அளவீடுகளுக்கு ஒரு கிரேடியன்ட்-பூஸ்டட் ட்ரீ மாதிரி சிறந்த தேர்வாக இருந்தது, மேலும் துல்லியம் மற்றும் வேகத்தைச் சமநிலைப்படுத்த அதன் அம்சத் தொகுப்பை நாங்கள் வெட்டினோம்.

கற்றுக்கொண்ட ப்ளூம் ஃபில்டர்களைப் பயன்படுத்தி எங்களின் புதுப்பிக்கப்பட்ட ஜாயின் வினவல் கீழே காட்டப்பட்டுள்ளது:

முடிவுகள்

எங்கள் தரவு ஏரியில் கற்றறியப்பட்ட ப்ளூம் வடிகட்டிகளுடன் நாங்கள் நடத்திய சோதனைகளின் முடிவுகள் இதோ. நாங்கள் அவற்றை ஐந்து உற்பத்தி பணிச்சுமைகளில் ஒருங்கிணைத்தோம், அவற்றில் ஒவ்வொன்றும் வெவ்வேறு தரவுப் பண்புகளைக் கொண்டிருந்தன. இந்தப் பணிச்சுமைகளில் மிகவும் கணக்கீட்டுச் செலவு மிக்க பகுதி, ஒரு உண்மை அட்டவணைக்கும் ஒரு பரிமாண அட்டவணைக்கும் இடையிலான இணைப்பு ஆகும். ஃபேக்ட் அட்டவணைகளின் கீ ஸ்பேஸ், டிமென்ஷன் அட்டவணையின் சுமார் 30% ஆகும். முதலில், இறுதி சீரமைக்கப்பட்ட ஆப்ஜெக்ட் அளவைப் பொறுத்தவரை, லேர்ன்ட் ப்ளூம் ஃபில்டர் பாரம்பரிய ப்ளூம் ஃபில்டர்களை விட எவ்வாறு சிறப்பாகச் செயல்பட்டது என்பதை நாங்கள் விவாதிக்கிறோம். அடுத்து, எங்கள் பணிச்சுமை செயலாக்க பைப்லைன்களில் லேர்ன்ட் ப்ளூம் ஃபில்டர்களை ஒருங்கிணைப்பதன் மூலம் நாங்கள் கவனித்த செயல்திறன் மேம்பாடுகளைக் காட்டுகிறோம்.

கற்றுக்கொண்ட ப்ளூம் ஃபில்டர் அளவு ஒப்பீடு

கீழே காட்டப்பட்டுள்ளபடி, ஒரு குறிப்பிட்ட தவறான நேர்மறை விகிதத்தைப் பார்க்கும்போது, பாரம்பரிய ப்ளூம் ஃபில்டர்களுடன் ஒப்பிடும்போது கற்றுக்கொண்ட ப்ளூம் ஃபில்டரின் இரண்டு வகைகளும் மொத்த பொருள் அளவை 17-42% வரை மேம்படுத்துகின்றன.

கூடுதலாக, எங்கள் கிரேடியன்ட் பூஸ்டட் மரம் அடிப்படையிலான மாதிரியில் சிறிய அம்சங்களின் ஒரு துணைக்குழுவைப் பயன்படுத்துவதன் மூலம், முன்கணிப்பை வேகமாக்கிய அதே வேளையில், மேம்படுத்தலின் ஒரு சிறிய சதவீதத்தை மட்டுமே இழந்தோம்.

கற்றறியப்பட்ட ப்ளூம் ஃபில்டர் பயன்பாட்டு முடிவுகள் 

இந்தப் பிரிவில், ப்ளூம் ஃபில்டர் அடிப்படையிலான இணைப்புகளின் செயல்திறனை, வழக்கமான இணைப்புகளுடன் பல அளவீடுகளில் நாங்கள் ஒப்பிடுகிறோம். 

கீழே உள்ள அட்டவணை, லேர்ட் ப்ளூம் ஃபில்டர்களைப் பயன்படுத்தும் மற்றும் பயன்படுத்தாத பணிச்சுமைகளின் செயல்திறனை ஒப்பிடுகிறது. இரண்டு இணைப்பு வகைகளுக்கும் ஒரே கிளஸ்டர் உள்ளமைவைத் தக்கவைத்துக்கொண்டே, 1% மொத்த தவறான நேர்மறை நிகழ்தகவு கொண்ட ஒரு லேர்ட் ப்ளூம் ஃபில்டர் கீழே உள்ள ஒப்பீட்டை நிரூபிக்கிறது. 

முதலில், ப்ளூம் ஃபில்டர் செயலாக்கம், வழக்கமான ஜாயினை விட சிபியு மணிநேரத்தில் 60% வரை சிறப்பாகச் செயல்பட்டதை நாங்கள் கண்டறிந்தோம். ப்ளூம் ஃபில்டரை மதிப்பிடுவதில் செலவிடப்பட்ட கூடுதல் கணக்கீட்டின் காரணமாக, கற்றறியப்பட்ட ப்ளூம் ஃபில்டர் அணுகுமுறைக்கான ஸ்கேன் படியில் சிபியு பயன்பாடு அதிகரித்ததை நாங்கள் கண்டோம். இருப்பினும், இந்தப் படியில் செய்யப்படும் முன்வடிகட்டுதல், ஷஃபிள் செய்யப்படும் தரவின் அளவைக் குறைத்தது. இது அடுத்தடுத்த படிகளால் பயன்படுத்தப்படும் சிபியுவைக் குறைத்து, மொத்த சிபியு மணிநேரத்தைக் குறைக்க உதவியது.

இரண்டாவதாக, வழக்கமான ஜாயினை விட கற்றுக்கொண்ட ப்ளூம் ஃபில்டர்கள் சுமார் 80% குறைவான மொத்த தரவு அளவையும், சுமார் 80% குறைவான மொத்த ஷஃபிள் பைட்டுகளையும் எழுதுகின்றன. இது கீழே விவாதிக்கப்பட்டுள்ளபடி மிகவும் நிலையான ஜாயின் செயல்திறனுக்கு வழிவகுக்கிறது. 

எங்கள் மற்ற உற்பத்திப் பணிச்சுமைகளிலும் சோதனைகளின் போது வளங்களின் பயன்பாடு குறைவதைக் கண்டோம். ஐந்து பணிச்சுமைகளிலும் இரண்டு வார காலப்பகுதியில், லேர்ன்ட் ப்ளூம் ஃபில்டர் அணுகுமுறை சராசரியாக 25% தினசரி செலவு சேமிப்பை உருவாக்கியது, இது மாதிரிப் பயிற்சி மற்றும் குறியீட்டு உருவாக்கத்தையும் உள்ளடக்கியது.

ஜாயினைச் செய்யும்போது ஷஃபிள் செய்யப்படும் தரவின் அளவு குறைக்கப்பட்டதன் காரணமாக, எங்கள் பகுப்பாய்வுப் பைப்பிலையின் செயல்பாட்டுச் செலவுகளைக் கணிசமாகக் குறைக்க முடிந்ததுடன், அதை மேலும் நிலையானதாகவும் மாற்ற முடிந்தது. நாங்கள் பரிசோதித்த ஐந்து பணிச்சுமைகளுக்கும், இரண்டு வார காலப்பகுதியில், ஒரு வழக்கமான ஜாயின் பணிச்சுமை மற்றும் ஒரு லேர்ன்ட் ப்ளூம் ஃபில்டர் அடிப்படையிலான பணிச்சுமை ஆகியவற்றின் ரன் கால அளவுகளில் (வால் கிளாக் நேரம்) உள்ள மாறுபாட்டை (ஒரு மாறுபாட்டுக் காரகத்தைப் பயன்படுத்தி) பின்வரும் விளக்கப்படம் காட்டுகிறது. லெர்ன்ட் ப்ளூம் ஃபில்டர்களைப் பயன்படுத்தும் ஓட்டங்கள் மிகவும் நிலையாக இருந்தன—கால அளவில் மிகவும் சீராக இருந்தன—இது அவற்றை மலிவான, தற்காலிகமான, நம்பகத்தன்மையற்ற கணினி வளங்களுக்கு மாற்றும் சாத்தியத்தைத் திறக்கிறது. 

மேற்கோள்கள்

[1] டி. க்ராஸ்கா, ஏ. பியூட்டல், ஈ. எச். சி, ஜே. டீன், மற்றும் என். போலியசோடிஸ். கற்றுக்கொண்ட குறியீட்டு அமைப்புகளுக்கான வாதம். https://arxiv.org/abs/1712.01208, 2017.

[2] எம். மிட்சென்மேக்கர். சாண்ட்விட்சிங் மூலம் கற்றுக்கொண்ட ப்ளூம் வடிகட்டிகளை மேம்படுத்துதல். 

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

¹ஜூன் 30, 2023-இல் முடிவடைந்த 3 மாதங்கள் வரை

²ஜூன் 30, 2023-இல் முடிவடைந்த 3 மாதங்கள் வரை