نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
من الصعب الحفاظ على الأساليب التقليدية للتنمية عند استخدام نماذج التعلم الآلي المعقدة في الإنتاج. قد يكون التطوير على جهاز كمبيوتر محمول أو جهاز محلي بطيئًا لتدريب نموذج التعلم الآلي لمهندسي التعلم العميق. ونتيجة لذلك ، نستخدم عادةً الأجهزة السحابية مع أجهزة أكثر قوة لتدريب وتشغيل نماذج التعلم الآلي. هذه ممارسة جيدة نظرًا لأننا نجرد العمليات الحسابية المعقدة وبدلاً من ذلك نقدم طلبات AJAX حسب الضرورة. في هذا البرنامج التعليمي ، سوف نجعل نموذج التعلم العميق المدرب مسبقًا المسمى Word2Vec متاحًا للخدمات الأخرى من خلال إنشاء REST API من الألف إلى الياء.
sudo
المستخدميعد تضمين الكلمات تطوراً حديثاً في معالجة اللغات الطبيعية والتعلم العميق الذي أحدث ثورة في كلا المجالين بسبب التقدم السريع. يعد تضمين الكلمات متجهًا بشكل أساسي بحيث يتوافق كل منها مع كلمة واحدة بحيث تعني المتجهات الكلمات. ويمكن إثبات ذلك من خلال ظواهر معينة مثل متجه king - queen = boy - girl
. تستخدم ناقلات الكلمات لبناء كل شيء من محركات التوصيات إلى روبوتات الدردشة التي تفهم اللغة الإنجليزية بالفعل.
تضمين الكلمات ليس عشوائيًا. يتم إنشاؤها بواسطة تدريب شبكة عصبية. يأتي أحدث تطبيق قوي لتضمين الكلمات من Google يسمى Word2Vec والذي تم تدريبه من خلال التنبؤ بالكلمات التي تظهر بجوار الكلمات الأخرى في اللغة. على سبيل المثال ، بالنسبة للكلمة "cat"
، ستتنبأ الشبكة العصبية بالكلمات "kitten"
و "feline"
. يسمح لنا هذا الحدس للكلمات التي تظهر بالقرب من بعضها البعض بوضعها في مساحة النواقل.
ومع ذلك ، من الناحية العملية ، نميل إلى استخدام النماذج المدربة مسبقًا من الشركات الكبيرة الأخرى مثل Google من أجل وضع نموذج أولي وتبسيط عمليات النشر بسرعة. في هذا البرنامج التعليمي ، سنقوم بتنزيل واستخدام تضمين الكلمات Word2Vec المدرب مسبقًا من Google. يمكننا القيام بذلك عن طريق تشغيل الأمر التالي في دليل العمل الخاص بنا.
wget http://magnitude.plasticity.ai/word2vec/GoogleNews-vectors-negative300.magnitude
نموذج تضمين الكلمة الذي نزلناه .magnitude
بتنسيق. يتيح لنا هذا التنسيق الاستعلام عن النموذج بكفاءة باستخدام SQL ، وبالتالي فهو تنسيق التضمين الأمثل لخوادم الإنتاج. نظرًا لأننا بحاجة إلى أن نكون قادرين على قراءة .magnitude
التنسيق ، فسنقوم بتثبيت pymagnitude
الحزمة. سنقوم أيضًا بتثبيت flask
خدمة توقعات التعلم العميقة التي قام بها النموذج لاحقًا.
pip3 install pymagnitude flask
سنضيفه أيضًا إلى متتبع التبعية الخاص بنا باستخدام الأمر التالي. يؤدي هذا إلى إنشاء ملف مسمى requirements.txt
وحفظ مكتبات Python الخاصة بنا حتى نتمكن من إعادة تثبيتها في وقت لاحق.
pip3 freeze > requirements.txt
للبدء ، سننشئ ملفًا للتعامل مع فتح واستعلام كلمة التضمين.
touch model.py
بعد ذلك ، سنضيف الأسطر التالية model.py
لاستيراد Magnitude.
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))
نقوم بتطبيق حاسبة التشابه على النحو التالي. سيتم استدعاء هذه الطريقة من قبل Flask API في القسم التالي. لاحظ أن هذه الدالة تُرجع قيمة حقيقية بين 0 و 1.
def similarity(word1, word2):
return vectors.similarity(word1, word2)
سنقوم بإنشاء خادمنا في ملف مسمى 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
الديكور.
يمكننا تشغيل خادم Flask الخاص بنا عن طريق تشغيل الأوامر التالية لتنشيط بيئتنا الافتراضية ، وتثبيت حزمنا ، وتشغيل ملف Python المرتبط بها.
source venv/bin/activate
pip3 install -r requirements.txt
python3 service.py
سيكون خادمنا متاحًا على localhost:8000
. يمكننا الاستعلام عن قاعدة البيانات الخاصة بنا في localhost:8000/similarity?word1=cat&word2=dog
وعرض الاستجابة إما في متصفحنا أو من خلال عميل AJAX آخر.
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".
هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.
اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.
اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.
لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟
مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.
ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!
ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.
أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد