THINC هي مكتبة تعليمية عميقة خفيفة الوزن تقدم واجهة برمجة ذاتية الأنيقة والوظيفية للبرمجة لتأليف النماذج ، مع دعم الطبقات المحددة في أطر أخرى مثل Pytorch و TensorFlow و MXNet . يمكنك استخدام Thinc كطبقة واجهة أو مجموعة أدوات مستقلة أو طريقة مرنة لتطوير نماذج جديدة. كانت الإصدارات السابقة من Thinc تعمل بهدوء في الإنتاج في الآلاف من الشركات ، عبر كل من Spacy و Prodigy. لقد كتبنا الإصدار الجديد للسماح للمستخدمين بتكوين نماذج مخصصة وتكوينها ونشرها مع إطار عملهم المفضل.
mypy
. Thinc متوافق مع Python 3.6+ ويعمل على Linux و MacOs و Windows . تتوفر أحدث الإصدارات ذات العجلات الثنائية من PIP. قبل تثبيت Thinc وتبعياتها ، تأكد من أن pip
و setuptools
wheel
محدثة. بالنسبة للإصدارات الأحدث ، يوصى بـ PIP 19.3 أو الأحدث.
pip install -U pip setuptools wheel
pip install thinc
راجع مستندات التثبيت الموسعة للحصول على تفاصيل عن التبعيات الاختيارية للخلفية المختلفة و GPU. قد ترغب أيضًا في إعداد فحص النوع الثابت للاستفادة من نظام نوع Thinc.
️ إذا كنت قد قمت بتثبيت Pytorch وكنت تستخدم Python 3.7+ ، فقم بإلغاء تثبيت بنظاتdataclasses
معpip uninstall dataclasses
، حيث ربما تم تثبيتها بواسطة Pytorch ولا تتوافق مع Python 3.7+.
انظر أيضًا /examples
دليل الاستخدام لمزيد من الأمثلة. معظم الأمثلة هي أجهزة الكمبيوتر المحمولة Jupyter - لإطلاقها على Google Colab (مع دعم GPU!) انقر فوق الزر بجوار اسم دفتر الملاحظات.
دفتر | وصف |
---|---|
intro_to_thinc | كل ما تحتاج إلى معرفته للبدء. تأليف وتدريب نموذج على بيانات MNIST ، باستخدام ملفات التكوين ، وتسجيل وظائف مخصصة ورفع PYTORCH و TENSORFLOW و MXNET. |
transformers_tagger_bert | كيفية استخدام Thinc و transformers و Pytorch لتدريب tagger جزء من الكلام. من تعريف النموذج والتكوين إلى حلقة التدريب. |
pos_tagger_basic_cnn | تنفيذ وتدريب CNN أساسي لنموذج وضع العلامات على جزء من الكلام دون تبعيات خارجية واستخدام مستويات مختلفة من نظام تكوين Thinc. |
parallel_training_ray | كيفية إعداد تدريب خادم المعلمة المتزامن وغير المتزامن مع Thinc و Ray. |
عرض المزيد →
الوثائق | وصف |
---|---|
مقدمة | كل ما تحتاج إلى معرفته. |
المفهوم والتصميم | نموذج ثينك المفاهيمي وكيف يعمل. |
تحديد النماذج واستخدامها | كيفية تكوين النماذج وتحديث الحالة. |
نظام التكوين | نظام تكوين Thinc وتسجيل الوظائف. |
دمج Pytorch و TensorFlow و Mxnet | قابلية التشغيل البيني مع أطر التعلم الآلي |
الطبقات API | طبقات الأوزان والتحويلات والمجموعات والأغلفة. |
اكتب فحص | اكتب تعاريف النموذج الخاصة بك وأكثر من ذلك. |
الوحدة النمطية | وصف |
---|---|
thinc.api | واجهة برمجة التطبيقات التي تواجه المستخدم. يجب استيراد جميع الفئات والوظائف من هنا. |
thinc.types | الأنواع المخصصة ونظارات البيانات. |
thinc.model | فئة Model . جميع نماذج THINC هي مثيل (وليس فئة فرعية) من Model . |
thinc.layers | الطبقات. يتم تنفيذ كل طبقة في الوحدة النمطية الخاصة بها. |
thinc.shims | واجهة للنماذج الخارجية التي تم تنفيذها في Pytorch و TensorFlow وما إلى ذلك. |
thinc.loss | وظائف لحساب الخسائر. |
thinc.optimizers | وظائف لإنشاء مُحسّنات. يدعم حاليًا "الفانيليا" SGD و Adam و Radam. |
thinc.schedules | المولدات لمعدلات مختلفة ، جداول ، الانحلال أو السلسلة. |
thinc.backends | الخلفية ل numpy cupy . |
thinc.config | تكوين التحليل والتحقق من صحة ونظام سجل الوظائف. |
thinc.util | المرافق ووظائف المساعد. |
يستخدم Thinc black
للتنسيق التلقائي ، flake8
للبطانة و mypy
لفحص النوع. يتم كتابة جميع التعليمات البرمجية مع Python 3.6+ ، مع تلميحات النوع كلما كان ذلك ممكنًا. انظر مرجع النوع لمزيد من التفاصيل حول أنواع Thinc المخصصة.
يتطلب بناء Thinc من المصدر التبعيات الكاملة المدرجة في requirements.txt
. يجب تثبيت txt. ستحتاج أيضًا إلى مترجم لإنشاء ملحقات C.
git clone https://github.com/explosion/thinc
cd thinc
python -m venv .env
source .env/bin/activate
pip install -U pip setuptools wheel
pip install -r requirements.txt
pip install --no-build-isolation .
بدلاً من ذلك ، التثبيت في الوضع القابل للتحرير:
pip install -r requirements.txt
pip install --no-build-isolation --editable .
أو عن طريق ضبط PYTHONPATH
:
export PYTHONPATH= ` pwd `
pip install -r requirements.txt
python setup.py build_ext --inplace
ثينك يأتي مع مجموعة اختبار واسعة النطاق. ما يلي يجب أن يمر جميعهم وعدم الإبلاغ عن أي تحذيرات أو أخطاء:
python -m pytest thinc # test suite
python -m mypy thinc # type checks
python -m flake8 thinc # linting
لعرض تغطية الاختبار ، يمكنك تشغيل python -m pytest thinc --cov=thinc
. نحن نهدف لتغطية اختبار 100 ٪. هذا لا يعني أننا نكتب اختبارات بدقة لكل سطر واحد - نتجاهل الكتل غير ذات صلة أو يصعب اختبارها والتأكد من تنفيذ الاختبارات جميع مسارات التعليمات البرمجية.