اختبار للبوتات على Twitch.tv

كما تعلمون ، هناك روبوتات على Twitch.tv. أنا لا أتحدث عن الروبوتات "السيئة" لخداع المشاهدين أو الدردشة ، ولكن عن الروبوتات التي تسمح للمُضيف بإضافة بعض الوظائف إلى الدفق أو إلى الدردشة عند البث. ومن أشهرها: Moobot و Nightbot و MirRobot. سيتم مناقشة هذا الأخير. تتم كتابة Mirrobot من قبل مواطننا ويتضمن بجدارة عدد الروبوتات الأكثر شعبية. واحدة من ميزاته ، التي هي في طلب كبير ، هي إجراء اختبار في الدردشة. 

جوهر مسابقة MirRobot: بوتيرة معينة ، يسأل البوت الجمهور سؤالاً في الدردشة. إذا لم يتمكن أحد من الإجابة بشكل صحيح في غضون فترة زمنية معينة ، يعطي البوت تلميحات تشير إلى عدد الحروف في الإجابة وتكشف عن بعض الأحرف (وفقًا لمبدأ "المشنقة" أو "مجالات المعجزات").
مثال على لعبة الاختبار:

بمجرد أن يجيب أحدهم بشكل صحيح ، أولاً ، يكون جيدًا ، وثانيًا ، يتذكر البوت أن هذا المشاهد هو الذي رد بشكل صحيح. تتوفر أيضًا قائمة بالمشاهدين الذين أعطوا الإجابات الصحيحة عن أسئلة الاختبار في الدردشة في فريق خاص. لكل قناة ، تختلف هذه القائمة.

الفكرة


ذات مرة ، عند تجربة كيفية العثور على إجابات للأسئلة التعسفية على الإنترنت ، تذكرت الاختبار على Twitch وقررت محاولة إنشاء روبوت من شأنه المشاركة في الاختبار بمفرده. كما أصبح من المثير للاهتمام بالنسبة لي معرفة ما سيحدث إذا كان نفس اللاعب في الجزء العلوي من الاختبار على قنوات مختلفة تمامًا. هل سيؤدي هذا إلى الشك في الجمهور أو المطور؟ ماذا سيكون رد الفعل؟ أو ربما قام شخص ما بالفعل برسم قبلي ، ولم يعد هناك أشخاص حقيقيون في القمة؟

تمت كتابة النسخة الأولى من البوت بين عشية وضحاها في عطلة مايو. كان البوت قادرًا على الاتصال بالقناة المطلوبة على Twitch ، وتحليل الدردشة ، والتعرف على وقت ظهور سؤال الاختبار في الدردشة ، والبحث عن الإجابة على الإنترنت.

للأسف ، لم نتمكن على الفور من العثور على خدمة عادية يمكنها الإجابة على الأسئلة التعسفية باللغة الروسية. إن Google و Yandex ليسا مناسبين لهذه الأغراض ، حيث إنهما لا يقدمان إجابة جاهزة ، ولكنهما يرتبطان بالصفحات على الإنترنت التي تحتاج إلى تحليل ضئيل على الأقل. بالنسبة لشخص ما ، فإن مثل هذا التحليل ليس مشكلة ، ولكن كيفية جعله يصنع سيارة مهمة منفصلة. من الناحية المثالية ، كنت أبحث عن شيء مشابه لـ Wolfram Alpha ، ولكن مع دعم اللغة الروسية. بالمناسبة ، إذا كان أي شخص في ذهنه ، مثل هذه الخدمة المفتوحة - اكتب في التعليقات.

التنفيذ


بالنسبة للاختبار على Twitch ، اتضح أنه كافٍ للبحث عن إجابات على أحد المواقع العديدة المخصصة للكلمات المتقاطعة ، وكلمات المسح وغيرها من الألعاب المشابهة. من حيث المبدأ ، بعد أن جربت العديد من المواقع المماثلة ، اخترت الموقع الذي ظهر فيه أبسط تنسيق لصفحة نتائج البحث. بالنظر إلى المستقبل ، سأقول أنه اتضح أن القاعدة الرئيسية لـ MirRobot تتكون من مجرد "أسئلة من الكلمات المتقاطعة". اتضح أن كفاءة الخوارزمية في الأسئلة التعليمية العامة عالية جدًا (70٪) ، وبعد كتابة هذا البوت الوظيفي في البداية ، لم يكن علينا العودة إليها بعد الآن.

بعد سلسلة من التحسينات ، تمكن البوت من: 
  • لعب الاختبار بنجاح في وقت واحد في العديد من قنوات الدردشة.
  • اعثر بشكل مستقل على قنوات جديدة تم تشغيل MirRobot عليها وكان هناك عدد قليل من المشاهدين.
  • حافظ على قاعدة بياناتك للإجابات الصحيحة على الأسئلة حتى لا تعتمد على فعالية البحث على الشبكة وتكون قادرة على الإجابة عن أسئلة محددة حول ألعاب الكمبيوتر.
  • احتفظ بسجل لأعلى المشاركين في الاختبار على القنوات وأخذ في الاعتبار وضعهم في الأعلى لاتخاذ قرار بشأن الإجابة ؛
  • إعادة الاتصال في حالة انقطاع الاتصال بالإنترنت.
  • تحقق من مراسلات إجابتك المتوقعة والمطالبات في الاختبار.
  • اعمل بشكل مستقل تمامًا: استضف في سحابة PaaS ، أرسل التحليلات الضرورية إلى الويب لرصد وصيانة قاعدة البيانات في DBaaS.
  • محاكاة الدردشة مع ذكر شخصي (تم تنفيذ هذه الوظيفة في وقت لاحق).
  • محاكاة سرعة وطريقة استجابة الشخص.

ما لم ينجح أو لم ينفذ لأسباب مختلفة:
  • لم يتم تنفيذ اكتشاف ما إذا كان البوت محظورًا في الدردشة على القناة أم لا.
  • كان هناك نوعان من الحشرات المزعجة التي لم أستطع إصلاحها. في حالة اكتشافهم ، يتم إعادة تشغيل البوت ببساطة.


التقنيات المستخدمة:
  • Python 3 (حوالي 1000 سطر من التعليمات البرمجية).
  • IRC (دردشة Twitch هي في الواقع دردشة IRC).
  • نادلة / قارورة لواجهة الويب.
  • MongoDB (mlab.com).
  • PaaS IBM Bluemix.

ونتيجة لذلك ، تم تحقيق الاستقلال الكامل للبوت. تم تحقيق تحد عالمي. آخر شهرين عمل البوت بشكل مستقل.

بوت مقابل الإنسان



كانت القدرة على عدم التميّز هي الأكثر أهمية للعملية الناجحة للبوت. كان من السهل تعليم البوت للإجابة على الأسئلة. بناءً على قدراته التقنية ، يستطيع الروبوت في معظم الحالات الإجابة على سؤال الاختبار في الثانية الأولى ، ولكن هذا يثير الشك على الفور: ليس الشخص هو الذي يكتب الإجابة ، وليس لديه حتى الوقت لقراءة السؤال بأكمله خلال هذا الوقت. ميزة أخرى هي أن الشخص لا يستجيب بسرعة متساوية للأسئلة المختلفة: للأسئلة البسيطة - بسرعة ، للأسئلة المعقدة ليس بالقدر نفسه. لذلك ، إذا وضعت ببساطة بعض التأخير الكبير في الإجابة ، فقد اتضح أن المشاركين المباشرين سوف "ينقرون" على أسئلة بسيطة ، وسيجيب البوت ببراعة على جميع الأسئلة المعقدة. مثل هذا "الباحث" ، الذي يعطي الإجابات الصحيحة لأسئلة متخصصة مختلفة تمامًا ، سيجذب الانتباه على الفور إلى نفسك.لم أبدأ في تنفيذ تقييم "مدى تعقيد" السؤال.

في لقطة الشاشة في مجموعة أحد اللافتات ، هم ساخطون على أولئك الذين يبحثون عن إجابات للاختبار على Google:

ونتيجة لذلك ، حتى لا نبرز بين المشاهدين العاديين ، كان علينا تقليل احتمالية استجابة الروبوت بشكل صحيح: 
  • أدخل قاعدة لإعطاء إجابات في ما لا يزيد عن 30-40٪ من الحالات.
  • قم بزيادة التأخير قبل محاولة الإجابة (قيمة عشوائية).
  • في بعض الحالات ، قدم الإجابات الصحيحة ، على الرغم من حقيقة أن شخصًا ما أعطى الإجابة الصحيحة ، مما يخلق الوهم بأن الشخص يكتب إلى الدردشة.

نتيجة هذه "التحسينات" (من الغريب أن نطلق على "التحسين" انخفاضًا في الكفاءة) هو أنه في إحدى القنوات الشائعة جدًا التي تضم عدة آلاف من المشاهدين المباشرين وأسئلة الاختبار مع تكرار 1-2 دقيقة ، فاز البوت في المتوسط ​​5-7 مرات في الاختبار في الساعة. بالنسبة للقنوات التي كان فيها نشاط المشاهدين المباشرين منخفضًا ، سعى احتمال ربوت الفوز ببساطة إلى الاحتمال الأساسي للاستجابة (20-30٪).

في الوقت نفسه ، سمح هذا التقليل من كفاءة البوت بقليل من "الضمير الواضح". اتضح أن البوت لا يجيب كثيرًا وبشكل أساسي في الحالات التي لم يكن فيها أحد من بين الجمهور يعرف الإجابة الصحيحة. يمكننا القول أن البوت يتنافس مع "موظفي Google" ، أي مع أولئك الذين لم يعرفوا الجواب على الفور ، حاولوا العثور عليه على الإنترنت ، أو يمكنهم التخمين فقط بعد بعض النصائح.
بالطبع ، بهذه الكفاءة ، لا يمكن للبوت أن يتنافس على مسافة قصيرة مع المشاركين المباشرين في الاختبار ، والذي يمكن أن يعطي بسهولة الإجابة الصحيحة قبل البوت. بالنظر إلى إحصائيات البوت في المستقبل على خلفية التغيير في القمة ، كان من الواضح بوضوح أن اللاعب المباشر النشط لفترة زمنية محدودة يعطي إجابات صحيحة أكثر من البوت. في بعض الأحيان ، على القناة النشطة للغاية ، قد لا يُسمح للبوت بإعطاء الإجابة الصحيحة لمدة ساعة ونصف إلى ساعتين. تبين أن هذه الحالة مقبولة: لم يعط البوت العديد من الإجابات الصحيحة ، ولم يزعج أي شخص في الدردشة بمشاركته ولم يثير الشك ، ولكنه انتقل بثبات إلى الاختبار العلوي ، لأنه على عكس الشخص ، لم يرتاح ، ولم ينام ، ولم متعب ، وشارك بشكل مطرد في كل تيار.

في مرحلة ما ، قمت "بلف" محرك دردشة الروبوت إلى الروبوت حتى يتمكن من الرد على الرسائل الخاصة ومحاولة تقليد شخص بالكامل. أظهر المحرك ، من خلال المقالات على الإنترنت ، نفسه جيدًا في اختبارات تورينج. بالطبع ، يحتوي Twitch على خصوصياته الخاصة للدردشة: على سبيل المثال ، تحتاج إلى تصفية الرسائل من الرموز التعبيرية وحدها. ولكن في كثير من الأحيان كان من الممكن الحفاظ على الوهم ، وأحيانًا تبين أن الحوارات كانت مضحكة للغاية. كان محرجًا بعض الشيء أنه في بعض الأحيان قام البوت بتجربة المحاور وقدم نفسه كفتاة تبلغ من العمر 10 سنوات ، ولكن بشكل عام تم حل مشكلة الاتصال.

هل لاحظت البوت؟


حقيقة أن البوت كان في القمة في نفس الوقت ما يقرب من 50 قناة ، لم يلاحظ أحد. هنا ، في رأيي ، التفتت الكبير لمجموعات الجمهور ، بالإضافة إلى حقيقة أنه من بين حوالي 2000 قناة حيث يتم استخدام MirRobot ، تم تضمين الاختبار في بضع مئات فقط. إذا تحدثنا عن القنوات التي كان هناك اختبار فيها ، وحيث كان هناك على الأقل بضع عشرات من الأشخاص في الدردشة ، كان هناك ~ 160 قناة تقريبًا ، وكان معظمها إما تيارات نادرة غير منتظمة أو قنوات بها أقل من 50 مشاهدًا (تم استبعادها على وجه التحديد ) ، أو القنوات التي جربوا فيها اختبارًا لفترة وجيزة فقط. كان هناك حرفيا قناتان نشطتان مع قمة "كبيرة" ، والتي لا يمكن الدخول إليها ، وتم إيقاف الاختبار عليها بالفعل لفترة طويلة ، لكن القمة القديمة بقيت.
يوضح الرسم البياني أدناه أن البوت دخل بثبات إلى قمة القنوات المختلفة:

من ناحية أخرى ، لوحظ البوت على القنوات التي يوجد بها نشاط قليل جدًا في الدردشة. وشمل ذلك كلا القناتين حيث يوجد عدد قليل من المشاهدين ، والقنوات التي انتهى بها المشاهدون مع عدد قليل من الأشخاص "الحيين". على عدة قنوات ، تم إرسال البوت إلى الحظر. ما خانه ، كما فهمته ، كان:
  • لم يرد على المكالمات التعسفية إليه في الرسائل الخاصة وفي الدردشة العامة. باستخدام محرك روبوت الدردشة قمت بتطبيقه بعد وقت طويل من بداية المشروع.
  • على مدار الساعة - على مدار الساعة كان موجودًا وتم الرد عليه بشكل دوري في محادثة.

ماذا عن الآخرين؟


كثير من الناس يبحثون فقط عن إجابات على Google. إنهم لا يحبون هؤلاء الأشخاص في الدردشة ، بل ويقاتلونهم بنشاط.

لذا ، في مرحلة ما ، بدأ مؤلف البوت في استبدال بعض حروف السؤال بأحرف إنجليزية متشابهة المظهر ، مما أدى إلى تعقيد عملية البحث. لا تعرف Google والمواقع التي تحتوي على قواعد بيانات أسئلة كيفية التعامل مع مثل هذه الهراء. تتعامل Yandex مع هذه الطلبات ، مما يترك Google على الأقل بعض الفرص. أما بالنسبة للبوت ، فلم يكن تحديث خوارزمية التحليل أمرًا مهمًا.

إنه مثل مواجهة أبدية بين الدرع والسيف. يمكنك الحصول على ميزة فقط في فترة زمنية قصيرة.

والمثير للدهشة ، اتضح أن هناك روبوتات أخرى أو نصوص تلقائية للعب الاختبار! مرة واحدة على الأقل ، رأيت في محادثة أن شخصًا من حساب جديد تمامًا رد على الاختبار حرفيًا خلال ثانية واحدة بعد ظهور السؤال.

كان هناك أولئك الذين لا يمكن تحديدهم دون قيد أو شرط كبرنامج بوت أو نص. ومع ذلك ، فيما يتعلق بالعديد من الألقاب ، بناءً على عدة عوامل ، كنت متأكدًا بنسبة 90 ٪ من استخدام نوع من الأتمتة. في ما يلي مثال على سجل جميع الرسائل من مشارك مريب في قناة واحدة لمدة 6 ساعات:

ما يمكن ملاحظته بواسطة هذا السجل:
  • جميع المنشورات قصيرة جدا وغير ذات صلة. هذه محاولة لإعطاء إجابات لهذا الاختبار. بالإضافة إلى محاولة الإجابة في الدردشة لعدة ساعات ، لم يكن هناك أي شيء من هذا المشارك. أي أن الشخص لم يعد يكتب أي شيء للدردشة.
  • جميع الرسائل مكتوبة بحروف كبيرة ولا توجد أخطاء إملائية.
  • , . (, ) .
  • 3–5 , 1–1,5 . , - , .

السجل المعطى غير عادي للغاية بالنسبة لشخص حي. كل شيء يتفاقم من حقيقة أنه لم يتم ملاحظة مثل هذا السلوك لهذا المشارك ليس فقط في ليلة واحدة ، ولكن لمدة 7 أيام متتالية. بالإضافة إلى ذلك ، تم تسجيل هذه الدراسة مؤخرًا - في أوائل سبتمبر ، ربما فقط من أجل إجراء اختبار.

حتى أنني حاولت التحدث معهم بشكل شخصي حول هذا الموضوع ، ولكن لم يتم إجراء حوار واضح. سواء كان هؤلاء الأشخاص يستخدمون روبوتًا ، أو نوعًا ما من المساعدة الآلية جزئيًا ، أو يجلسون فقط في التدفقات طوال الليل للعب اختبار - مع احتمال 100 ٪ من المستحيل تحديده. هذا السؤال لا يزال مفتوحا.

هل كانت هناك فائدة؟


كان من الممكن الحصول على شيء ، ولكن لا ، لم يكن هناك فائدة. بادئ ذي بدء ، لم يكن جوهر التجربة هو الحصول على أي جوائز. ثانياً ، الجوائز لم تكن تستحق العناء.

على سبيل المثال ، في إحدى القنوات ، تُقام مسابقة أسبوعية يحصل فيها كبار المجيبين على الميدالية الذهبية في عالم الدبابات. كما اتضح ، فإن البوت ينفجر بثبات في القمة ويمكنه الحصول على جوائز. اتضح لاحقًا ببساطة عن طريق البحث عن اللقب المستخدم في محرك البحث ، والذي أشار إلى المشاركات في المجتمع المقابل.

بعض الإحصائيات


  • وقت العمل: 4 شهور
  • تم تقديم الإجابات الصحيحة: ~ 8 آلاف (في المتوسط ​​60-70 في اليوم)
  • جمعت في قاعدة بياناتنا الخاصة للأسئلة والأجوبة: ~ 83 ألف (إجمالي الأسئلة في الاختبار 110 ألف)
  • تقع في أعلى ~ 50 قناة (من 160 مع مسابقة)
  • محظور في 3 قنوات على الأقل



الخلاصة والاستنتاجات


هل كانت مثيرة للاهتمام؟ - نعم. كان الوحي هو أن شخصًا ما قام أيضًا بأتمتة لعبة الاختبار.

هل كان هذا مفيدًا؟ - نعم ولكن فقط كتطور للتكنولوجيا وخلق شيء جديد.

ملاحظة. حتى الآن ، يستمر البوت في العمل في الوضع التلقائي. نفترض أن التجربة لم تصل بعد إلى مرحلتها النهائية. لذا ، إذا كنت تقاتل في الاختبار الفكري ، وتجهد التلفيف ، فتأكد من أنك لا تتعارض مع نص ذكي.

Source: https://habr.com/ru/post/ar397521/


All Articles