ترميز أزواج البايت
في مجال الحوسبة ، يُعدّ ترميز أزواج البايت ( BPE ) [ 1 ] [ 2 ] أو ترميز الثنائيات [ 3 ] خوارزميةً ، وُصفت لأول مرة عام 1994 من قِبل فيليب غيج، لترميز سلاسل النصوص إلى سلاسل أصغر عن طريق إنشاء جدول ترجمة واستخدامه. [ 4 ] ويُستخدم إصدار مُعدّل قليلاً من هذه الخوارزمية في مُجزّئات نماذج اللغة الكبيرة .
ركزت النسخة الأصلية من الخوارزمية على الضغط، حيث تستبدل زوج البايتات الأكثر تكرارًا ببايت جديد غير موجود في مجموعة البيانات الأصلية. ويتطلب إعادة بناء مجموعة البيانات الأصلية جدول بحث للاستبدالات. أما النسخة المعدلة، فتبني "رموزًا" (وحدات تعريف) تُطابق كميات متفاوتة من النص المصدر، بدءًا من الأحرف المفردة (بما في ذلك الأرقام المفردة أو علامات الترقيم المفردة) وصولًا إلى الكلمات الكاملة (حتى الكلمات المركبة الطويلة). [ 5 ] [ 6 ] [ 7 ]
الخوارزمية الأصلية
تعتمد خوارزمية BPE الأصلية على استبدال أكثر تسلسلات الأحرف المتجاورة شيوعًا في النص المستهدف بوحدات بايت غير مستخدمة. وينتهي التكرار عند عدم العثور على أي تسلسلات، مما يجعل النص المستهدف مضغوطًا فعليًا. ويمكن فك الضغط بعكس هذه العملية، وذلك بالبحث عن مصطلحات العناصر النائبة المعروفة ومقارنتها بتسلسلاتها المقابلة، باستخدام جدول بحث. في الورقة البحثية الأصلية، يُشفّر جدول البحث هذا ويُخزّن مع النص المضغوط.
مثال
لنفترض أن البيانات المراد ترميزها هي: [ 8 ]
aaabdaaabac
يتكرر زوج البايتات "aa" بكثرة، لذا سيتم استبداله ببايت غير مستخدم في البيانات، مثل "Z". فيما يلي جدول البيانات والاستبدال:
زابدزاباك Z=aa
ثم تتكرر العملية مع زوج البايت "ab"، مع استبداله بـ "Y":
ZYdZYac Y=ab Z=aa
يظهر زوج البايتات الحرفي الوحيد المتبقي مرة واحدة فقط، وقد تتوقف عملية التشفير هنا. أو بدلاً من ذلك، يمكن أن تستمر العملية بتشفير أزواج البايتات المتكرر ، مع استبدال "ZY" بـ "X".
XdXac X=ZY Y=ab Z=aa
لا يمكن ضغط هذه البيانات بشكل أكبر عن طريق ترميز أزواج البايت لأنه لا توجد أزواج من البايتات التي تظهر أكثر من مرة.
لفك ضغط البيانات، ما عليك سوى إجراء عمليات الاستبدال بالترتيب العكسي.
خوارزمية معدلة
تم تعديل خوارزمية BPE الأصلية لاستخدامها في نمذجة اللغة ، وخاصةً نماذج اللغة الكبيرة القائمة على الشبكات العصبية. بالمقارنة مع خوارزمية BPE الأصلية، لا تهدف الخوارزمية المعدلة إلى ضغط النص إلى أقصى حد، بل إلى ترميز النص العادي إلى "رموز"، وهي أعداد طبيعية. [ 9 ] تُدرج جميع الرموز الفريدة الموجودة في مجموعة النصوص في معجم الرموز. يمكن أن يتضمن معجم الرموز أيضًا بعض الرموز الخاصة الأخرى، بحسب حالة الاستخدام. يبلغ حجم معجم الرموز، في حالة GPT-3.5 و GPT-4 ، 100258 (100000 من خوارزمية BPE و258 مُضمنة كرموز خاصة). [ 10 ]
تُعامل خوارزمية التجزئة المُعدّلة في البداية مجموعة الأحرف الفريدة على أنها وحدات n-gram مكونة من حرف واحد (الرموز الأولية). ثم، تباعًا، يتم دمج أكثر زوج من الرموز المتجاورة تكرارًا في وحدة n-gram جديدة أطول، ويتم استبدال جميع حالات هذا الزوج بهذا الرمز الجديد. تُكرر هذه العملية حتى يتم الحصول على مُعجم بحجم مُحدد. تجدر الإشارة إلى أنه يُمكن دائمًا بناء كلمات جديدة من رموز المُعجم النهائية وأحرف المجموعة الأولية. [ 11 ]
تم توسيع نطاق هذا النهج المعدل لـ BPE من اللغة المنطوقة إلى لغة الإشارة في السنوات الأخيرة. [ 12 ]
مثال
لنفترض أننا نقوم بتشفير المثال السابق "aaabdaaabac"، بحجم مفردات محدد يبلغ 6، فسيتم تشفيره أولاً على النحو التالي: "0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 3" بمفردات "a=0, b=1, d=2, c=3". ثم نتابع كما في السابق، فنحصل على "4, 5, 2, 4, 5, 0, 3" بمفردات "a=0, b=1, d=2, c=3, aa=4, ab=5".
حتى الآن، هذا هو نفسه تقريبًا كما كان من قبل. مع ذلك، إذا حددنا حجم مفردات بـ 5 فقط، فستتوقف العملية عند المفردات "a=0, b=1, d=2, c=3, aa=4"، وبالتالي سيتم ترميز المثال على النحو التالي: "4, 0, 1, 2, 4, 0, 1, 0, 3". في المقابل، إذا حددنا حجم مفردات بـ 8، فسيتم ترميزه على النحو التالي: "7, 6, 0, 3"، مع مفردات "a=0, b=1, d=2, c=3, aa=4, ab=5, aaab=6, aaabd=7". هذا ليس ضغطًا أقصى، لأن BPE المعدل لا يهدف إلى أقصى ضغط. بدلًا من ذلك، يهدف إلى ترميز فعال وعملي لتدريب نموذج اللغة. [ 13 ]
BPE على مستوى البايت
في المثال أعلاه، يُنتج برنامج BPE مُعجمًا يُمكن استخدامه لترميز أي نص مكتوب بالأحرف "abcd". لن يتمكن من ترميز نص يحتوي على رموز أخرى، مثل "no". حتى مع تخصيص مدخل لكل حرف من الأحرف الستة والعشرين في المُعجم، ونظرًا لوجود العديد من اللغات في العالم التي تستخدم العديد من أنظمة الكتابة المختلفة، فمن المحتم أن بعض الرموز ستكون غير قابلة للترميز بواسطة هذا المُعجم.
أحد الحلول هو استبدال أي رمز غير قابل للترميز برمز خاص يسمى UNK ("غير معروف").
يُعدّ BPE على مستوى البايت نهجًا آخر. يقوم هذا النهج ببساطة بتحويل النص إلى ترميز UTF-8 أولًا، ثم يتعامل معه كسلسلة من البايتات. يضمن هذا إمكانية ترميز أي نص مُشفّر بترميز UTF-8 باستخدام BPE. وقد استُخدم هذا النهج في نماذج شبيهة بـ BERT مثل RoBERTa وBART وDeBERTa، ونماذج شبيهة بـ GPT مثل GPT-2 . [ 14 ] [ 15 ] [ 16 ]
انظر أيضاً
مراجع
- ↑ غيج، فيليب (1994). "خوارزمية جديدة لضغط البيانات" . مجلة مستخدمي لغة سي .
- ↑ "خوارزمية جديدة لضغط البيانات" . مجلة دكتور دوبز . 1 فبراير 1994. تم الاطلاع عليه بتاريخ 10 أغسطس 2020 .
- ↑ ويتن، إيان هـ.؛ موفات، أليستير؛ بيل، تيموثي سي. (1994). إدارة الجيجابايت . نيويورك: فان نوستراند رينهولد. ISBN 978-0-442-01863-4.
- ↑ "ترميز أزواج البايت" . مؤرشف من الأصل بتاريخ 2016-03-26.
- ↑ سينريش، ريكو؛ بيرش، ألكسندرا؛ هادو، باري (2015-08-31). "الترجمة الآلية العصبية للكلمات النادرة باستخدام وحدات الكلمات الفرعية". arXiv : 1508.07909 [ cs.CL ].
- ↑ براون، توم ب.؛ مان، بنجامين؛ رايدر، نيك؛ سوبيا، ميلاني؛ كابلان، جاريد؛ داريوال، برافولا؛ نيلاكانتان، أرفيند؛ شيام، براناف؛ ساستري، جيريش؛ أسكيل، أماندا؛ أغاروال، سانديني (2020-06-04). "نماذج اللغة هي متعلمون بعدد قليل من الأمثلة". arXiv : 2005.14165 [ cs.CL ].
- ↑ "google/sentencepiece" . جوجل. 2021-03-02 . تم الاسترجاع في 2021-03-02 .
- ↑ كامبيساتو، أوزوالد (26-12-2024). نماذج اللغة الكبيرة للمطورين: استكشاف نماذج اللغة الكبيرة باستخدام الموجه . والتر دي جرويتر جي إم بي إتش . رقم ISBN 978-1-5015-2095-2.
- ↑ تشانغ، شيانغ؛ كاو، جونتاي؛ يو، تشينيو (2024). "قدرة العد لنماذج اللغة الكبيرة وتأثير التجزئة". arXiv : 2410.19730 [ cs.CL ].
- ↑ راشكا، سيباستيان (17 يناير 2025). "تنفيذ مُجزئ ترميز أزواج البايت (BPE) من الصفر" . سيباستيان راشكا، دكتوراه . تم الاطلاع عليه بتاريخ 5 يوليو 2025 .
- ↑ باس، جيرهارد؛ جيسيلباخ، سفين (2022). "مقدمة". نماذج أساسية لمعالجة اللغة الطبيعية . الذكاء الاصطناعي: الأسس والنظرية والخوارزميات. ص 1-17 . doi : 10.1007/978-3-031-23190-2_1 . ISBN 9783031231902.
- ↑ تارو ميازاكي، سيهان تان، تسوباسا أوشيدا، هيرويوكي كانيكو (25 مايو 2024). "ترجمة لغة الإشارة باستخدام ترميز أزواج المصطلحات" (ملف PDF) . وقائع ورشة العمل الحادية عشرة حول تمثيل ومعالجة لغات الإشارة .
{{cite journal}}: صيانة CS1: أسماء متعددة: قائمة المؤلفين ( رابط ) - ↑ باي، سوهاس (2025-03-06). تصميم تطبيقات نماذج اللغة الكبيرة: منهج شامل لنماذج اللغة الكبيرة . دار نشر أورايلي ميديا . رقم ISBN 978-1-0981-5046-4.
- ↑ "تجزئة الكلمات باستخدام ترميز أزواج البايت" . دورة معالجة اللغة الطبيعية للوجوه المتشابكة . تم الاطلاع عليه بتاريخ 27-01-2025 .
- ↑ يلدريم، سافاش؛ تشينغلو، ميثم عسكري (15-09-2021). إتقان المحولات: بناء نماذج متطورة من الصفر باستخدام تقنيات معالجة اللغة الطبيعية المتقدمة . دار نشر باكت المحدودة . رقم ISBN 978-1-80107-889-4.
- ↑ وانغ، تشانغهان؛ تشو، كيونغهيون (2020-04-03). "الترجمة الآلية العصبية باستخدام الكلمات الفرعية على مستوى البايت" . وقائع مؤتمر AAAI حول الذكاء الاصطناعي . 34 (5): 9154-9160 . arXiv : 1909.03341 . doi : 10.1609/aaai.v34i05.6451 . ISSN 2374-3468 .
- خوارزميات الضغط بدون فقدان البيانات
- ضغط البيانات
