跳转到主要内容

一个开源的NLP研究库,基于PyTorch构建。

项目描述

Build Status codecov

一个基于PyTorch构建的Apache 2.0 NLP研究库,用于在各种语言任务上开发最先进的深度学习模型。

快速链接

包概述

allennlp 一个基于PyTorch构建的开源NLP研究库
allennlp.commands 用于CLI和Web服务的功能
allennlp.data 用于加载数据集并将字符串编码为整数以在矩阵中表示的数据处理模块
allennlp.models 一组最先进的模型
allennlp.modules 一组用于文本的PyTorch模块
allennlp.nn 张量实用函数,例如初始化器和激活函数
allennlp.service 一个可以提供您模型演示的Web服务器
allennlp.training 用于训练模型的功能

安装

AllenNLP需要Python 3.6.1或更高版本。安装AllenNLP的首选方式是通过pip。只需在Python环境中运行pip install allennlp即可。

如果您需要设置适当的Python环境的提示,或者希望使用不同的方法安装AllenNLP,请参阅以下内容。

目前Windows平台尚未得到官方支持,尽管我们会尽力在问题容易解决时修复它们。

通过pip安装

设置虚拟环境

Conda 可以用来设置一个虚拟环境,以安装AllenNLP所需的Python版本。如果你已经有了想要使用的Python 3.6或3.7环境,你可以跳过到“通过pip安装”部分。

  1. 下载并安装Conda.

  2. 使用Python 3.6创建Conda环境

    conda create -n allennlp python=3.6
    
  3. 激活Conda环境。你需要在每个你想使用AllenNLP的终端中激活Conda环境。

    source activate allennlp
    

安装库及其依赖项

使用pip安装库及其依赖项非常简单。

pip install allennlp

这就完成了!你现在可以构建和训练AllenNLP模型了。安装Python包时,AllenNLP会安装一个脚本,这意味着你只需在终端中输入allennlp即可运行所有allennlp命令。

你现在可以使用allennlp test-install来测试你的安装。

pip目前仅安装CUDA 9的PyTorch(或无GPU)。如果你需要旧版本,请访问https://pytorch.ac.cn/并安装相关的pytorch二进制文件。

使用Docker安装

Docker提供了一个虚拟机,其中已设置好一切以运行AllenNLP——无论你将使用GPU还是仅运行在CPU上。Docker提供了更多的隔离和一致性,并且也使得将你的环境分发到计算集群变得容易。

一旦你已经安装了Docker,只需运行以下命令即可获取一个可以在CPU或GPU上运行的环境。

mkdir -p $HOME/.allennlp/
docker run --rm -v $HOME/.allennlp:/root/.allennlp allennlp/allennlp:v0.9.0

你可以使用以下命令测试Docker环境:docker run --rm -v $HOME/.allennlp:/root/.allennlp allennlp/allennlp:v0.9.0 test-install

从源代码安装

你也可以通过克隆我们的git仓库来安装AllenNLP

git clone https://github.com/allenai/allennlp.git

创建一个Python 3.6虚拟环境,并运行以下命令以在editable模式下安装AllenNLP:

pip install --editable .

这将使allennlp在你的系统上可用,但它将使用你从源存储库中克隆的本地副本中的源。

你可以使用allennlp test-install来测试你的安装。完整的开发环境还需要安装JVM和perl,这些必须单独安装。./scripts/verify.py将运行我们持续构建环境使用的完整测试套件。

运行AllenNLP

一旦你安装了AllenNLP,你可以通过allennlp命令(如果你通过pip安装)或allennlp(如果你通过源安装)来运行命令行界面。

$ allennlp
Run AllenNLP

optional arguments:
  -h, --help    show this help message and exit
  --version     show program's version number and exit

Commands:

    configure   Run the configuration wizard.
    train       Train a model.
    evaluate    Evaluate the specified model + dataset.
    predict     Use a trained model to make predictions.
    make-vocab  Create a vocabulary.
    elmo        Create word vectors using a pretrained ELMo model.
    fine-tune   Continue training a model on a new dataset.
    dry-run     Create a vocabulary, compute dataset statistics and other
                training utilities.
    test-install
                Run the unit tests.
    find-lr     Find a learning rate range.

Docker镜像

AllenNLP为每个发布版本在Docker Hub上发布Docker镜像。有关如何运行这些发布的信息,请参阅使用Docker安装

构建Docker镜像

由于各种原因,你可能需要创建自己的AllenNLP Docker镜像。相同的镜像既可以用于CPU也可以用于GPU。

首先,你需要安装Docker。然后运行以下命令(由于它需要完全构建运行AllenNLP所需的环境,这个过程可能需要一些时间):

docker build -f Dockerfile.pip --tag allennlp/allennlp:latest .

现在你应该可以通过运行docker images allennlp来看到这个镜像被列出。

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
allennlp/allennlp            latest              b66aee6cb593        5 minutes ago       2.38GB

运行Docker镜像

你可以使用以下命令运行镜像:docker run --rm -it allennlp/allennlp:latest--rm标志在退出时清理镜像,而-it标志使得会话交互式,这样你就可以使用Docker镜像启动的bash shell。

你可以通过运行allennlp test-install来测试你的安装。

问题

每个人都可以提交问题,无论是功能请求、错误报告还是一般性疑问。作为一个有自己内部目标的团队,如果我们认为紧急修复不符合我们的路线图,我们可能会要求贡献。我们允许用户在两周内跟进问题,之后我们将关闭问题。如果有进一步的讨论,它们可以重新打开。

贡献

AI2的AllenNLP团队(@allenai)欢迎来自更广泛的AllenNLP社区的贡献,并且如果您希望将更改纳入库中,这可能是最快的途径。如果您想贡献一个较大的功能,我们建议首先创建一个带有提议设计的问题以供讨论。这将防止您在早期可能有人指出技术限制的实现上花费大量时间。小贡献可以直接通过拉取请求进行。

拉取请求(PR)必须获得一次批准的审查且没有要求更改,才能合并。由于AllenNLP主要是由AI2(@allenai)驱动的,我们保留拒绝或撤回我们认为不是良好补充的贡献的权利。

引用

如果您在研究中使用了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是一个非营利性研究所,其使命是通过具有重大影响的人工智能研究和工程为人类做出贡献。要了解更多关于具体为这个代码库做出贡献的人的信息,请参阅我们的贡献者页面

项目详情


下载文件

下载适用于您平台的项目文件。如果您不确定该选择哪个,请了解更多关于安装包的信息。

源分发

bio-embeddings-allennlp-0.9.2.tar.gz (9.9 MB 查看散列

上传时间

构建分发

bio_embeddings_allennlp-0.9.2-py3-none-any.whl (7.6 MB 查看散列

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面