YouTokenToMe: أداة لترميز النص بسرعة من فريق VKontakte

نريد تقديم أداتنا الجديدة لترميز النص - YouTokenToMe. إنه يعمل بشكل أسرع من 7 إلى 10 أضعاف الإصدارات الأخرى الشائعة بلغات مشابهة للبنية في أوروبا و 40 إلى 50 مرة في اللغات الآسيوية. نتحدث عن YouTokenToMe ومشاركتها معك في مصدر مفتوح على GitHub. رابط في نهاية المقال!

صورة

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

ندرج الحلول الشائعة التي تستخدم عادة لهذا:

  • كسر الفضاء
  • الخوارزميات المستندة إلى القواعد: spaCy، NLTK؛
  • stemming ، اللثة.

كل واحد منهم له عيوبه الخاصة:

  • لا يمكنك التحكم في حجم قاموس الرمز المميز. يعتمد حجم طبقة التضمين في النموذج مباشرةً على هذا ؛
  • لا يتم استخدام المعلومات المتعلقة بقرابة الكلمات التي تختلف بحسب اللواحق أو البادئات ، على سبيل المثال: polite - impolite؛
  • تعتمد على اللغة

في الآونة الأخيرة ، كان أسلوب ترميز زوج البايت شائعًا. في البداية ، كانت هذه الخوارزمية مخصصة لضغط النص ، ولكن قبل عدة سنوات كانت تستخدم لتمييز الرمز في النص في الترجمة الآلية. الآن يتم استخدامه لمجموعة واسعة من المهام ، بما في ذلك تلك المستخدمة في نماذج BERT و GPT-2.

كانت أكثر تطبيقات BPE فعالية هي SentencePiece ، التي طورها مهندسو Google ، و fastBPE ، التي أنشأتها Facebook AI Research. لكننا نجحنا في إثبات أن الرمز المميز يمكن تسريعه بشكل كبير. قمنا بتحسين خوارزمية BPE ونشرنا الكود المصدري ، وقمنا أيضًا بنشر الحزمة النهائية في مستودع pip.

يمكنك أدناه مقارنة نتائج قياس سرعة الخوارزمية والإصدارات الأخرى. على سبيل المثال ، اتخذنا أول 100 ميغابايت من مجموعة بيانات ويكيبيديا باللغة الروسية والإنجليزية واليابانية والصينية.

صورة

صورة

توضح الرسوم البيانية أن وقت التشغيل يعتمد بشكل كبير على اللغة. هذا لأن اللغات الآسيوية بها حروف أبجدية أكثر ، والكلمات غير مفصولة بمسافات. تعمل YouTokenToMe أسرع من 7 إلى 10 مرات بلغات مماثلة في هيكلها لأوروبا ، ومن 40 إلى 50 مرة في آسيا. تم تسريع الرمزنة مرتين على الأقل ، وفي بعض الاختبارات أكثر من عشر مرات.

لقد حققنا هذه النتائج بفضل فكرتين رئيسيتين:

  • تحتوي الخوارزمية الجديدة على وقت تشغيل خطي اعتمادًا على حجم الحالة للتدريب. SentencePiece و fastBPE لديهم سلوك مقارب أقل فعالية ؛
  • يمكن أن تستخدم الخوارزمية الجديدة عدة تدفقات بشكل فعال في كل من عملية التعلم وفي عملية الرمز المميز - وهذا يتيح لك الحصول على تسارع عدة مرات أكثر.

يمكنك استخدام YouTokenToMe من خلال الواجهة للعمل من سطر الأوامر ومباشرة من Python.

يمكنك العثور على مزيد من المعلومات في المستودع: github.com/vkcom/YouTokenToMe

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


All Articles