跳转到主要内容

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

项目描述

Build Status codecov

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

快速链接

软件包概述

allennlp 一个基于PyTorch的开源NLP研究库
allennlp.commands 命令行界面和Web服务功能
allennlp.data 一个数据处理模块,用于加载数据集并将字符串编码为整数以在矩阵中表示
allennlp.models 一系列最先进的模型
allennlp.modules 一系列用于文本的PyTorch模块
allennlp.nn 张量实用函数,如初始化器和激活函数
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.7创建Conda环境

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

    conda activate allennlp
    

安装库和依赖项

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

pip install allennlp

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

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

使用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.7虚拟环境,并运行以下命令通过editable模式安装AllenNLP

pip install --editable .
pip install -r dev-requirements.txt

这将使allennlp在您的系统上可用,但它将使用您从源仓库本地克隆的源代码。

您可以使用allennlp test-install测试您的安装。./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:

    train        Train a model.
    evaluate     Evaluate the specified model + dataset.
    predict      Use a trained model to make predictions.
    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.
    make-vocab   Create a vocabulary, compute dataset statistics and other
                 training utilities.
    test-install
                 Run the unit tests.
    find-lr      Find a learning rate range.
    print-results
                 Print results from allennlp serialization directories to the
                 console.

Docker镜像

AllenNLP为每个版本发布到Docker Hub。有关如何运行这些发布的信息,请参阅使用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,请引用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是一个由艾伦人工智能研究所(AI2)支持的开放源代码项目。AI2是一个非营利性研究所,其使命是通过高影响力的AI研究和工程为人类做出贡献。有关具体贡献者的信息,请参阅我们的贡献者页面

项目详情


下载文件

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

源分布

unofficial-allennlp-nightly-0.9.2.tar.gz (4.6 MB 查看哈希值)

上传时间

构建分布

unofficial_allennlp_nightly-0.9.2-py3-none-any.whl (5.7 MB 查看哈希值)

上传时间 Python 3

由以下机构支持

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