يحتوي هذا المستودع على المكونات - مثل فئات DatasetReader و Model و Predictor - لتطبيق Allennlp على مجموعة واسعة من مهام NLP. كما يوفر طريقة سهلة لتنزيل واستخدام النماذج المدربة مسبقًا والتي تم تدريبها مع هذه المكونات.
هذه نظرة عامة على المهام التي تدعمها مكتبة نماذج AllennLP جنبًا إلى جنب مع المكونات المقابلة المقدمة ، التي تنظمها الفئة. للحصول على نظرة عامة أكثر شمولاً ، راجع وثائق نماذج Allennlp أو صفحة PapersWithCode.
تصنيف
تتضمن مهام التصنيف التنبؤ بملصقات واحدة أو أكثر من مجموعة محددة مسبقًا لتعيين كل إدخال. ومن الأمثلة على ذلك تحليل المشاعر ، حيث قد تكون الملصقات {"positive", "negative", "neutral"} والإجابة على أسئلة ثنائية ، حيث تكون الملصقات {True, False} .
؟ المكونات المقدمة: قارئات مجموعات البيانات لمختلف مجموعات البيانات ، بما في ذلك BoolQ و SST ، بالإضافة إلى نموذج شبكة التصنيف الثنائية.
قرار الأساسي
تتطلب مهام قرار Coreference إيجاد جميع التعبيرات في نص يشير إلى الكيانات الشائعة.
انظر NLP.Stanford.edu/projects/coref لمزيد من التفاصيل.
؟ المكونات المقدمة: نموذج COREF العام والعديد من قراء مجموعات البيانات.
جيل
هذه فئة واسعة للمهام مثل التلخيص الذي يتضمن توليد نص غير متغير وغالبًا ما يكون متغيرًا.
؟ المكونات المقدمة: العديد من نماذج SEQ2Seq مثل BART و COPYNET و SEQ2SEQ مؤلفة عامة ، إلى جانب قراء مجموعة البيانات المقابلة.
نمذجة اللغة
تتضمن مهام نمذجة اللغة تعلم توزيع الاحتمال على تسلسل الرموز.
؟ المكونات المقدمة: العديد من تطبيقات نموذج اللغة ، مثل LM المقنعة ورمز LM المجاور.
الاختيار من متعدد
تتطلب مهام الاختيار من متعدد اختيار الاختيار الصحيح بين البدائل ، حيث قد تكون مجموعة الخيارات مختلفة لكل إدخال. هذا يختلف عن التصنيف حيث يتم تعريف مجموعة الخيارات مسبقًا وتثبيته عبر جميع المدخلات.
؟ المكونات المقدمة: نموذج خيار متعدد القائم على المحول وحفنة من قراء مجموعات البيانات لمجموعات بيانات محددة.
تصنيف الزوج
التصنيف الزوجي هو فئة واسعة أخرى تحتوي على مهام مثل الاستفادة من النص ، والتي تتمثل في تحديد ما إذا كانت الحقائق في الجملة الأولى ، بالنسبة لزوج من الجمل ، تعني الحقائق في الثانية.
؟ المكونات المقدمة: قراء مجموعات البيانات لعدة مجموعات بيانات ، بما في ذلك SNLI و Quora Paraphrase.
القراءة الفهم
تتضمن مهام الفهم القراءة الإجابة على أسئلة حول مرور النص لإظهار أن النظام يفهم المقطع.
؟ المكونات المقدمة: نماذج مثل BIDAF ونموذج ضمان الجودة القائم على المحولات ، وكذلك القراء لمجموعات البيانات مثل Drop و Quac و Squad.
التنبؤ منظم
يتضمن التنبؤ المنظم مهام مثل وضع العلامات على الأدوار الدلالية (SRL) ، وهو لتحديد بنية الحجة المسند الكامنة للجمل وتقديم تمثيلات يمكنها الإجابة على الأسئلة الأساسية حول معنى الجملة ، بما في ذلك من فعل ما الذي فعل مع من ، إلخ ، إلخ.
؟ المكونات المقدمة: قراء مجموعات البيانات لبنك تري بنك ، Ontonotes ، وما إلى ذلك ، والعديد من الطرز بما في ذلك واحدة لـ SRL وحجم الرسم البياني العام للغاية.
تسلسل العلامات
تتضمن مهام العلامات التسلسلية اسم التعرف على الكيان (NER) و NER الحبيبات الدقيقة.
؟ المكونات المقدمة: نموذج حقل عشوائي مشروط وقراء مجموعات البيانات لمجموعات البيانات مثل Conll-2000 و Conll-2003 و CCGBank و Ontonotes.
نص + رؤية
هذه فئة من جميع النصوصات لأي نص + Vision Multi Masks مثل الإجابة على السؤال البصري (VQA) ، ومهمة إنشاء إجابة استجابةً لسؤال اللغة الطبيعية حول محتويات الصورة.
؟ المكونات المقدمة: العديد من النماذج مثل نموذج Vilbert لـ VQA وواحد للاستفادة المرئية ، إلى جانب قراء مجموعات البيانات المقابلة.
يحتوي كل نموذج مسبق في نماذج Allennlp على ModelCard مقابلة في allennlp_models/modelcards/ Folder. يتم أيضًا استضافة العديد من هذه الطرز على Alnenlp Demo ومعرض مشروع Allennlp.
لسرد النماذج المتاحة برمجياً ، يمكنك تشغيل ما يلي من جلسة بيثون:
> >> from allennlp_models import pretrained
> >> print ( pretrained . get_pretrained_models ()) الإخراج هو قاموس يرسم معرفات النموذج إلى ModelCard الخاصة بهم:
{'structured-prediction-srl-bert': <allennlp.common.model_card.ModelCard object at 0x14a705a30>, ...}
يمكنك تحميل Predictor لأي من هذه النماذج مع المساعد pretrained.load_predictor() . على سبيل المثال:
> >> pretrained . load_predictor ( "mc-roberta-swag" )فيما يلي قائمة بالنماذج المدربة مسبقًا المتاحة حاليًا.
coref-spanbert -COREF من الدرجة العليا مع الاستدلال الخشن إلى الخزانة (مع تضمينات Spanbert).evaluate_rc-lerc - نموذج BERT الذي يسجل إجابات المرشح من 0 إلى 1.generation-bart - بارت برأس نموذج لغوي للجيل.glove-sst - LSTM المصنف الثنائي مع تضمينات القفازات.lm-masked-language-model نموذج لغة مقنعة على أساس Bertlm-next-token-lm-gpt2 نموذج لغة GPT-2 من Openai الذي يولد الرمز المميز التالي.mc-roberta-commonsenseqa نموذج الاختيار من متعدد مقرها روبرتا لـ Comminenseqa.mc-roberta-piqa PIQA-نموذج الاختيار من متعدد مقرها روبرتا لـ PIQA.mc-roberta-swag SWAG-نموذج الاختيار من متعدد مقرها روبرتا لـ SWAG.nlvr2-vilbert نموذج قائم على Vilbert للاستفادة البصرية.nlvr2-vilbert نموذج قائم على Vilbert للاستفادة البصرية.pair-classification-adversarial-binary-gender-bias-mitigated-roberta-snli روبرتا في فني على SNLI مع التخفيف من التحيز بين الجنسين الثنائية.pair-classification-binary-gender-bias-mitigated-roberta-snli روبرتا تمتعت بصياغة SNLI مع التخفيف من التحيز بين الجنسين.pair-classification-decomposable-attention-elmo نموذج الانتباه القابل للتحلل (Parikh et al ، 2017) جنبًا إلى جنب مع Elmo Ambeddings المدربة على SNLI.pair-classification-esim -LSTM المحسّن المدربين على SNLI.pair-classification-roberta-mnli -روبرتا فينيت في مينيلي.pair-classification-roberta-rte -نموذج تصنيف زوج منقوش بعد النموذج المقترح في Devlin et al ، تم ضبطه على Superglue RTE Corpuspair-classification-roberta-snli -روبرتا فني على SNLI.rc-bidaf-elmo نموذج BIDAF مع ELMO تضمينات بدلاً من القفاز.rc-bidaf - نموذج BIDAF مع تضمينات القفازات.rc-naqanet - نسخة معززة من QANET تضيف قدرة التفكير العددي البدائي ، تم تدريبها على DROP (Dua et al. ، 2019) ، كما تم نشره في ورقة الإسقاط الأصلية.rc-nmn - شبكة الوحدة العصبية المدربة على الهبوط.rc-transformer-qa نموذج فهم للقراءة منقوش بعد النموذج المقترح في Devlin et al ، مع تحسينات مستعارة من نموذج الفريق في مشروع Transformersroberta-sst مصنف Binary ومقره روبرتا لـ Stanford Security TreeBankstructured-prediction-biaffine-parser -نموذج عصبي لتحليل التبعية باستخدام مصنفات بيافاين أعلى LSTM ثنائية الاتجاه.structured-prediction-constituency-parser -محلل الدائرة مع إدمان القائم على الشخصيةstructured-prediction-srl-bert نموذج يعتمد على BERT (Shi et al ، 2019) مع بعض التعديلات (لا توجد معلمات إضافية بصرف النظر عن طبقة التصنيف الخطية)structured-prediction-srl إعادة تنفيذ نموذج تنبؤ بسلسلة BILSTM العميق (Stanovsky et al. ، 2018)tagging-elmo-crf-tagger -ner tagger باستخدام تشفير أحرف وحدة متكررة (GRU) وكذلك تشفير عبارة GRU ، مع تضمينات القفازات.tagging-fine-grained-crf-tagger يحدد هذا النموذج نطاقًا واسعًا من 16 نوعًا دلاليًا في نص الإدخال. إنه إعادة تنفيذ Lample (2016) ويستخدم BILSTM مع طبقة CRF ، وتضمينات الأحرف وتضمينات Elmo.tagging-fine-grained-transformer-crf-tagger نموذج NER ذو الحبيبات الدقيقةve-vilbert نموذج قائم على Vilbert للاستفادة البصرية.vgqa-vilbert -Vilbert (اختصار لـ BERT في الرؤية واللغة) ، هو نموذج لتعلم تمثيلات مفصل المهمة المهملة لمحتوى الصورة واللغة الطبيعية.vqa-vilbert -Vilbert (اختصار لـ BERT في الرؤية واللغة) ، هو نموذج لتعلم تمثيلات مفصل المهمة المهملة لمحتوى الصورة واللغة الطبيعية. يتوفر allennlp-models على PYPI. للتثبيت مع pip ، فقط تشغيل
pip install allennlp-models لاحظ أن حزمة allennlp-models مرتبطة بحزمة allennlp الأساسية. لذلك عند تثبيت حزمة النماذج ، ستحصل على الإصدار المقابل من allennlp (إذا لم تكن قد قمت بالفعل بتثبيت allennlp ). على سبيل المثال،
pip install allennlp-models==2.2.0
pip freeze | grep allennlp
# > allennlp==2.2.0
# > allennlp-models==2.2.0 إذا كنت تنوي تثبيت حزمة النماذج من المصدر ، فربما تريد أيضًا تثبيت allennlp من المصدر. بمجرد تثبيت allennlp ، قم بتشغيل ما يلي في نفس بيئة Python:
git clone https://github.com/allenai/allennlp-models.git
cd allennlp-models
ALLENNLP_VERSION_OVERRIDE= ' allennlp ' pip install -e .
pip install -r dev-requirements.txt يضمن متغير البيئة ALLENNLP_VERSION_OVERRIDE أن تبعية allennlp غير مدعومة بحيث يكون تثبيت allennlp المحلي كافيًا. ومع ذلك ، إذا لم تقم بتثبيت allennlp بعد ولا ترغب في إدارة تثبيت محلي ، فما عليك سوى حذف متغير البيئة وسيتم تثبيت allennlp من الفرع الرئيسي على Github.
يتم تطوير كل من allennlp و allennlp-models واختبارها جنبًا إلى جنب ، لذلك يجب أن تظل محدثة مع بعضها البعض. إذا نظرت إلى سير العمل في إجراءات GitHub allennlp-models ، يتم اختباره دائمًا مقابل الفرع الرئيسي لـ allennlp . وبالمثل ، يتم اختبار allennlp دائمًا مقابل الفرع الرئيسي allennlp-models .
يوفر Docker جهازًا افتراضيًا مع كل شيء تم إعداده لتشغيل Allennlp- سواء كنت ستستفيد من وحدة معالجة الرسومات أو فقط تشغيل وحدة المعالجة المركزية. يوفر Docker مزيدًا من العزلة والاتساق ، ويجعل أيضًا من السهل توزيع بيئتك على مجموعة حسابية.
بمجرد تثبيت Docker ، يمكنك إما استخدام صورة مصنوعة مسبقًا من إصدار أو إنشاء صورة محليًا مع أي إصدار من allennlp-models allennlp و Allennlp.
إذا كان لديك وحدات معالجة الرسومات المتاحة ، فأنت بحاجة أيضًا إلى تثبيت وقت تشغيل Nvidia-Docker.
لإنشاء صورة محليًا من إصدار محدد ، قم بتشغيله
docker build
--build-arg RELEASE=1.2.2
--build-arg CUDA=10.2
-t allennlp/models - < Dockerfile.release ما عليك سوى استبدال RELEASE و CUDA Build Args بما تحتاجه. يمكنك التحقق من العلامات المتاحة على Docker Hub لمعرفة إصدارات CUDA المتاحة RELEASE معين.
بدلاً من ذلك ، يمكنك البناء ضد ارتباطات محددة من allennlp-models allennlp و Allennlp مع
docker build
--build-arg ALLENNLP_COMMIT=d823a2591e94912a6315e429d0fe0ee2efb4b3ee
--build-arg ALLENNLP_MODELS_COMMIT=01bc777e0d89387f03037d398cd967390716daf1
--build-arg CUDA=10.2
-t allennlp/models - < Dockerfile.commit فقط قم بتغيير ALLENNLP_COMMIT / ALLENNLP_MODELS_COMMIT و CUDA بناء args إلى إصدارات الالتزام المطلوبة Shas و CUDA ، على التوالي.
بمجرد قيامك ببناء صورتك ، يمكنك تشغيلها على هذا النحو:
mkdir -p $HOME /.allennlp/
docker run --rm --gpus all -v $HOME /.allennlp:/root/.allennlp allennlp/modelsملاحظة:
--gpus allصالحة فقط إذا قمت بتثبيت وقت تشغيل NVIDIA-Docker.