AllenNLP ha sido un gran éxito, pero como el campo avanza rápidamente, es hora de centrarse en nuevas iniciativas. Estamos trabajando arduamente para hacer de AI2 Tango la mejor manera de organizar bases de código de investigación. Si es un usuario activo de AllenNLP, aquí hay algunas alternativas sugeridas:
modules
y paquetes nn
de AllenNLP, consulte delmaksym/allennlp-light. ¡Incluso es compatible con AI2 Tango!Si está interesado en utilizar AllenNLP para el desarrollo de modelos, le recomendamos que consulte la Guía AllenNLP para obtener una introducción completa a la biblioteca, seguida de nuestras guías más avanzadas en Discusiones de GitHub.
Cuando esté listo para comenzar su proyecto, hemos creado un par de repositorios de plantillas que puede usar como punto de partida:
allennlp train
para especificar experimentos, utilice esta plantilla. Recomendamos este enfoque.Además, existen tutoriales externos:
Y otros en el blog AI2 AllenNLP.
AllenNLP admite la carga de "complementos" dinámicamente. Un complemento es solo un paquete de Python que proporciona clases registradas personalizadas o subcomandos allennlp
adicionales.
Existe un ecosistema de complementos de código abierto, algunos de los cuales son mantenidos por el equipo de AllenNLP aquí en AI2, y otros son mantenidos por la comunidad en general.
Complemento | mantenedor | CLI | Descripción |
allennlp-modelos | AI2 | No | Una colección de modelos de última generación. |
allennlp-semparse | AI2 | No | Un marco para construir analizadores semánticos |
servidor allennlp | AI2 | Sí | Un servidor de demostración simple para servir modelos |
allennlp-optuna | Makoto Hiramatsu | Sí | Integración de Optuna para optimización de hiperparámetros |
AllenNLP encontrará automáticamente cualquier complemento oficial mantenido por AI2 que haya instalado, pero para que AllenNLP encuentre complementos personales o de terceros que haya instalado, también debe crear un archivo de complementos local llamado .allennlp_plugins
en el directorio donde ejecuta el comando allennlp
, o un archivo de complementos globales en ~/.allennlp/plugins
. El archivo debe enumerar los módulos de complemento que desea cargar, uno por línea.
Para probar que AllenNLP puede encontrar e importar sus complementos, puede ejecutar el comando allennlp test-install
. Cada complemento descubierto se registrará en la terminal.
Para obtener más información sobre los complementos, consulte los documentos de la API de complementos. Y para obtener información sobre cómo crear un subcomando personalizado para distribuirlo como complemento, consulte los documentos de la API del subcomando.
allennlp | Una biblioteca de investigación de PNL de código abierto, construida sobre PyTorch |
allennlp.comandos | Funcionalidad para la CLI |
allennlp.común | Módulos de utilidad que se utilizan en toda la biblioteca |
allennlp.datos | Un módulo de procesamiento de datos para cargar conjuntos de datos y codificar cadenas como números enteros para su representación en matrices. |
allennlp.justicia | Un módulo para métricas y algoritmos de equidad y mitigación de sesgos |
allennlp.modules | Una colección de módulos de PyTorch para usar con texto. |
allennlp.nn | Funciones de utilidad tensoriales, como inicializadores y funciones de activación. |
allennlp.formacion | Funcionalidad para modelos de entrenamiento. |
AllenNLP requiere Python 3.6.1 o posterior y PyTorch.
Admitimos AllenNLP en entornos Mac y Linux. Actualmente no admitimos Windows, pero estamos abiertos a contribuciones.
La forma más sencilla de instalar AllenNLP es usar conda (puede elegir una versión de Python diferente):
conda install -c conda-forge python=3.8 allennlp
Para instalar paquetes opcionales, como checklist
, utilice
conda install -c conda-forge allennlp-checklist
o simplemente instale allennlp-all
directamente. Los complementos mencionados anteriormente se pueden instalar de manera similar, por ejemplo
conda install -c conda-forge allennlp-models allennlp-semparse allennlp-server allennlp-optuna
Se recomienda instalar el ecosistema PyTorch antes de instalar AllenNLP siguiendo las instrucciones en pytorch.org.
Después de eso, simplemente ejecute pip install allennlp
.
️ Si está utilizando Python 3.7 o superior, debe asegurarse de no tener instalada la versión PyPI dedataclasses
después de ejecutar el comando anterior, ya que esto podría causar problemas en ciertas plataformas. Puedes verificar esto rápidamente ejecutandopip freeze | grep dataclasses
. Si ve algo comodataclasses=0.6
en el resultado, simplemente ejecutepip uninstall -y dataclasses
.
Si necesita sugerencias sobre cómo configurar un entorno Python apropiado o desea instalar AllenNLP usando un método diferente, consulte a continuación.
Conda se puede utilizar para configurar un entorno virtual con la versión de Python requerida para AllenNLP. Si ya tiene un entorno Python 3 que desea utilizar, puede pasar a la sección "instalación mediante pip".
Descargue e instale Conda.
Cree un entorno Conda con Python 3.8 (3.7 o 3.9 también funcionarían):
conda create -n allennlp_env python=3.8
Activa el entorno de Conda. Deberás activar el entorno Conda en cada terminal en el que quieras utilizar AllenNLP:
conda activate allennlp_env
Instalar la biblioteca y las dependencias es sencillo usando pip
.
pip install allennlp
Para instalar las dependencias opcionales, como checklist
, ejecute
pip install allennlp[checklist]
O simplemente puede instalar todas las dependencias opcionales con pip install allennlp[all]
.
¿Busca funciones de vanguardia? Puede instalar lanzamientos nocturnos directamente desde pypi
AllenNLP instala un script cuando instala el paquete Python, por lo que puede ejecutar comandos allennlp simplemente escribiendo allennlp
en una terminal. Por ejemplo, ahora puede probar su instalación con allennlp test-install
.
Es posible que también desee instalar allennlp-models
, que contiene las construcciones de PNL para entrenar y ejecutar nuestros modelos oficialmente admitidos, muchos de los cuales están alojados en https://demo.allennlp.org.
pip install allennlp-models
Docker proporciona una máquina virtual con todo configurado para ejecutar AllenNLP, ya sea que aproveche una GPU o simplemente lo ejecute en una CPU. Docker proporciona más aislamiento y coherencia y también facilita la distribución de su entorno a un clúster informático.
AllenNLP proporciona imágenes oficiales de Docker con la biblioteca y todas sus dependencias instaladas.
Una vez que haya instalado Docker, también debe instalar NVIDIA Container Toolkit si tiene GPU disponibles.
Luego ejecute el siguiente comando para obtener un entorno que se ejecutará en GPU:
mkdir -p $HOME /.allennlp/
docker run --rm --gpus all -v $HOME /.allennlp:/root/.allennlp allennlp/allennlp:latest
Puede probar el entorno Docker con
docker run --rm --gpus all -v $HOME /.allennlp:/root/.allennlp allennlp/allennlp:latest test-install
Si no tiene GPU disponibles, simplemente omita el indicador --gpus all
.
Por varias razones, es posible que necesite crear su propia imagen de AllenNLP Docker, como si necesita una versión diferente de PyTorch. Para hacerlo, simplemente ejecute make docker-image
desde la raíz de su clon local de AllenNLP.
De forma predeterminada, esto crea una imagen con la etiqueta allennlp/allennlp
, pero puedes cambiarla a cualquier cosa que desees configurando el indicador DOCKER_IMAGE_NAME
cuando llamas make
. Por ejemplo, make docker-image DOCKER_IMAGE_NAME=my-allennlp
.
Si desea utilizar una versión diferente de Python o PyTorch, configure los indicadores DOCKER_PYTHON_VERSION
y DOCKER_TORCH_VERSION
en algo como 3.9
y 1.9.0-cuda10.2
, respectivamente. Estas banderas juntas determinan la imagen base que se utiliza. Puede ver la lista de combinaciones válidas en este Registro de contenedores de GitHub: github.com/allenai/docker-images/pkgs/container/pytorch.
Después de crear la imagen, debería poder verla en la lista ejecutando docker images allennlp
.
REPOSITORY TAG IMAGE ID CREATED SIZE
allennlp/allennlp latest b66aee6cb593 5 minutes ago 2.38GB
También puedes instalar AllenNLP clonando nuestro repositorio git:
git clone https://github.com/allenai/allennlp.git
Cree un entorno virtual Python 3.7 o 3.8 e instale AllenNLP en modo editable
ejecutando:
pip install -U pip setuptools wheel
pip install --editable .[dev,all]
Esto hará que allennlp
esté disponible en su sistema, pero utilizará las fuentes del clon local que realizó del repositorio de fuentes.
Puede probar su instalación con allennlp test-install
. Consulte https://github.com/allenai/allennlp-models para obtener instrucciones sobre cómo instalar allennlp-models
desde la fuente.
Una vez que haya instalado AllenNLP, puede ejecutar la interfaz de línea de comandos con el comando allennlp
(ya sea que haya instalado desde pip
o desde la fuente). allennlp
tiene varios subcomandos como train
, evaluate
y predict
. Para ver la información de uso completa, ejecute allennlp --help
.
Puede probar su instalación ejecutando allennlp test-install
.
Todos son bienvenidos a presentar problemas con solicitudes de funciones, informes de errores o preguntas generales. Como equipo pequeño con nuestros propios objetivos internos, podemos solicitar contribuciones si una solución rápida no encaja en nuestra hoja de ruta. Para mantener las cosas ordenadas, a menudo cerraremos las cuestiones que creemos que están respondidas, pero no dude en hacer un seguimiento si es necesario seguir discutiendo.
El equipo AllenNLP en AI2 (@allenai) agradece las contribuciones de la comunidad. Si es la primera vez que colabora, le recomendamos que comience leyendo nuestra guía CONTRIBUTING.md. Entonces eche un vistazo a nuestros números con la etiqueta Good First Issue
.
Si desea contribuir con una característica más amplia, le recomendamos primero crear un problema con un diseño propuesto para su discusión. Esto evitará que dedique mucho tiempo a una implementación que tiene una limitación técnica que alguien podría haber señalado desde el principio. Se pueden realizar pequeñas contribuciones directamente en una solicitud de extracción.
Las solicitudes de extracción (PR) deben tener una revisión de aprobación y ningún cambio solicitado antes de fusionarse. Como AllenNLP está impulsado principalmente por AI2, nos reservamos el derecho de rechazar o revertir contribuciones que no consideremos buenas adiciones.
Si utiliza AllenNLP en su investigación, cite AllenNLP: una plataforma de procesamiento de lenguaje natural semántico profundo.
@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 es un proyecto de código abierto respaldado por el Instituto Allen de Inteligencia Artificial (AI2). AI2 es un instituto sin fines de lucro con la misión de contribuir a la humanidad a través de la investigación e ingeniería de IA de alto impacto. Para obtener más información sobre quién contribuyó específicamente a este código base, consulte nuestra página de colaboradores.