بداية سريعة | الوثائق | انضم إلى سلاك

Label Sleuth هو نظام مفتوح المصدر بدون رمز للشروح النصية وبناء مصنفات النص. مع Sleuth العلامة ، يمكن لخبراء المجال (على سبيل المثال ، الأطباء والمحامون وعلماء النفس) إنشاء نماذج NLP مخصصة بأنفسهم ، مع عدم وجود تبعية على خبراء NLP.
يتطلب إنشاء نماذج NLP في العالم الحقيقي مزيجًا من خبرتين - معرفة عميقة بالمجال المستهدف ، الذي يوفره خبراء المجال ، ومعرفة التعلم الآلي ، الذي يوفره خبراء NLP. وبالتالي ، يعتمد خبراء المجال على خبراء NLP. تسمية Sleuth تأتي للقضاء على هذا الاعتماد. من خلال UX البديهية ، يرافق خبراء المجال في عملية وصف البيانات وبناء نماذج NLP التي تم تصميمها لتلبية احتياجاتهم الخاصة. نظرًا لأن خبراء المجال يصفون أمثلة داخل النظام ، يتم تدريب نماذج التعلم الآلي تلقائيًا في الخلفية ، وتقديم تنبؤات على أمثلة جديدة ، وتقديم اقتراحات للمستخدمين على الأمثلة التي يجب عليهم تسميتها بعد ذلك.
Label Sleuth هو نظام بدون رمز ، ولا توجد معرفة في التعلم الآلي ، و - من سريع الحصول على نموذج - من تعريف المهمة إلى نموذج عمل في غضون ساعات قليلة!
جدول المحتويات
التثبيت للمستخدمين النهائيين
إنشاء بيئة تنمية
هيكل المشروع
باستخدام النظام
تخصيص النظام
مرجع
اتبع التعليمات على موقعنا.
يتطلب النظام Python 3.8 أو 3.9 (إصدارات أخرى غير مدعومة حاليًا وقد تتسبب في مشاكل).
استنساخ المستودع:
git clone [email protected]:label-sleuth/label-sleuth.git
قرص مضغوط للدليل المستنسخ: cd label-sleuth
قم بتثبيت تبعيات المشروع باستخدام conda (الموصى بها) أو pip :
تثبيت anaconda https://docs.anaconda.com/anaconda/install/index.html
أعد تشغيل وحدة التحكم الخاصة بك
استخدم الأوامر التالية لإنشاء بيئة Anaconda جديدة وتثبيت المتطلبات:
# Create and activate a virtual environment:
conda create --yes -n label-sleuth python=3.9
conda activate label-sleuth
# Install requirements
pip install -r requirements.txtعلى افتراض تم تثبيت Python 3.8/3.9 بالفعل.
تثبيت pip https://pip.pypa.io/en/stable/installation/
أعد تشغيل وحدة التحكم الخاصة بك
متطلبات التثبيت:
pip install -r requirements.txt ابدأ خادم Sleuth Label: قم بتشغيل python -m label_sleuth.start_label_sleuth .
بشكل افتراضي ، تتم كتابة جميع ملفات المشروع إلى <home_directory>/label-sleuth ، لتغيير الدليل إضافة- --output_path <your_output_path> .
يمكنك إضافة --load_sample_corpus wiki_animals_2000_pages لتحميل مجموعة عينة في النظام عند بدء التشغيل. هذا يجلب مجموعة من مستندات ويكيبيديا من مستودع أمثلة البيانات.
بشكل افتراضي ، سيكون المضيف localhost لفضح الخادم فقط على جهاز المضيف. إذا كنت ترغب في تعريض الخادم للاتصال الخارجي ، فأضف --host <IP> على سبيل المثال ، --host 0.0.0.0 للاستماع إلى جميع IPS.
المنفذ الافتراضي هو 8000 ، لتغيير المنفذ إضافة --port <port_number> إلى الأمر.
يمكن بعد ذلك الوصول إلى النظام عن طريق التصفح إلى http: // localhost: 8000 (أو http: // localhost: <port_number>)
يتكون المستودع من مكتبة خلفية ، مكتوبة في بيثون ، وواجهة أمامية تستخدم React. يمكن العثور على نسخة مجمعة من الواجهة الأمامية بموجب label_sleuth/build .
راجع موقع الويب الخاص بنا للحصول على برنامج تعليمي بسيط يوضح كيفية استخدام النظام مع مجموعة بيانات عينة من صفحات ويكيبيديا. قبل بدء البرنامج التعليمي ، تأكد من تحميل مجموعة البيانات المسبقة عن طريق التشغيل:
python -m label_sleuth.start_label_sleuth --load_sample_corpus wiki_animals_2000_pages .
يتم تحديد المعلمات القابلة للتكوين للنظام في ملف JSON. ملف التكوين الافتراضي هو label_sleuth/config.json.
يمكن تطبيق تكوين مخصص عن طريق تمرير المعلمة --config_path إلى أمر "start_label_sleuth" ، على سبيل المثال ، python -m label_sleuth.start_label_sleuth --config_path <path_to_my_configuration_json>
بدلاً من ذلك ، من الممكن تجاوز معلمات التكوين المحددة عند بدء التشغيل عن طريق إضافتها إلى الأمر Run ، على سبيل المثال ، python -m label_sleuth.start_label_sleuth --changed_element_threshold 100
المعلمات القابلة للتكوين:
| المعلمة | وصف |
|---|---|
first_model_positive_threshold | عدد العناصر التي يجب تعيين تسمية إيجابية للفئة من أجل تشغيل تدريب نموذج التصنيف. انظر أيضا: وثائق الاحتجاج التدريبي. |
first_model_negative_threshold | عدد العناصر التي يجب تعيين تسمية سلبية للفئة من أجل تشغيل تدريب نموذج التصنيف. انظر أيضا: وثائق الاحتجاج التدريبي. |
changed_element_threshold | عدد التغييرات في ملصقات المستخدم للفئة - نسبة إلى آخر نموذج مدرب - مطلوب لتشغيل تدريب نموذج جديد. يمكن أن يكون التغيير هو تعيين تسمية (موجب أو سلبي) لعنصر ، أو تغيير تسمية موجودة. لاحظ أنه يجب أيضًا استيفاء first_model_positive_threshold للتدريب.انظر أيضا: وثائق الاحتجاج التدريبي. |
training_set_selection_strategy | استراتيجية لاستخدامها من TrainingSetSelectionTressgy. يحدد A CorningSESESELECTIETRETTERTY الأمثلة التي سيتم إرسالها في الممارسة إلى نماذج التصنيف في وقت التدريب - لن تكون هذه بالضرورة مطابقة لمجموعة العناصر التي يحملها المستخدم. للتطبيقات المدعومة حاليًا ، انظر get_training_set_selector (). انظر أيضًا: وثائق اختيار مجموعة التدريب. |
model_policy | سياسة لاستخدامها من النماذج. يحدد نموذج modelpolicy أي نوع من طراز (نماذج) التصنيف سيتم استخدامه ، ومتى (على سبيل المثال دائمًا / فقط بعد عدد محدد من التكرارات / إلخ). انظر أيضا: وثائق اختيار النموذج. |
active_learning_strategy | استراتيجية لاستخدامها من ActivElearningCatalog. تنفذ وحدة ActivEleArner استراتيجية التوصية بالعناصر التالية التي يصفها المستخدم ، بهدف زيادة كفاءة عملية التعليقات التوضيحية. للاطلاع على التطبيقات المدعومة حاليًا ، انظر ActivElearningCatalog. انظر أيضا: وثائق التعلم النشط. |
precision_evaluation_size | حجم العينة المراد استخدامه لتقدير دقة النموذج الحالي. لاستخدامها في الإصدارات المستقبلية من النظام ، والتي ستوفر قدرات تقييم مدمجة. |
apply_labels_to_duplicate_texts | يحدد كيفية علاج العناصر بنصوص متطابقة. إذا كان true ، فإن تعيين تسمية لعنصر ما سيقوم أيضًا بتعيين نفس التسمية للعناصر الأخرى التي تشترك في نفس النص بالضبط ؛ إذا كان false ، سيتم تعيين التسمية فقط للعنصر المحدد الذي يحمله المستخدم. |
language | يحدد اللغة المختارة على مستوى النظام. هذا يحدد بعض الموارد الخاصة باللغة التي سيتم استخدامها من قبل النماذج ووظائف المساعد (على سبيل المثال ، إيقاف الكلمات). يمكن العثور على قائمة اللغات المدعومة باللغات. نرحب بإسهامات اللغات الإضافية. |
login_required | يحدد ما إذا كان استخدام النظام سيتطلب مصادقة المستخدم أم لا. إذا كان true ، يجب أن يتضمن ملف التكوين أيضًا معلمة users . |
users | ذات صلة فقط إذا كان login_required true . يحدد معلومات تسجيل الدخول المحددة مسبقًا بالتنسيق التالي:"المستخدمون": [* قائمة أسماء المستخدمين ثابتة وحاليًا يمكن لجميع المستخدمين الوصول إلى جميع مساحات العمل في النظام. |
الملصق Sleuth هو نظام وحدات. نرحب بمساهمة التطبيقات الإضافية للوحدات النمطية المختلفة ، بهدف دعم مجموعة واسعة من احتياجات المستخدمين وتسخير خوارزميات التعلم الآلي الفعالة والمبتكرة.
فيما يلي تعليمات لتنفيذ نماذج جديدة واستراتيجيات التعلم النشط:
هذه هي الخطوات لدمج نموذج تصنيف جديد:
ModelAPI جديديتم دمج نماذج التعلم الآلي عن طريق إضافة تطبيق جديد للنموذج.
الوظائف الرئيسية هي _train () ، load_model () و invort () :
def _train ( self , model_id : str , train_data : Sequence [ Mapping ], model_params : Mapping ): def load_model ( self , model_path : str ):إرجاع كائن يحتوي على جميع المكونات الضرورية لأداء الاستدلال (على سبيل المثال ، النموذج المدرب نفسه ، اللغة المعترف بها من قبل النموذج ، وموظف متجه/Tokenizer مدرب ، إلخ).
def infer ( self , model_components , items_to_infer ) -> Sequence [ Prediction ]:load_model() ، أي كائن يحتوي على جميع المكونات الضرورية لأداء الاستدلالإرجاع قائمة كائنات التنبؤ - واحد لكل عنصر في العناصر_to_infer - حيث التنبؤ. label هو منطقية وتنبؤ. يمكن تمرير المخرجات الإضافية عن طريق الوراثة من فئة التنبؤ الأساسي وإلغاء طريقة get_predutions_class ().
أضف modelapi التي تم تنفيذها حديثًا إلى ModelsCatalog
أضف واحدة أو أكثر من السياسات التي تستخدم النموذج الجديد إلى ModelPolicies
هذه هي الخطوات لدمج نهج التعلم النشط الجديد:
ActiveLearner جديديتم دمج وحدات التعلم النشط عن طريق إضافة تنفيذ جديد ل ActiveLearner API. الوظيفة للتنفيذ هي get_per_element_score :
def get_per_element_score ( self , candidate_text_elements : Sequence [ TextElement ],
candidate_text_element_predictions : Sequence [ Prediction ], workspace_id : str ,
dataset_name : str , category_name : str ) -> Sequence [ float ]: تعيد هذه الوظيفة تسلسلًا من عناصر النص وتوقعات النموذج لهذه العناصر ، وتؤدي هذه الوظيفة إلى درجة التعلم النشط لكل عنصر. سيتم التوصية بالعناصر التي لديها أعلى الدرجات للمستخدم لتسمية التالي.
ActiveLearningCatalog Eyal Shnarch ، Alon Halfon ، Ariel Gera ، Marina Danilevsky ، Yannis Katsis ، Leshem Choshen ، Martin Santillan Cooper ، Dina Epelboim ، Zheng Zhang ، Dakuo Wang ، Lucy Yip ، Liat Ein-Dor ، Lena Dankin ، Ilya Shnayderman Levin Slesarev ، Gwilym Newton ، Shila Ofek-Koifman ، Noam Slonim و Yoav Katz (Emnlp 2022). Sleuth Label: من النص غير المسماة إلى مصنف في غضون ساعات قليلة.
يرجى الاستشهاد:
@inproceedings{shnarch2022labelsleuth,
title={{L}abel {S}leuth: From Unlabeled Text to a Classifier in a Few Hours},
author={Shnarch, Eyal and Halfon, Alon and Gera, Ariel and Danilevsky, Marina and Katsis, Yannis and Choshen, Leshem and Cooper, Martin Santillan and Epelboim, Dina and Zhang, Zheng and Wang, Dakuo and Yip, Lucy and Ein-Dor, Liat and Dankin, Lena and Shnayderman, Ilya and Aharonov, Ranit and Li, Yunyao and Liberman, Naftali and Slesarev, Philip Levin and Newton, Gwilym and Ofek-Koifman, Shila and Slonim, Noam and Katz, Yoav},
booktitle={Proceedings of the 2022 Conference on Empirical Methods in Natural Language Processing ({EMNLP}): System Demonstrations},
month={dec},
year={2022},
address={Abu Dhabi, UAE},
publisher={Association for Computational Linguistics},
url={https://aclanthology.org/2022.emnlp-demos.16},
pages={159--168}
}