AllenNLP tem sido um grande sucesso, mas como o campo avança rapidamente, é hora de focar em novas iniciativas. Estamos trabalhando duro para tornar o AI2 Tango a melhor maneira de organizar bases de código de pesquisa. Se você é um usuário ativo do AllenNLP, aqui estão algumas alternativas sugeridas:
modules
e pacotes nn
do AllenNLP, dê uma olhada em delmaksym/allennlp-light. É até compatível com AI2 Tango!Se você estiver interessado em usar AllenNLP para desenvolvimento de modelo, recomendamos que você verifique o Guia AllenNLP para uma introdução completa à biblioteca, seguido por nossos guias mais avançados sobre Discussões no GitHub.
Quando você estiver pronto para iniciar seu projeto, criamos alguns repositórios de modelos que você pode usar como ponto de partida:
allennlp train
para especificar experimentos, use este modelo. Recomendamos esta abordagem.Além disso, existem tutoriais externos:
E outros no blog AI2 AllenNLP.
AllenNLP suporta carregamento de "plugins" dinamicamente. Um plugin é apenas um pacote Python que fornece classes registradas personalizadas ou subcomandos allennlp
adicionais.
Existe um ecossistema de plug-ins de código aberto, alguns dos quais são mantidos pela equipe AllenNLP aqui na AI2, e alguns dos quais são mantidos pela comunidade em geral.
Plug-in | Mantenedor | CLI | Descrição |
modelos allennlp | AI2 | Não | Uma coleção de modelos de última geração |
allennlp-semparse | AI2 | Não | Uma estrutura para construir analisadores semânticos |
servidor allennlp | AI2 | Sim | Um servidor de demonstração simples para servir modelos |
allennlp-optuna | Makoto Hiramatsu | Sim | Integração Optuna para otimização de hiperparâmetros |
O AllenNLP encontrará automaticamente quaisquer plug-ins oficiais mantidos pelo AI2 que você instalou, mas para que o AllenNLP encontre plug-ins pessoais ou de terceiros que você instalou, você também deve criar um arquivo de plug-ins local chamado .allennlp_plugins
no diretório onde você executa o comando allennlp
ou um arquivo de plug-ins globais em ~/.allennlp/plugins
. O arquivo deve listar os módulos do plugin que você deseja carregar, um por linha.
Para testar se seus plug-ins podem ser encontrados e importados pelo AllenNLP, você pode executar o comando allennlp test-install
. Cada plugin descoberto será registrado no terminal.
Para obter mais informações sobre plug-ins, consulte a documentação da API de plug-ins. E para obter informações sobre como criar um subcomando personalizado para distribuir como um plug-in, consulte a documentação da API do subcomando.
allennlp | Uma biblioteca de pesquisa de PNL de código aberto, construída em PyTorch |
allennlp.commands | Funcionalidade para a CLI |
allennlp.common | Módulos utilitários que são usados na biblioteca |
allennlp.data | Um módulo de processamento de dados para carregar conjuntos de dados e codificar strings como números inteiros para representação em matrizes |
allennlp.fairness | Um módulo para mitigação de preconceitos e algoritmos e métricas de justiça |
allennlp.modules | Uma coleção de módulos PyTorch para uso com texto |
allennlp.nn | Funções utilitárias do tensor, como inicializadores e funções de ativação |
allennlp.training | Funcionalidade para modelos de treinamento |
AllenNLP requer Python 3.6.1 ou posterior e PyTorch.
Oferecemos suporte a AllenNLP em ambientes Mac e Linux. Atualmente não oferecemos suporte ao Windows, mas estamos abertos a contribuições.
A maneira mais simples de instalar AllenNLP é usando conda (você pode escolher uma versão diferente do python):
conda install -c conda-forge python=3.8 allennlp
Para instalar pacotes opcionais, como checklist
, use
conda install -c conda-forge allennlp-checklist
ou simplesmente instale allennlp-all
diretamente. Os plug-ins mencionados acima podem ser instalados de forma semelhante, por exemplo
conda install -c conda-forge allennlp-models allennlp-semparse allennlp-server allennlp-optuna
É recomendado que você instale o ecossistema PyTorch antes de instalar o AllenNLP seguindo as instruções em pytorch.org.
Depois disso, basta executar pip install allennlp
.
️ Se estiver usando Python 3.7 ou superior, certifique-se de não ter a versão PyPI dasdataclasses
instalada após executar o comando acima, pois isso pode causar problemas em determinadas plataformas. Você pode verificar isso rapidamente executandopip freeze | grep dataclasses
. Se você vir algo comodataclasses=0.6
na saída, basta executarpip uninstall -y dataclasses
.
Se você precisar de dicas sobre como configurar um ambiente Python apropriado ou quiser instalar o AllenNLP usando um método diferente, veja abaixo.
Conda pode ser usado para configurar um ambiente virtual com a versão do Python necessária para AllenNLP. Se você já possui um ambiente Python 3 que deseja usar, pode pular para a seção 'instalando via pip'.
Baixe e instale o Conda.
Crie um ambiente Conda com Python 3.8 (3.7 ou 3.9 também funcionariam):
conda create -n allennlp_env python=3.8
Ative o ambiente Conda. Você precisará ativar o ambiente Conda em cada terminal em que deseja usar AllenNLP:
conda activate allennlp_env
Instalar a biblioteca e as dependências é simples usando pip
.
pip install allennlp
Para instalar as dependências opcionais, como checklist
, execute
pip install allennlp[checklist]
Ou você pode simplesmente instalar todas as dependências opcionais com pip install allennlp[all]
.
Procurando recursos de última geração? Você pode instalar versões noturnas diretamente do pypi
AllenNLP instala um script quando você instala o pacote python, para que você possa executar comandos allennlp apenas digitando allennlp
em um terminal. Por exemplo, agora você pode testar sua instalação com allennlp test-install
.
Você também pode instalar allennlp-models
, que contém as construções de PNL para treinar e executar nossos modelos com suporte oficial, muitos dos quais estão hospedados em https://demo.allennlp.org.
pip install allennlp-models
O Docker fornece uma máquina virtual com tudo configurado para executar AllenNLP - quer você utilize uma GPU ou apenas execute em uma CPU. O Docker fornece mais isolamento e consistência e também facilita a distribuição do seu ambiente para um cluster de computação.
AllenNLP fornece imagens oficiais do Docker com a biblioteca e todas as suas dependências instaladas.
Depois de instalar o Docker, você também deve instalar o NVIDIA Container Toolkit se tiver GPUs disponíveis.
Em seguida, execute o seguinte comando para obter um ambiente que será executado na GPU:
mkdir -p $HOME /.allennlp/
docker run --rm --gpus all -v $HOME /.allennlp:/root/.allennlp allennlp/allennlp:latest
Você pode testar o ambiente Docker com
docker run --rm --gpus all -v $HOME /.allennlp:/root/.allennlp allennlp/allennlp:latest test-install
Se você não tiver GPUs disponíveis, basta omitir o sinalizador --gpus all
.
Por vários motivos, você pode precisar criar sua própria imagem AllenNLP Docker, como se precisar de uma versão diferente do PyTorch. Para fazer isso, basta executar make docker-image
na raiz do seu clone local do AllenNLP.
Por padrão, isso cria uma imagem com a tag allennlp/allennlp
, mas você pode alterar isso para o que quiser definindo o sinalizador DOCKER_IMAGE_NAME
ao chamar make
. Por exemplo, make docker-image DOCKER_IMAGE_NAME=my-allennlp
.
Se você quiser usar uma versão diferente do Python ou PyTorch, defina os sinalizadores DOCKER_PYTHON_VERSION
e DOCKER_TORCH_VERSION
para algo como 3.9
e 1.9.0-cuda10.2
, respectivamente. Juntos, esses sinalizadores determinam a imagem base usada. Você pode ver a lista de combinações válidas neste GitHub Container Registry: github.com/allenai/docker-images/pkgs/container/pytorch.
Depois de construir a imagem, você poderá vê-la listada executando docker images allennlp
.
REPOSITORY TAG IMAGE ID CREATED SIZE
allennlp/allennlp latest b66aee6cb593 5 minutes ago 2.38GB
Você também pode instalar o AllenNLP clonando nosso repositório git:
git clone https://github.com/allenai/allennlp.git
Crie um ambiente virtual Python 3.7 ou 3.8 e instale o AllenNLP no modo editable
executando:
pip install -U pip setuptools wheel
pip install --editable .[dev,all]
Isso disponibilizará allennlp
em seu sistema, mas usará as fontes do clone local que você fez do repositório de origem.
Você pode testar sua instalação com allennlp test-install
. Consulte https://github.com/allenai/allennlp-models para obter instruções sobre como instalar allennlp-models
a partir da fonte.
Depois de instalar o AllenNLP, você pode executar a interface de linha de comando com o comando allennlp
(seja instalado a partir do pip
ou da fonte). allennlp
possui vários subcomandos, como train
, evaluate
e predict
. Para ver as informações completas de uso, execute allennlp --help
.
Você pode testar sua instalação executando allennlp test-install
.
Todos são bem-vindos para registrar problemas com solicitações de recursos, relatórios de bugs ou perguntas gerais. Como uma equipe pequena com nossos próprios objetivos internos, podemos pedir contribuições se uma solução imediata não se enquadrar em nosso roteiro. Para manter as coisas organizadas, frequentemente encerraremos questões que achamos que foram respondidas, mas não hesite em continuar se for necessária uma discussão mais aprofundada.
A equipe AllenNLP da AI2 (@allenai) agradece contribuições da comunidade. Se você é um contribuidor iniciante, recomendamos que comece lendo nosso guia CONTRIBUTING.md. Então dê uma olhada em nossos problemas com a tag Good First Issue
.
Se você quiser contribuir com um recurso maior, recomendamos primeiro criar um problema com um design proposto para discussão. Isso evitará que você gaste um tempo significativo em uma implementação que tenha uma limitação técnica que alguém poderia ter apontado anteriormente. Pequenas contribuições podem ser feitas diretamente em uma solicitação pull.
As solicitações pull (PRs) devem ter uma revisão de aprovação e nenhuma alteração solicitada antes de serem mescladas. Como AllenNLP é impulsionado principalmente pelo AI2, nos reservamos o direito de rejeitar ou reverter contribuições que não consideramos boas adições.
Se você usa AllenNLP em sua pesquisa, cite 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 é um projeto de código aberto apoiado pelo Allen Institute for Artificial Intelligence (AI2). AI2 é um instituto sem fins lucrativos com a missão de contribuir para a humanidade através de pesquisa e engenharia de IA de alto impacto. Para saber mais sobre quem contribuiu especificamente para esta base de código, consulte nossa página de contribuidores.