AllenNLP는 큰 성공을 거두었지만 해당 분야가 빠르게 발전하고 있으므로 이제는 새로운 계획에 집중해야 할 때입니다. 우리는 AI2 Tango를 연구 코드베이스를 구성하는 가장 좋은 방법으로 만들기 위해 열심히 노력하고 있습니다. AllenNLP의 활성 사용자라면 다음과 같은 몇 가지 대안을 제안해 드립니다.
modules
과 nn
패키지가 마음에 든다면 delmaksym/allennlp-light를 확인하세요. AI2 Tango와도 호환됩니다!모델 개발을 위해 AllenNLP를 사용하는 데 관심이 있다면 AllenNLP 가이드에서 라이브러리에 대한 철저한 소개를 확인한 다음 GitHub 토론의 고급 가이드를 확인하는 것이 좋습니다.
프로젝트를 시작할 준비가 되면 시작 장소로 사용할 수 있는 몇 가지 템플릿 저장소를 만들었습니다.
allennlp train
및 구성 파일을 사용하여 실험을 지정하려면 이 템플릿을 사용하세요. 이 접근 방식을 권장합니다.또한 외부 튜토리얼도 있습니다:
그리고 AI2 AllenNLP 블로그의 다른 사람들.
AllenNLP는 "플러그인"을 동적으로 로드하는 것을 지원합니다. 플러그인은 사용자 정의 등록 클래스 또는 추가 allennlp
하위 명령을 제공하는 Python 패키지입니다.
오픈 소스 플러그인 생태계가 있으며, 그 중 일부는 여기 AI2의 AllenNLP 팀에서 유지 관리하고 일부는 더 광범위한 커뮤니티에서 유지 관리됩니다.
플러그인 | 유지관리자 | CLI | 설명 |
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를 기반으로 구축된 오픈 소스 NLP 연구 라이브러리 |
allennlp.명령 | CLI의 기능 |
allennlp.common | 라이브러리 전체에서 사용되는 유틸리티 모듈 |
allennlp.data | 데이터 세트를 로드하고 문자열을 행렬 표현을 위한 정수로 인코딩하기 위한 데이터 처리 모듈 |
allennlp.fairness | 편견 완화와 공정성 알고리즘 및 측정항목을 위한 모듈 |
allennlp.모듈 | 텍스트와 함께 사용하기 위한 PyTorch 모듈 모음 |
allennlp.nn | 초기화 및 활성화 함수와 같은 Tensor 유틸리티 함수 |
allennlp.훈련 | 모델 학습 기능 |
AllenNLP에는 Python 3.6.1 이상과 PyTorch가 필요합니다.
Mac 및 Linux 환경에서 AllenNLP를 지원합니다. 우리는 현재 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.org의 지침에 따라 PyTorch 생태계를 설치하는 것이 좋습니다.
그런 다음 pip install allennlp
실행하세요.
️ Python 3.7 이상을 사용하는 경우 위 명령을 실행한 후dataclasses
의 PyPI 버전이 설치되어 있지 않은지 확인해야 합니다. 이로 인해 특정 플랫폼에서 문제가 발생할 수 있습니다.pip freeze | grep dataclasses
. 출력에dataclasses=0.6
과 같은 내용이 표시되면pip uninstall -y dataclasses
실행하세요.
적절한 Python 환경을 설정하는 데 지침이 필요하거나 다른 방법을 사용하여 AllenNLP를 설치하려면 아래를 참조하세요.
Conda는 AllenNLP에 필요한 Python 버전으로 가상 환경을 설정하는 데 사용할 수 있습니다. 사용하려는 Python 3 환경이 이미 있는 경우 'pip를 통해 설치' 섹션으로 건너뛸 수 있습니다.
Conda를 다운로드하고 설치합니다.
Python 3.8(3.7 또는 3.9도 작동 가능)을 사용하여 Conda 환경을 만듭니다.
conda create -n allennlp_env python=3.8
Conda 환경을 활성화합니다. AllenNLP를 사용하려는 각 터미널에서 Conda 환경을 활성화해야 합니다.
conda activate allennlp_env
pip
사용하면 라이브러리와 종속성을 설치하는 것이 간단합니다.
pip install allennlp
checklist
와 같은 선택적 종속성을 설치하려면 다음을 실행하세요.
pip install allennlp[checklist]
또는 pip install allennlp[all]
사용하여 모든 선택적 종속성을 설치할 수도 있습니다.
최첨단 기능을 찾고 계십니까? pypi에서 직접 nightly 릴리스를 설치할 수 있습니다.
AllenNLP는 Python 패키지를 설치할 때 스크립트를 설치하므로 터미널에 allennlp
입력하기만 하면 allennlp 명령을 실행할 수 있습니다. 예를 들어 이제 allennlp test-install
사용하여 설치를 테스트할 수 있습니다.
또한 공식적으로 지원되는 모델을 훈련하고 실행하기 위한 NLP 구성이 포함된 allennlp-models
설치할 수도 있습니다. 이 중 다수는 https://demo.allennlp.org에서 호스팅됩니다.
pip install allennlp-models
Docker는 GPU를 활용하든 CPU에서 실행하든 AllenNLP를 실행하도록 설정된 모든 것을 가상 머신에 제공합니다. Docker는 더 많은 격리와 일관성을 제공하고 환경을 컴퓨팅 클러스터에 쉽게 배포할 수 있도록 해줍니다.
AllenNLP는 라이브러리와 모든 종속 항목이 설치된 공식 Docker 이미지를 제공합니다.
Docker를 설치한 후 GPU를 사용할 수 있는 경우 NVIDIA Container Toolkit도 설치해야 합니다.
그런 다음 다음 명령을 실행하여 GPU에서 실행될 환경을 가져옵니다.
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
사용 가능한 GPU가 없으면 --gpus all
플래그를 생략하면 됩니다.
다른 버전의 PyTorch가 필요한 경우와 같이 다양한 이유로 자체 AllenNLP Docker 이미지를 생성해야 할 수도 있습니다. 그렇게 하려면 AllenNLP의 로컬 복제본 루트에서 make docker-image
실행하면 됩니다.
기본적으로 이것은 allennlp/allennlp
태그를 사용하여 이미지를 빌드하지만 make
호출할 때 DOCKER_IMAGE_NAME
플래그를 설정하여 이를 원하는 대로 변경할 수 있습니다. 예를 들어 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
Git 저장소를 복제하여 AllenNLP를 설치할 수도 있습니다.
git clone https://github.com/allenai/allennlp.git
Python 3.7 또는 3.8 가상 환경을 생성하고 다음을 실행하여 editable
모드로 AllenNLP를 설치합니다.
pip install -U pip setuptools wheel
pip install --editable .[dev,all]
이렇게 하면 시스템에서 allennlp
사용할 수 있게 되지만 소스 저장소로 만든 로컬 복제본의 소스를 사용하게 됩니다.
allennlp test-install
사용하여 설치를 테스트할 수 있습니다. 소스에서 allennlp-models
설치하는 방법에 대한 지침은 https://github.com/allenai/allennlp-models를 참조하세요.
AllenNLP를 설치한 후에는 allennlp
명령( pip
또는 소스에서 설치했는지 여부)을 사용하여 명령줄 인터페이스를 실행할 수 있습니다. allennlp
에는 train
, evaluate
및 predict
과 같은 다양한 하위 명령이 있습니다. 전체 사용 정보를 보려면 allennlp --help
실행하세요.
allennlp test-install
실행하여 설치를 테스트할 수 있습니다.
누구나 기능 요청, 버그 보고서 또는 일반적인 질문을 통해 문제를 제출할 수 있습니다. 자체 내부 목표를 가진 소규모 팀으로서 즉각적인 수정이 로드맵에 맞지 않으면 기여를 요청할 수 있습니다. 일을 깔끔하게 유지하기 위해 답변이 있다고 생각되는 문제를 종료하는 경우가 많지만 추가 논의가 필요한 경우 주저하지 말고 후속 조치를 취하세요.
AI2의 AllenNLP 팀(@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는 Allen Institute for Artificial Intelligence(AI2)가 지원하는 오픈 소스 프로젝트입니다. AI2는 영향력 있는 AI 연구와 엔지니어링을 통해 인류에 공헌한다는 사명을 가진 비영리 기관입니다. 이 코드베이스에 특별히 기여한 사람에 대해 자세히 알아보려면 기여자 페이지를 참조하세요.