Word2Vec और फ्लास्क के साथ एक डीप लर्निंग रेस्ट एपीआई कैसे बनाएं

उत्पादन में जटिल मशीन लर्निंग मॉडल का उपयोग करते समय विकास के लिए पारंपरिक दृष्टिकोण को बनाए रखना मुश्किल है। गहन शिक्षण इंजीनियरों के लिए मशीन लर्निंग मॉडल को प्रशिक्षित करने के लिए एक लैपटॉप या स्थानीय मशीन पर विकास धीमा हो सकता है। परिणामस्वरूप, हम आमतौर पर क्लाउड मशीन का उपयोग अधिक शक्तिशाली हार्डवेयर के साथ दोनों ट्रेन और हमारे मशीन लर्निंग मॉडल को चलाने के लिए करते हैं। यह अच्छा अभ्यास है क्योंकि हम जटिल गणना को सार करते हैं और इसके बजाय AJAX के अनुरोधों को आवश्यक बनाते हैं। इस ट्यूटोरियल में, हम एक पूर्व-प्रशिक्षित डीप लर्निंग मॉडल बनाएंगे, जिसका नाम Word2Vec है, जो अन्य सेवाओं के लिए उपलब्ध है।

आवश्यक शर्तें

  • कम से कम 4 जीबी रैम के साथ एक Ubuntu 16.04 सर्वर का उदाहरण। परीक्षण और विकास के उद्देश्यों के लिए, आप 4GB रैम के साथ एक उदाहरण चुन सकते हैं
  • फ़ोल्डर्स और फ़ाइलों को बनाने / नेविगेट / संपादित करने के लिए लिनक्स ऑपरेटिंग सिस्टम का उपयोग करने के तरीके की समझ
  • एक sudoउपयोगकर्ता

वर्ड एंबेडिंग क्या हैं?

शब्द एम्बेडिंग प्राकृतिक भाषा प्रसंस्करण और गहरी सीखने में हाल ही में एक विकास है जिसने तेजी से प्रगति के कारण दोनों क्षेत्रों में क्रांति ला दी है। शब्द एम्बेडिंग अनिवार्य रूप से वैक्टर हैं जो प्रत्येक एक शब्द के अनुरूप हैं जैसे कि वैक्टर शब्द का अर्थ है। यह कुछ घटनाओं जैसे वेक्टर के लिए प्रदर्शित किया जा सकता है king - queen = boy - girl। शब्द वैक्टर का उपयोग सिफारिश इंजन से चैट-बॉट्स तक सब कुछ बनाने के लिए किया जाता है जो वास्तव में अंग्रेजी भाषा को समझते हैं।

शब्द एम्बेडिंग यादृच्छिक नहीं है; वे एक तंत्रिका नेटवर्क के प्रशिक्षण द्वारा उत्पन्न होते हैं। हाल ही में एक शक्तिशाली शब्द एम्बेडिंग कार्यान्वयन Google से आया है जिसका नाम Word2Vec है जो उन शब्दों की भविष्यवाणी करके प्रशिक्षित किया जाता है जो किसी भाषा में दूसरे शब्दों के बगल में दिखाई देते हैं। उदाहरण के लिए, शब्द के लिए "cat", तंत्रिका नेटवर्क शब्दों की भविष्यवाणी करेगा "kitten"और "feline"। एक दूसरे के निकट आने वाले शब्दों का यह अंतर्ज्ञान हमें उन्हें वेक्टर अंतरिक्ष में रखने की अनुमति देता है।

हालाँकि, व्यवहार में, हम Google जैसे अन्य बड़े निगमों के पूर्व-प्रशिक्षित मॉडल का उपयोग करते हैं ताकि वे जल्दी से प्रोटोटाइप के लिए और तैनाती प्रक्रियाओं को सरल बना सकें। इस ट्यूटोरियल में हम Google के Word2Vec के पूर्व-प्रशिक्षित शब्द एम्बेडिंग को डाउनलोड और उपयोग करेंगे। हम अपनी कार्य निर्देशिका में निम्न कमांड चलाकर ऐसा कर सकते हैं।

wget http://magnitude.plasticity.ai/word2vec/GoogleNews-vectors-negative300.magnitude

फ्लास्क और मैग्नेटिट पैकेज स्थापित करना

हमारे द्वारा डाउनलोड किया गया एम्बेडिंग मॉडल एक .magnitudeप्रारूप में है। यह प्रारूप हमें SQL का उपयोग करके कुशलता से मॉडल को क्वेरी करने की अनुमति देता है, और इसलिए उत्पादन सर्वर के लिए इष्टतम एम्बेडिंग प्रारूप है। चूंकि हमें .magnitudeप्रारूप को पढ़ने में सक्षम होना चाहिए , हम pymagnitudeपैकेज को स्थापित करेंगे । हम flaskबाद में मॉडल द्वारा की गई गहरी सीखने की भविष्यवाणियों की सेवा करने के लिए भी स्थापित होंगे ।

pip3 install pymagnitude flask

हम इसे निम्नलिखित कमांड के साथ हमारे निर्भरता ट्रैकर में भी जोड़ देंगे। यह requirements.txtहमारे पायथन लाइब्रेरीज़ नामक एक फ़ाइल बनाता है और बाद में हम उन्हें बाद में पुनः स्थापित कर सकते हैं।

pip3 freeze > requirements.txt

Word2Vec मॉडल को छोड़कर

शुरू करने के लिए, हम एम्बेडिंग शब्द को खोलने और क्वेरी करने के लिए एक फाइल बनाएंगे।

touch model.py

अगला, हम model.pyपरिमाण को आयात करने के लिए निम्नलिखित पंक्तियों को जोड़ेंगे ।

from pymagnitude import Magnitude
vectors = Magnitude('GoogleNews-vectors-negative300.magnitude')

हम एक शब्द के लिए एक तर्क प्रदान pymagnitudeकरते हुए, queryपद्धति का उपयोग करके पैकेज और गहन शिक्षण मॉडल के साथ खेल सकते हैं ।

cat_vector = vectors.query('cat')
print(cat_vector)

हमारे एपीआई के मूल के लिए, हम दो शब्दों के बीच अर्थ में अंतर को वापस करने के लिए एक फ़ंक्शन को परिभाषित करेंगे। यह अनुशंसा इंजन (जैसे शब्दों के साथ सामग्री दिखाना) जैसी चीजों के लिए सबसे गहन सीखने के समाधान के लिए रीढ़ है।

हम फ़ंक्शन similarityऔर most_similar फ़ंक्शन का उपयोग करके इस फ़ंक्शन के साथ खेल सकते हैं ।

print(vectors.similarity("cat", "dog"))
print(vectors.most_similar("cat", topn=100))

हम समानता कैलकुलेटर को निम्नानुसार लागू करते हैं। इस विधि को अगले खंड में फ्लास्क एपीआई द्वारा बुलाया जाएगा। ध्यान दें कि यह फ़ंक्शन 0 और 1 के बीच एक वास्तविक मान लौटाता है।

def similarity(word1, word2):
    return vectors.similarity(word1, word2)

REST API बनाना

हम service.pyनिम्नलिखित सामग्री के साथ एक फ़ाइल में अपना सर्वर बनाएंगे । हम आयात करते हैं flaskऔर requestअपनी सर्वर क्षमताओं को संभालने के लिए और हम similarityइंजन को उस मॉड्यूल से आयात करते हैं जो हमने पहले लिखा था।

from flask import Flask, request
from model import similarity

app = Flask(__name__)

@app.route("/", methods=['GET'])
def welcome():
    return "Welcome to our Machine Learning REST API!"

@app.route("/similarity", methods=['GET'])
def similarity_route():
    word1 = request.args.get("word1")
    word2 = request.args.get("word2")
    return str(similarity(word1, word2))

if __name__ == "__main__":
    app.run(port=8000, debug=True)

हमारा सर्वर बल्कि नंगे हड्डियां हैं, लेकिन @app.routeडेकोरेटर का उपयोग करके अधिक मार्ग बनाकर आसानी से बढ़ाया जा सकता है ।

एपीआई कॉल बनाना

हम अपने फ्लास्क सर्वर को चलाने के लिए अपने वर्चुअल वातावरण को सक्रिय करने के लिए, अपने पैकेजों को स्थापित करने और इसकी संबंधित पायथन फाइल को चलाने के लिए निम्न कमांड चला सकते हैं।

source venv/bin/activate
pip3 install -r requirements.txt
python3 service.py

हमारे सर्वर पर उपलब्ध होगा localhost:8000। हम अपने डेटाबेस को क्वेरी कर सकते हैं localhost:8000/similarity?word1=cat&word2=dogऔर हमारे ब्राउज़र में या किसी अन्य AJAX क्लाइंट के माध्यम से प्रतिक्रिया देख सकते हैं ।



Leave a Comment

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

LiteCart PHP, jQuery और HTML में लिखा गया एक स्वतंत्र और ओपन सोर्स शॉपिंग कार्ट प्लेटफॉर्म है। यह ई-कॉमर्स सॉफ्टवेअर का उपयोग करने के लिए एक सरल, हल���का और आसान है

डेबियन पर सेटअप NFS शेयर

डेबियन पर सेटअप NFS शेयर

एनएफएस एक नेटवर्क-आधारित फाइल सिस्टम है जो कंप्यूटरों को कंप्यूटर नेटवर्क पर फाइलों तक पहुंचने की अनुमति देता है। यह मार्गदर्शिका बताती है कि आप एनएफ पर फ़ोल्डर्स को कैसे उजागर कर सकते हैं

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

एक अलग प्रणाली का उपयोग? माटोमो (पूर्व में पिविक) एक ओपन सोर्स एनालिटिक्स प्लेटफॉर्म है, जो गूगल एनालिटिक्स का एक खुला विकल्प है। Matomo स्रोत को होस्ट किया गया है

Linux पर एक TeamTalk Server सेटअप करें

Linux पर एक TeamTalk Server सेटअप करें

टीमटॉक एक कॉन्फ्रेंसिंग प्रणाली है जो उपयोगकर्ताओं को उच्च-गुणवत्ता वाले ऑडियो / वीडियो वार्तालाप, टेक्स्ट चैट, स्थानांतरण फ़ाइलें और स्क्रीन साझा करने की अनुमति देती है। यह मैं

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

परिचय यह आलेख बताएगा कि विंडोज सर्वर 2012 पर गारस मोड सर्वर को कैसे डाउनलोड और इंस्टॉल किया जाए। यह गाइड गहराई में होने के लिए बनाया गया है।

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

एक अलग प्रणाली का उपयोग? परिचय CyberPanel बाजार पर पहला नियंत्रण पैनल है जो दोनों खुला स्रोत है और OpenLiteSpeed ​​का उपयोग करता है। क्या थी?

CentOS पर FFmpeg कैसे स्थापित करें

CentOS पर FFmpeg कैसे स्थापित करें

FFmpeg ऑडियो और वीडियो रिकॉर्ड करने, कन्वर्ट करने और स्ट्रीम करने के लिए एक लोकप्रिय ओपन सोर्स समाधान है, जो सभी प्रकार की ऑनलाइन स्ट्रीमिंग सेवाओं में व्यापक रूप से उपयोग किया जाता है। मैं

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

एलयूकेएस (लिनक्स यूनिफाइड की सेटअप) लिनक्स के लिए उपलब्ध विभिन्न डिस्क एन्क्रिप्शन प्रारूपों में से एक है जो प्लेटफॉर्म एग्नॉस्टिक है। यह ट्यूटोरियल आपको बुद्धि प्रदान करेगा

अपने Vultr VPS को कैसे एक्सेस करें

अपने Vultr VPS को कैसे एक्सेस करें

Vultr अपने VPS को कॉन्फ़िगर करने, स्थापित करने और उपयोग करने के लिए कई अलग-अलग तरीके प्रदान करता है। क्रेडेंशियल एक्सेस करें आपके VPS के लिए डिफ़ॉल्ट एक्सेस क्रेडेंशियल ar

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

अक्टूबर एक खुला स्रोत सामग्री प्रबंधन प्रणाली है जो लारवेल PHP फ्रेमवर्क पर आधारित है। एक सुरुचिपूर्ण इंटरफ़ेस और एक संक्षिप्त मॉड्यूलर वास्तुकला के साथ