परिदृश्यको एउटा पक्ष भनेको मेसिन लर्निङ मोडेल सिर्जना गर्नु हो। यो वास्तविक संसारमा प्रयोगयोग्य र उपभोक्ताहरू र विकासकर्ताहरूको लागि उपलब्ध हुनुपर्छ।
मेसिन लर्निङ मोडेलहरू प्रयोग गर्ने सबैभन्दा सरल र सबैभन्दा लोकप्रिय तरिका तिनीहरूलाई REST API मा संलग्न गर्नु हो।
FastAPI नामक लोकप्रिय पुस्तकालयको साथ, हामीले आज पूरा गर्ने कुरा हो।
तर, के छ फास्टएपीआई?
FastAPI पाइथन वेब फ्रेमवर्क समकालीन पाइथन क्षमताहरूको फाइदा लिनको लागि ग्राउन्ड अपबाट सिर्जना गरिएको थियो।
ग्राहकहरु संग एसिन्क्रोनस, समवर्ती संचार को लागी, यो ASGI मानक को पालना गर्दछ, जबकि यो WSGI को उपयोग गर्न को लागी सक्षम छ।
अन्तिम बिन्दु र मार्गहरूले async प्रकार्यहरू प्रयोग गर्न सक्छन्। थप रूपमा, फास्टएपीआईले टाइप-संकेत, सफा, समकालीन पाइथन कोडमा वेब अनुप्रयोगहरूको उत्पादक सिर्जना सक्षम गर्दछ।
FastAPI को मुख्य प्रयोग केस हो, जस्तै नामले सुझाव दिन्छ, API अन्त्य बिन्दुहरू सिर्जना गर्दै।
OpenAPI मानक प्रयोग गर्ने, जसमा अन्तरक्रियात्मक Swagger UI समावेश छ, वा JSON को रूपमा पाइथन शब्दकोश डाटा उपलब्ध गराउने दुवै यो प्राप्त गर्ने सरल तरिकाहरू हुन्। यद्यपि, फास्टएपीआई एपीआईहरूको लागि मात्र होइन।
यो Jinja2 टेम्प्लेट इन्जिन प्रयोग गरी मानक वेब पृष्ठहरू प्रस्ताव गर्न र वेब ढाँचाले गर्न सक्ने अन्य धेरै कुराहरूका अतिरिक्त WebSockets प्रयोग गर्ने एपहरू सेवा गर्न प्रयोग गर्न सकिन्छ।
यस लेखमा, हामी एक सीधा मेसिन लर्निङ मोडेल विकास गर्नेछौं र त्यसपछि यसलाई प्रयोग गर्न FastAPI प्रयोग गर्नेछौं। सुरु गरौं।
FastAPI को स्थापना र पहिलो API को निर्माण
पुस्तकालय र ASGI सर्भर स्थापना गर्न पहिले आवश्यक छ; या त Uvuicorn वा Hypercorn काम गर्नेछ। यसले टर्मिनलमा निम्न आदेश प्रविष्ट गरेर काम गर्दछ:
अब जब API सिर्जना गरिएको छ, तपाइँ आफ्नो मनपर्ने कोड सम्पादक प्रयोग गर्न सक्नुहुन्छ र यसको माध्यमबाट ब्राउज गर्न सक्नुहुन्छ। सुरु गर्नको लागि ml_model.py नामक पाइथन स्क्रिप्ट सिर्जना गर्नुहोस्। तपाइँलाई तपाइँको फरक नाम दिन स्वागत छ, तर यो पोस्ट को लागी, म यो फाइल ml_model.py को रूपमा उल्लेख गर्नेछु।
दुईवटा अन्तिम बिन्दुहरूसँग एक सीधा API सिर्जना गर्न, तपाईंले निम्न कार्यहरू पूरा गर्नुपर्छ:
- FastAPI र Uvicorn पुस्तकालयहरू आयात गर्नुहोस्।
- फास्टएपीआई क्लास इन्स्ट्यान्स सेटअप गर्नुहोस्।
- पहिलो मार्ग घोषणा गर्नुहोस्, जसले अनुक्रमणिका पृष्ठमा, सीधा JSON वस्तु उत्पादन गर्दछ।
- दोस्रो मार्ग घोषणा गर्नुहोस्, जसले अनुकूलित सन्देशको साथ सीधा JSON वस्तु प्रदान गर्दछ। नाम प्यारामिटर सीधा URL बाट लिइएको छ (उदाहरणका लागि, https://127.0.0.1:8000/Jay)।
- API चलाउन Uvicorn प्रयोग गर्नुहोस्।
यी पाँच चरणहरू लागू गर्दै कोडको निम्न बिटमा देखाइएको छ। सरल API सिर्जना गर्दै
सबै सकियो! तुरुन्तै हाम्रो API सुरु गरौं। यो पूरा गर्न ml model.py फाइलको छेउमा टर्मिनल सञ्झ्याल खोल्नुहोस्। अर्को, निम्न प्रविष्ट गर्नुहोस्:
इन्टर कुञ्जी। अगाडि बढ्नु अघि, यो दावीलाई खारेज गरौं। पहिलो एपले एक्स्टेन्सन बिना पाइथन फाइल नाम एक्लै प्रयोग गर्छ। दोस्रो एपको तपाईंको फास्टएपीआई उदाहरण जस्तै नाम हुनुपर्छ।
-reload को प्रयोग गरेर, तपाइँ API लाई भन्नुहुन्छ कि तपाइँ यसलाई स्वचालित रूपमा पुन: लोड गर्न चाहानुहुन्छ जब तपाइँ स्क्र्याचबाट सुरु गर्नुको सट्टा फाइल बचत गर्नुहुन्छ।
अब ब्राउजर सुरु गर्नुहोस् र https://127.0.0.1:8000 मा नेभिगेट गर्नुहोस्; परिणाम निम्न रूपमा देखा पर्छ:
तपाईंले अब FastAPI प्रयोग गरेर सरल एपीआई कसरी बनाउने भनेर बुझ्नुभयो।
मेसिन लर्निङ मोडेल निर्माण र प्रशिक्षण
कुनै पनि डाटा सङ्कलन वा विश्लेषण बिना, हामी केवल एक साधारण मोडेल तालिम दिनेछौं। यी मोडेलहरूको तैनातीसँग सम्बन्धित छैनन् र हातमा रहेको विषयको लागि आवश्यक छैनन्।
आइरिस डाटासेटमा आधारित मोडेललाई प्रयोग गरेर स्थापना गर्न सकिन्छ तंत्रिका सञ्जाल स्थापना विधि।
र हामी त्यो मात्र गर्नेछौं: डाउनलोड गर्नुहोस् आइरिस डाटासेट र मोडेललाई तालिम दिनुहोस्। त्यो सरल हुनेछैन। सुरु गर्न, jaysmlmodel.py नामक फाइल बनाउनुहोस्।
यसमा, तपाइँ निम्न गर्नुहुनेछ:
- आयातहरू - तपाईंलाई पान्डाहरू, स्किट-रेन्डमफोरकास्ट क्लासिफायर, सिक्नको पाइडान्टिकको आधार मोडेल (तपाईले निम्न चरणमा किन पत्ता लगाउनुहुनेछ), र मोडेलहरू भण्डारण र लोड गर्नका लागि joblib चाहिन्छ।
- आधार मोडेलबाट प्राप्त भएको IrisSpecies वर्ग घोषणा गर्नुहोस्। यस वर्गमा एउटै फूलको प्रजातिको पूर्वानुमान गर्न आवश्यक क्षेत्रहरू मात्र समावेश छन् (यसको बारेमा अर्को खण्डमा थप)
- कक्षा बनाउनुहोस्। IrisModel एक मोडेल प्रशिक्षण र भविष्यवाणी उपकरण हो।
- IrisModel भित्र _train मोडेल नामक विधि घोषणा गर्नुहोस्। यो Random Forests प्रविधि प्रयोग गरी मोडेलहरूलाई तालिम दिन प्रयोग गरिन्छ। प्रशिक्षित मोडेल प्रक्रिया द्वारा फिर्ता गरिन्छ।
- IrisModel भित्र भविष्यवाणी गरिएको प्रजाति प्रकार्य घोषणा गर्नुहोस्। यो 4 इनपुट कारक (फूल मापन) मा आधारित पूर्वानुमान गर्न प्रयोग गरिन्छ। दुबै पूर्वानुमान (फूल प्रजाति) र भविष्यवाणी सम्भाव्यता एल्गोरिदम द्वारा फिर्ता गरिन्छ।
- IrisModel मा कन्स्ट्रक्टर परिवर्तन गर्नुहोस् ताकि यसले Iris डेटासेट लोड गर्छ र यदि यो फोल्डरबाट हराइरहेको छ भने मोडेललाई तालिम दिन्छ। यसले बारम्बार नयाँ मोडेलहरू तालिम दिने समस्या समाधान गर्दछ। joblib पुस्तकालय मोडेल लोड र बचत को लागी प्रयोग गरिन्छ।
यहाँ सम्पूर्ण कोड छ:
मलाई आशा छ कि माथिको सूची र टिप्पणीहरूले यसलाई बुझ्न सजिलो बनाएको छ यद्यपि यो सिर्जना गर्न कोडको ठूलो मात्रा थियो। अब यो मोडेल विकसित भएको छ, यसको भविष्यवाणी क्षमताहरू प्रकाशित गरौं REST API.
पूर्ण REST API निर्माण गर्दै
ml_model.py फाइलमा फर्कनुहोस् र सबै डाटा शुद्ध गर्नुहोस्। बॉयलरप्लेट अनिवार्य रूपमा तपाइँसँग पहिले भएको जस्तै हुनेछ, तर हामीले खाली फाइलबाट सुरु गर्नुपर्छ।
तपाईंले यस पटक मात्र एउटा अन्तिम बिन्दु परिभाषित गर्नुहुनेछ, जुन फूलको प्रकार निर्धारण गर्न प्रयोग गरिएको हो। IrisModel.predict species(), जसलाई अघिल्लो खण्डमा घोषणा गरिएको थियो, यो अन्तिम बिन्दुद्वारा भविष्यवाणी पूरा गर्न बोलाइन्छ।
अनुरोध प्रकार अर्को ठूलो परिवर्तन हो। URL को सट्टा JSON मा प्यारामिटरहरू प्रसारण गर्न, यो सिफारिस गरिन्छ कि तपाइँ प्रयोग गर्दा POST प्रयोग गर्नुहोस् मेशिन सिकाइ एपीआई
यदि तपाईं एक हुनुहुन्छ भने माथिको वाक्य गब्बरिश जस्तो लाग्न सक्छ डाटा वैज्ञानिक, तर त्यो ठीक छ। मोडेलहरू डिजाइन र डिप्लोय गर्न, HTTP अनुरोधहरू र REST API मा विशेषज्ञ हुनु आवश्यक छैन।
ml model.py का लागि कार्यहरू थोरै र सीधा छन्:
- तपाईंले पहिले सिर्जना गरेको jaymlmodel.py फाइलबाट निम्न आयात गर्नुपर्छ: uvicorn, FastAPI, IrisModel, र IrisSpecies।
- FastAPI र IrisModel को उदाहरणहरू सिर्जना गर्नुहोस्।
- भविष्यवाणी गर्न https://127.0.0.1:8000/predict मा एक प्रकार्य घोषणा गर्नुहोस्।
- IrisModel.predict species() विधिले IrisSpecies प्रकारको वस्तु प्राप्त गर्छ, यसलाई शब्दकोशमा रूपान्तरण गर्छ, र त्यसपछि यसलाई फर्काउँछ। रिटर्नहरू अपेक्षित वर्ग र अनुमानित सम्भाव्यता हुन्।
- API कार्यान्वयन गर्न uvicorn प्रयोग गर्नुहोस्।
अझै फेरि, यहाँ सम्पूर्ण फाइलको कोड सँगै यसको टिप्पणीहरू छन्:
तपाईले गर्नु पर्ने मात्र यही हो। अर्को चरणमा, API को परीक्षण गरौं।
API परीक्षण गर्दै
API कार्यान्वयन गर्न टर्मिनलमा निम्न लाइन पुन: प्रविष्ट गर्नुहोस्: uvicorn ml_model:app -reload
कागजात पृष्ठ यसरी देखिन्छ:
त्यसैले आजको लागि यति हो। यस पछिको भागमा, निष्कर्षमा पुगौं।
निष्कर्ष
आज, तपाईंले फास्टएपीआई के हो र यसलाई कसरी प्रयोग गर्ने भन्ने कुरा सिक्नुभयो, सरल एपीआई उदाहरण र सरल मेसिन लर्निङ उदाहरण दुवै प्रयोग गरेर। तपाईंले API कागजातहरू कसरी सिर्जना गर्ने र हेर्ने, साथै यसलाई कसरी परीक्षण गर्ने भनेर पनि सिक्नुभएको छ।
त्यो एक टुक्राको लागि धेरै हो, त्यसैले अचम्म नमान्नुहोस् यदि यसले राम्ररी बुझ्न केही पढाइहरू लिन्छ भने।
शुभ कोडिङ।
जवाफ छाड्नुस्