AllenNLP добилась большого успеха, но поскольку эта область быстро развивается, пришло время сосредоточиться на новых инициативах. Мы прилагаем все усилия, чтобы сделать AI2 Tango лучшим способом организации исследовательских кодовых баз. Если вы активный пользователь AllenNLP, вот несколько предлагаемых альтернатив:
modules
и пакеты nn
AllenNLP, ознакомьтесь с delmaksym/allennlp-light. Он даже совместим с AI2 Tango!Если вы заинтересованы в использовании AllenNLP для разработки моделей, мы рекомендуем вам ознакомиться с руководством AllenNLP для подробного ознакомления с библиотекой, а затем с нашими более продвинутыми руководствами в обсуждениях GitHub.
Когда вы будете готовы начать свой проект, мы создали несколько репозиториев шаблонов, которые вы можете использовать в качестве отправной точки:
allennlp train
для задания экспериментов, используйте этот шаблон. Мы рекомендуем этот подход.Кроме того, существуют внешние обучающие материалы:
И другие в блоге AI2 AllenNLP.
AllenNLP поддерживает динамическую загрузку «плагинов». Плагин — это просто пакет Python, который предоставляет настраиваемые зарегистрированные классы или дополнительные подкоманды allennlp
.
Существует экосистема плагинов с открытым исходным кодом, некоторые из которых поддерживаются командой AllenNLP здесь, в AI2, а некоторые поддерживаются более широким сообществом.
Плагин | Сопровождающий | интерфейс командной строки | Описание |
allennlp-модели | AI2 | Нет | Коллекция самых современных моделей. |
allennlp-semparse | AI2 | Нет | Фреймворк для создания семантических парсеров |
allennlp-сервер | AI2 | Да | Простой демонстрационный сервер для обслуживания моделей |
allennlp-optuna | Макото Хирамацу | Да | Интеграция Optuna для оптимизации гиперпараметров |
AllenNLP автоматически найдет все официальные плагины, поддерживаемые AI2, которые вы установили, но чтобы AllenNLP мог найти установленные вами личные или сторонние плагины, вам также необходимо создать либо локальный файл плагинов с именем .allennlp_plugins
в каталоге, в котором вы запускаете команду allennlp
или глобальный файл плагинов ~/.allennlp/plugins
. В файле должны быть перечислены модули плагинов, которые вы хотите загрузить, по одному в строке.
Чтобы проверить, что ваши плагины могут быть найдены и импортированы AllenNLP, вы можете запустить команду allennlp test-install
. Каждый обнаруженный плагин будет зарегистрирован в терминале.
Дополнительную информацию о плагинах см. в документации API плагинов. Информацию о том, как создать собственную подкоманду для распространения в виде плагина, см. в документации по API подкоманд.
алленнлп | Исследовательская библиотека НЛП с открытым исходным кодом, созданная на PyTorch. |
allennlp.commands | Функциональность для CLI |
allennlp.common | Вспомогательные модули, используемые во всей библиотеке. |
allennlp.data | Модуль обработки данных для загрузки наборов данных и кодирования строк как целых чисел для представления в матрицах. |
allennlp.fairness | Модуль для алгоритмов и показателей смягчения предвзятости и справедливости. |
allennlp.modules | Коллекция модулей PyTorch для использования с текстом. |
allennlp.nn | Вспомогательные функции Tensor, такие как инициализаторы и функции активации. |
allennlp.training | Функционал для обучения моделей |
AllenNLP требует Python 3.6.1 или новее и PyTorch.
Мы поддерживаем AllenNLP в средах Mac и Linux. В настоящее время мы не поддерживаем 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
Перед установкой AllenNLP рекомендуется установить экосистему PyTorch, следуя инструкциям на сайте pytorch.org.
После этого просто запустите pip install allennlp
.
️ Если вы используете Python 3.7 или более позднюю версию, вам следует убедиться, что у вас не установлена версияdataclasses
PyPI после выполнения приведенной выше команды, поскольку это может вызвать проблемы на определенных платформах. Вы можете быстро проверить это, запустивpip freeze | grep dataclasses
. Если вы видите в выводе что-то вродеdataclasses=0.6
, просто запуститеpip uninstall -y dataclasses
.
Если вам нужны советы по настройке соответствующей среды Python или вы хотите установить AllenNLP другим методом, см. ниже.
Conda можно использовать для настройки виртуальной среды с версией Python, необходимой для AllenNLP. Если у вас уже есть среда Python 3, которую вы хотите использовать, вы можете перейти к разделу «Установка через pip».
Загрузите и установите Конду.
Создайте среду Conda с Python 3.8 (3.7 или 3.9 тоже подойдут):
conda create -n allennlp_env python=3.8
Активируйте среду Conda. Вам нужно будет активировать среду Conda в каждом терминале, в котором вы хотите использовать AllenNLP:
conda activate allennlp_env
Установить библиотеку и зависимости легко с помощью pip
.
pip install allennlp
Чтобы установить дополнительные зависимости, такие как checklist
, запустите
pip install allennlp[checklist]
Или вы можете просто установить все дополнительные зависимости с помощью pip install allennlp[all]
.
Ищете новейшие функции? Вы можете устанавливать ночные выпуски прямо из pypi.
AllenNLP устанавливает сценарий при установке пакета Python, поэтому вы можете запускать команды allennlp, просто введя allennlp
в терминал. Например, теперь вы можете протестировать свою установку с помощью allennlp test-install
.
Вы также можете установить allennlp-models
, который содержит конструкции NLP для обучения и запуска наших официально поддерживаемых моделей, многие из которых размещены по адресу https://demo.allennlp.org.
pip install allennlp-models
Docker предоставляет виртуальную машину со всем необходимым для запуска AllenNLP — независимо от того, будете ли вы использовать графический процессор или просто работать на процессоре. Docker обеспечивает большую изоляцию и согласованность, а также упрощает распределение среды в вычислительном кластере.
AllenNLP предоставляет официальные образы Docker с установленной библиотекой и всеми ее зависимостями.
После установки Docker вам также следует установить NVIDIA Container Toolkit, если у вас есть доступные графические процессоры.
Затем выполните следующую команду, чтобы получить среду, которая будет работать на графическом процессоре:
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
Если у вас нет доступных графических процессоров, просто опустите флаг --gpus all
.
По разным причинам вам может потребоваться создать собственный образ Docker AllenNLP, например, если вам нужна другая версия PyTorch. Для этого просто запустите make docker-image
из корня вашего локального клона AllenNLP.
По умолчанию создается образ с тегом allennlp/allennlp
, но вы можете изменить его на что угодно, установив флаг DOCKER_IMAGE_NAME
при вызове make
. Например, 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
Вы также можете установить AllenNLP, клонировав наш репозиторий git:
git clone https://github.com/allenai/allennlp.git
Создайте виртуальную среду Python 3.7 или 3.8 и установите AllenNLP в editable
режиме, выполнив:
pip install -U pip setuptools wheel
pip install --editable .[dev,all]
Это сделает allennlp
доступным в вашей системе, но он будет использовать исходные коды из локального клона, который вы создали из репозитория исходного кода.
Вы можете проверить свою установку с помощью allennlp test-install
. См. https://github.com/allenai/allennlp-models для получения инструкций по установке allennlp-models
из исходного кода.
После установки AllenNLP вы можете запустить интерфейс командной строки с помощью команды allennlp
(независимо от того, установили ли вы из pip
или из исходного кода). allennlp
имеет различные подкоманды, такие как train
, evaluate
и predict
. Чтобы просмотреть полную информацию об использовании, запустите allennlp --help
.
Вы можете проверить свою установку, запустив allennlp test-install
.
Каждый может сообщать о проблемах с помощью запросов на добавление функций, отчетов об ошибках или общих вопросов. Как небольшая команда с собственными внутренними целями, мы можем попросить внести свой вклад, если быстрое исправление не вписывается в нашу дорожную карту. Чтобы поддерживать порядок, мы часто закрываем вопросы, на которые, по нашему мнению, есть ответы, но не стесняйтесь следить за ними, если потребуется дальнейшее обсуждение.
Команда AllenNLP в AI2 (@allenai) приветствует вклад сообщества. Если вы впервые участвуете в проекте, мы рекомендуем вам начать с прочтения нашего руководства 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 — это некоммерческий институт, миссия которого состоит в том, чтобы внести свой вклад в развитие человечества посредством эффективных исследований и разработок в области искусственного интеллекта. Чтобы узнать больше о том, кто конкретно внес свой вклад в эту базу кода, посетите нашу страницу участников.