THINC est une bibliothèque d'apprentissage en profondeur légère qui propose une API de programmation fonctionnelle élégante, vérifiée par type pour la composition , avec une prise en charge des couches définies dans d'autres cadres tels que Pytorch, Tensorflow et MXNET . Vous pouvez utiliser THINC comme couche d'interface, une boîte à outils autonome ou un moyen flexible de développer de nouveaux modèles. Les versions précédentes de THINC se sont déroulées tranquillement en production dans des milliers d'entreprises, via Spacy et Prodigy. Nous avons écrit la nouvelle version pour permettre aux utilisateurs composer, configurer et déployer des modèles personnalisés construits avec leur cadre préféré.
mypy
. THINC est compatible avec Python 3.6+ et s'exécute sur Linux , MacOS et Windows . Les dernières versions avec des roues binaires sont disponibles auprès de PIP. Avant d'installer THINC et ses dépendances, assurez-vous que votre pip
, setuptools
et wheel
sont à jour. Pour les versions les plus récentes, PIP 19.3 ou plus récent est recommandé.
pip install -U pip setuptools wheel
pip install thinc
Voir les documents d'installation étendus pour plus de détails sur les dépendances facultatives pour différents backends et GPU. Vous pouvez également configurer la vérification de type statique pour profiter du système de type THINC.
️ Si vous avez installé Pytorch et que vous utilisez Python 3.7+, désinstallez lesdataclasses
du package avecpip uninstall dataclasses
, car il peut avoir été installé par Pytorch et est incompatible avec Python 3.7+.
Consultez également le répertoire /examples
de documentation d'utilisation pour plus d'exemples. La plupart des exemples sont des cahiers Jupyter - pour les lancer sur Google Colab (avec le support GPU!) Cliquez sur le bouton à côté du nom du ordinateur portable.
Carnet de notes | Description |
---|---|
intro_to_thinc | Tout ce que vous devez savoir pour commencer. Composer et former un modèle sur les données MNIST, à l'aide de fichiers config, enregistrer des fonctions personnalisées et emballage des modèles Pytorch, TensorFlow et MXNET. |
transformers_tagger_bert | Comment utiliser THINC, transformers et Pytorch pour former un étiqueteur de dispositif de partie. De la définition du modèle et de la configuration à la boucle de formation. |
pos_tagger_basic_cnn | Implémentation et formation d'un CNN de base pour le modèle de marquage d'une partie du discours sans dépendances externes et en utilisant différents niveaux du système de configuration de THINC. |
parallel_training_ray | Comment configurer la formation de serveur de paramètres synchrones et asynchrones avec THINC et Ray. |
Afficher plus →
Documentation | Description |
---|---|
Introduction | Tout ce que vous devez savoir. |
Concept et design | Le modèle conceptuel de THINC et comment cela fonctionne. |
Définir et utiliser des modèles | Comment composer les modèles et mettre à jour l'état. |
Système de configuration | Le système de configuration et le registre des fonctions de THINC. |
Intégration de Pytorch, TensorFlow et Mxnet | Interopérabilité avec les cadres d'apprentissage automatique |
API des couches | Ponde les couches, transformes, combinateurs et emballages. |
Vérification des types | Vérifiez les définitions de votre modèle et plus encore. |
Module | Description |
---|---|
thinc.api | API orientée vers les utilisateurs. Toutes les classes et fonctions doivent être importées d'ici. |
thinc.types | Types personnalisés et classes de données. |
thinc.model | La classe Model . Tous les modèles THINC sont une instance (pas une sous-classe) de Model . |
thinc.layers | Les couches. Chaque couche est implémentée dans son propre module. |
thinc.shims | Interface pour les modèles externes implémentés dans Pytorch, TensorFlow, etc. |
thinc.loss | Fonctions pour calculer les pertes. |
thinc.optimizers | Fonctions pour créer des optimisateurs. Soutient actuellement SGD "Vanilla", Adam et Radam. |
thinc.schedules | Générateurs pour différents tarifs, horaires, désintégrations ou séries. |
thinc.backends | Backends pour numpy et cupy . |
thinc.config | Système de registre de configuration et de validation de configuration et de fonction. |
thinc.util | Utilitaires et fonctions d'assistance. |
THINC utilise black
pour le format automatique, flake8
pour la liaison et mypy
pour la vérification des types. Tout le code est écrit compatible avec Python 3.6+ , avec des indices de type dans la mesure du possible. Voir la référence de type pour plus de détails sur les types personnalisés de THINC.
La construction de THINC à partir de la source nécessite l'installation des dépendances répertoriées dans requirements.txt
. Vous aurez également besoin d'un compilateur pour construire les extensions 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 .
Alternativement, installez en mode modifiable:
pip install -r requirements.txt
pip install --no-build-isolation --editable .
Ou en définissant PYTHONPATH
:
export PYTHONPATH= ` pwd `
pip install -r requirements.txt
python setup.py build_ext --inplace
THINC est livré avec une vaste suite de tests. Les éléments suivants doivent tous passer et ne signaler aucun avertissement ou erreurs:
python -m pytest thinc # test suite
python -m mypy thinc # type checks
python -m flake8 thinc # linting
Pour afficher la couverture du test, vous pouvez exécuter python -m pytest thinc --cov=thinc
. Nous visons une couverture de test à 100%. Cela ne signifie pas que nous écrivons méticuleusement des tests pour chaque ligne - nous ignorons les blocs qui ne sont pas pertinents ou difficiles à tester et nous assurons que les tests exécutent tous les chemins de code.