AllenNLP a été un grand succès, mais comme le domaine progresse rapidement, il est temps de se concentrer sur de nouvelles initiatives. Nous travaillons dur pour faire d'AI2 Tango le meilleur moyen d'organiser les bases de code de recherche. Si vous êtes un utilisateur actif d'AllenNLP, voici quelques alternatives suggérées :
modules
et les packages nn
d'AllenNLP, consultez delmaksym/allennlp-light. Il est même compatible avec AI2 Tango !Si vous souhaitez utiliser AllenNLP pour le développement de modèles, nous vous recommandons de consulter le guide AllenNLP pour une introduction approfondie à la bibliothèque, suivi de nos guides plus avancés sur les discussions GitHub.
Lorsque vous êtes prêt à démarrer votre projet, nous avons créé quelques référentiels de modèles que vous pouvez utiliser comme point de départ :
allennlp train
et config pour spécifier des expériences, utilisez ce modèle. Nous recommandons cette approche.De plus, il existe des tutoriels externes :
Et d'autres sur le blog AI2 AllenNLP.
AllenNLP prend en charge le chargement dynamique des « plugins ». Un plugin est simplement un package Python qui fournit des classes enregistrées personnalisées ou des sous-commandes allennlp
supplémentaires.
Il existe un écosystème de plugins open source, dont certains sont maintenus par l'équipe AllenNLP ici chez AI2, et dont certains sont maintenus par la communauté au sens large.
Plugin | Mainteneur | CLI | Description |
modèles allennlp | AI2 | Non | Une collection de modèles à la pointe de la technologie |
allennlp-semparse | AI2 | Non | Un framework pour construire des analyseurs sémantiques |
serveur allennlp | AI2 | Oui | Un serveur de démonstration simple pour servir les modèles |
allennlp-optuna | Makoto Hiramatsu | Oui | Intégration Optuna pour l'optimisation des hyperparamètres |
AllenNLP trouvera automatiquement tous les plugins officiels gérés par AI2 que vous avez installés, mais pour qu'AllenNLP trouve les plugins personnels ou tiers que vous avez installés, vous devez également créer soit un fichier de plugins local nommé .allennlp_plugins
dans le répertoire où vous exécutez la commande allennlp
ou un fichier de plugins global à ~/.allennlp/plugins
. Le fichier doit répertorier les modules de plugin que vous souhaitez charger, un par ligne.
Pour tester que vos plugins peuvent être trouvés et importés par AllenNLP, vous pouvez exécuter la commande allennlp test-install
. Chaque plugin découvert sera connecté au terminal.
Pour plus d’informations sur les plugins, consultez la documentation de l’API des plugins. Et pour plus d'informations sur la création d'une sous-commande personnalisée à distribuer en tant que plugin, consultez la documentation de l'API de sous-commande.
allennlp | Une bibliothèque de recherche open source en PNL, construite sur PyTorch |
allennlp.commandes | Fonctionnalité pour la CLI |
allennlp.common | Modules utilitaires utilisés dans la bibliothèque |
allennlp.data | Un module de traitement de données pour charger des ensembles de données et coder des chaînes sous forme d'entiers pour la représentation dans des matrices |
allennlp.équité | Un module pour les algorithmes et les mesures d'atténuation des biais et d'équité |
allennlp.modules | Une collection de modules PyTorch à utiliser avec du texte |
allennlp.nn | Fonctions utilitaires Tensor, telles que les initialiseurs et les fonctions d'activation |
allennlp.training | Fonctionnalité pour les modèles de formation |
AllenNLP nécessite Python 3.6.1 ou version ultérieure et PyTorch.
Nous prenons en charge AllenNLP sur les environnements Mac et Linux. Nous ne prenons actuellement pas en charge Windows mais sommes ouverts aux contributions.
Le moyen le plus simple d'installer AllenNLP consiste à utiliser conda (vous pouvez choisir une version différente de Python) :
conda install -c conda-forge python=3.8 allennlp
Pour installer des packages facultatifs, tels que checklist
, utilisez
conda install -c conda-forge allennlp-checklist
ou installez simplement allennlp-all
directement. Les plugins mentionnés ci-dessus peuvent être installés de la même manière, par exemple
conda install -c conda-forge allennlp-models allennlp-semparse allennlp-server allennlp-optuna
Il est recommandé d'installer l'écosystème PyTorch avant d'installer AllenNLP en suivant les instructions sur pytorch.org.
Après cela, exécutez simplement pip install allennlp
.
️ Si vous utilisez Python 3.7 ou une version ultérieure, vous devez vous assurer que la version PyPI desdataclasses
n'est pas installée après avoir exécuté la commande ci-dessus, car cela pourrait provoquer des problèmes sur certaines plates-formes. Vous pouvez vérifier rapidement cela en exécutantpip freeze | grep dataclasses
. Si vous voyez quelque chose commedataclasses=0.6
dans la sortie, exécutez simplementpip uninstall -y dataclasses
.
Si vous avez besoin de conseils sur la configuration d'un environnement Python approprié ou si vous souhaitez installer AllenNLP en utilisant une méthode différente, voir ci-dessous.
Conda peut être utilisé pour configurer un environnement virtuel avec la version de Python requise pour AllenNLP. Si vous disposez déjà d'un environnement Python 3 que vous souhaitez utiliser, vous pouvez passer à la section « Installation via pip ».
Téléchargez et installez Conda.
Créez un environnement Conda avec Python 3.8 (3.7 ou 3.9 fonctionneraient également) :
conda create -n allennlp_env python=3.8
Activez l'environnement Conda. Vous devrez activer l'environnement Conda dans chaque terminal dans lequel vous souhaitez utiliser AllenNLP :
conda activate allennlp_env
L'installation de la bibliothèque et des dépendances est simple en utilisant pip
.
pip install allennlp
Pour installer les dépendances facultatives, telles que checklist
, exécutez
pip install allennlp[checklist]
Ou vous pouvez simplement installer toutes les dépendances facultatives avec pip install allennlp[all]
.
Vous recherchez des fonctionnalités de pointe ? Vous pouvez installer les versions nocturnes directement depuis pypi
AllenNLP installe un script lorsque vous installez le package python, vous pouvez donc exécuter des commandes allennlp simplement en tapant allennlp
dans un terminal. Par exemple, vous pouvez désormais tester votre installation avec allennlp test-install
.
Vous souhaiterez peut-être également installer allennlp-models
, qui contient les constructions NLP pour entraîner et exécuter nos modèles officiellement pris en charge, dont beaucoup sont hébergés sur https://demo.allennlp.org.
pip install allennlp-models
Docker fournit une machine virtuelle avec tout ce qui est configuré pour exécuter AllenNLP, que vous utilisiez un GPU ou que vous utilisiez simplement un CPU. Docker offre plus d'isolation et de cohérence, et facilite également la distribution de votre environnement sur un cluster de calcul.
AllenNLP fournit des images Docker officielles avec la bibliothèque et toutes ses dépendances installées.
Une fois que vous avez installé Docker, vous devez également installer NVIDIA Container Toolkit si vous disposez de GPU disponibles.
Exécutez ensuite la commande suivante pour obtenir un environnement qui fonctionnera sur GPU :
mkdir -p $HOME /.allennlp/
docker run --rm --gpus all -v $HOME /.allennlp:/root/.allennlp allennlp/allennlp:latest
Vous pouvez tester l'environnement Docker avec
docker run --rm --gpus all -v $HOME /.allennlp:/root/.allennlp allennlp/allennlp:latest test-install
Si vous n'avez pas de GPU disponibles, omettez simplement l'indicateur --gpus all
.
Pour diverses raisons, vous devrez peut-être créer votre propre image Docker AllenNLP, par exemple si vous avez besoin d'une version différente de PyTorch. Pour ce faire, exécutez simplement make docker-image
depuis la racine de votre clone local d'AllenNLP.
Par défaut, cela crée une image avec la balise allennlp/allennlp
, mais vous pouvez la modifier comme vous le souhaitez en définissant l'indicateur DOCKER_IMAGE_NAME
lorsque vous appelez make
. Par exemple, make docker-image DOCKER_IMAGE_NAME=my-allennlp
.
Si vous souhaitez utiliser une version différente de Python ou de PyTorch, définissez les indicateurs DOCKER_PYTHON_VERSION
et DOCKER_TORCH_VERSION
sur quelque chose comme 3.9
et 1.9.0-cuda10.2
, respectivement. Ces indicateurs déterminent ensemble l’image de base utilisée. Vous pouvez voir la liste des combinaisons valides dans ce registre de conteneurs GitHub : github.com/allenai/docker-images/pkgs/container/pytorch.
Après avoir construit l'image, vous devriez pouvoir la voir répertoriée en exécutant docker images allennlp
.
REPOSITORY TAG IMAGE ID CREATED SIZE
allennlp/allennlp latest b66aee6cb593 5 minutes ago 2.38GB
Vous pouvez également installer AllenNLP en clonant notre référentiel git :
git clone https://github.com/allenai/allennlp.git
Créez un environnement virtuel Python 3.7 ou 3.8 et installez AllenNLP en mode editable
en exécutant :
pip install -U pip setuptools wheel
pip install --editable .[dev,all]
Cela rendra allennlp
disponible sur votre système mais il utilisera les sources du clone local que vous avez créé du référentiel source.
Vous pouvez tester votre installation avec allennlp test-install
. Voir https://github.com/allenai/allennlp-models pour obtenir des instructions sur l'installation allennlp-models
à partir des sources.
Une fois que vous avez installé AllenNLP, vous pouvez exécuter l'interface de ligne de commande avec la commande allennlp
(que vous ayez installé depuis pip
ou depuis les sources). allennlp
a diverses sous-commandes telles que train
, evaluate
et predict
. Pour voir les informations complètes sur l'utilisation, exécutez allennlp --help
.
Vous pouvez tester votre installation en exécutant allennlp test-install
.
Tout le monde est invité à signaler des problèmes avec des demandes de fonctionnalités, des rapports de bogues ou des questions générales. En tant que petite équipe avec nos propres objectifs internes, nous pouvons demander des contributions si une solution rapide ne rentre pas dans notre feuille de route. Pour garder les choses en ordre, nous clôturerons souvent les problèmes dont nous pensons qu'ils ont trouvé une réponse, mais n'hésitez pas à effectuer un suivi si une discussion plus approfondie est nécessaire.
L'équipe AllenNLP d'AI2 (@allenai) accueille les contributions de la communauté. Si vous contribuez pour la première fois, nous vous recommandons de commencer par lire notre guide CONTRIBUTING.md. Alors jetez un œil à nos problèmes avec le tag Good First Issue
.
Si vous souhaitez contribuer à une fonctionnalité plus large, nous vous recommandons d'abord de créer un problème avec une conception proposée pour discussion. Cela vous évitera de consacrer beaucoup de temps à une implémentation qui présente une limitation technique que quelqu'un aurait pu signaler dès le début. De petites contributions peuvent être apportées directement dans une pull request.
Les demandes d'extraction (PR) doivent avoir un examen d'approbation et aucune modification demandée avant d'être fusionnées. Comme AllenNLP est principalement piloté par AI2, nous nous réservons le droit de rejeter ou de revenir sur les contributions que nous ne considérons pas comme de bons ajouts.
Si vous utilisez AllenNLP dans votre recherche, veuillez citer AllenNLP : A Deep Semantic Natural Language Processing Platform.
@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 est un projet open source soutenu par l'Allen Institute for Artificial Intelligence (AI2). AI2 est un institut à but non lucratif dont la mission est de contribuer à l’humanité grâce à la recherche et à l’ingénierie à fort impact en IA. Pour en savoir plus sur les personnes ayant spécifiquement contribué à cette base de code, consultez notre page des contributeurs.