परिस्थितीचा एक पैलू म्हणजे मशीन लर्निंग मॉडेल तयार करणे. ते वास्तविक जगात वापरण्यायोग्य आणि ग्राहक आणि विकासकांसाठी उपलब्ध असले पाहिजे.
मशीन लर्निंग मॉडेल्स उपयोजित करण्याचा सर्वात सोपा आणि लोकप्रिय मार्ग म्हणजे त्यांना REST API मध्ये संलग्न करणे.
FastAPI नावाच्या लोकप्रिय लायब्ररीसह, आज आपण तेच साध्य करू.
पण, काय आहे फास्टएपीआय?
FastAPI Python वेब फ्रेमवर्क समकालीन पायथन क्षमतांचा फायदा घेण्यासाठी जमिनीपासून तयार केले गेले.
ग्राहकांशी असिंक्रोनस, समवर्ती संप्रेषणासाठी, ते ASGI मानकांचे पालन करते, तर ते WSGI वापरण्यास देखील सक्षम आहे.
एंडपॉइंट आणि मार्ग दोन्ही async फंक्शन्स नियुक्त करू शकतात. याव्यतिरिक्त, फास्टएपीआय टाइप-इंटेड, स्वच्छ, समकालीन पायथन कोडमध्ये वेब अॅप्सची उत्पादक निर्मिती सक्षम करते.
फास्टएपीआयचे मुख्य वापर प्रकरण, नावाप्रमाणेच, API एंडपॉइंट्स तयार करणे आहे.
OpenAPI मानक वापरणे, ज्यामध्ये परस्पर स्वेगर UI समाविष्ट आहे, किंवा JSON म्हणून Python शब्दकोश डेटा प्रदान करणे हे दोन्ही साधे मार्ग आहेत. तथापि, फास्टएपीआय केवळ API साठी नाही.
हे जिन्जा 2 टेम्प्लेट इंजिन वापरून मानक वेब पृष्ठे ऑफर करण्यासाठी आणि WebSockets वापरून अॅप्स सर्व्ह करण्यासाठी वापरले जाऊ शकते, याशिवाय वेब फ्रेमवर्क करू शकते.
या लेखात, आम्ही एक सरळ मशीन लर्निंग मॉडेल विकसित करू आणि नंतर ते उपयोजित करण्यासाठी FastAPI वापरू. चला सुरवात करूया.
FastAPI ची स्थापना आणि प्रथम API तयार करणे
प्रथम लायब्ररी आणि एएसजीआय सर्व्हर स्थापित करणे आवश्यक आहे; 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 फाईलच्या शेजारी टर्मिनल विंडो उघडा. पुढे, खालील प्रविष्ट करा:
एंटर की. पुढे जाण्यापूर्वी, हे प्रतिपादन रद्द करूया. पहिले अॅप एक्स्टेंशनशिवाय पायथन फाइल नावाचा वापर करते. दुसऱ्या अॅपला तुमच्या FastAPI उदाहरणासारखेच नाव असणे आवश्यक आहे.
-reload वापरून, तुम्ही API ला सांगता की तुम्ही फाइल सेव्ह करता तेव्हा ती स्क्रॅचपासून सुरू करण्याऐवजी आपोआप रीलोड व्हावी.
आता ब्राउझर लाँच करा आणि https://127.0.0.1:8000 वर नेव्हिगेट करा; परिणाम खालीलप्रमाणे दिसला पाहिजे:
फास्टएपीआय वापरून साधे एपीआय कसे तयार करायचे ते आता तुम्हाला समजले आहे.
मशीन लर्निंग मॉडेल तयार करणे आणि प्रशिक्षण देणे
कोणताही डेटा संकलित किंवा विश्लेषण न करता, आम्ही फक्त एक साधे मॉडेल प्रशिक्षित करू. हे मॉडेलच्या उपयोजनाशी संबंधित नाहीत आणि हाती असलेल्या विषयासाठी आवश्यक नाहीत.
आयरिस डेटासेटवर आधारित मॉडेल ते वापरून स्थापित केले जाऊ शकते मज्जासंस्थेसंबंधीचा नेटवर्क स्थापना पद्धत.
आणि आम्ही तेच करू: डाउनलोड करा आयरिस डेटासेट आणि मॉडेलला प्रशिक्षण द्या. ते सोपे होणार नाही. सुरू करण्यासाठी, jaysmlmodel.py नावाची फाईल बनवा.
त्यामध्ये, तुम्ही पुढील गोष्टी कराल:
- आयात — तुम्हाला पांडा, स्किट-रॅंडमफोरकास्टक्लासीफायर, लर्नचे पायडेंटिकचे बेस मॉडेल (पुढील चरणात का ते कळेल) आणि मॉडेल्स साठवण्यासाठी आणि लोड करण्यासाठी जॉबलिबची आवश्यकता असेल.
- बेस मॉडेलमधून वारसा मिळालेला IrisSpecies वर्ग घोषित करा. या वर्गात फक्त एकाच फुलांच्या प्रजातीचा अंदाज लावण्यासाठी आवश्यक फील्ड आहेत (त्यावर पुढील विभागात अधिक)
- एक वर्ग तयार करा. IrisModel एक मॉडेल प्रशिक्षण आणि अंदाज साधन आहे.
- IrisModel मध्ये _train मॉडेल नावाची पद्धत घोषित करा. हे यादृच्छिक वन तंत्राचा वापर करून मॉडेल प्रशिक्षित करण्यासाठी वापरले जाते. प्रशिक्षित मॉडेल प्रक्रियेद्वारे परत केले जाते.
- IrisModel मध्ये एक अंदाजित प्रजाती कार्य घोषित करा. 4 इनपुट घटकांवर (फ्लॉवर मापन) आधारित अंदाज लावण्यासाठी याचा वापर केला जातो. अंदाज (फुलांच्या प्रजाती) आणि अंदाज संभाव्यता दोन्ही अल्गोरिदमद्वारे परत केले जातात.
- IrisModel मधील कन्स्ट्रक्टर बदला जेणेकरून ते Iris डेटासेट लोड करेल आणि फोल्डरमधून मॉडेल गहाळ असल्यास प्रशिक्षित करेल. हे नवीन मॉडेल्सना वारंवार प्रशिक्षण देण्याची समस्या सोडवते. जॉबलिब लायब्ररीचा उपयोग मॉडेल लोडिंग आणि सेव्हिंगसाठी केला जातो.
येथे संपूर्ण कोड आहे:
मला आशा आहे की वरील सूची आणि टिप्पण्यांमुळे हे समजणे सोपे झाले आहे जरी हा कोड तयार करण्यासाठी मोठ्या प्रमाणात होता. आता हे मॉडेल विकसित केले गेले आहे, चला त्याच्या अंदाज क्षमता प्रकाशित करूया आरईएसटी API.
पूर्ण REST API तयार करत आहे
ml_model.py फाईलवर परत या आणि सर्व डेटा शुद्ध करा. बॉयलरप्लेट मूलत: तुमच्याकडे पूर्वीप्रमाणेच असेल, परंतु आम्ही एका रिक्त फाईलने सुरुवात केली पाहिजे.
तुम्ही यावेळी फक्त एक एंडपॉइंट परिभाषित कराल, जो फुलाचा प्रकार ठरवण्यासाठी वापरला जातो. IrisModel.predict species(), जी आधीच्या विभागात घोषित केली गेली होती, त्यांना अंदाज पूर्ण करण्यासाठी या एंडपॉइंटद्वारे बोलावले जाते.
विनंती प्रकार हा दुसरा मोठा बदल आहे. URL ऐवजी JSON मध्ये पॅरामीटर्स प्रसारित करण्यासाठी, तुम्ही वापरताना POST वापरण्याची शिफारस केली जाते मशीन शिक्षण API.
जर तुम्ही ए डेटा वैज्ञानिक, पण ते ठीक आहे. मॉडेल डिझाइन आणि तैनात करण्यासाठी, 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 उदाहरण आणि एक साधे मशीन लर्निंग उदाहरण वापरून शिकलात. तुम्ही API दस्तऐवजीकरण कसे तयार करावे आणि कसे पहावे तसेच त्याची चाचणी कशी करावी हे देखील शिकले आहे.
एका भागासाठी हे खूप आहे, त्यामुळे योग्यरित्या समजून घेण्यासाठी काही वाचन आवश्यक असल्यास आश्चर्यचकित होऊ नका.
आनंदी कोडिंग.
प्रत्युत्तर द्या