Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Redis

रेडिस के साथ पर्व की शुरुआत:मशीन लर्निंग फीचर स्टोर क्विकस्टार्ट ट्यूटोरियल

यह ट्यूटोरियल चरण-दर-चरण Redis क्विकस्टार्ट के लिए पर्व . प्रदान करता है जो आपको मशीन लर्निंग के लिए Feast with Redis के ऑनलाइन फीचर स्टोर के रूप में उपयोग करने का एक संपूर्ण उदाहरण देता है। यह दावत क्विकस्टार्ट ट्यूटोरियल पर आधारित है, लेकिन डिफ़ॉल्ट ऑनलाइन स्टोर का उपयोग करने के बजाय, यह बड़े पैमाने पर वास्तविक समय की भविष्यवाणी देने के लिए रेडिस ऑनलाइन स्टोर का उपयोग करता है। यदि आप पर्व या रेडिस से परिचित नहीं हैं, तो रेडिस का उपयोग करके पर्व के साथ आरंभ करने का सबसे तेज़ तरीका इस ट्यूटोरियल के माध्यम से है। कृपया उच्च स्तरीय परिचय के लिए रेडिस ब्लॉग आलेख का उपयोग करके इस फ़ीचर स्टोर और पर्व को देखें। Redis और Feast के बारे में अधिक विस्तृत जानकारी, साथ ही अतिरिक्त संसाधन, इस ट्यूटोरियल के अंत में उपलब्ध हैं।

इस ट्यूटोरियल में आप:

  1. Parquet फ़ाइल ऑफ़लाइन स्टोर और Redis ऑनलाइन स्टोर के साथ एक स्थानीय फ़ीचर स्टोर परिनियोजित करें।
  2. Parquet फ़ाइलों से डेमो टाइम सीरीज़ सुविधाओं का उपयोग करके एक प्रशिक्षण डेटासेट बनाएं।
  3. ऑफ़लाइन स्टोर से Redis ऑनलाइन स्टोर में फ़ीचर मानों को मूर्त रूप दें (लोड करें)।
  4. अनुमान के लिए Redis ऑनलाइन स्टोर की नवीनतम सुविधाओं को पढ़ें।

आप नीचे दिए गए निर्देशों का पालन करके ट्यूटोरियल को Google Colab या अपने लोकलहोस्ट पर चला सकते हैं।

रेडिस के साथ पर्व की शुरुआत:मशीन लर्निंग फीचर स्टोर क्विकस्टार्ट ट्यूटोरियल संक्षेप में दावत:

पर्व (फ़ी ट्यूर सेंट ore) एक ओपन सोर्स फीचर स्टोर है और यह Linux Foundation AI &Data Foundation का हिस्सा है। यह कम विलंबता वाले ऑनलाइन स्टोर (रियल-टाइम सर्विंग के लिए) या ऑफलाइन स्टोर (मॉडल ट्रेनिंग या बैच सर्विंग के लिए) से मॉडल को फीचर डेटा प्रदान कर सकता है। यह एक केंद्रीय रजिस्ट्री भी प्रदान करता है ताकि मशीन लर्निंग इंजीनियर और डेटा वैज्ञानिक एमएल उपयोग के मामलों के लिए प्रासंगिक सुविधाओं की खोज कर सकते हैं। नीचे पर्व की एक उच्च स्तरीय वास्तुकला है:

पर्व एक पायथन पुस्तकालय + वैकल्पिक सीएलआई है। आप पाइप का उपयोग करके पर्व स्थापित कर सकते हैं, जैसा कि इस ट्यूटोरियल में जल्द ही वर्णित किया जाएगा।

Feast with Redis इस प्रवाह में कई सामान्य मुद्दों को हल करता है:

  1. प्रशिक्षण-सेवा तिरछा और जटिल डेटा जुड़ता है :फ़ीचर मान अक्सर कई तालिकाओं में मौजूद होते हैं। इन डेटासेट में शामिल होना जटिल, धीमा और त्रुटि-प्रवण हो सकता है।
    • दावत इन तालिकाओं को युद्ध-परीक्षित तर्क के साथ जोड़ती है जो समय-समय पर शुद्धता सुनिश्चित करता है ताकि भविष्य के फीचर मान मॉडल के लिए लीक न हों।
  2. कम विलंबता और बड़े पैमाने पर ऑनलाइन सुविधा उपलब्धता: अनुमान के समय, मॉडल को अक्सर उन सुविधाओं तक पहुंच की आवश्यकता होती है जो आसानी से उपलब्ध नहीं होती हैं और वास्तविक समय में अन्य डेटा स्रोतों से पूर्व-गणना करने की आवश्यकता होती है।
    • Feast with Redis को परिनियोजित करके आप सुनिश्चित करते हैं कि आवश्यक सुविधाएँ लगातार उपलब्ध हों और अनुमान के समय नए सिरे से गणना की जाए, कम विलंबता और उच्च थ्रूपुट के साथ।
  3. सुविधा पुन:प्रयोज्य और मॉडल संस्करण: एक संगठन के भीतर अलग-अलग टीमें अक्सर परियोजनाओं में सुविधाओं का पुन:उपयोग करने में असमर्थ होती हैं, जिसके परिणामस्वरूप डुप्लिकेट फीचर निर्माण तर्क होता है। मॉडल में डेटा निर्भरताएँ होती हैं जिन्हें संस्करणित करने की आवश्यकता होती है, जैसे मॉडल संस्करणों पर A/B परीक्षण चलाते समय।
    • पर्व पहले उपयोग की गई सुविधाओं की खोज और सहयोग को सक्षम बनाता है और सुविधाओं के सेट (फीचर सेवाओं के माध्यम से) के संस्करण को सक्षम करता है।
    • फीस्ट फीचर ट्रांसफॉर्मेशन को सक्षम बनाता है ताकि उपयोगकर्ता ऑनलाइन / ऑफलाइन उपयोग के मामलों और मॉडलों में ट्रांसफॉर्मेशन लॉजिक का पुन:उपयोग कर सकें।

Redis ट्यूटोरियल अवलोकन के साथ पर्व

इस ट्यूटोरियल में, हम राइड-शेयरिंग ड्राइवर संतुष्टि भविष्यवाणी मॉडल के लिए प्रशिक्षण डेटा और पावर ऑनलाइन मॉडल अनुमान उत्पन्न करने के लिए फीचर स्टोर का उपयोग करते हैं। डेमो डेटा परिदृश्य में: 

  • हमने यह निर्धारित करने के लिए कुछ ड्राइवरों का सर्वेक्षण किया है कि वे राइड-शेयरिंग ऐप का उपयोग करके अपने अनुभव से कितने संतुष्ट हैं।
  • हम शेष उपयोगकर्ताओं के लिए ड्राइवर संतुष्टि के लिए पूर्वानुमान उत्पन्न करना चाहते हैं ताकि हम संभावित रूप से असंतुष्ट उपयोगकर्ताओं तक पहुंच सकें।

ट्यूटोरियल चरण:

  1. Redis स्थापित करें और पृष्ठभूमि में Redis-सर्वर चलाएँ
  2. रेडिस के साथ पर्व स्थापित करें
  3. एक फीचर रिपॉजिटरी बनाएं और Redis को ऑनलाइन स्टोर के रूप में परिभाषित करें
  4. सुविधा परिभाषाएं पंजीकृत करें और अपना फीचर स्टोर परिनियोजित करें
  5. प्रशिक्षण डेटा जेनरेट करें
  6. सुविधाओं को अपने Redis ऑनलाइन स्टोर में लोड करें
  7. अनुमान के लिए फ़ीचर वेक्टर प्राप्त करें 

चरण 1:Redis इंस्टॉल करें और Redis सर्वर को बैकग्राउंड में चलाएं

रेडिस को स्थापित करने के लिए नीचे दिए गए विकल्पों में से एक का पालन करें:

उबंटू:

$ sudo snap install redis

डोकर:

$ docker run --name redis --rm -p 6379:6379 -d redis

मैक (होमब्रे):

$ brew install redis

रेडिस को स्थापित करने के वैकल्पिक तरीकों के बारे में अतिरिक्त जानकारी यहां पाई जा सकती है। अतिरिक्त कॉन्फ़िगरेशन जानकारी रेडिस क्विक स्टार्ट गाइड में पाई जा सकती है।

चरण 2:रेडिस के साथ पर्व स्थापित करें

पाइप का उपयोग करके पर्व एसडीके और सीएलआई स्थापित करें:

$ pip install 'feast[redis]'

चरण 3:एक फीचर रिपॉजिटरी बनाएं और Redis को ऑनलाइन स्टोर के रूप में कॉन्फ़िगर करें

फीचर रिपोजिटरी एक निर्देशिका है जिसमें फीचर स्टोर और व्यक्तिगत सुविधाओं का विन्यास होता है।

चरण 3a:एक फीचर रिपॉजिटरी बनाएं

एक नया फीचर रिपोजिटरी बनाने का सबसे आसान तरीका दावत इनिट कमांड का उपयोग करना है। यह प्रारंभिक डेमो डेटा के साथ एक मचान बनाता है।

$ 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
    डेमो फीचर परिभाषाएं शामिल हैं
  • डेटा/ में कच्चा डेमो लकड़ी की छत डेटा शामिल है

चरण 3b:YAML कॉन्फ़िगरेशन फ़ाइल में Redis को ऑनलाइन स्टोर के रूप में कॉन्फ़िगर करें

Redis को ऑनलाइन स्टोर के रूप में कॉन्फ़िगर करने के लिए हमें feature_store.yaml में online_store के लिए प्रकार और कनेक्शन_स्ट्रिंग मान सेट करने होंगे इस प्रकार है:

project: my_project
registry: data/registry.db
provider: local
online_store:
  type: redis
  connection_string: localhost:6379

प्रदाता स्थानीय रूप से इस डेमो में परिभाषित करता है कि कच्चा डेटा कहाँ मौजूद है (प्रशिक्षण डेटा और सेवा के लिए फीचर मान उत्पन्न करने के लिए)। ऑनलाइन_स्टोर परिभाषित करता है कि ऑनलाइन स्टोर डेटाबेस (सेवा के लिए) में फ़ीचर मानों को कहाँ अमल में लाया जाए (लोड) किया जाए।

ध्यान दें कि उपरोक्त कॉन्फ़िगरेशन ट्यूटोरियल के लिए प्रदान की गई डिफ़ॉल्ट YAML फ़ाइल से अलग है जो इसके बजाय डिफ़ॉल्ट ऑनलाइन स्टोर का उपयोग करता है:

project: my_project
registry: data/registry.db
provider: local
online_store:
    path: data/online_store.db

तो

online_store
. के लिए इन दो पंक्तियों को जोड़कर (
type: redis, connection_string: localhost:6379
) उपरोक्त के अनुसार YAML फ़ाइल में, Feast तब Redis से अपने ऑनलाइन स्टोर के रूप में पढ़ने और लिखने में सक्षम है। Redis ऑनलाइन स्टोर Feast कोर कोड का हिस्सा है, और जैसे, Feast जानता है कि Redis आउट-ऑफ-द-बॉक्स का उपयोग कैसे किया जाता है।

चरण 3c:example.py पर डेमो फ़ीचर परिभाषाओं का निरीक्षण करना 

आइए example.py . पर डेमो फीचर परिभाषाओं पर एक नज़र डालें (इसे अपने टर्मिनल में देखने के लिए आप

cat
. चला सकते हैं)
example
.
py 
)।

example.py

चरण 3d:अपरिष्कृत डेटा का निरीक्षण करें

अंत में, आइए कच्चे डेटा का निरीक्षण करें। इस डेमो में हमारे पास मौजूद कच्चा डेटा एक स्थानीय लकड़ी की छत फ़ाइल में संग्रहीत है। डेटासेट राइड-शेयरिंग ऐप में ड्राइवर के प्रति घंटा आंकड़े कैप्चर करता है।

रेडिस के साथ पर्व की शुरुआत:मशीन लर्निंग फीचर स्टोर क्विकस्टार्ट ट्यूटोरियल

चरण 4:फीचर परिभाषाएं पंजीकृत करें और अपना फीचर स्टोर परिनियोजित करें

अब हम

feast apply
. चलाते हैं example.py . में परिभाषित फीचर दृश्यों और संस्थाओं को पंजीकृत करने के लिए . लागू कमांड फीचर दृश्य/इकाई परिभाषाओं के लिए वर्तमान निर्देशिका में पायथन फाइलों को स्कैन करता है, वस्तुओं को पंजीकृत करता है, और बुनियादी ढांचे को तैनात करता है। इस उदाहरण में, यह example.py पढ़ता है (ऊपर दिखाया गया है) और रेडिस ऑनलाइन स्टोर की स्थापना करता है।

$ feast apply

आउटपुट:

Registered entity driver_id
Registered feature view driver_hourly_stats
Deploying infrastructure for driver_hourly_stats
. के लिए आधारभूत संरचना परिनियोजित करना

चरण 5:प्रशिक्षण डेटा जेनरेट करना

एक मॉडल को प्रशिक्षित करने के लिए, हमें सुविधाओं और लेबल की आवश्यकता होती है। अक्सर, यह लेबल डेटा अलग से संग्रहीत किया जाता है (उदा. आपके पास उपयोगकर्ता सर्वेक्षण परिणामों को संग्रहीत करने वाली एक तालिका होती है और सुविधा मानों वाली तालिकाओं का दूसरा सेट होता है)।

उपयोगकर्ता टाइमस्टैम्प के साथ लेबल की उस तालिका को क्वेरी कर सकता है और डेटा पीढ़ी के प्रशिक्षण के लिए एक इकाई डेटाफ्रेम के रूप में पर्व में पास कर सकता है। कई मामलों में, संबंधित फीचर वैक्टर बनाने के लिए पर्व भी समझदारी से प्रासंगिक तालिकाओं में शामिल हो जाएगा।

  • ध्यान दें कि हम टाइमस्टैम्प शामिल करते हैं क्योंकि हम चाहते हैं कि एक ही ड्राइवर के लिए विभिन्न टाइमस्टैम्प पर एक मॉडल में सुविधाओं का उपयोग किया जाए।

पायथन

(नीचे दिए गए कोड को एक फ़ाइल में कॉपी करें gen_train_data.py और फिर इसे चलाएँ):

आउटपुट:

----- Feature schema -----

<class 'pandas.core.frame.DataFrame'>
Int64Index: 3 entries, 0 to 2
Data columns (total 6 columns):
#   Column                              Non-Null Count  Dtype             
---  ------                              --------------  -----             
0   event_timestamp                     3 non-null      datetime64[ns, UTC]
1   driver_id                           3 non-null      int64             
2   label_driver_reported_satisfaction  3 non-null      int64             
3   conv_rate                           3 non-null      float32           
4   acc_rate                            3 non-null      float32           
5   avg_daily_trips                     3 non-null      int32             
dtypes: datetime64[ns, UTC](1), float32(2), int32(1), int64(2)
memory usage: 132.0 bytes
None

----- Example features -----

                  event_timestamp  driver_id  ...  acc_rate  avg_daily_trips
0 2021-08-23 15:12:55.489091+00:00       1003  ...  0.120588              938
1 2021-08-23 15:49:55.489089+00:00       1002  ...  0.504881              635
2 2021-08-23 16:14:55.489075+00:00       1001  ...  0.138416              606

[3 rows x 6 columns]

चरण 6:सुविधाओं को अपने 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.

driver_hourly_stats from 2021-08-22 16:25:47+00:00 to 2021-08-23 16:25:46+00:00:
100%|████████████████████████████████████████████| 5/5 [00:00<00:00, 592.05it/s]

चरण 7:अनुमान के लिए फ़ीचर वैक्टर फ़ेच करना

अनुमान के समय, हमें

get_online_features()
का उपयोग करते हुए, रेडिस ऑनलाइन फीचर स्टोर से विभिन्न ड्राइवरों (जो अन्यथा केवल बैच स्रोतों में मौजूद हो सकता है) के लिए नवीनतम फीचर वैल्यू को जल्दी से पढ़ने की जरूरत है। . फिर इन फीचर वैक्टर को मॉडल में फीड किया जा सकता है।

पायथन

(नीचे दिए गए कोड को एक फ़ाइल में कॉपी करें get_feature_vectors.py और फिर इसे चलाएँ):

आउटपुट

{
'acc_rate': [0.5732735991477966, 0.7828438878059387],
'avg_daily_trips': [33, 984],
'conv_rate': [0.15498852729797363, 0.6263588070869446],
'driver_id': [1004, 1005]
}

बधाई हो! आप ट्यूटोरियल के अंत तक पहुँच चुके हैं। पृष्ठभूमि में चल रहे रेडिस सर्वर को बंद करने के लिए आप

redis-cli shutdown
का उपयोग कर सकते हैं आदेश।

ट्यूटोरियल रीकैप:

इस ट्यूटोरियल में आपने Parquet फ़ाइल ऑफ़लाइन स्टोर और Redis ऑनलाइन स्टोर के साथ एक स्थानीय फ़ीचर स्टोर परिनियोजित किया है। फिर आपने Parquet फ़ाइलों से समय श्रृंखला सुविधाओं का उपयोग करके एक प्रशिक्षण डेटासेट बनाया। फिर, आपने ऑफ़लाइन स्टोर से Redis ऑनलाइन स्टोर में फ़ीचर मानों को मूर्त रूप दिया। अंत में, आप अनुमान के लिए रेडिस ऑनलाइन स्टोर की नवीनतम सुविधाओं को पढ़ते हैं। ऑनलाइन स्टोर के रूप में रेडिस के साथ आप कम विलंबता और उच्च थ्रूपुट के साथ रीयल-टाइम एमएल उपयोग मामलों के लिए नवीनतम सुविधा को बहुत तेज़ी से पढ़ सकते हैं।

आगे क्या है?

  • पर्व डेटा मॉडल को समझने के लिए पर्व अवधारणा पृष्ठ पढ़ें, और पर्व वास्तुकला पृष्ठ पढ़ें।
  • Feast with Redis के लिए पूर्ण कॉन्फ़िगरेशन मार्गदर्शिका और Redis में फ़ीचर मानों को संग्रहीत करने के लिए उपयोग किया जाने वाला डेटा मॉडल पढ़ें।
  • केस स्टडी - अपने साथियों से सीखें:जानें कि कंपनियां ऑनलाइन स्टोर (Wix, Swiggy, Comcast, Zomato, AT&T, DoorDash, iFood) के रूप में Redis के साथ फीचर स्टोर का उपयोग कैसे कर रही हैं, और विशेष रूप से कैसे वे Feast with Redis का उपयोग कर रहे हैं उनका ऑनलाइन स्टोर (गोजेक, उड़ान, रॉबिनहुड)।
  • Feast और Redis के साथ Azure प्रबंधित फ़ीचर स्टोर के बारे में पढ़ें और Azure ट्यूटोरियल के साथ-साथ अन्य Feast ट्यूटोरियल पर Feast के साथ शुरुआत करें का पालन करें
  • आप Feast या Redis के बारे में अधिक जानकारी क्रमशः Feast और Redis पर सामान्य उत्पाद परिचय पृष्ठों में देख सकते हैं।

स्लैक में अन्य पर्व उपयोगकर्ताओं और योगदानकर्ताओं से जुड़ें और समुदाय का हिस्सा बनें!


  1. Apple TV+ के साथ शुरुआत करना+

    1 नवंबर, 2019 को, Apple ने आखिरकार Apple TV+ के साथ रेड-हॉट स्ट्रीमिंग बाज़ार में प्रवेश किया। एक सदस्यता सेवा जो हर किसी के पसंदीदा लाइफस्टाइल ब्रांड की मूल सामग्री प्रदान करती है। चूंकि आपने शायद पहले ही हुलु, नेटफ्लिक्स, एचबीओ, अमेज़ॅन प्राइम वीडियो, या उपरोक्त के कुछ संयोजन की सदस्यता ले ली है,

  1. वेब के लिए Android संदेशों के साथ आरंभ करना

    Google एक विशाल मंच है और इसमें कोई संदेह नहीं है! लेकिन सबसे अच्छे सर्च इंजनों में से एक होने के अलावा, यह हमें कई तरह की सेवाएं भी प्रदान करता है जो हमारे दैनिक जीवन को आसान बनाती हैं। Google ने हाल ही में Android संदेश ऐप के लिए एक अपडेट जारी किया है जो आपको किसी भी वेब ब्राउज़र से पाठ संदेश भेजन

  1. Xen वर्चुअलाइजेशन के साथ शुरुआत करना

    ज़ेन, Z के साथ वर्तनी, आठ घंटे तक पकड़े रहने के बाद बर्फ में पेशाब करते समय आपके सिर के मुकुट पर सर्वोत्कृष्ट अनुभूति होती है। Xen, X के साथ वर्तनी, एक ओपन-सोर्स वर्चुअलाइजेशन तकनीक है जिसे आप अपने सेटअप के लिए विचार कर सकते हैं, चाहे घर या व्यवसाय में, हालांकि, KVM की तरह, यह कॉर्पोरेट बाजार में अध