لقد حقق AllenNLP نجاحًا كبيرًا، ولكن بما أن هذا المجال يتقدم بسرعة، فقد حان الوقت للتركيز على المبادرات الجديدة. نحن نعمل بجد لجعل AI2 Tango أفضل طريقة لتنظيم قواعد الأكواد البحثية. إذا كنت مستخدمًا نشطًا لبرنامج AllenNLP، فإليك بعض البدائل المقترحة:
modules
AllenNLP وحزم nn
، فاطلع على delmaksym/allennlp-light. إنه متوافق حتى مع AI2 Tango!إذا كنت مهتمًا باستخدام AllenNLP لتطوير النماذج، فنوصيك بمراجعة دليل AllenNLP للحصول على مقدمة شاملة للمكتبة، متبوعة بأدلتنا الأكثر تقدمًا حول مناقشات GitHub.
عندما تكون مستعدًا لبدء مشروعك، قمنا بإنشاء مستودعين للنماذج يمكنك استخدامهما كنقطة بداية:
allennlp train
لتحديد التجارب، فاستخدم هذا القالب. ونحن نوصي بهذا النهج.بالإضافة إلى ذلك، هناك دروس خارجية:
وغيرها على مدونة AI2 AllenNLP.
يدعم AllenNLP تحميل "المكونات الإضافية" ديناميكيًا. المكون الإضافي هو مجرد حزمة Python التي توفر فئات مسجلة مخصصة أو أوامر فرعية allennlp
إضافية.
يوجد نظام بيئي للمكونات الإضافية مفتوحة المصدر، بعضها تتم صيانته بواسطة فريق AllenNLP هنا في AI2، وبعضها تتم صيانته بواسطة المجتمع الأوسع.
البرنامج المساعد | معيل | سطر الأوامر | وصف |
allennlp-models | AI2 | لا | مجموعة من الموديلات الحديثة |
allennlp-semparse | AI2 | لا | إطار لبناء المحللين الدلالي |
allennlp-server | AI2 | نعم | خادم تجريبي بسيط لخدمة النماذج |
allennlp-optuna | ماكوتو هيراماتسو | نعم | تكامل Optuna لتحسين المعلمة الفائقة |
سيعثر AllenNLP تلقائيًا على أي مكونات إضافية رسمية قمت بتثبيتها بواسطة AI2، ولكن لكي يتمكن AllenNLP من العثور على مكونات إضافية شخصية أو تابعة لجهات خارجية قمت بتثبيتها، يجب عليك أيضًا إنشاء ملف مكونات إضافية محلي باسم .allennlp_plugins
في الدليل الذي تقوم بتشغيله الأمر allennlp
، أو ملف المكونات الإضافية العامة على ~/.allennlp/plugins
. يجب أن يسرد الملف وحدات المكونات الإضافية التي تريد تحميلها، واحدة في كل سطر.
لاختبار إمكانية العثور على المكونات الإضافية واستيرادها بواسطة AllenNLP، يمكنك تشغيل أمر allennlp test-install
. سيتم تسجيل كل مكون إضافي تم اكتشافه في الجهاز.
لمزيد من المعلومات حول المكونات الإضافية، راجع مستندات واجهة برمجة تطبيقات المكونات الإضافية. وللحصول على معلومات حول كيفية إنشاء أمر فرعي مخصص لتوزيعه كمكون إضافي، راجع مستندات واجهة برمجة التطبيقات للأوامر الفرعية.
com.allennlp | مكتبة أبحاث البرمجة اللغوية العصبية مفتوحة المصدر، مبنية على PyTorch |
allennlp.commands | وظيفة CLI |
allennlp.common | وحدات المساعدة التي يتم استخدامها عبر المكتبة |
allennlp.data | وحدة معالجة بيانات لتحميل مجموعات البيانات وترميز السلاسل كأعداد صحيحة لتمثيلها في المصفوفات |
allennlp.fairness | وحدة لتخفيف التحيز وخوارزميات ومقاييس العدالة |
allennlp.modules | مجموعة من وحدات PyTorch للاستخدام مع النص |
allennlp.nn | وظائف أداة Tensor، مثل المُهيئات ووظائف التنشيط |
allennlp.training | وظائف نماذج التدريب |
يتطلب AllenNLP إصدار Python 3.6.1 أو إصدار أحدث وPyTorch.
نحن ندعم AllenNLP على بيئات Mac وLinux. نحن لا ندعم Windows حاليًا ولكننا منفتحون على المساهمات.
إن أبسط طريقة لتثبيت AllenNLP هي استخدام conda (يمكنك اختيار إصدار مختلف من لغة python):
conda install -c conda-forge python=3.8 allennlp
لتثبيت الحزم الاختيارية، مثل checklist
، استخدم
conda install -c conda-forge allennlp-checklist
أو ببساطة قم بتثبيت allennlp-all
مباشرةً. المكونات الإضافية المذكورة أعلاه قابلة للتثبيت بالمثل، على سبيل المثال
conda install -c conda-forge allennlp-models allennlp-semparse allennlp-server allennlp-optuna
يوصى بتثبيت نظام PyTorch البيئي قبل تثبيت AllenNLP باتباع الإرشادات الموجودة على pytorch.org.
بعد ذلك، فقط قم بتشغيل pip install allennlp
.
️ إذا كنت تستخدم Python 3.7 أو أحدث، فيجب عليك التأكد من عدم تثبيت إصدار PyPI منdataclasses
بعد تشغيل الأمر أعلاه، لأن هذا قد يسبب مشكلات على منصات معينة. يمكنك التحقق من ذلك بسرعة عن طريق تشغيلpip freeze | grep dataclasses
إذا رأيت شيئًا مثلdataclasses=0.6
في الإخراج، فما عليك سوى تشغيلpip uninstall -y dataclasses
.
إذا كنت بحاجة إلى إرشادات حول إعداد بيئة Python مناسبة أو كنت ترغب في تثبيت AllenNLP باستخدام طريقة مختلفة، انظر أدناه.
يمكن استخدام Conda لإعداد بيئة افتراضية باستخدام إصدار Python المطلوب لـ AllenNLP. إذا كان لديك بالفعل بيئة Python 3 التي تريد استخدامها، فيمكنك الانتقال إلى قسم "التثبيت عبر النقطة".
قم بتنزيل وتثبيت كوندا.
أنشئ بيئة Conda باستخدام Python 3.8 (سيعمل الإصدار 3.7 أو 3.9 أيضًا):
conda create -n allennlp_env python=3.8
تفعيل بيئة كوندا. ستحتاج إلى تنشيط بيئة Conda في كل محطة تريد استخدام AllenNLP فيها:
conda activate allennlp_env
يعد تثبيت المكتبة والتبعيات أمرًا بسيطًا باستخدام pip
.
pip install allennlp
لتثبيت التبعيات الاختيارية، مثل checklist
، قم بتشغيل
pip install allennlp[checklist]
أو يمكنك فقط تثبيت جميع التبعيات الاختيارية باستخدام pip install allennlp[all]
.
هل تبحث عن ميزات حافة النزيف؟ يمكنك تثبيت الإصدارات الليلية مباشرةً من pypi
يقوم AllenNLP بتثبيت برنامج نصي عند تثبيت حزمة python، بحيث يمكنك تشغيل أوامر allennlp فقط عن طريق كتابة allennlp
في الوحدة الطرفية. على سبيل المثال، يمكنك الآن اختبار التثبيت باستخدام allennlp test-install
.
قد ترغب أيضًا في تثبيت allennlp-models
، الذي يحتوي على بنيات البرمجة اللغوية العصبية (NLP) لتدريب وتشغيل نماذجنا المدعومة رسميًا، والتي تتم استضافة العديد منها على https://demo.allennlp.org.
pip install allennlp-models
يوفر Docker جهازًا افتراضيًا مزودًا بكل شيء تم إعداده لتشغيل AllenNLP - سواء كنت ستستفيد من وحدة معالجة الرسومات (GPU) أو تعمل فقط على وحدة المعالجة المركزية (CPU). يوفر Docker مزيدًا من العزلة والاتساق، كما يسهل أيضًا توزيع بيئتك على مجموعة حوسبة.
يوفر AllenNLP صور Docker الرسمية مع تثبيت المكتبة وجميع تبعياتها.
بمجرد تثبيت Docker، يجب عليك أيضًا تثبيت NVIDIA Container Toolkit إذا كانت لديك وحدات معالجة رسومات متاحة.
ثم قم بتشغيل الأمر التالي للحصول على بيئة تعمل على وحدة معالجة الرسومات:
mkdir -p $HOME /.allennlp/
docker run --rm --gpus all -v $HOME /.allennlp:/root/.allennlp allennlp/allennlp:latest
يمكنك اختبار بيئة Docker باستخدام
docker run --rm --gpus all -v $HOME /.allennlp:/root/.allennlp allennlp/allennlp:latest test-install
إذا لم تكن وحدات معالجة الرسومات متاحة لديك، فما عليك سوى حذف علامة --gpus all
.
لأسباب مختلفة، قد تحتاج إلى إنشاء صورة AllenNLP Docker الخاصة بك، مثل إذا كنت بحاجة إلى إصدار مختلف من PyTorch. للقيام بذلك، ما عليك سوى تشغيل make docker-image
من جذر نسختك المحلية من AllenNLP.
افتراضيًا، يؤدي هذا إلى إنشاء صورة بالعلامة allennlp/allennlp
، ولكن يمكنك تغيير ذلك إلى أي شيء تريده عن طريق تعيين علامة DOCKER_IMAGE_NAME
عند استدعاء make
. على سبيل المثال، make docker-image DOCKER_IMAGE_NAME=my-allennlp
.
إذا كنت تريد استخدام إصدار مختلف من Python أو PyTorch، فاضبط العلامتين DOCKER_PYTHON_VERSION
و DOCKER_TORCH_VERSION
على شيء مثل 3.9
1.9.0-cuda10.2
، على التوالي. تحدد هذه العلامات معًا الصورة الأساسية المستخدمة. يمكنك الاطلاع على قائمة المجموعات الصالحة في سجل حاوية GitHub: github.com/allenai/docker-images/pkgs/container/pytorch.
بعد إنشاء الصورة، يجب أن تكون قادرًا على رؤيتها مدرجة عن طريق تشغيل docker images allennlp
.
REPOSITORY TAG IMAGE ID CREATED SIZE
allennlp/allennlp latest b66aee6cb593 5 minutes ago 2.38GB
يمكنك أيضًا تثبيت AllenNLP عن طريق استنساخ مستودع git الخاص بنا:
git clone https://github.com/allenai/allennlp.git
قم بإنشاء بيئة افتراضية لـ Python 3.7 أو 3.8، وقم بتثبيت AllenNLP في الوضع editable
عن طريق تشغيل:
pip install -U pip setuptools wheel
pip install --editable .[dev,all]
سيؤدي هذا إلى جعل allennlp
متاحًا على نظامك ولكنه سيستخدم المصادر من النسخة المحلية التي قمت بإنشائها من مستودع المصدر.
يمكنك اختبار التثبيت باستخدام allennlp test-install
. راجع https://github.com/allenai/allennlp-models للحصول على إرشادات حول تثبيت allennlp-models
من المصدر.
بمجرد تثبيت AllenNLP، يمكنك تشغيل واجهة سطر الأوامر باستخدام أمر allennlp
(سواء قمت بالتثبيت من pip
أو من المصدر). يحتوي allennlp
على أوامر فرعية مختلفة مثل train
evaluate
predict
. لرؤية معلومات الاستخدام الكاملة، قم بتشغيل allennlp --help
.
يمكنك اختبار التثبيت الخاص بك عن طريق تشغيل allennlp test-install
.
نرحب بالجميع لتقديم المشكلات المتعلقة بطلبات الميزات أو تقارير الأخطاء أو الأسئلة العامة. باعتبارنا فريقًا صغيرًا له أهدافنا الداخلية الخاصة، قد نطلب مساهمات إذا كان الإصلاح السريع لا يتناسب مع خريطة الطريق الخاصة بنا. للحفاظ على الأمور مرتبة، غالبًا ما نقوم بإغلاق المشكلات التي نعتقد أنه تمت الإجابة عليها، ولكن لا تتردد في المتابعة إذا كانت هناك حاجة إلى مزيد من المناقشة.
يرحب فريق AllenNLP في AI2 (@allenai) بمساهمات المجتمع. إذا كنت مساهمًا لأول مرة، فنوصيك بالبدء بقراءة دليل CONTRIBUTING.md الخاص بنا. ثم قم بإلقاء نظرة على مشكلاتنا مع العلامة Good First Issue
.
إذا كنت ترغب في المساهمة بميزة أكبر، نوصي أولاً بإنشاء مشكلة بتصميم مقترح للمناقشة. سيمنعك هذا من قضاء وقت كبير في التنفيذ الذي يحتوي على قيود فنية كان من الممكن أن يشير إليها شخص ما في وقت مبكر. يمكن تقديم مساهمات صغيرة مباشرة في طلب السحب.
يجب أن تحتوي طلبات السحب (PRs) على مراجعة موافقة واحدة ولا توجد تغييرات مطلوبة قبل دمجها. نظرًا لأن AllenNLP مدفوع بشكل أساسي بواسطة AI2، فإننا نحتفظ بالحق في رفض أو التراجع عن المساهمات التي لا نعتقد أنها إضافات جيدة.
إذا كنت تستخدم AllenNLP في بحثك، فيرجى الاستشهاد بـ AllenNLP: منصة معالجة اللغات الطبيعية الدلالية العميقة.
@inproceedings { Gardner2017AllenNLP ,
title = { AllenNLP: A Deep Semantic Natural Language Processing Platform } ,
author = { Matt Gardner and Joel Grus and Mark Neumann and Oyvind Tafjord
and Pradeep Dasigi and Nelson F. Liu and Matthew Peters and
Michael Schmitz and Luke S. Zettlemoyer } ,
year = { 2017 } ,
Eprint = { arXiv:1803.07640 } ,
}
AllenNLP هو مشروع مفتوح المصدر مدعوم من معهد ألين للذكاء الاصطناعي (AI2). AI2 هو معهد غير ربحي مهمته المساهمة في خدمة الإنسانية من خلال أبحاث وهندسة الذكاء الاصطناعي عالية التأثير. لمعرفة المزيد حول من ساهم على وجه التحديد في قاعدة التعليمات البرمجية هذه، راجع صفحة المساهمين لدينا.