فهم الترميز في البرمجة اللغوية العصبية: دليل المبتدئين لمعالجة النصوص
نشرت: 2024-11-26يعد الترميز عنصرًا بالغ الأهمية ولكن غالبًا ما يتم تجاهله في معالجة اللغة الطبيعية (NLP). في هذا الدليل، سنشرح الترميز وحالات استخدامه وإيجابياته وسلبياته وسبب مشاركته في كل نموذج لغة كبير (LLM) تقريبًا.
جدول المحتويات
- ما هو الرمز المميز في البرمجة اللغوية العصبية؟
- أنواع الترميز
- كيف يعمل الترميز
- تطبيقات الترميز
- فوائد الترميز
- تحديات الترميز
ما هو الرمز المميز في البرمجة اللغوية العصبية؟
الترميز هو أسلوب البرمجة اللغوية العصبية (NLP) الذي يحول النص إلى تنسيقات رقمية يمكن لنماذج التعلم الآلي (ML) استخدامها. عندما ترسل مطالبتك إلى ماجستير في القانون مثل Anthropic's Claude، أو Google's Gemini، أو عضو في سلسلة GPT الخاصة بـ OpenAI، فإن النموذج لا يقرأ النص مباشرة. يمكن لهذه النماذج أن تأخذ الأرقام فقط كمدخلات، لذلك يجب أولاً تحويل النص إلى سلسلة من الأرقام باستخدام أداة الرمز المميز.
إحدى الطرق التي يمكن لأداة الرمز المميز من خلالها ترميز النص هي تقسيمه إلى كلمات منفصلة وتعيين رقم لكل كلمة فريدة:
"Grammarly يحب القواعد النحوية وتعلم الآلة والكتابة" قد يصبح:
كل كلمة (والرقم المرتبط بها) هي رمز مميز. يمكن لنموذج تعلم الآلة استخدام تسلسل الرموز المميزة —[7,102]، [37]، [564]، [2]، [9,763]، [2]، [231] — لتشغيل عملياته وإنتاج مخرجاته. عادةً ما يكون هذا الإخراج رقمًا، والذي يتم تحويله مرة أخرى إلى نص باستخدام عكس عملية الترميز نفسها. من الناحية العملية، يعتبر هذا الترميز كلمة بكلمة رائعًا كمثال ولكنه نادرًا ما يستخدم في الصناعة لأسباب سنراها لاحقًا.
شيء أخير يجب ملاحظته هو أن أدوات الرموز المميزة تحتوي على مفردات، وهي المجموعة الكاملة من الرموز المميزة التي يمكنها التعامل معها. قد لا يكون لدى برنامج الرمز المميز الذي يعرف الكلمات الإنجليزية الأساسية ولكن لا يعرف أسماء الشركات كلمة "Grammarly" كرمز مميز في مفرداته، مما يؤدي إلى فشل عملية إنشاء الرمز المميز.
أنواع الترميز
بشكل عام، يقوم الترميز بتحويل جزء من النص إلى سلسلة من الأرقام. على الرغم من أنه من الطبيعي التفكير في الترميز على مستوى الكلمة، إلا أن هناك العديد من طرق الترميز الأخرى، واحدة منها - ترميز الكلمات الفرعية - هي المعيار الصناعي.
ترميز الكلمات
إن ترميز الكلمات هو المثال الذي رأيناه من قبل، حيث يتم تقسيم النص حسب كل كلمة وعلامات الترقيم.
الميزة الرئيسية لرموز الكلمات هي أنه من السهل فهمها وتصورها. ومع ذلك، فإنه لديه بعض العيوب:
- علامات الترقيم، إن وجدت، تُلحق بالكلمات، كما في "الكتابة".
- الكلمات الجديدة أو غير المألوفة (مثل "Grammarly") تشغل رمزًا كاملاً.
ونتيجة لذلك، يمكن أن يؤدي ترميز الكلمات إلى إنشاء مفردات تحتوي على مئات الآلاف من الرموز المميزة. تكمن مشكلة المفردات الكبيرة في أنها تجعل التدريب والاستدلال أقل كفاءة بكثير، إذ يجب أن تكون المصفوفة اللازمة للتحويل بين النص والأرقام ضخمة.
بالإضافة إلى ذلك، سيكون هناك العديد من الكلمات غير المستخدمة بشكل متكرر، ولن تحتوي نماذج البرمجة اللغوية العصبية على ما يكفي من بيانات التدريب ذات الصلة لإرجاع استجابات دقيقة لتلك الكلمات النادرة. إذا تم اختراع كلمة جديدة غدًا، فسوف يحتاج ماجستير إدارة الأعمال الذي يستخدم ترميز الكلمات إلى إعادة تدريبه لدمج هذه الكلمة.
ترميز الكلمات الفرعية
يقوم ترميز الكلمات الفرعية بتقسيم النص إلى أجزاء أصغر من الكلمات أو تساويها. لا يوجد حجم ثابت لكل رمز مميز؛ يتم تحديد كل رمز (وطوله) من خلال عملية التدريب. يعد ترميز الكلمات الفرعية هو المعيار الصناعي لـ LLMs. فيما يلي مثال على عملية الترميز التي تم إجراؤها بواسطة برنامج الرمز المميز GPT-4o:
هنا، يتم تقسيم الكلمة غير المألوفة "Grammarly" إلى ثلاثة رموز: "Gr" و"amm" و"arly". وفي الوقت نفسه، تكون الكلمات الأخرى شائعة بدرجة كافية في النص بحيث تشكل رموزًا خاصة بها.
يسمح ترميز الكلمات الفرعية بمفردات أصغر، مما يعني تدريبًا واستدلالًا أكثر كفاءة وأرخص. يمكن لرموز الكلمات الفرعية أيضًا تقسيم الكلمات النادرة أو الجديدة إلى مجموعات من الرموز المميزة الأصغر حجمًا. لهذه الأسباب، تستخدم العديد من نماذج البرمجة اللغوية العصبية (NLP) ترميز الكلمات الفرعية.
ترميز الأحرف
يقوم ترميز الأحرف بتقسيم النص إلى أحرف فردية. إليك كيف سيبدو مثالنا:
كل شخصيةفريدةتصبح رمزًا خاصًا بها. يتطلب هذا في الواقع أصغر مفردات نظرًا لوجود 52 حرفًا فقط في الأبجدية (تعتبر الأحرف الكبيرة والأحرف الصغيرة مختلفتين) والعديد من علامات الترقيم. وبما أن أي كلمة إنجليزية يجب أن تتكون من هذه الأحرف، فإن ترميز الأحرف يمكن أن يعمل مع أي كلمة جديدة أو نادرة.
ومع ذلك، وفقًا لمعايير LLM القياسية، لا يعمل ترميز الأحرف بشكل جيد مثل ترميز الكلمات الفرعية في الممارسة العملية. يحتوي الرمز المميز للكلمة الفرعية "car" على معلومات أكثر بكثير من الرمز المميز للحرف "c"، لذا فإن آلية الانتباه في المحولات لديها معلومات أكثر للتشغيل عليها.
ترميز الجملة
تحويل الجملة إلى رمز مميز يحول كل جملة في النص إلى رمز خاص بها. سيبدو مثالنا كما يلي:
الفائدة هي أن كل رمز يحتوي على الكثير من المعلومات. ومع ذلك، هناك العديد من العيوب. هناك طرق لا حصر لها للجمع بين الكلمات لكتابة الجمل. لذلك، يجب أن تكون المفردات لا نهائية أيضًا.
بالإضافة إلى ذلك، فإن كل جملة في حد ذاتها ستكون نادرة جدًا نظرًا لأن الاختلافات الدقيقة (مثل "كذلك" بدلاً من "و") قد تعني رمزًا مختلفًا على الرغم من أنها تحمل نفس المعنى. التدريب والاستدلال سيكون بمثابة كابوس. يتم استخدام ترميز الجملة في حالات الاستخدام المتخصصة مثل تحليل معنويات الجملة، ولكن بخلاف ذلك، فهو مشهد نادر.
مقايضة الترميز: الكفاءة مقابل الأداء
يعد اختيار الدقة الصحيحة للترميز للنموذج بمثابة علاقة معقدة بين الكفاءة والأداء. مع الرموز الكبيرة جدًا (على سبيل المثال، على مستوى الجملة)، تصبح المفردات ضخمة. تنخفض كفاءة تدريب النموذج لأن المصفوفة التي تحتوي على كل هذه الرموز المميزة ضخمة. يتراجع الأداء نظرًا لعدم وجود بيانات تدريب كافية لجميع الرموز الفريدة لتعلم العلاقات بشكل هادف.
على الجانب الآخر، مع الرموز الصغيرة، تصبح المفردات صغيرة. يصبح التدريب فعالاً، ولكن قد ينخفض الأداء نظرًا لأن كل رمز لا يحتوي على معلومات كافية للنموذج لتعلم العلاقات بين الرمز المميز.
يوجد ترميز الكلمات الفرعية في المنتصف مباشرةً. يحتوي كل رمز مميز على معلومات كافية للنماذج لتعلم العلاقات، لكن المفردات ليست كبيرة جدًا بحيث يصبح التدريب غير فعال.
كيف يعمل الترميز
يتمحور الترميز حول التدريب واستخدام الرموز المميزة. تقوم Tokenizers بتحويل النص إلى رموز مميزة والرموز المميزة مرة أخرى إلى نص. سنناقش هنا رموز الكلمات الفرعية لأنها النوع الأكثر شيوعًا.
يجب تدريب أدوات الرموز المميزة للكلمات الفرعية على تقسيم النص بشكل فعال.

لماذا يتم تقسيم "Grammarly" إلى "Gr" و"amm" و"arly"؟ ألا يمكن أن تعمل "Gram" و"mar" و"ly" أيضًا؟ بالنسبة للعين البشرية، يمكن ذلك بالتأكيد، لكن صانع الرمز، الذي من المفترض أنه تعلم التمثيل الأكثر كفاءة، يفكر بشكل مختلف. إحدى خوارزميات التدريب الشائعة (على الرغم من عدم استخدامها في GPT-4o) المستخدمة لتعلم هذا التمثيل هي تشفير زوج البايت (BPE). سنشرح BPE في القسم التالي.
التدريب على استخدام الرموز المميزة
لتدريب أداة رمزية جيدة، تحتاج إلى مجموعة ضخمة من النصوص للتدريب عليها. يعمل تشغيل BPE في هذه المجموعة على النحو التالي:
- قم بتقسيم كل النص الموجود في المجموعة إلى أحرف فردية. قم بتعيين هذه كرموز البداية في المفردات.
- قم بدمج الرمزين المتجاورين بشكل متكرر من النص في رمز مميز واحد جديد وإضافته إلى المفردات (دون حذف الرموز القديمة - وهذا أمر مهم).
- كرر هذه العملية حتى لا يكون هناك أزواج متبقية متكررة من الرموز المميزة المتجاورة، أو يتم الوصول إلى الحد الأقصى لحجم المفردات.
على سبيل المثال، لنفترض أن مجموعتنا التدريبية بأكملها تتكون من النص "abc abcd":
- سيتم تقسيم النص إلى ["أ"، "ب"، "ج"، ""، "أ"، "ب"، "ج"، "د"]. لاحظ أن الإدخال الرابع في تلك القائمة هو حرف مسافة. ستكون مفرداتنا بعد ذلك ["أ"، "ب"، "ج"، ""، "د"].
- غالبًا ما يظهر "a" و"b" بجوار بعضهما البعض في النص (مرتبطان بـ "b" و"c" لكن "a" و"b" يفوزان أبجديًا). لذلك، نقوم بدمجها في رمز واحد، "ab". تبدو المفردات الآن مثل ["a"، و"b"، و"c"، و" "، و"d"، و"ab"]، ويبدو النص المحدث (مع تطبيق دمج الرمز المميز "ab") مثل ["ab" ، "ج"، ""، "أب"، "ج"، "د"].
- الآن، يتم تكرار "ab" و"c" معًا في النص بشكل متكرر. نقوم بدمجها في الرمز المميز "abc". تبدو المفردات بعد ذلك مثل ["a"، "b"، "c"، "" ، "d"، "ab"، "abc"]، ويبدو النص المحدث مثل ["abc"، "" ،" abc" "، "د"].
- لقد أنهينا العملية هنا نظرًا لأن كل زوج من الرموز المميزة المتجاورة يحدث الآن مرة واحدة فقط. قد يؤدي دمج الرموز المميزة بشكل أكبر إلى جعل أداء النموذج الناتج أسوأ في النصوص الأخرى. ومن الناحية العملية، فإن الحد الأقصى لحجم المفردات هو العامل المحدد.
باستخدام مجموعة المفردات الجديدة، يمكننا التخطيط بين النص والرموز المميزة. حتى النص الذي لم نره من قبل، مثل "cab"، يمكن أن يتم ترميزه لأننا لم نتخلص من الرموز المميزة ذات الحرف الواحد. يمكننا أيضًا إرجاع أرقام مميزة بمجرد رؤية موضع الرمز المميز داخل المفردات.
يتطلب التدريب الجيد على استخدام الرموز المميزة كميات كبيرة جدًا من البيانات والكثير من الحوسبة، وهو ما يفوق قدرة معظم الشركات على تحمله. تتغلب الشركات على هذا الأمر عن طريق تخطي تدريب مُرمزها الخاص. وبدلاً من ذلك، يستخدمون فقط أداة رمزية مدربة مسبقًا (مثل أداة الرموز المميزة GPT-4o المرتبطة أعلاه) لتوفير الوقت والمال مع الحد الأدنى من الخسارة، إن وجدت، في أداء النموذج.
استخدام الرمز المميز
لذلك، لدينا رمز الكلمات الفرعية هذا تم تدريبه على مجموعة ضخمة باستخدام BPE. الآن، كيف نستخدمها في جزء جديد من النص؟
نحن نطبق قواعد الدمج التي حددناها في عملية التدريب على استخدام الرموز المميزة. نقوم أولاً بتقسيم نص الإدخال إلى أحرف. بعد ذلك، نقوم بدمج الرموز بنفس الترتيب المتبع في التدريب.
للتوضيح، سنستخدم نص إدخال مختلف قليلاً لـ "dc abc":
- قمنا بتقسيمها إلى أحرف ["d"، "c"، ""، "a"، "b"، "c"].
- أول دمج قمنا به في التدريب كان "ab" لذلك نقوم بذلك هنا: ["d"، "c"، ""، "ab"، "c"].
- الدمج الثاني الذي قمنا به كان "abc" لذلك نقوم بذلك: ["d"، "c"، ""، "abc"].
- هذه هي قواعد الدمج الوحيدة التي لدينا، لذلك انتهينا من إنشاء الرموز المميزة، ويمكننا إرجاع معرفات الرموز المميزة.
إذا كان لدينا مجموعة من معرفات الرموز المميزة وأردنا تحويلها إلى نص، فيمكننا ببساطة البحث عن كل معرف رمزي في القائمة وإرجاع النص المرتبط به. يقوم طلاب LLM بذلك لتحويل التضمينات (ناقلات الأرقام التي تلتقطمعنىالرموز المميزة من خلال النظر إلى الرموز المميزة المحيطة) التي يعملون بها مرة أخرى إلى نص يمكن قراءته بواسطة الإنسان.
تطبيقات الترميز
يعد الترميز دائمًا الخطوة الأولى في كل البرمجة اللغوية العصبية. يتطلب تحويل النص إلى نماذج يمكن لنماذج تعلم الآلة (وأجهزة الكمبيوتر) العمل معها استخدام الرموز المميزة.
الترميز في LLMs
عادةً ما يكون الترميز هو الجزء الأول والأخير من كل مكالمة LLM. يتم تحويل النص إلى رموز مميزة أولاً، ثم يتم تحويل الرموز المميزة إلى تضمينات لالتقاط معنى كل رمز مميز وتمريرها إلى الأجزاء الرئيسية من النموذج (كتل المحولات). بعد تشغيل كتل المحولات، يتم تحويل التضمينات مرة أخرى إلى رموز مميزة. وأخيرًا، تتم إضافة الرمز المميز الذي تم إرجاعه للتو إلى الإدخال وتمريره مرة أخرى إلى النموذج، وتكرار العملية مرة أخرى. تستخدم LLMs ترميز الكلمات الفرعية لتحقيق التوازن بين الأداء والكفاءة.
الترميز في محركات البحث
تعمل محركات البحث على ترميز استعلامات المستخدم لتوحيدها وفهم نية المستخدم بشكل أفضل. قد يتضمن ترميز محرك البحث تقسيم النص إلى كلمات، وإزالة كلمات الحشو (مثل "the" أو "و")، وتحويل الأحرف الكبيرة إلى أحرف صغيرة، والتعامل مع أحرف مثل الواصلات. عادةً لا يكون ترميز الكلمات الفرعية ضروريًا هنا نظرًا لأن الأداء والكفاءة أقل اعتمادًا على حجم المفردات.
الترميز في الترجمة الآلية
يعد ترميز الترجمة الآلية أمرًا مثيرًا للاهتمام نظرًا لاختلاف لغات الإدخال والإخراج. ونتيجة لذلك، سيكون هناك اثنين من الرموز المميزة، واحد لكل لغة. عادةً ما يعمل ترميز الكلمات الفرعية بشكل أفضل لأنه يوازن بين المفاضلة بين كفاءة النموذج وأداء النموذج. لكن بعض اللغات، مثل الصينية، لا تحتوي على مكون لغوي أصغر من كلمة واحدة. هناك، مطلوب ترميز الكلمات.
فوائد الترميز
يعد الترميز أمرًا ضروريًا لأي نموذج البرمجة اللغوية العصبية. يتيح الترميز الجيد لنماذج ML العمل بكفاءة مع النص والتعامل مع الكلمات الجديدة بشكل جيد.
يتيح الرمز المميز للنماذج العمل مع النص
داخليًا، تعمل نماذج ML فقط مع الأرقام. تعتمد الخوارزمية وراء نماذج تعلم الآلة بشكل كامل على الحساب، والذي يتطلب في حد ذاته أرقامًا لحسابه. لذلك، يجب تحويل النص إلى أرقام قبل أن تتمكن نماذج ML من العمل معها. بعد الترميز، يمكن تشغيل تقنيات مثل الانتباه أو التضمين على الأرقام.
يتم تعميم الرمز المميز على النص الجديد والنادر
أو بشكل أكثر دقة، يتم تعميم الترميزالجيدعلى النص الجديد والنادر. باستخدام الرموز المميزة للكلمات الفرعية والأحرف، يمكن تقسيم النصوص الجديدة إلى تسلسلات من الرموز الموجودة. لذا، فإن لصق مقالة تحتوي على كلمات مبهمة في ChatGPT لن يؤدي إلى تعطلها (على الرغم من أنها قد لا تعطي استجابة متماسكة جدًا أيضًا). كما يسمح التعميم الجيد للنماذج بتعلم العلاقات بين الكلمات النادرة، بناءً على العلاقات الموجودة في الرموز الفرعية.
تحديات الترميز
يعتمد الترميز على مجموعة التدريب والخوارزمية، لذلك يمكن أن تختلف النتائج. يمكن أن يؤثر هذا على قدرات التفكير لدى LLMs وطول المدخلات والمخرجات.
يؤثر الترميز على قدرات التفكير لدى LLMs
إحدى المشاكل السهلة التي غالبًا ما تعترض طلاب LLM هي حساب عدد مرات ظهور الحرف "r" في كلمة "الفراولة". سيقول النموذج بشكل غير صحيح أن هناك اثنين، على الرغم من أن الإجابة هي ثلاثة حقًا. قد يكون هذا الخطأ جزئيًا بسبب الترميز. يقوم رمز الكلمة الفرعية بتقسيم "الفراولة" إلى "st" و"raw" و"berry". لذا، ربما لم يكن النموذج قادرًا على ربط الحرف "r" الموجود في الرمز المميز الأوسط بالحرفين "r" الموجودين في الرمز المميز الأخير. تؤثر خوارزمية الترميز المختارة بشكل مباشر على كيفية ترميز الكلمات وكيفية ارتباط كل رمز مميز بالآخرين.
يؤثر الترميز على طول إدخال وإخراج LLM
تعتمد LLMs في الغالب على بنية المحولات، والتي تعتمد على آلية الانتباه لوضع كل رمز مميز في سياقه. ومع ذلك، مع زيادة عدد الرموز المميزة، فإن الوقت اللازم للانتباه يرتفع بشكل تربيعي. لذا، فإن النص الذي يحتوي على أربع علامات سيستغرق 16 وحدة من الوقت، لكن النص الذي يحتوي على ثمانية علامات سيستغرق 64 وحدة من الوقت. وهذا يحصر LLMs في حدود الإدخال والإخراج التي تبلغ بضع مئات الآلاف من الرموز المميزة. باستخدام الرموز الصغيرة، يمكن أن يحد هذا من كمية النص التي يمكنك إدخالها في النموذج، مما يقلل من عدد المهام التي يمكنك استخدامها من أجلها.