AllenNLP 取得了巨大成功,但随着该领域的快速发展,是时候关注新举措了。我们正在努力使 AI2 Tango 成为组织研究代码库的最佳方式。如果您是 AllenNLP 的活跃用户,以下是一些建议的替代方案:
modules
和nn
包,请查看 delmaksym/allennlp-light。它甚至与 AI2 Tango 兼容!如果您有兴趣使用 AllenNLP 进行模型开发,我们建议您查看 AllenNLP 指南,以获取对该库的全面介绍,然后查看 GitHub 讨论上的更高级指南。
当您准备好开始项目时,我们创建了几个模板存储库,您可以将其用作起点:
allennlp train
和配置文件来指定实验,请使用此模板。我们推荐这种方法。另外,还有外部教程:
以及 AI2 AllenNLP 博客上的其他人。
AllenNLP 支持动态加载“插件”。插件只是一个提供自定义注册类或附加allennlp
子命令的 Python 包。
有一个开源插件生态系统,其中一些由 AI2 的 AllenNLP 团队维护,其中一些由更广泛的社区维护。
插件 | 维护者 | 命令行界面 | 描述 |
allennlp 模型 | 人工智能2 | 不 | 最先进模型的集合 |
allennlp-semparse | 人工智能2 | 不 | 用于构建语义解析器的框架 |
allennlp 服务器 | 人工智能2 | 是的 | 用于服务模型的简单演示服务器 |
艾伦普-奥普图纳 | 平松诚 | 是的 | Optuna 集成用于超参数优化 |
AllenNLP 将自动查找您已安装的任何官方 AI2 维护的插件,但为了让 AllenNLP 查找您已安装的个人或第三方插件,您还必须在运行的目录中创建一个名为.allennlp_plugins
本地插件文件allennlp
命令,或位于~/.allennlp/plugins
全局插件文件。该文件应列出您想要加载的插件模块,每行一个。
要测试 AllenNLP 是否可以找到并导入您的插件,您可以运行allennlp test-install
命令。每个发现的插件都会记录到终端。
有关插件的更多信息,请参阅插件 API 文档。有关如何创建自定义子命令以作为插件分发的信息,请参阅子命令 API 文档。
艾伦普 | 基于 PyTorch 构建的开源 NLP 研究库 |
allennlp.命令 | CLI 的功能 |
allennlp.common | 整个库使用的实用程序模块 |
allennlp.数据 | 数据处理模块,用于加载数据集并将字符串编码为整数以在矩阵中表示 |
allennlp.fairness | 用于缓解偏差和公平算法和指标的模块 |
allennlp.模块 | 用于文本的 PyTorch 模块的集合 |
艾伦恩LP | 张量效用函数,例如初始化函数和激活函数 |
allennlp.培训 | 训练模型的功能 |
AllenNLP 需要 Python 3.6.1 或更高版本以及 PyTorch。
我们支持 Mac 和 Linux 环境上的 AllenNLP。我们目前不支持 Windows,但欢迎贡献。
安装 AllenNLP 最简单的方法是使用 conda (您可以选择不同的 python 版本):
conda install -c conda-forge python=3.8 allennlp
要安装可选包,例如checklist
,请使用
conda install -c conda-forge allennlp-checklist
或者直接安装allennlp-all
。上面提到的插件同样可以安装,例如
conda install -c conda-forge allennlp-models allennlp-semparse allennlp-server allennlp-optuna
建议您按照 pytorch.org 上的说明在安装 AllenNLP之前安装 PyTorch 生态系统。
之后,只需运行pip install allennlp
。
️ 如果您使用的是 Python 3.7 或更高版本,则应确保在运行上述命令后没有安装 PyPI 版本的dataclasses
,因为这可能会在某些平台上导致问题。您可以通过运行pip freeze | grep dataclasses
快速检查这一点。pip freeze | grep dataclasses
。如果您在输出中看到类似dataclasses=0.6
内容,则只需运行pip uninstall -y dataclasses
。
如果您需要有关设置适当的 Python 环境的指导,或者想要使用不同的方法安装 AllenNLP,请参阅下文。
Conda 可以用来设置 AllenNLP 所需的 Python 版本的虚拟环境。如果您已经有想要使用的 Python 3 环境,可以跳到“通过 pip 安装”部分。
下载并安装 Conda。
使用 Python 3.8 创建 Conda 环境(3.7 或 3.9 也可以):
conda create -n allennlp_env python=3.8
激活Conda环境。您需要在要使用 AllenNLP 的每个终端中激活 Conda 环境:
conda activate allennlp_env
使用pip
安装库和依赖项很简单。
pip install allennlp
要安装可选依赖项,例如checklist
,请运行
pip install allennlp[checklist]
或者您可以使用pip install allennlp[all]
安装所有可选依赖项。
正在寻找前沿功能?您可以直接从 pypi 安装夜间版本
当您安装 python 包时,AllenNLP 会安装一个脚本,因此您只需在终端中输入allennlp
即可运行 allennlp 命令。例如,您现在可以使用allennlp test-install
测试您的安装。
您可能还想安装allennlp-models
,其中包含用于训练和运行我们官方支持的模型的 NLP 结构,其中许多模型托管在 https://demo.allennlp.org 上。
pip install allennlp-models
Docker 提供了一个虚拟机,其中包含运行 AllenNLP 的所有设置——无论您是利用 GPU 还是仅在 CPU 上运行。 Docker 提供了更多的隔离性和一致性,还可以轻松地将环境分发到计算集群。
AllenNLP 提供了官方 Docker 映像,其中安装了该库及其所有依赖项。
安装 Docker 后,如果有可用的 GPU,还应该安装 NVIDIA Container Toolkit。
然后运行以下命令来获取将在 GPU 上运行的环境:
mkdir -p $HOME /.allennlp/
docker run --rm --gpus all -v $HOME /.allennlp:/root/.allennlp allennlp/allennlp:latest
您可以使用以下命令测试 Docker 环境
docker run --rm --gpus all -v $HOME /.allennlp:/root/.allennlp allennlp/allennlp:latest test-install
如果您没有可用的 GPU,只需省略--gpus all
标志即可。
由于各种原因,您可能需要创建自己的 AllenNLP Docker 映像,例如您需要不同版本的 PyTorch。为此,只需从 AllenNLP 本地克隆的根目录运行make docker-image
即可。
默认情况下,这会构建一个带有标签allennlp/allennlp
的图像,但是您可以通过在调用make
时设置DOCKER_IMAGE_NAME
标志来将其更改为您想要的任何内容。例如, make docker-image DOCKER_IMAGE_NAME=my-allennlp
。
如果您想使用不同版本的 Python 或 PyTorch,请将标志DOCKER_PYTHON_VERSION
和DOCKER_TORCH_VERSION
分别设置为3.9
和1.9.0-cuda10.2
。这些标志共同决定了所使用的基础映像。您可以在此 GitHub 容器注册表中查看有效组合的列表:github.com/allenai/docker-images/pkgs/container/pytorch。
构建镜像后,您应该能够通过运行docker images allennlp
看到它列出。
REPOSITORY TAG IMAGE ID CREATED SIZE
allennlp/allennlp latest b66aee6cb593 5 minutes ago 2.38GB
您还可以通过克隆我们的 git 存储库来安装 AllenNLP:
git clone https://github.com/allenai/allennlp.git
创建 Python 3.7 或 3.8 虚拟环境,并通过运行以下命令以editable
模式安装 AllenNLP:
pip install -U pip setuptools wheel
pip install --editable .[dev,all]
这将使allennlp
在您的系统上可用,但它将使用您对源存储库进行的本地克隆中的源。
您可以使用allennlp test-install
测试您的安装。有关从源安装allennlp-models
说明,请参阅 https://github.com/allenai/allennlp-models。
安装 AllenNLP 后,您可以使用allennlp
命令运行命令行界面(无论是从pip
还是从源安装)。 allennlp
具有各种子命令,例如train
、 evaluate
和predict
。要查看完整的使用信息,请运行allennlp --help
。
您可以通过运行allennlp test-install
来测试安装。
欢迎每个人提出功能请求、错误报告或一般问题。作为一个拥有自己内部目标的小团队,如果及时修复不符合我们的路线图,我们可能会要求做出贡献。为了保持事情的整洁,我们通常会关闭我们认为已得到解答的问题,但如果需要进一步讨论,请毫不犹豫地跟进。
AI2 (@allenai) 的 AllenNLP 团队欢迎社区的贡献。如果您是首次贡献者,我们建议您首先阅读我们的 CONTRIBUTING.md 指南。然后查看带有Good First Issue
标签的问题。
如果您想贡献更大的功能,我们建议首先创建一个包含提议设计的问题以供讨论。这将防止您花费大量时间在具有技术限制的实施上,而有人可能早就指出了这一点。小额贡献可以直接在拉取请求中做出。
拉取请求 (PR) 在合并之前必须经过一项批准审核并且没有请求的更改。由于 AllenNLP 主要由 AI2 驱动,我们保留拒绝或恢复我们认为不好的贡献的权利。
如果您在研究中使用 AllenNLP,请引用 AllenNLP:深度语义自然语言处理平台。
@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 是一个由艾伦人工智能研究所 (AI2) 支持的开源项目。 AI2 是一家非营利机构,其使命是通过高影响力的人工智能研究和工程为人类做出贡献。要详细了解谁专门为此代码库做出了贡献,请参阅我们的贡献者页面。