يسعدنا أن نقدم لك تطويرنا - روبوت دردشة باللغة الروسية لـ Discord يعتمد على بنية Transformer .
تم تدريب الشبكة العصبية على أكثر من 36 مليون رسالة متاحة للعامة من خوادم Discord الأكثر شهرة باللغة الروسية خلال فترة واحدة (5 أيام على GTX 1080 ) . استند التدريب على المبدأ: ما هي الرسالة التي من المرجح أن يتم إرسالها بعد الرسائل العشر السابقة على مستوى تضمينات الأشكال الثلاثية للأحرف .
لا يستخدم هذا الروبوت قاعدة بيانات جاهزة للرسائل، ولكنه ينشئ رسائل فريدة جديدة، ويطبق مفهوم seq2seq على بنية Transformer . تم أخذ أساس الشبكة من هذا البرنامج التعليمي TensorFlow 2 .
كان هذا النموذج مناسبًا في عام 2019، لكنه أصبح قديمًا بسرعة كبيرة. يمكنك العثور على شيء أفضل وأكثر حداثة من خلال المتابعة هنا.
دعنا نذهب!
تم اختباره على وحدة المعالجة المركزية 2 × 2.6 جيجا هرتز + 4 جيجا بايت من ذاكرة الوصول العشوائي .
Install launcher for all users (recommended)
Add Python 3.8 to PATH
scipy
Git Bash Here
git clone https://github.com/sergree/DolboNet
cd DolboNet
pip install -r requirements.txt
في النافذة التي تظهرconfig.py
، وإدراج رمز الروبوت المميز في token = "..."
python bot.py
سيعمل الروبوت فقط على نظامي التشغيل Windows 64 بت و Python .
تم اختباره على وحدة المعالجة المركزية 2 × 2.6 جيجا هرتز + 2 جيجا بايت من ذاكرة الوصول العشوائي .
git clone https://github.com/sergree/DolboNet
cd DolboNet
pip3
مثبتًا بالفعل، فقم بتثبيته: sudo apt install python3-pip
pip3 install -r requirements.txt
nano config.py
، وإدراج رمز الروبوت في token = "..."
python3 bot.py
إذا كان الجهاز يحتوي على بطاقة فيديو NVIDIA ، فيمكنك تشغيل الروبوت باستخدام CUDA ، مما سيزيد من سرعته.
tensorflow
إذا كنت قد قمت بالفعل بتثبيت التبعيات: pip uninstall tensorflow
pip install tensorflow-gpu>=2.3.1
أو pip install -r requirements_gpu.txt
في ملف config.py
، يمكنك تعديل بعض المعلمات لتغيير طبيعة الروبوت وسلوكه:
temperature
- درجة حرارة أخذ العينات - تنظم طبيعة النص الناتج وتنوعهمعنى | وصف |
---|---|
0.01 | أنا أعرف فقط كلمة مرحبا |
0.3 | كرر الببغاء |
0.65 | تقصير |
1.3 | شاعر سكران |
3 | نام على لوحة المفاتيح |
لسهولة التجربة، يوجد أمر !temp значение
يمكن إرساله إلى Discord لتحرير هذه القيمة بسرعة . يعمل الأمر فقط مع المستخدمين الذين يتمتعون بامتيازات المسؤول .
mention_prob
- احتمالية استجابة الروبوت للرسالة التي تم ذكره فيها. يمكن أن تأخذ القيم من 0
إلى 1
. الافتراضي: 1
، أي. 100%no_mention_prob
- احتمالية استجابة الروبوت لرسالة لم يتم ذكرها فيها. يمكن أن تأخذ القيم من 0
إلى 1
. الافتراضي: 0.2
، أي. 20%command_temperature_change
- أمر لتغيير درجة الحرارة إذا لم تعجبك !temp значение
؟use_delay
- محاكاة سرعة الكتابة البشرية على لوحة المفاتيح، False
افتراضيًا، لأنه على وحدة المعالجة المركزية، عملية الإنشاء ليست بالسرعة الكافيةdiscord_game_name
- حالة الروبوت في Discordمن الأفضل عدم تعديل المعلمات المتبقية.
☕ إذا كنت مهتمًا بتطوير المشروع، يمكنك أن تشتري لي قهوة. ☕
شكرًا لك!
لدي نصف خادم من هؤلاء البلهاء، لماذا أحتاج إلى واحد آخر؟
ولكن على محمل الجد، هناك سبب واحد فقط.
هل تستضيف هذا الروبوت؟ هل يمكنني الحصول على النسخة العامة؟ أعطني رابطا!
وصلة. لا يكون الروبوت متاحًا دائمًا ويستجيب أحيانًا ببطء. نحن لا نستضيف نسخة عامة من الروبوت. لكي يظهر على خادم Discord الخاص بك، يجب تثبيته.
ما هي الخوادم التي تحتوي على هذا الروبوت بالفعل؟
نحن نعلم أن الروبوت مستضاف هنا بالفعل:
اكتب لنا لتكون في هذه القائمة.
إنه في الأساس يرسل هراء غير متماسك. ؟
نعم، هناك شيء من هذا القبيل. لكن في بعض الأحيان يبدو الأمر مضحكا.
هذا هراء عديم الفائدة، هل تفهمين؟
بالتأكيد. مثل العديد من الأشياء الأخرى في عالمنا الحديث.
أرسل لي الروبوت إهانة أو تهديدًا! الفوضى! ؟
تعكس الشبكة العصبية للروبوت فقط البيانات العامة التي تم التدريب عليها. ربما تكون هذه دعوة للاستيقاظ بشأن ما أصبح عليه مجتمعنا. لم نرغب في ذلك على أي حال.
ماذا عن اللغة الإنجليزية؟
في هذه المرحلة، قررنا عدم إهدار سعة الشبكة على الحروف اللاتينية. تتم ترجمة اللاتينية تلقائيًا إلى السيريلية باستخدام opendatakosovo/الترجمة الحرفية السيريلية . لقد اختبرنا العديد من المكتبات المشابهة، وهذه هي الأسرع.
لماذا الترايجرام؟
لأنه عظيم وقوي. الفكرة بالطبع ليست فكرتنا، ولكنها مأخوذة من هذا الكتاب.
ربما سيكون من الأفضل استخدام الجذعية؟
ليس في هذه الحالة. نظرًا لأن الأشخاص في الدردشات يتحدثون مع الأخطاء وأحيانًا مع Ashebs. في بعض الأحيان Translitom، ile fse vmesti. ؟
يعد الفرز عبر ويكيبيديا أو خلاصات الأخبار أمرًا آخر.
هل يمكنه إرسال الرموز التعبيرية أيضًا؟
نعم. مجرد عشوائية في الوقت الراهن. يتم تعيين رمز مميز واحد لجميع الرموز التعبيرية المخصصة في القاموس. وفي المستقبل، هناك خطط لربط CNN بمصنف.
لقد قمت للتو بنسخ دليل TensorFlow 2 ، ماذا فعلت بنفسك؟
ماذا عن LSTM ؟
سنتركها هنا فحسب.
ما هي الخطوة التالية؟
؟