परिदृश्य का एक पहलू मशीन लर्निंग मॉडल बना रहा है। यह वास्तविक दुनिया में प्रयोग करने योग्य होना चाहिए और उपभोक्ताओं और डेवलपर्स के लिए उपलब्ध होना चाहिए।
मशीन लर्निंग मॉडल को तैनात करने का सबसे सरल और सबसे लोकप्रिय तरीका उन्हें एक आरईएसटी एपीआई में संलग्न करना है।
FastAPI नामक एक लोकप्रिय पुस्तकालय के साथ, आज हम ठीक यही हासिल करेंगे।
लेकिन, क्या है FastAPI?
FastAPI पायथन वेब ढांचा समकालीन पायथन क्षमताओं का लाभ उठाने के लिए जमीन से बनाया गया था।
ग्राहकों के साथ अतुल्यकालिक, समवर्ती संचार के लिए, यह ASGI मानक का पालन करता है, जबकि यह WSGI का उपयोग करने में भी सक्षम है।
समापन बिंदु और मार्ग दोनों async फ़ंक्शन को नियोजित कर सकते हैं। इसके अतिरिक्त, FastAPI टाइप-संकेतित, स्वच्छ, समकालीन पायथन कोड में वेब ऐप्स के उत्पादक निर्माण को सक्षम बनाता है।
FastAPI का मुख्य उपयोग मामला है, जैसा कि नाम से पता चलता है, API समापन बिंदु बनाना।
OpenAPI मानक का उपयोग करना, जिसमें एक इंटरैक्टिव स्वैगर UI शामिल है, या JSON के रूप में पायथन डिक्शनरी डेटा प्रदान करना दोनों इसे प्राप्त करने के सरल तरीके हैं। हालाँकि, FastAPI केवल API के लिए नहीं है।
इसका उपयोग Jinja2 टेम्प्लेट इंजन का उपयोग करके मानक वेब पेजों की पेशकश करने के लिए और WebSockets का उपयोग करने वाले ऐप्स की सेवा के लिए किया जा सकता है, इसके अलावा एक वेब फ्रेमवर्क जो कुछ भी कर सकता है।
इस लेख में, हम एक सीधा मशीन लर्निंग मॉडल विकसित करेंगे और फिर इसे तैनात करने के लिए FastAPI का उपयोग करेंगे। चलो शुरू करें।
FastAPI की स्थापना और पहले API का निर्माण
पहले पुस्तकालय और एक ASGI सर्वर स्थापित करना आवश्यक है; Uvuicorn या Hypercorn दोनों में से कोई एक काम करेगा। यह टर्मिनल में निम्न कमांड दर्ज करके काम करता है:
अब जब एपीआई बन गया है, तो आप अपने पसंदीदा कोड संपादक का उपयोग कर सकते हैं और इसके माध्यम से ब्राउज़ कर सकते हैं। आरंभ करने के लिए ml_model.py नामक एक पायथन लिपि बनाएँ। अपना एक अलग नाम देने के लिए आपका स्वागत है, लेकिन इस पोस्ट के लिए, मैं इस फ़ाइल को ml_model.py के रूप में संदर्भित करूंगा।
दो समापन बिंदुओं के साथ एक सीधा एपीआई बनाने के लिए, आपको निम्नलिखित कार्यों को पूरा करना होगा:
- FastAPI और Uvicorn पुस्तकालयों को आयात करें।
- FastAPI क्लास इंस्टेंस सेट करें।
- पहले रूट की घोषणा करें, जो इंडेक्स पेज पर एक सीधा JSON ऑब्जेक्ट बनाता है।
- दूसरा मार्ग घोषित करें, जो एक अनुकूलित संदेश के साथ एक सीधा JSON ऑब्जेक्ट प्रदान करता है। नाम पैरामीटर सीधे URL से लिया गया है (उदाहरण के लिए, https://127.0.0.1:8000/Jay)।
- एपीआई चलाने के लिए यूविकॉर्न का उपयोग करें।
इन पांच चरणों को लागू करना निम्नलिखित बिट कोड में दिखाया गया है। एक साधारण एपीआई बनाना
सब कुछ कर दिया! आइए तुरंत अपना एपीआई लॉन्च करें। इसे पूरा करने के लिए ml model.py फ़ाइल के आगे एक टर्मिनल विंडो खोलें। अगला, निम्नलिखित दर्ज करें:
कुंजी दर्ज करें। आगे बढ़ने से पहले, आइए इस दावे को खारिज कर दें। पहला ऐप बिना एक्सटेंशन के अकेले पायथन फ़ाइल नाम का उपयोग करता है। दूसरे ऐप का नाम आपके FastAPI इंस्टेंस के समान होना चाहिए।
-रीलोड का उपयोग करके, आप एपीआई को बताते हैं कि जब आप फ़ाइल को स्क्रैच से शुरू करने के बजाय सहेजते हैं तो आप इसे स्वचालित रूप से पुनः लोड करना चाहते हैं।
अब एक ब्राउज़र लॉन्च करें और https://127.0.0.1:8000 पर नेविगेट करें; परिणाम इस प्रकार दिखना चाहिए:
अब आप समझ गए हैं कि FastAPI का उपयोग करके एक साधारण API कैसे बनाया जाता है।
मशीन लर्निंग मॉडल का निर्माण और प्रशिक्षण
किसी भी डेटा को एकत्रित या विश्लेषण किए बिना, हम केवल एक साधारण मॉडल को प्रशिक्षित करेंगे। ये मॉडलों के परिनियोजन से संबंधित नहीं हैं और वर्तमान विषय के लिए आवश्यक नहीं हैं।
आईरिस डेटासेट पर आधारित एक मॉडल उसी का उपयोग करके स्थापित किया जा सकता है तंत्रिका नेटवर्क इंस्टॉलेशन तरीका।
और हम बस यही करेंगे: डाउनलोड करें आइरिस डेटासेट और मॉडल को प्रशिक्षित करें। यह आसान नहीं होगा। शुरू करने के लिए, jaysmlmodel.py नाम की एक फाइल बनाएं।
इसमें, आप निम्न कार्य करेंगे:
- आयात - आपको पांडा, स्किकिट-रैंडम फोरकास्ट क्लासिफायर, लर्न्स पाइडेंटिक के बेसमॉडल (आप अगले चरण में क्यों पता लगाएंगे), और मॉडल को स्टोर करने और लोड करने के लिए जॉबलिब की आवश्यकता होगी।
- आधार मॉडल से विरासत में मिली एक आईरिस प्रजाति वर्ग घोषित करें। इस वर्ग में केवल एक फूल प्रजाति की भविष्यवाणी करने के लिए आवश्यक फ़ील्ड शामिल हैं (उस पर अगले भाग में अधिक)
- एक वर्ग बनाएँ। IrisModel एक मॉडल प्रशिक्षण और भविष्यवाणी उपकरण है।
- IrisModel के भीतर _train मॉडल नामक एक विधि की घोषणा करें। इसका उपयोग रैंडम फ़ॉरेस्ट तकनीक का उपयोग करके मॉडलों को प्रशिक्षित करने के लिए किया जाता है। प्रशिक्षित मॉडल प्रक्रिया द्वारा वापस किया जाता है।
- IrisModel के अंदर एक अनुमानित प्रजाति फ़ंक्शन घोषित करें। इसका उपयोग 4 इनपुट कारकों (फूलों की माप) के आधार पर पूर्वानुमान लगाने के लिए किया जाता है। पूर्वानुमान (फूलों की प्रजाति) और भविष्यवाणी की संभावना दोनों को एल्गोरिथम द्वारा लौटाया जाता है।
- आइरिसमॉडल में कंस्ट्रक्टर को बदलें ताकि यह आइरिस डेटासेट को लोड करे और मॉडल को प्रशिक्षित करे यदि यह फ़ोल्डर से गायब है। यह नए मॉडलों को बार-बार प्रशिक्षण देने की समस्या को हल करता है। जॉबलिब लाइब्रेरी का उपयोग मॉडल लोडिंग और सेविंग के लिए किया जाता है।
यहाँ पूरा कोड है:
मुझे उम्मीद है कि उपरोक्त सूची और टिप्पणियों ने इसे समझना आसान बना दिया है, भले ही यह एक बड़ी मात्रा में कोड बनाने के लिए था। अब जबकि इस मॉडल को विकसित कर लिया गया है, आइए इसकी भविष्यवाणी क्षमताओं को a . पर प्रकाशित करें बाकी एपीआई.
एक पूर्ण REST API का निर्माण
ml_model.py फ़ाइल पर वापस लौटें और सभी डेटा को शुद्ध करें। बॉयलरप्लेट अनिवार्य रूप से वही होगा जो आपके पास पहले था, लेकिन हमें एक खाली फ़ाइल के साथ शुरू करना चाहिए।
आप इस बार केवल एक समापन बिंदु परिभाषित करेंगे, जिसका उपयोग फूल के प्रकार को निर्धारित करने के लिए किया जाता है। IrisModel.predict प्रजाति (), जिसे पिछले खंड में घोषित किया गया था, को इस समापन बिंदु द्वारा भविष्यवाणी करने के लिए कहा जाता है।
अनुरोध प्रकार दूसरा बड़ा परिवर्तन है। 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 प्रजाति () विधि IrisSpecies प्रकार का एक ऑब्जेक्ट प्राप्त करती है, इसे एक शब्दकोश में बदल देती है, और फिर इसे वापस कर देती है। रिटर्न अपेक्षित वर्ग और अनुमानित संभाव्यता हैं।
- एपीआई निष्पादित करने के लिए यूविकॉर्न का प्रयोग करें।
फिर भी, यहाँ पूरी फ़ाइल का कोड उसकी टिप्पणियों के साथ दिया गया है:
आपको बस इतना ही करना है। अगले चरण में, आइए API का परीक्षण करें।
एपीआई का परीक्षण
एपीआई निष्पादित करने के लिए टर्मिनल में निम्न पंक्ति को फिर से दर्ज करें: uvicorn ml_model:app -reload
दस्तावेज़ीकरण पृष्ठ इस प्रकार दिखाई देता है:
तो आज के लिए बस इतना ही। इसके बाद के भाग में, आइए समाप्त करते हैं।
निष्कर्ष
आज, आपने सीखा कि FastAPI क्या है और इसका उपयोग कैसे करें, एक साधारण API उदाहरण और एक साधारण मशीन लर्निंग उदाहरण दोनों का उपयोग करके। आपने यह भी सीखा है कि API दस्तावेज़ कैसे बनाएं और देखें, साथ ही इसका परीक्षण कैसे करें।
यह एक टुकड़े के लिए बहुत कुछ है, इसलिए आश्चर्यचकित न हों अगर इसे ठीक से समझने के लिए कुछ रीडिंग की आवश्यकता हो।
हैप्पी कोडिंग।
एक जवाब लिखें