أظهر مهندس من red_mad_robot كيفية بناء خدمة NER للسير الذاتية: من الوسم إلى API
استعرض مهندس NLP في red_mad_robot خط أنابيب NER الكامل للسير الذاتية — من صياغة المهمة ووسم BIO إلى تدريب النموذج وخدمة API. يستخدم المثال Label Studio…
معالج بواسطة الذكاء الاصطناعي من Habr AI؛ بتحرير Hamidun News
تم نشر مقالة عملية على Habr حول كيفية حل مهام الاستخراج المسمى للكيانات (NER) ليس من الناحية النظرية، بل على حالة استخدام حقيقية مع السير الذاتية لنظام الموارد البشرية. يوضح المؤلف المسار الكامل: من اختيار الكيانات وإعداد مجموعة البيانات إلى تدريب النموذج وإطلاق واجهة برمجية يمكن دمجها في منتج عامل.
من المهمة إلى المخطط
في جوهر الحالة توجد مهمة عملية: يحتاج الموظفون في التوظيف إلى وحدة تأخذ السير الذاتية بصيغة PDF أو DOC، وتستخرج النص، وتجد الأسماء والألقاب وعناوين البريد الإلكتروني وأرقام الهاتف والمهارات والراتب المتوقع. هذا هو بالضبط السيناريو الذي يحفز اختيار نهج الاستخراج المسمى للكيانات. نقطة مهمة في المقالة: يبدأ المؤلف ليس بالنموذج، بل بتوضيح متطلبات العمل.
أولاً، يجب أن تفهم المجال ولغة المستندات وتنسيق الإدخال والحقول التي يحتاجها العميل فعلاً. بدون ذلك، حتى النموذج الجيد سيحل المشكلة الخاطئة. بعد تشكيل المتطلبات، يعرّف المؤلف علامات محددة: NAME و SURNAME و EMAIL و PHONE و SKILL و SALARY.
للتعليق التوضيحي، يختار مخطط BIO لأنه في السير الذاتية، غالباً ما تظهر المهارات بالتتابع، ومن المهم أن يفهم النموذج أين تبدأ كل كيان فردي. مثال مثل "Python SQL Docker" كاشف: إذا تم اختيار مخطط التعليق التوضيحي بشكل سيء، يمكن للنظام دمج عدة مهارات في واحدة. هذا هو بالضبط الحالة التي تؤثر فيها القرارات الصغيرة ظاهرياً في البداية لاحقاً على جودة النظام بأكمله.
حيث تنهار مجموعات البيانات
أكبر قسم في المقالة مخصص للبيانات، وهذا منطقي: هنا عادة يتم قضاء معظم الوقت. للتعليق التوضيحي اليدوي، يستخدم المؤلف Label Studio، لكنه يحل بشكل منفصل مشكلتين عمليتين: الخدمة لا تستطيع تحليل PDF بشكل صحيح بمفردها وتعمل بشكل سيء مع استيراد TXT البسيط. لذا قبل التعليق التوضيحي، يكتب سكريبت Python صغير يستخرج النص من PDF ويحول المستندات إلى تنسيق JSON مناسب لـ Label Studio.
"ما يدخل من سوء يخرج سوء".
ما يتبع ذلك مفيد بشكل خاص للفرق التطبيقية. لم يجد المؤلف أي مجموعة بيانات سيرة ذاتية جاهزة باللغة الروسية على Hugging Face أو Kaggle أو منصات أخرى شهيرة. لذا اضطر إلى دمج عدة نهج لإعداد المجموعة:
- التعليق التوضيحي اليدوي للسير الذاتية الحقيقية أو المحضرة في Label Studio
- ترجمة مجموعات بيانات السيرة الذاتية الإنجليزية إلى الروسية مع التحقق الإضافي
- توليد السير الذاتية الاصطناعية عبر نموذج اللغة الكبير والبيانات الوهمية من Faker
- التعليق التوضيحي الإضافي لـ EMAIL و PHONE عبر regex حيث أخطأ نموذج اللغة الكبير
توضح المقالة جيداً أن نموذج اللغة الكبير لا يزيل مشكلة جودة البيانات، بل يغير شكلها فقط. أثناء ترجمة السير الذاتية، يمكن تشويه رسائل البريد الإلكتروني وأرقام الهاتف وأسماء التكنولوجيا، وأثناء التعليق التوضيحي الآلي، أحياناً يصنف النموذج أرباب عمل مثل Oracle كمهارات، أو على العكس من ذلك، يفوت العلامات الواضحة. رؤية مهمة أخرى: يجب أن يتم التعليق على المهارات في النص بأكمله، وليس فقط في قسم "المهارات"، وإلا فإن النموذج سيتعلم قالب القسم بدلاً من الكيان نفسه. للعرض التوضيحي، جمع المؤلف 114 مستند وستة قوالس سيرة ذاتية مختلفة، لكنه يلاحظ بشكل مباشر أن الإنتاج عادة يحتاج إلى آلاف الأمثلة.
لماذا تم اختيار mBERT
تُبنى مرحلة النمذجة حول عائلة BERT. في التجربة، يقارن ستة نماذج مسبقة التدريب، بما في ذلك mBERT و XLM-RoBERTa و ruBERT و ruRoBERTa-large. حدث التدريب على RTX 3090 بـ 16 جيجابايت من ذاكرة الفيديو، وتم تقسيم المستندات الطويلة إلى أجزاء لتناسب نافذة السياق للنموذج.
تم استخدام درجة F1 للتقييم، وفي الواقع كان ruRoBERTa-large هو الأفضل. لكن المؤلف لا يتوقف هناك ولا ينتقل إلى سؤال يهم أكثر في المشاريع الحقيقية من جدول المقاييس: كم يكلف كل جزء إضافي من الجودة؟ سقط الاختيار النهائي ليس على قائد المعيار، بل على bert-base-multilingual-cased. السبب بسيط: يحتوي mBERT على 178 مليون معامل مقابل 355 مليون لـ ruRoBERTa-large، وكانت الفرق في F1 حوالي 0.
01. هذا التبادل يوفر استدلال أسرع ومتطلبات أجهزة أقل صرامة، وهو مهم بشكل خاص إذا اضطرت الخدمة لاحقاً للعمل ليس فقط على GPU بل أيضاً على CPU. فوق النموذج المختار، يبني المؤلف خدمة FastAPI مع نقطة نهاية /predict التي تأخذ نص السيرة الذاتية وتعيد الكيانات المكتشفة.
بعبارة أخرى، تأخذ المقالة الحالة ليس إلى دفتر ملاحظات به تجربة، بل إلى واجهة برمجية قابلة للحياة بالحد الأدنى.
ماذا يعني هذا
تحليل red_mad_robot قيّم لأنه يقدم الاستخراج المسمى للكيانات كمهمة هندسية، وليس كتمرين أكاديمي. الخلاصة الرئيسية بسيطة: لا تأتي النتائج العاملة من اختيار نموذج عصري، بل من مزيج من صياغة المشكلة الصحيحة ومخطط التعليق التوضيحي الصارم والتحقق اليدوي من البيانات والتوازن البراغماتي بين الجودة وتكلفة الاستدلال.
هل تريد التوقف عن قراءة الذكاء الاصطناعي والبدء باستخدامه؟
AI News هو موجز منسق لأخبار الذكاء الاصطناعي. تعلمك Hamidun Academy استخدام الذكاء الاصطناعي في عملك.
أهم ما في عالم الذكاء الاصطناعي — مرة كل أسبوع
سبع قصص مهمة فعلاً هذا الأسبوع، مختارة بعناية. بلا ضجيج ولا بيانات صحفية.
تم! تحقق من بريدك للتأكيد.