رابط المنافسة
تم نشر منظم مجموعة البيانات على الملأ ويمكنه تنزيله على https://github.com/zhuiyitechnology/tableqa
رمز تشغيل البيئة حتى نهاية المقالة
تحتل الخطة المعتمدة في هذا المشروع المرتبة الخامسة عبر الإنترنت في مباراة العودة والثالثة في النتائج النهائية.
يتم تقديم الرمز تحت الفرع الرئيسي في شكل دفتر جوبيتر. لغرض التعلم والتواصل ، تم فرز الرمز الأصلي مقابل مبلغ معين ولن لا يعيد إنتاج النتائج عبر الإنترنت تمامًا ، ولكن التأثير لن يكون أسوأ بكثير.
Model1.Ipynb و Model2.ipynb في دليل الكود هي عمليات النمذجة ، ويحتوي دليل nl2sql/utils على بعض الوظائف الأساسية وهياكل البيانات المطلوبة لهذه المهمة.
BERT-wwm, Chinese التي تم تدريبها في هذه المسابقة. يستخدم التحدي الصيني NL2SQL الأول بيانات جدولية من Finance and General Fields كمصادر بيانات لتوفير أزواج مطابقة بين اللغة الطبيعية وبيانات SQL التي تحمل علامة على هذا الأساس. نأمل أن يتمكن اللاعبون من استخدام البيانات لتدريب النماذج التي يمكنها تحويل اللغة الطبيعية بدقة إلى SQL.
المدخلات إلى النموذج هو جدول + جدول ، وهيكل SQL هو الإخراج ، والذي يتوافق مع عبارة SQL.

في
sel هي قائمة ، تمثل العمود المحدد بواسطة عبارة SELECTagg هي قائمة ، تتوافق مع sel ، تشير إلى تشغيل عملية التجميع على العمود ، مثل SUM ، MAX ، MIN ، إلخ.conds هي قائمة ، تمثل سلسلة من الشروط في البيان WHERE . كل حالة عبارة عن ثلاثة أضعاف مكونة من (أعمدة الحالة ، عوامل الحالة ، قيم الحالة).cond_conn_op هي int ، تمثل العلاقة المتوازية بين الظروف في conds ، والتي يمكن أن تكون و أو نجعل تحولًا بسيطًا للتسمية الأصلية

agg مع sel ، وقم بتنبؤات لكل عمود في الجدول في agg ، وتشير الفئة الجديدة NO_OP إلى أنه لم يتم تحديد العمودconds إلى جزأين: conds_ops و conds_vals . والسبب في ذلك هو جعل التنبؤات في خطوتين. يتنبأ النموذج أولاً بالأعمدة والمشغلين التي سيتم تحديدها conds ، ثم يتنبأ نموذج آخر بقيمة المقارنة للأعمدة المحددة. 
قم بتوصيل السؤال بالأسئلة برأسها بالتتابع ، مع إضافة علامة أو TEXT أو REAL قبل كل عمود. يمكن استبدال هذين الرموين الخاصين الخاصين باثنين من الرموز غير المدربين المحجوزة من قبل BERT.

بنية النموذج 1 هي كما يلي:

النموذج 2 هو المسؤول عن التنبؤ بـ cond_val . فكرتنا هي تعداد cond_op و cond_val استنادًا إلى cond_col التي تم اختيارها بواسطة النموذج 1 ، وإنشاء سلسلة من مجموعات المرشحين ، وتعامل مع هذه المجموعات كمشاكل تصنيف ثنائية متعددة.

بنية النموذج 2 هي كما يلي:

أخيرًا ، قم بدمج توقعات النموذج 2 لبعض مجموعات المرشحين

للحصول على التفاصيل ، يرجى الاطلاع على PPT الدفاع النهائي للتحسين في التدريب النموذجي وبعض الأفكار الناجحة وغير الناجحة.
إطار التعلم العميق: TensorFlow ، Keras
راجع المتطلبات. txt للحصول على إصدارات محددة
طريقة أكثر ملاءمة للقيام بذلك هي تشغيله في Docker. تم استخدام صورة Docker التالية في المنافسة
| مستودع | علامة | معرف الصورة |
|---|---|---|
| TensorFlow/Tensorflow | ليلا GPU-PY3-Jupyter | 6e60684e9aa4 |
بما أنني بحاجة إلى استخدام Python3.6 ، فأنا أستخدم صورة TensorFlow Nightly Build. لقد مررت الصورة التي استخدمتها أثناء المنافسة إلى مركز Docker ، والتي يمكن الحصول عليها من خلال الأمر التالي.
docker pull beader/tensorflow:nightly-gpu-py3-jupyter