AllenNLP war ein großer Erfolg, aber da sich das Gebiet schnell weiterentwickelt, ist es an der Zeit, sich auf neue Initiativen zu konzentrieren. Wir arbeiten hart daran, AI2 Tango zur besten Möglichkeit zur Organisation von Forschungscodebasen zu machen. Wenn Sie ein aktiver Benutzer von AllenNLP sind, finden Sie hier einige empfohlene Alternativen:
modules
und nn
-Pakete von AllenNLP gefallen, schauen Sie sich delmaksym/allennlp-light an. Es ist sogar mit AI2 Tango kompatibel!Wenn Sie daran interessiert sind, AllenNLP für die Modellentwicklung zu verwenden, empfehlen wir Ihnen, den AllenNLP-Leitfaden für eine ausführliche Einführung in die Bibliothek zu lesen, gefolgt von unseren weiterführenden Leitfäden auf GitHub-Diskussionen.
Wenn Sie bereit sind, mit Ihrem Projekt zu beginnen, haben wir einige Vorlagen-Repositorys erstellt, die Sie als Ausgangspunkt verwenden können:
allennlp train
zum Spezifizieren von Experimenten verwenden möchten, verwenden Sie diese Vorlage. Wir empfehlen diesen Ansatz.Darüber hinaus gibt es externe Tutorials:
Und andere im AI2 AllenNLP-Blog.
AllenNLP unterstützt das dynamische Laden von „Plugins“. Ein Plugin ist lediglich ein Python-Paket, das benutzerdefinierte registrierte Klassen oder zusätzliche allennlp
Unterbefehle bereitstellt.
Es gibt ein Ökosystem von Open-Source-Plugins, von denen einige vom AllenNLP-Team hier bei AI2 und einige von der breiteren Community gepflegt werden.
Plugin | Betreuer | CLI | Beschreibung |
allennlp-modelle | AI2 | NEIN | Eine Sammlung hochmoderner Modelle |
allennlp-semparse | AI2 | NEIN | Ein Framework zum Erstellen semantischer Parser |
allennlp-server | AI2 | Ja | Ein einfacher Demoserver zum Servieren von Modellen |
allennlp-optuna | Makoto Hiramatsu | Ja | Optuna-Integration zur Hyperparameteroptimierung |
AllenNLP findet automatisch alle offiziellen, von AI2 verwalteten Plugins, die Sie installiert haben. Damit AllenNLP jedoch persönliche Plugins oder Plugins von Drittanbietern findet, die Sie installiert haben, müssen Sie außerdem entweder eine lokale Plugin-Datei mit dem Namen .allennlp_plugins
in dem Verzeichnis erstellen, in dem Sie es ausführen den Befehl allennlp
oder eine globale Plugins-Datei unter ~/.allennlp/plugins
. Die Datei sollte die Plugin-Module auflisten, die Sie laden möchten, eines pro Zeile.
Um zu testen, ob Ihre Plugins von AllenNLP gefunden und importiert werden können, können Sie den Befehl allennlp test-install
ausführen. Jedes entdeckte Plugin wird im Terminal protokolliert.
Weitere Informationen zu Plugins finden Sie in den Plugins-API-Dokumenten. Informationen zum Erstellen eines benutzerdefinierten Unterbefehls zur Verteilung als Plugin finden Sie in den API-Dokumenten zum Unterbefehl.
allennlp | Eine Open-Source-NLP-Forschungsbibliothek, die auf PyTorch basiert |
allennlp.commands | Funktionalität für die CLI |
allennlp.common | Dienstprogrammmodule, die in der gesamten Bibliothek verwendet werden |
allennlp.data | Ein Datenverarbeitungsmodul zum Laden von Datensätzen und zum Kodieren von Zeichenfolgen als Ganzzahlen zur Darstellung in Matrizen |
allennlp.fairness | Ein Modul für Bias-Minderung und Fairness-Algorithmen und -Metriken |
allennlp.modules | Eine Sammlung von PyTorch-Modulen zur Verwendung mit Text |
allennlp.nn | Tensor-Dienstprogrammfunktionen wie Initialisierer und Aktivierungsfunktionen |
allennlp.training | Funktionalität für Trainingsmodelle |
AllenNLP erfordert Python 3.6.1 oder höher und PyTorch.
Wir unterstützen AllenNLP in Mac- und Linux-Umgebungen. Wir unterstützen derzeit kein Windows, sind aber offen für Beiträge.
Der einfachste Weg, AllenNLP zu installieren, ist die Verwendung von Conda (Sie können eine andere Python-Version wählen):
conda install -c conda-forge python=3.8 allennlp
Um optionale Pakete wie checklist
zu installieren, verwenden Sie
conda install -c conda-forge allennlp-checklist
oder installieren Sie einfach allennlp-all
direkt. Die oben genannten Plugins sind ebenfalls installierbar, z
conda install -c conda-forge allennlp-models allennlp-semparse allennlp-server allennlp-optuna
Es wird empfohlen, das PyTorch-Ökosystem vor der Installation von AllenNLP zu installieren, indem Sie den Anweisungen auf pytorch.org folgen.
Danach führen Sie einfach pip install allennlp
aus.
️ Wenn Sie Python 3.7 oder höher verwenden, sollten Sie sicherstellen, dass nach der Ausführung des obigen Befehls nicht die PyPI-Version derdataclasses
installiert ist, da dies auf bestimmten Plattformen zu Problemen führen kann. Sie können dies schnell überprüfen, indem Siepip freeze | grep dataclasses
ausführenpip freeze | grep dataclasses
. Wenn Sie in der Ausgabe etwas wiedataclasses=0.6
sehen, führen Sie einfachpip uninstall -y dataclasses
aus.
Wenn Sie Hinweise zum Einrichten einer geeigneten Python-Umgebung benötigen oder AllenNLP mit einer anderen Methode installieren möchten, lesen Sie weiter unten.
Mit Conda kann eine virtuelle Umgebung mit der für AllenNLP erforderlichen Python-Version eingerichtet werden. Wenn Sie bereits über eine Python 3-Umgebung verfügen, die Sie verwenden möchten, können Sie mit dem Abschnitt „Installation über pip“ fortfahren.
Laden Sie Conda herunter und installieren Sie es.
Erstellen Sie eine Conda-Umgebung mit Python 3.8 (3.7 oder 3.9 würden auch funktionieren):
conda create -n allennlp_env python=3.8
Aktivieren Sie die Conda-Umgebung. Sie müssen die Conda-Umgebung in jedem Terminal aktivieren, in dem Sie AllenNLP verwenden möchten:
conda activate allennlp_env
Die Installation der Bibliothek und der Abhängigkeiten ist mit pip
einfach.
pip install allennlp
Um die optionalen Abhängigkeiten wie checklist
zu installieren, führen Sie Folgendes aus:
pip install allennlp[checklist]
Oder Sie können einfach alle optionalen Abhängigkeiten mit pip install allennlp[all]
installieren.
Suchen Sie nach innovativen Funktionen? Sie können Nightly-Releases direkt von Pypi aus installieren
AllenNLP installiert ein Skript, wenn Sie das Python-Paket installieren, sodass Sie allennlp-Befehle ausführen können, indem Sie einfach allennlp
in ein Terminal eingeben. Sie können Ihre Installation jetzt beispielsweise mit allennlp test-install
testen.
Möglicherweise möchten Sie auch allennlp-models
installieren, das die NLP-Konstrukte zum Trainieren und Ausführen unserer offiziell unterstützten Modelle enthält, von denen viele unter https://demo.allennlp.org gehostet werden.
pip install allennlp-models
Docker stellt eine virtuelle Maschine mit allem bereit, was für die Ausführung von AllenNLP eingerichtet ist – unabhängig davon, ob Sie eine GPU nutzen oder nur auf einer CPU laufen. Docker sorgt für mehr Isolation und Konsistenz und erleichtert außerdem die Verteilung Ihrer Umgebung auf einen Rechencluster.
AllenNLP stellt offizielle Docker-Images mit installierter Bibliothek und allen ihren Abhängigkeiten bereit.
Nachdem Sie Docker installiert haben, sollten Sie auch das NVIDIA Container Toolkit installieren, wenn Sie GPUs zur Verfügung haben.
Führen Sie dann den folgenden Befehl aus, um eine Umgebung zu erhalten, die auf der GPU ausgeführt wird:
mkdir -p $HOME /.allennlp/
docker run --rm --gpus all -v $HOME /.allennlp:/root/.allennlp allennlp/allennlp:latest
Sie können die Docker-Umgebung mit testen
docker run --rm --gpus all -v $HOME /.allennlp:/root/.allennlp allennlp/allennlp:latest test-install
Wenn Sie keine GPUs zur Verfügung haben, lassen Sie einfach das Flag --gpus all
weg.
Aus verschiedenen Gründen müssen Sie möglicherweise Ihr eigenes AllenNLP Docker-Image erstellen, beispielsweise wenn Sie eine andere Version von PyTorch benötigen. Führen Sie dazu einfach make docker-image
im Stammverzeichnis Ihres lokalen Klons von AllenNLP aus.
Standardmäßig wird dadurch ein Image mit dem Tag allennlp/allennlp
erstellt. Sie können dies jedoch beliebig ändern, indem Sie beim Aufruf make
das Flag DOCKER_IMAGE_NAME
setzen. make docker-image DOCKER_IMAGE_NAME=my-allennlp
.
Wenn Sie eine andere Version von Python oder PyTorch verwenden möchten, setzen Sie die Flags DOCKER_PYTHON_VERSION
und DOCKER_TORCH_VERSION
auf etwa 3.9
bzw. 1.9.0-cuda10.2
. Diese Flags bestimmen zusammen das verwendete Basisbild. Die Liste der gültigen Kombinationen finden Sie in dieser GitHub Container Registry: github.com/allenai/docker-images/pkgs/container/pytorch.
Nachdem Sie das Image erstellt haben, sollten Sie es aufgelistet sehen können, indem Sie docker images allennlp
ausführen.
REPOSITORY TAG IMAGE ID CREATED SIZE
allennlp/allennlp latest b66aee6cb593 5 minutes ago 2.38GB
Sie können AllenNLP auch installieren, indem Sie unser Git-Repository klonen:
git clone https://github.com/allenai/allennlp.git
Erstellen Sie eine virtuelle Python 3.7- oder 3.8-Umgebung und installieren Sie AllenNLP im editable
Modus, indem Sie Folgendes ausführen:
pip install -U pip setuptools wheel
pip install --editable .[dev,all]
Dadurch wird allennlp
auf Ihrem System verfügbar, es werden jedoch die Quellen des lokalen Klons verwendet, den Sie vom Quell-Repository erstellt haben.
Sie können Ihre Installation mit allennlp test-install
testen. Anweisungen zur Installation allennlp-models
aus dem Quellcode finden Sie unter https://github.com/allenai/allennlp-models.
Sobald Sie AllenNLP installiert haben, können Sie die Befehlszeilenschnittstelle mit dem Befehl allennlp
ausführen (unabhängig davon, ob Sie von pip
oder von der Quelle installiert haben). allennlp
verfügt über verschiedene Unterbefehle wie train
, evaluate
und predict
. Um die vollständigen Nutzungsinformationen anzuzeigen, führen Sie allennlp --help
aus.
Sie können Ihre Installation testen, indem Sie allennlp test-install
ausführen.
Jeder ist willkommen, Probleme mit Funktionswünschen, Fehlerberichten oder allgemeinen Fragen einzureichen. Als kleines Team mit eigenen internen Zielen bitten wir möglicherweise um Beiträge, wenn eine schnelle Lösung nicht in unsere Roadmap passt. Um für Ordnung zu sorgen, schließen wir häufig Probleme, von denen wir glauben, dass sie beantwortet sind. Zögern Sie jedoch nicht, weiterzumachen, wenn weitere Diskussionen erforderlich sind.
Das AllenNLP-Team von AI2 (@allenai) freut sich über Beiträge aus der Community. Wenn Sie zum ersten Mal mitwirken, empfehlen wir Ihnen, zunächst unseren Leitfaden CONTRIBUTING.md zu lesen. Dann schauen Sie sich unsere Ausgaben mit dem Schlagwort „ Good First Issue
an.
Wenn Sie ein größeres Feature beisteuern möchten, empfehlen wir, zunächst ein Issue mit einem vorgeschlagenen Design zur Diskussion zu erstellen. Dadurch wird verhindert, dass Sie viel Zeit mit einer Implementierung verbringen, die eine technische Einschränkung aufweist, auf die jemand frühzeitig hätte hinweisen können. Kleine Beiträge können direkt in einem Pull Request erfolgen.
Pull Requests (PRs) müssen eine genehmigende Prüfung und keine angeforderten Änderungen haben, bevor sie zusammengeführt werden. Da AllenNLP hauptsächlich von AI2 angetrieben wird, behalten wir uns das Recht vor, Beiträge abzulehnen oder rückgängig zu machen, die unserer Meinung nach keine guten Ergänzungen sind.
Wenn Sie AllenNLP in Ihrer Forschung verwenden, zitieren Sie bitte 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 ist ein Open-Source-Projekt, das vom Allen Institute for Artificial Intelligence (AI2) unterstützt wird. AI2 ist ein gemeinnütziges Institut mit der Mission, durch wirkungsvolle KI-Forschung und -Technik einen Beitrag zur Menschheit zu leisten. Weitere Informationen darüber, wer speziell zu dieser Codebasis beigetragen hat, finden Sie auf unserer Seite „Mitwirkende“.