यह ट्यूटोरियल एक चरण-दर-चरण Redis के लिए Feast क्विकस्टार्ट प्रदान करता है जो आपको मशीन लर्निंग के लिए अपने ऑनलाइन फीचर स्टोर के रूप में Redis के साथ Feast का उपयोग करने के एंड-टू-एंड उदाहरण के माध्यम से चलता है। यह Feast क्विकस्टार्ट ट्यूटोरियल पर आधारित है, लेकिन डिफ़ॉल्ट ऑनलाइन स्टोर का उपयोग करने के बजाय, यह रीयल-टाइम भविष्यवाणियों को स्केल पर वितरित करने के लिए Redis ऑनलाइन स्टोर का उपयोग करता है। यदि आप Feast या Redis से परिचित नहीं हैं, तो Redis का उपयोग करके Feast के साथ शुरू करने का सबसे तेज़ तरीका इस ट्यूटोरियल के माध्यम से है। उच्च-स्तरीय परिचय के लिए Redis का उपयोग करके फीचर स्टोर्स और Feast ब्लॉग लेख देखें। Redis और Feast पर अधिक विस्तृत जानकारी, साथ ही अतिरिक्त संसाधन, इस ट्यूटोरियल के अंत में उपलब्ध हैं।
इस ट्यूटोरियल में आप:
- एक स्थानीय फीचर स्टोर डिप्लॉय करेंगे जिसमें Parquet फ़ाइल ऑफलाइन स्टोर और Redis ऑनलाइन स्टोर होगा।
- Parquet फ़ाइलों से डेमो समय श्रृंखला सुविधाओं का उपयोग करके एक प्रशिक्षण डेटासेट बनाएंगे।
- ऑफलाइन स्टोर से Redis ऑनलाइन स्टोर में फीचर मानों को मैटेरियलाइज़ (लोड) करेंगे।
- अनुमान के लिए Redis ऑनलाइन स्टोर से नवीनतम सुविधाओं को पढ़ेंगे।
आप नीचे दिए गए निर्देशित चरणों का पालन करके Google Colab या अपने स्थानीय होस्ट पर ट्यूटोरियल चला सकते हैं।
Feast संक्षेप में:
Feast (Feature store) एक ओपन सोर्स फीचर स्टोर है और Linux Foundation AI & Data Foundation का हिस्सा है। यह एक कम-लेटेंसी ऑनलाइन स्टोर (रीयल-टाइम सर्विंग के लिए) या एक ऑफलाइन स्टोर (मॉडल प्रशिक्षण या बैच सर्विंग के लिए) से मॉडल को फीचर डेटा परोस सकता है। यह एक केंद्रीय रजिस्ट्री भी प्रदान करता है ताकि मशीन लर्निंग इंजीनियर और डेटा साइंटिस्ट ML उपयोग के मामलों के लिए प्रासंगिक सुविधाओं की खोज कर सकें। नीचे Feast की उच्च-स्तरीय आर्किटेक्चर है:
Feast एक Python लाइब्रेरी + वैकल्पिक CLI है। आप Feast को pip का उपयोग करके इंस्टॉल कर सकते हैं, जैसा कि जल्द ही इस ट्यूटोरियल में वर्णित किया जाएगा।
Redis के साथ Feast इस प्रवाह में कई सामान्य मुद्दों को हल करता है:
- प्रशिक्षण-सर्विंग स्क्यू और जटिल डेटा जॉइन: फीचर मान अक्सर कई टेबल में मौजूद होते हैं। इन डेटासेट को जोड़ना जटिल, धीमा और त्रुटि-प्रवण हो सकता है।
- Feast युद्ध-परीक्षण तर्क के साथ इन टेबल को जोड़ता है जो पॉइंट-इन-टाइम शुद्धता सुनिश्चित करता है ताकि भविष्य के फीचर मान मॉडल में लीक न हों।
- Feast युद्ध-परीक्षण तर्क के साथ इन टेबल को जोड़ता है जो पॉइंट-इन-टाइम शुद्धता सुनिश्चित करता है ताकि भविष्य के फीचर मान मॉडल में लीक न हों।
- कम लेटेंसी और स्केल पर ऑनलाइन फीचर उपलब्धता: अनुमान समय पर, मॉडल को अक्सर उन सुविधाओं तक पहुंच की आवश्यकता होती है जो आसानी से उपलब्ध नहीं होती हैं और अन्य डेटा स्रोतों से रीयल-टाइम में पूर्व-गणना करने की आवश्यकता होती है।
- Feast को Redis के साथ डिप्लॉय करके आप सुनिश्चित करते हैं कि आवश्यक सुविधाएं अनुमान समय पर लगातार उपलब्ध और नए सिरे से गणना की जाती हैं, कम लेटेंसी और उच्च थ्रूपुट के साथ।
- Feast को Redis के साथ डिप्लॉय करके आप सुनिश्चित करते हैं कि आवश्यक सुविधाएं अनुमान समय पर लगातार उपलब्ध और नए सिरे से गणना की जाती हैं, कम लेटेंसी और उच्च थ्रूपुट के साथ।
- फीचर पुन: उपयोगिता और मॉडल संस्करण: एक संगठन के भीतर विभिन्न टीमें अक्सर परियोजनाओं में सुविधाओं का पुन: उपयोग करने में असमर्थ होती हैं, जिसके परिणामस्वरूप डुप्लिकेट फीचर निर्माण तर्क होता है। मॉडल में डेटा निर्भरताएं होती हैं जिन्हें संस्करणबद्ध करने की आवश्यकता होती है, जैसे A/B टेस्ट पर मॉडल संस्करण चलाते समय।
- Feast पहले उपयोग की गई सुविधाओं की खोज और सहयोग को सक्षम बनाता है और सुविधाओं के सेट के संस्करण को सक्षम बनाता है (फीचर सेवाओं के माध्यम से)।
- Feast फीचर ट्रांसफॉर्मेशन को सक्षम बनाता है ताकि उपयोगकर्ता ऑनलाइन/ऑफलाइन उपयोग के मामलों और मॉडल में ट्रांसफॉर्मेशन तर्क का पुन: उपयोग कर सकें।
Redis ट्यूटोरियल अवलोकन के साथ Feast
इस ट्यूटोरियल में, हम प्रशिक्षण डेटा उत्पन्न करने और राइड-शेयरिंग ड्राइवर संतुष्टि भविष्यवाणी मॉडल के लिए ऑनलाइन मॉडल अनुमान को शक्ति देने के लिए फीचर स्टोर्स का उपयोग करते हैं। डेमो डेटा परिदृश्य में:
- हमने कुछ ड्राइवरों का सर्वेक्षण किया है ताकि यह निर्धारित किया जा सके कि वे राइड-शेयरिंग ऐप का उपयोग करके अपने अनुभव से कितने संतुष्ट हैं।
- हम बाकी उपयोगकर्ताओं के लिए ड्राइवर संतुष्टि के लिए भविष्यवाणियां उत्पन्न करना चाहते हैं ताकि हम संभावित असंतुष्ट उपयोगकर्ताओं तक पहुंच सकें।
ट्यूटोरियल चरण:
- Redis इंस्टॉल करें और बैकग्राउंड में Redis-सर्वर चलाएं
- Redis के साथ Feast इंस्टॉल करें
- एक फीचर रिपॉजिटरी बनाएं और Redis को ऑनलाइन स्टोर के रूप में परिभाषित करें
- फीचर परिभाषाओं को रजिस्टर करें और अपना फीचर स्टोर डिप्लॉय करें
- प्रशिक्षण डेटा उत्पन्न करें
- अपने Redis ऑनलाइन स्टोर में फीचर्स लोड करें
- अनुमान के लिए फीचर वेक्टर प्राप्त करें
चरण 1: Redis इंस्टॉल करें और बैकग्राउंड में Redis सर्वर चलाएं
Redis इंस्टॉल करने के लिए नीचे दिए गए विकल्पों में से एक का पालन करें:
Ubuntu:
$ sudo snap install redis
Docker:
$ docker run --name redis --rm -p 6379:6379 -d redis
Mac (Homebrew):
$ brew install redis
Redis इंस्टॉल करने के वैकल्पिक तरीकों पर अतिरिक्त जानकारी यहां पाई जा सकती है। अतिरिक्त कॉन्फ़िगरेशन जानकारी Redis क्विक स्टार्ट गाइड में पाई जा सकती है।
चरण 2: Redis के साथ Feast इंस्टॉल करें
pip का उपयोग करके Feast SDK और CLI इंस्टॉल करें:
$ pip install 'feast[redis]'
चरण 3: एक फीचर रिपॉजिटरी बनाएं और Redis को ऑनलाइन स्टोर के रूप में कॉन्फ़िगर करें
एक फीचर रिपॉजिटरी एक निर्देशिका है जिसमें फीचर स्टोर का कॉन्फ़िगरेशन और व्यक्तिगत सुविधाएं होती हैं।
चरण 3a: एक फीचर रिपॉजिटरी बनाएं
एक नई फीचर रिपॉजिटरी बनाने का सबसे आसान तरीका feast init कमांड का उपयोग करना है। यह प्रारंभिक डेमो डेटा के साथ एक स्कैफोल्डिंग बनाता है।
$ feast init feature_repo $ cd feature_repo
आउटपुट:
Creating a new Feast repository in /Users/nl/dev_fs/feast/feature_repo
आइए परिणामी डेमो रेपो को देखें। यह इसमें टूट जाता है:
- feature_store.yaml में डेटा स्रोतों और ऑनलाइन स्टोर को कॉन्फ़िगर करने वाला एक डेमो सेटअप होता है
example.py
में डेमो फीचर परिभाषाएं होती हैं- data/ में कच्चा डेमो parquet डेटा होता है
चरण 3b: YAML कॉन्फ़िगरेशन फ़ाइल में Redis को ऑनलाइन स्टोर के रूप में कॉन्फ़िगर करें
Redis को ऑनलाइन स्टोर के रूप में कॉन्फ़िगर करने के लिए हमें feature_store.yaml में online_store के लिए type और connection_string मान सेट करने होंगे:
project: my_project |
प्रदाता परिभाषित करता है कि कच्चा डेटा कहां मौजूद है (प्रशिक्षण डेटा और सर्विंग के लिए फीचर मान उत्पन्न करने के लिए) इस डेमो में, स्थानीय रूप से। online_store परिभाषित करता है कि ऑनलाइन स्टोर डेटाबेस (सर्विंग के लिए) में फीचर मानों को मैटेरियलाइज़ (लोड) कहां करना है।
ध्यान दें कि उपरोक्त कॉन्फ़िगरेशन ट्यूटोरियल के लिए प्रदान की गई डिफ़ॉल्ट YAML फ़ाइल से अलग है जो इसके बजाय डिफ़ॉल्ट ऑनलाइन स्टोर का उपयोग करती है:
project: my_project |
तो YAML फ़ाइल में online_store के लिए उपरोक्त दो पंक्तियों को जोड़कर (
type: redis, connection_string: localhost:6379) प्रति, Feast तब Redis को अपने ऑनलाइन स्टोर के रूप में पढ़ने और लिखने में सक्षम होता है। Redis ऑनलाइन स्टोर Feast कोर कोड का हिस्सा है, और इस तरह, Feast बॉक्स से बाहर Redis का उपयोग करना जानता है।
चरण 3c: example.py पर डेमो फीचर परिभाषाओं का निरीक्षण
आइए example.py पर डेमो फीचर परिभाषाओं को देखें (इसे अपने टर्मिनल में देखने के लिए आप
cat
example.
pyचला सकते हैं)।
Example.py
चरण 3d: कच्चे डेटा का निरीक्षण करें
अंत में, आइए कच्चे डेटा का निरीक्षण करें। इस डेमो में हमारे पास कच्चा डेटा एक स्थानीय parquet फ़ाइल में संग्रहीत है। डेटासेट एक राइड-शेयरिंग ऐप में एक ड्राइवर के प्रति घंटा आंकड़ों को कैप्चर करता है।
चरण 4: फीचर परिभाषाओं को रजिस्टर करें और अपना फीचर स्टोर डिप्लॉय करें
अब हम
feast applyचलाते हैं ताकि example.py में परिभाषित फीचर व्यू और एंटिटी को रजिस्टर किया जा सके। अप्लाई कमांड फीचर व्यू/एंटिटी परिभाषाओं के लिए वर्तमान निर्देशिका में Python फ़ाइलों को स्कैन करता है, ऑब्जेक्ट्स को रजिस्टर करता है, और इंफ्रास्ट्रक्चर डिप्लॉय करता है। इस उदाहरण में, यह example.py (ऊपर दिखाया गया) पढ़ता है और Redis ऑनलाइन स्टोर सेट करता है।
$ feast apply
आउटपुट:
Registered entity driver_id |
चरण 5: प्रशिक्षण डेटा उत्पन्न करना
एक मॉडल को प्रशिक्षित करने के लिए, हमें सुविधाओं और लेबल की आवश्यकता होती है। अक्सर, यह लेबल डेटा अलग से संग्रहीत होता है (उदाहरण के लिए आपके पास उपयोगकर्ता सर्वेक्षण परिणामों को संग्रहीत करने वाली एक टेबल होती है और फीचर मानों के साथ टेबल का एक और सेट होता है)।
उपयोगकर्ता उस लेबल टेबल को टाइमस्टैम्प के साथ क्वेरी कर सकता है और उसे Feast में प्रशिक्षण डेटा उत्पन्न करने के लिए एक एंटिटी डेटाफ्रेम के रूप में पास कर सकता है। कई मामलों में, Feast प्रासंगिक फीचर वेक्टर बनाने के लिए प्रासंगिक टेबल को बुद्धिमानी से जोड़ देगा।
- ध्यान दें कि हम टाइमस्टैम्प शामिल करते हैं क्योंकि हम चाहते हैं कि विभिन्न टाइमस्टैम्प पर एक ही ड्राइवर के लिए सुविधाओं का उपयोग मॉडल में किया जाए।
Python
(नीचे दिए गए कोड को gen_train_data.py फ़ाइल में कॉपी करें और फिर इसे चलाएं):
आउटपुट:
----- Feature schema ----- |
चरण 6: अपने Redis ऑनलाइन स्टोर में फीचर्स लोड करें
अब हम आपके Redis ऑनलाइन स्टोर में फीचर डेटा लोड या मैटेरियलाइज़ करेंगे ताकि हम ऑनलाइन भविष्यवाणी के लिए मॉडल को नवीनतम सुविधाएं परोस सकें।
materializeकमांड उपयोगकर्ताओं को एक विशिष्ट ऐतिहासिक समय सीमा पर ऑनलाइन स्टोर में सुविधाओं को मैटेरियलाइज़ करने की अनुमति देता है। यह प्रदान की गई समय सीमा पर सभी फीचर व्यू के लिए बैच स्रोतों को क्वेरी करेगा, और नवीनतम फीचर मानों को कॉन्फ़िगर किए गए ऑनलाइन स्टोर में लोड करेगा।
materialize–
incrementalकमांड केवल अंतिम मैटेरियलाइज़ कॉल के बाद से ऑफलाइन स्टोर में आए नए डेटा को अंतर्ग्रहण करेगा।
$ CURRENT_TIME=$(date -u +"%Y-%m-%dT%H:%M:%S")
$ feast materialize-incremental $CURRENT_TIME
आउटपुट:
Materializing 1 feature views to 2021-08-23 16:25:46+00:00 into the redis online store. |
चरण 7: अनुमान के लिए फीचर वेक्टर प्राप्त करना
अनुमान समय पर, हमें विभिन्न ड्राइवरों के लिए नवीनतम फीचर मानों को जल्दी से पढ़ने की आवश्यकता होती है (जो अन्यथा केवल बैच स्रोतों में मौजूद हो सकते हैं) Redis ऑनलाइन फीचर स्टोर से,
get_online_features()का उपयोग करके। इन फीचर वेक्टर को तब मॉडल में खिलाया जा सकता है।
Python
(नीचे दिए गए कोड को get_feature_vectors.py फ़ाइल में कॉपी करें और फिर इसे चलाएं):
आउटपुट
{ |
बधाई हो! आप ट्यूटोरियल के अंत तक पहुंच गए हैं। बैकग्राउंड में चल रहे Redis सर्वर को बंद करने के लिए आप
redis-cli shutdownकमांड का उपयोग कर सकते हैं।
ट्यूटोरियल सारांश:
इस ट्यूटोरियल में आपने Parquet फ़ाइल ऑफलाइन स्टोर और Redis ऑनलाइन स्टोर के साथ एक स्थानीय फीचर स्टोर डिप्लॉय किया। फिर आपने Parquet फ़ाइलों से समय श्रृंखला सुविधाओं का उपयोग करके एक प्रशिक्षण डेटासेट बनाया। फिर, आपने ऑफलाइन स्टोर से Redis ऑनलाइन स्टोर में फीचर मानों को मैटेरियलाइज़ किया। अंत में, आपने अनुमान के लिए Redis ऑनलाइन स्टोर से नवीनतम सुविधाओं को पढ़ा। Redis को ऑनलाइन स्टोर के रूप में उपयोग करके आप रीयल-टाइम ML उपयोग के मामलों के लिए नवीनतम फीचर को बहुत जल्दी पढ़ सकते हैं, कम लेटेंसी और स्केल पर उच्च थ्रूपुट के साथ।
आगे क्या?
- Feast डेटा मॉडल को समझने के लिए Feast अवधारणा पेज पढ़ें, और Feast आर्किटेक्चर पेज पढ़ें।
- Redis के साथ Feast के लिए पूर्ण कॉन्फ़िगरेशन गाइड पढ़ें, और Redis में फीचर मानों को संग्रहीत करने के लिए उपयोग किए जाने वाले डेटा मॉडल।
- केस स्टडीज - अपने साथियों से सीखें: जानें कि कंपनियां Redis को ऑनलाइन स्टोर के रूप में फीचर स्टोर्स का उपयोग कैसे कर रही हैं (Wix, Swiggy, Comcast, Zomato, AT&T, DoorDash, iFood), और विशेष रूप से वे अपने ऑनलाइन स्टोर के लिए Redis के साथ Feast का उपयोग कैसे कर रहे हैं (Gojek, Udaan, Robinhood)।
- Azure मैनेज्ड फीचर स्टोर के बारे में Feast और Redis के साथ पढ़ें और Feast ऑन Azure ट्यूटोरियल के साथ शुरुआत करने के साथ-साथ अन्य Feast ट्यूटोरियल का पालन करें
- आप Feast और Redis पर सामान्य उत्पाद परिचय पृष्ठों पर Feast या Redis पर अधिक जानकारी भी देख सकते हैं।
Slack में अन्य Feast उपयोगकर्ताओं और योगदानकर्ताओं में शामिल हों और समुदाय का हिस्सा बनें!