An open-source NLP research library built on PyTorch, providing flexible abstractions for building and training deep learning models. Current version is 2.10.1 (stable, maintenance mode). Release cadence: irregular, with minor releases every few months.
Install & Compatibility
Where this runs
tested against v2.10.1 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
py 3.10
✕ build_error
1/2 runs
py 3.11
✕ build_error
✕ build_error
py 3.12
✕ build_error
✕ build_error
py 3.13
✕ build_error
✕ build_error
py 3.9
✕ build_error
1/2 runs
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
AllenNLP
✓ from allennlp.models import Model
✗ import allennlp
Top-level import does not expose common classes directly.
Predictor
✓ from allennlp.predictors import Predictor
✗ from allennlp import Predictor
Predictor is in the predictors submodule.
DatasetReader
✓ from allennlp.data import DatasetReader
✗ from allennlp.dataset_readers import DatasetReader
DatasetReader is a base class; concrete readers are under allennlp.data.dataset_readers.
Minimal model example demonstrating class structure and forward pass.
import torch
from allennlp.common import JsonDict
from allennlp.data import Instance
from allennlp.data.fields import TextField
from allennlp.data.token_indexers import SingleIdTokenIndexer
from allennlp.data.tokenizers import SpacyTokenizer
from allennlp.models import Model
from allennlp.modules.text_field_embedders import BasicTextFieldEmbedder
from allennlp.modules.token_embedders import Embedding
from allennlp.nn import util
# Example: simple text classifier (not runnable without training data)
class SimpleClassifier(Model):
def __init__(self, vocab, embed_dim=10):
super().__init__(vocab)
self.embedder = BasicTextFieldEmbedder({"tokens": Embedding(embedding_dim=embed_dim, num_embeddings=vocab.get_vocab_size('tokens'))})
self.linear = torch.nn.Linear(embed_dim, vocab.get_vocab_size('labels'))
def forward(self, text, label=None):
embedded = self.embedder(text)
logits = self.linear(embedded)
output = {"logits": logits}
if label is not None:
output["loss"] = torch.nn.functional.cross_entropy(logits, label)
return output
print("AllenNLP ready.")
allennlp --version
Audit
Dependencies
torchrequiredCore dependency; AllenNLP is built on PyTorch. Must be installed separately or via allennlp[all].
transformersoptionalUsed for pretrained transformer models (e.g., BERT). Required for many common use cases.
cached-pathrequiredUsed for dataset caching. Errors may occur if version mismatch.