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 ٪. هذا لا يعني أننا نكتب اختبارات بدقة لكل سطر واحد - نتجاهل الكتل غير ذات صلة أو يصعب اختبارها والتأكد من تنفيذ الاختبارات جميع مسارات التعليمات البرمجية.