
الآن في الصحافة ، غالبًا ما توجد أخبار مثل "منظمة العفو الدولية تعلمت الكتابة بأسلوب المؤلف X" أو "ML تخلق الفن". بالنظر إلى هذا ، قررنا - سيكون من الرائع التحقق من هذه البيانات رفيعة المستوى عمليًا.
هل من الممكن ترتيب معركة بين البوتات لكتابة القصائد؟ هل يمكن توضيح قصة تنافسية واستنساخها من هذا؟ الآن يمكننا القول على وجه اليقين أن هذا ممكن. وكيف تكتب أول خوارزمية لتوليد القصائد ، تابع القراءة.
1. AI كلاسيكي
مهمة المشاركين
وفقًا لشروط المسابقة ، يحتاج المشاركون إلى بناء نموذج يولد قصائد حول موضوع معين بأسلوب أحد الكلاسيكيات الروسية. يتم عرض الموضوع والمؤلف مع نماذج من المدخلات ، ومن المتوقع قصيدة في الإخراج. الوصف الكامل موجود في
مستودع المسابقة.
الشروط لينة مع الموضوع: يمكن أن تكون جملة قصيرة أو عبارة أو بضع كلمات. القيد الوحيد على الحجم: لا يزيد عن 1000 حرف. سيتم تجميع الموضوعات التي سيتم اختبار الخوارزميات عليها من قبل خبراء. ستكون بعض المواضيع مفتوحة وعامة ، ولكن سيتم استخدام مجموعة خفية من المواضيع لتحديد أفضل خوارزمية.
الفكرة العالمية للمنافسة هي: يمكن تجميع تعليق قصير من عدة كلمات لأي قصيدة. دعنا نظهر مثال.
إذا أخذت مقتطفًا من
"Eugene Onegin" A.S. بوشكين :
"... في ذلك العام ، طقس الخريف
وقفت لفترة طويلة في الفناء
كان الشتاء ينتظر ، كانت الطبيعة تنتظر.
سقط الثلج فقط في يناير
في الليلة الثالثة. الاستيقاظ مبكرًا
رأى تاتيانا من خلال النافذة
في الصباح الفناء المبيض
الستائر والأسقف والأسوار ،
أنماط خفيفة على الزجاج
أشجار من الفضة الشتوية
أربعون متعة في الفناء
وتنتشر الجبال بهدوء
الشتاء مع سجادة رائعة.
كل شيء مشرق ، كل شيء أبيض في كل مكان ... "1823-1830
هذا ملخص موجز يمكن أن يكون مناسبًا في "تاتيانا ترى أول تساقط للثلوج من خلال النافذة". ثم النموذج الشعري المثالي لهذا المدخل سينتج شيئًا قريبًا جدًا من الأصل.
للتدريب في هذه المسابقة ، تم اقتراح
مجموعة بيانات تضم أكثر من 3000 عمل لخمسة شعراء روسيين مشهورين:
1. بوشكين
2. يسنين
3. ماياكوفسكي
4. بلوك
5. Tyutchev
يجب كتابة الخوارزمية بحيث يتم إنشاؤها بسرعة كافية ولديها الواجهة اللازمة. من حيث السرعة ، يمكنك مساواة قوة أجهزة الكمبيوتر الحديثة متوسطة الحجم. يتم وصف الواجهة والقيود بالتفصيل في قسم "تنسيق الحل".
من أجل أن تكون قادرًا على تتبع تقدم قراراتهم ، ومقارنتها بقرارات المشاركين الأخرى ، سيتم ترميز القرارات من خلال روبوت الدردشة طوال فترة المسابقة. سيتم تقييم نتائج الخوارزميات وفقًا لمعيارين:
- جودة التوضيح وأسلوب الشاعر الكلاسيكي المعطى
- اكتمال الكشف عن موضوع معين في قصيدة
سيتم توفير مقياس مكون من 5 نقاط لكل معيار. سيتعين على الخوارزمية تكوين آيات لكل موضوع من مجموعة الاختبار. سيتم تجميع الموضوعات التي سيتم اختبار الخوارزميات عليها من قبل خبراء. ستكون بعض المواضيع مفتوحة ويمكن الوصول إليها ، ولكن سيتم استخدام مجموعة خفية من المواضيع لتحديد أفضل خوارزمية.
يمكن رفض القصيدة التي تم الحصول عليها نتيجة الخوارزمية للأسباب التالية:
- النص الذي تم إنشاؤه ليس قصيدة باللغة الروسية
- يحتوي النص الذي تم إنشاؤه على لغة بذيئة
- يحتوي النص الذي تم إنشاؤه على عبارات مسيئة أو نص فرعي متعمد
برنامج المنافسة
على عكس الكثيرين ، توجد في هذه المسابقة مرحلة واحدة فقط عبر الإنترنت: من 30.07 إلى 26.08.
خلال هذه الفترة ، يمكنك إرسال الحلول يوميًا مع القيود التالية:
- لا يزيد عن 200 قرار خلال المسابقة
- لا يزيد عن قرارين ناجحين في اليوم
- لا تحسب في الحد اليومي للقرارات التي فشل التحقق منها
يتطابق صندوق الجائزة مع تعقيد المهمة: ستحصل الأماكن الثلاثة الأولى على مليون روبل!
2. طرق إنشاء مولدات شعرية
كما أصبح واضحًا بالفعل ، فإن المهمة غير تافهة ، ولكنها ليست جديدة. دعنا نحاول معرفة كيف تعامل الباحثون مع هذه المشكلة من قبل؟ دعونا نلقي نظرة على الأساليب الأكثر إثارة للاهتمام لإنشاء مولدات الشعر في السنوات الثلاثين الماضية.
1989نشرت مجلة
Scientific American N08 ، 1989 مقالة بقلم إيه كيه. ديودني "الكمبيوتر يحاول يده في النثر والشعر". لن نعيد بيع المقالة ، هناك رابط للنص الكامل ، نريد فقط أن نلفت انتباهك إلى وصف POETRY GENERATOR من Rosemary West.
هذا المولد كان آلي بالكامل. يعتمد هذا النهج على قاموس كبير ، يتم اختيار العبارات منه بشكل عشوائي ، وتتشكل العبارات منها وفقًا لمجموعة من القواعد النحوية. ينقسم كل سطر إلى أجزاء من الجملة ، ثم يتم استبداله عشوائيًا بكلمات أخرى.
1996منذ أكثر من 20 عامًا ، دافع أحد خريجي إحدى الجامعات الشهيرة في موسكو عن دبلوم حول موضوع "النمذجة اللغوية والذكاء الاصطناعي": المؤلف -
ليونيد كاجانوف . هنا
رابط النص الكامل.
"النمذجة اللغوية والذكاء الاصطناعي" - يبدو هذا
اسم موضوعي. "برنامج يؤلف الشعر" - هكذا أجب
أسئلة من الأصدقاء. "ولكن هل لديك بالفعل مثل هذه البرامج؟" - يقولون لي. أجيب: "نعم" ، لكن يختلف عني لأنه لا يستخدم النماذج الأصلية. "
(ج) كاجانوف ل.
بحلول عام 1996 ، مولدات مثل:
- BRED.COM إنشاء عبارة علمية زائفة
- يوفر TREPLO.EXE نصًا أدبيًا ممتعًا
- POET.EXE تأليف الآيات بإيقاع معين
- DUEL.EXE
"على سبيل المثال ، يحتوي POET.EXE على قاموس للكلمات تحتوي على علامات وبعض المعلومات الأخرى المتعلقة بها ، كما يضبط الإيقاع ويشير إلى الخطوط التي يجب أن تتغنى بها (على سبيل المثال ، 1 و 4). وجميع هذه البرامج لها خاصية واحدة مشتركة - فهي تستخدم قوالب وقواميس معدة مسبقًا. "
كمزايا رئيسية ، يمكننا تسليط الضوء على حقيقة أن البرنامج:
- يستخدم الخبرة النقابية
- ينفذ القافية بشكل مستقل
- لديه إمكانية تكوين موضوعي
- يسمح لك بتعيين أي إيقاع من الآية
يمكن العثور على الخوارزمية والرمز هنا. 2016العلماء الصينيون يولدون قصائد بلغتهم. لديهم
مستودع مباشر للمشروع قد يكون مفيدًا في المنافسة الحالية.
إذا كان لفترة وجيزة للغاية ، فإنه يعمل على هذا
النحو (
رابط لمصدر الصورة ):
أيضا في عام 2016 ، قدمت مجموعة أخرى تطورها
حافظ (مستودع
هنا ).
يقوم هذا المولد "بتكوين" آيات حول موضوع معين باستخدام:
- قاموس معلمة
- كلمات ذات صلة
- قافية الكلمات من مجموعة من الكلمات حول موضوع
- متقبل الدولة المحدودة (FSA)
- اختيار أفضل طريقة من خلال FSA باستخدام RNN
خوارزمية (
رابط لمصدر الصورة ):
لقد قاموا بتدريس الخوارزمية ليس فقط باللغة الإنجليزية ، ولكن أيضًا باللغة الإسبانية. يعدون بأن كل شيء يجب أن يعمل في كل مكان تقريبًا. البيان مرتفع للغاية ، لذا نوصي بأن تكون حذرًا.
3. برمجة شاعر اصطناعي
مثال على مولد شعري بسيط
قد تبدو المنافسة من ناحية معقدة للغاية ، ولكن بالنسبة له من الممكن جدًا إنشاء
خط أساسي بسيط ولكنه
فعال .
وفقًا للحالة ، يدخل معرّف المؤلف (author_id) ونص الموضوع (البذور) إدخال هذا البرنامج ، ردًا على هذا النموذج ، يجب أن يُرجع النموذج القصيدة.
دعونا نحاول إضفاء الطابع الرسمي على الموضوع بحيث يمكن تشغيله بأمان داخل مساحة دلالية متجهية معينة. أسهل طريقة للخروج من هذا هي الحصول على المتجه الدلالي لكل كلمة (على سبيل المثال ، Word2Vec) ثم المتوسط لها.
وبالتالي ، نحصل على نوع من "seed2vec" ، والذي يسمح لنا بترجمة السمة إلى متجه.
في الواقع ، يفتح هذا موضوعًا واسعًا للبحث ، مثل تواجه مشكلة عزل الموضوع العلماء لفترة طويلة ، فيما يلي بعض الأمثلة:
-
تسليط الضوء على المواضيع من خلال LDA-
lda2vec-
أرسل 2 vec-
أسلحة الدمار الشاملالآن ، تحتاج إلى فهم كيفية استخدام author_id لإنشاء قصيدة بالضبط في أسلوب هذا المؤلف.
الفكرة هنا ليست أقل بساطة: لنأخذ قصيدة المؤلف العشوائية من جسم القصائد ، وبعد ذلك سنستبدل كل كلمة بأخرى تتوافق مع الأصل (تحتوي على نفس عدد المقاطع ونفس الضغط والحروف الثلاثة الأخيرة متشابهة قدر الإمكان مع الأصل في مسافة Levenshtein) و لديها ناقلات أكثر مماثلة لمتجه السمة. على سبيل المثال ، بالنسبة لموضوع "كرة القدم" وخط "وتوهج مثل العنبر" ، يمكن أن يكون خط الإخراج "ويلعب مثل حارس المرمى". وبالتالي ، نحصل على نوع من نمط النص.
كقاعدة لكلمات الاستبدال ، تم استخدام مجموعة بيانات ، والتي تحتوي على فقرات صغيرة من النصوص من ويكيبيديا (يمكن العثور على وصف لاستخدامها في التعليمات البرمجية الأساسية على GitHub).
بعد هذه المعالجة ، سيتم الحصول على النصوص التي ستبدو مثل الشعر من قبل المؤلف ، ولكن في نفس الوقت تحتوي على موضوع لم يضعه المؤلف.
نتيجة خط الأساس:
الموضوع: الفيزياء
نمط: بلوك
وحدات الرصاص والبزموت
جاموس وسائل الإعلام القديمة غير الخطية
أنا على لوح جسيمات كلفن
ظواهرك العلمية بعد
صرصور إشبيلية فاراداي
الآن اختراعه تفير
جاذبية صوتية متوسطة
دخان مدرسة شبح البوزيترون
الموضوع: الرياضيات
نمط: بلوك
مثل كوب من المختبرات بين الأفكار
منحني وتعلم المدرسة
لكن قطيع قطيع في دراسة الإبداع
منحنى لأمثلة الدماغ للأطفال
السباح يعرف المنحنيات
وسوف يمر اللوح وستذهب المحكمة إلى مجلس الشيوخ
من ابنة روت ، أقدم جوبا
و Surya المهددة بالانقراض
يدرس السباح كل الظل فوق الإقليدية
تم نشر العنوان والحصص
إتقانها مع العمل
نكتة استاذة تعليمية
من الواضح أن الخط الأساسي ليس مثاليًا ، وبالتالي فهو الخط الأساسي.
يمكنك بسهولة إضافة بعض الميزات التي ستساعد على تحسين الجيل بشكل جيد وترقيتك إلى القمة:
- تحتاج إلى إزالة الكلمات المكررة ، لأن قافية كلمة في حد ذاتها ليست جيدة لشاعر جيد
- الآن الكلمات لا تتوافق بأي شكل من الأشكال مع بعضها البعض ، لأن نحن لا نستخدم معلومات حول أجزاء الكلام وحالات الكلمات
- يمكنك استخدام مجموعة أغنى من الكلمات ، على سبيل المثال ، تفريغ ويكيبيديا
- يمكن أن يؤدي استخدام التضمينات الأخرى أيضًا إلى تحسين ، على سبيل المثال ، لا يعمل FastText على مستوى الكلمات ، ولكن على مستوى n-grams ، مما يسمح لها بالتضمين لكلمات غير معروفة
- استخدم جيش الدفاع كوزن عند وزن الكلمات لحساب متجه الموضوع
هنا يمكنك إضافة المزيد من النقاط حسب تقديرك.
تحضير حل للإرسال
بعد تدريب النموذج ، من الضروري إرسال رمز الخوارزمية المعبأ في أرشيف ZIP إلى نظام الاختبار.
يتم تشغيل الحلول في بيئة معزولة باستخدام Docker ، والوقت والموارد للاختبار محدودة. يجب أن يلبي الحل المتطلبات الفنية التالية:
يجب أن يكون في شكل خادم HTTP متاح على المنفذ 8000 ، والذي يستجيب لنوعين من الطلبات:
GET /ready
يجب الرد على الطلب برمز 200 OK إذا كان الحل جاهزًا للاستخدام. أي رمز آخر يعني أن الحل ليس جاهزًا بعد. لدى الخوارزمية وقت محدود للتحضير للعمل ، حيث يمكنك قراءة البيانات من القرص ، وإنشاء هياكل البيانات اللازمة في ذاكرة الوصول العشوائي.
POST /generate/<poet_id>
طلب توليد قصيدة. يتم تحديد معرف الشاعر الذي يلزم تأليفه في عنوان URL في عنوان URL. محتوى الطلب هو JSON مع حقل بذرة واحد يحتوي على موضوع المقالة:
{"seed": " "}
كإجابة ، يجب عليك إعطاء JSON مع التكوين الناتج في مجال القصيدة في الوقت المخصص:
{"poem": " \n \n..."}
يجب أن يكون للطلب والرد نوع المحتوى: application / json. يوصى بترميز UTF-8.
تبدأ الحاوية مع المحلول في الظروف التالية:- الموارد المتاحة للحل:
- 16 جيجا بايت من ذاكرة الوصول العشوائي
- 4 vCPU
- GPU Nvidia K80
- الحل ليس لديه إمكانية الوصول إلى موارد الإنترنت
- هناك حل في الدليل / data / يحتوي على مجموعات بيانات مشتركة
- وقت الاستعداد للعمل: 120 ثانية (وبعد ذلك من الضروري الإجابة 200 مع / طلب جاهز)
- الوقت لكل طلب / توليد /: 5 ثوان
- يجب أن يقبل الحل طلبات HTTP من الأجهزة الخارجية (ليس فقط localhost / 127.0.0.1)
- أثناء الاختبار ، يتم إجراء الطلبات بالتتابع (لا يزيد عن طلب واحد في المرة الواحدة)
- الحجم الأقصى للأرشيف المعبأ والمعبأ بمحلول: 10 جيجابايت
يجب أن تتوافق القصيدة الناتجة مع الصيغة:
- حجم الآية - من 3 إلى 8 خطوط
- لا يحتوي كل سطر على أكثر من 120 حرفًا
- الخطوط مفصولة بـ \ n
- يتم تجاهل الأسطر الفارغة
لا يتجاوز موضوع الموضوع (البذرة) 1000 حرف.
أثناء الاختبار ، يتم استخدام أنماط الشعراء الخمسة المختارين المذكورة أعلاه فقط.
تتوفر معلومات تفصيلية حول إرسال الحل إلى النظام مع تحليل الأخطاء الأكثر شيوعًا
هنا .
4. منصة هاكاثون
توجد منصة تحتوي على جميع المعلومات الضرورية عن هذه المسابقة على
classic.sberbank.ai . يمكن الاطلاع على القواعد التفصيلية
هنا . في المنتدى ، يمكنك الحصول على إجابة عن كل من المهمة والقضايا الفنية ، إذا حدث خطأ ما.
المسابقات الإبداعية لنماذج ML ليست سهلة. لقد اقترب الكثير من الناس من مهمة توليد الشعر ، ولكن لم يكن هناك تقدم كبير حتى الآن. بالفعل ، على منصة classic.sberbank.ai لدينا ، يتنافس المشاركون من جميع أنحاء روسيا في هذه المهمة الصعبة. نأمل أن تتجاوز قرارات الفائزين جميع القرارات التي تم إنشاؤها سابقًا!
5. المراجع