이 저장소에는 다양한 NLP 작업에 AllEnnlp를 적용하기위한 DatasetReader , Model 및 Predictor 클래스와 같은 구성 요소가 포함되어 있습니다. 또한 이러한 구성 요소로 훈련 된 미리 훈련 된 모델을 다운로드하고 사용하는 쉬운 방법을 제공합니다.
이는 AllEnnlp Model Library에서 지원하는 작업에 대한 개요와 카테고리별로 구성된 해당 구성 요소와 함께 제공됩니다. 보다 포괄적 인 개요는 AllEnnlp 모델 문서 또는 논문위원회 페이지를 참조하십시오.
분류
분류 작업에는 각 입력에 할당하기 위해 사전 정의 된 세트에서 하나 이상의 레이블을 예측하는 것이 포함됩니다. 예를 들어 라벨이 {"positive", "negative", "neutral"} 및 이진 질문 응답이있을 수있는 감정 분석이 있습니다. 여기서 레이블은 {True, False} 입니다.
? 제공된 구성 요소 : BOOLQ 및 SST를 포함한 다양한 데이터 세트에 대한 데이터 세트 리더 및 Biattentive Classification Network 모델.
코퍼레이션 해상도
코퍼레이션 해상도 작업은 공통 엔터티를 나타내는 텍스트에서 모든 표현식을 찾아야합니다.
자세한 내용은 nlp.stanford.edu/projects/coref를 참조하십시오.
? 제공된 구성 요소 : 일반적인 Coref 모델 및 여러 데이터 세트 리더.
세대
이것은 치료되지 않고 종종 가변 길이 텍스트를 생성하는 요약과 같은 작업의 광범위한 범주입니다.
? 구성 요소 제공 : BART, COPYNET 및 일반적인 구성된 SEQ2SEQ와 함께 해당 데이터 세트 리더와 함께 여러 SEQ2SEQ 모델.
언어 모델링
언어 모델링 작업에는 토큰 시퀀스에 대한 확률 분포를 학습하는 것이 포함됩니다.
? 제공된 구성 요소 : 마스킹 된 LM 및 다음 토큰 LM과 같은 여러 언어 모델 구현.
객관식
객관식 작업은 대안 중 올바른 선택을 선택해야하며, 모든 입력에 대해 선택 세트가 다를 수 있습니다. 이것은 선택 세트가 모든 입력에 걸쳐 사전 정의되고 고정 된 분류와 다릅니다.
? 제공된 구성 요소 : 변압기 기반 객관식 모델 및 특정 데이터 세트에 대한 소수의 데이터 세트 리더.
쌍 분류
쌍 분류는 텍스트 수입과 같은 작업이 포함 된 또 다른 광범위한 범주이며, 이는 한 쌍의 문장의 경우 첫 번째 문장의 사실이 두 번째 문장의 사실을 암시하는지 여부를 결정하는 것입니다.
? 제공된 구성 요소 : SNLI 및 Quora Paraphrase를 포함한 여러 데이터 세트의 데이터 세트 리더.
독해력
이해력을 읽는 것은 시스템이 구절을 이해한다는 것을 보여주는 텍스트 구절에 대한 질문에 답하는 것이 포함됩니다.
? 제공된 구성 요소 : Bidaf 및 변압기 기반 QA 모델과 같은 모델뿐만 아니라 Drop, Quac 및 Squad와 같은 데이터 세트의 독자.
구조화 된 예측
구조화 된 예측은 SRL (Semantic 역할 라벨링)과 같은 작업을 포함하며, 이는 문장의 잠재적 술어 인수 구조를 결정하고 문장 의미에 대한 기본적인 질문에 대답 할 수있는 기본적인 질문에 대답 할 수있는 표현을 제공하는 것입니다.
? 구성 요소 : Penn Tree Bank, Ontonotes 등의 데이터 세트 리더 및 SRL 용 및 매우 일반적인 그래프 파서를 포함한 여러 모델.
시퀀스 태깅
시퀀스 태깅 작업에는 명명 된 엔티티 인식 (NER) 및 세분화 된 NER이 포함됩니다.
? 제공된 구성 요소 : Conll-2000, Conll-2003, CCGBank 및 Ontonotes와 같은 데이터 세트의 조건부 랜덤 필드 모델 및 데이터 세트 리더.
텍스트 + 비전
이것은 모든 텍스트 + 비전 멀티 모달 작업과 같은 시각적 질문 답변 (VQA)의 모든 범주입니다. 이미지의 내용에 대한 자연어 질문에 대한 답변을 생성하는 작업입니다.
? 구성 요소 : VQA 용 Vilbert 모델 및 시각적 수소 용 모델 및 해당 데이터 세트 리더와 같은 여러 모델.
AllEnnlp 모델의 모든 사기꾼 모델에는 allennlp_models/modelcards/ 폴더에 해당 ModelCard 가 있습니다. 이 모델 중 다수는 Allennlp 데모 및 Allennlp 프로젝트 갤러리에서도 호스팅됩니다.
사용 가능한 모델을 프로그래밍 방식으로 나열하려면 파이썬 세션에서 다음을 실행할 수 있습니다.
> >> from allennlp_models import pretrained
> >> print ( pretrained . get_pretrained_models ()) 출력은 모델 ID를 ModelCard 에 매핑하는 사전입니다.
{'structured-prediction-srl-bert': <allennlp.common.model_card.ModelCard object at 0x14a705a30>, ...}
pretrained.load_predictor() 도우미를 사용하여 이러한 모델에 대한 Predictor 로드 할 수 있습니다. 예를 들어:
> >> pretrained . load_predictor ( "mc-roberta-swag" )다음은 현재 사용 가능한 미리 훈련 된 모델 목록입니다.
coref-spanbert -미래의 추론 (Spanbert Embeddings)이있는 고차 코어프.evaluate_rc-lerc 후보 답변을 0에서 1로 점수하는 버트 모델.generation-bart -Bart는 세대를위한 언어 모델 헤드가 있습니다.glove-sst - 장갑 임베딩이있는 LSTM 바이너리 분류기.lm-masked-language-model 버트 기반 가면 언어 모델lm-next-token-lm-gpt2 다음 토큰을 생성하는 OpenAi의 GPT-2 언어 모델.mc-roberta-commonsenseqa CommonsenseQa의 Roberta 기반 객관식 모델.mc-roberta-piqa PIQA- PIQA 용 Roberta 기반 객관식 모델.mc-roberta-swag -Roberta 기반의 객관식 모델 SWAG.nlvr2-vilbert 시각적 수입을위한 Vilbert 기반 모델.nlvr2-vilbert 시각적 수입을위한 Vilbert 기반 모델.pair-classification-adversarial-binary-gender-bias-mitigated-roberta-snli -로버타는 적대적 이진 성별 바이어스 완화와 함께 SNLI에 미세히 부여된다.pair-classification-binary-gender-bias-mitigated-roberta-snli 로베르타는 이진 성 바이어스 완화와 함께 SNLI에 미세히 조정되었습니다.pair-classification-decomposable-attention-elmo -SNLI에서 훈련 된 엘모 임베딩과 결합 된 분해 가능한주의 모델 (Parikh et al, 2017).pair-classification-esim 향상된 LSTM SNLI 훈련.pair-classification-roberta-mnli Roberta는 Mnli에 미세하게되었습니다.pair-classification-roberta-rte Devlin et al의 제안 된 모델 이후 패턴 화 된 쌍 분류 모델, SuperGlue RTE 코퍼스에서 미세 조정pair-classification-roberta-snli -슬리-Roberta는 SNLI에 미세하게되었습니다.rc-bidaf-elmo 장갑 대신 엘모 임베딩이있는 Bidaf 모델.rc-bidaf 장갑 내장이있는 BIDAF 모델.rc-naqanet 오리지널 드롭 용지에 발표 된 바와 같이, 드롭에 훈련 된 기초 수치 추론 능력을 추가하는 Qanet의 증강 된 버전.rc-nmn 신경 모듈 네트워크.rc-transformer-qa Devlin et al의 제안 된 모델 이후 패턴 화 된 읽기 이해 모델, Transformers Project의 분대 모델에서 개선 된 개선roberta-sst 스탠포드 감정 트리 뱅크 용 로베르타 기반 바이너리 분류기structured-prediction-biaffine-parser -양방향 LSTM 위에 Biaffine 분류기를 사용하여 의존성 구문 분석을위한 신경 모델.structured-prediction-constituency-parser -선거구 파서structured-prediction-srl-bert 일부 수정 (선형 분류 층을 제외한 추가 매개 변수 없음)이있는 Bert 기반 모델 (Shi et al, 2019)structured-prediction-srl 심층 BILSTM 서열 예측 모델의 상환 (Stanovsky et al., 2018)tagging-elmo-crf-tagger -GRU (Gated Reburrent Unit) 문자 인코더를 사용하여 GRU 문구 인코더를 사용하여 글러브 임베드를 사용한 GRU Phrase Encoder를 사용합니다.tagging-fine-grained-crf-tagger -이 모델은 입력 텍스트에서 광범위한 16 개의 시맨틱 유형을 식별합니다. 그것은 Lample (2016)의 상환이며 CRF 층, 문자 임베딩 및 엘모 임베딩이있는 빌스트 름을 사용합니다.tagging-fine-grained-transformer-crf-tagger -세분화 된 NER 모델ve-vilbert Vilbert 기반 모델을위한 Vilbert 기반 모델.vgqa-vilbert -VILBERT (비전 및 언어 버트의 경우 짧음)는 이미지 컨텐츠 및 자연어에 대한 작업 공동 공동 표현을 학습하는 모델입니다.vqa-vilbert -VILBERT (비전 및 언어 버트의 경우 짧음)는 이미지 컨텐츠 및 자연 언어에 대한 작업에 대한 공동 공동 표현을 학습하는 모델입니다. allennlp-models PYPI에서 사용할 수 있습니다. pip 로 설치하려면 실행 중입니다
pip install allennlp-models allennlp-models 패키지는 allennlp 코어 패키지에 연결되어 있습니다. 따라서 모델 패키지를 설치하면 allennlp 의 해당 버전 ( allennlp 아직 설치하지 않은 경우)을 얻게됩니다. 예를 들어,
pip install allennlp-models==2.2.0
pip freeze | grep allennlp
# > allennlp==2.2.0
# > allennlp-models==2.2.0 소스에서 모델 패키지를 설치하려는 경우 소스에서 allennlp 설치하려고합니다. allennlp 설치하면 동일한 Python 환경 내에서 다음을 실행하십시오.
git clone https://github.com/allenai/allennlp-models.git
cd allennlp-models
ALLENNLP_VERSION_OVERRIDE= ' allennlp ' pip install -e .
pip install -r dev-requirements.txt ALLENNLP_VERSION_OVERRIDE 환경 변수는 allennlp 의 로컬 설치로 충분할 수 있도록 allennlp 의존성을 풀지 못하도록합니다. 그러나 아직 allennlp 설치하지 않았고 로컬 설치를 관리하고 싶지 않은 경우이 환경 변수를 생략하면 Github의 기본 지점에서 allennlp 설치됩니다.
allennlp 와 allennlp-models 모두 나란히 개발되고 테스트되므로 서로 최신 상태로 유지해야합니다. allennlp-models 의 Github Actions 워크 플로우를 보면 allennlp 의 주요 지점에 대해 항상 테스트됩니다. 마찬가지로 allennlp 항상 allennlp-models 의 주요 지점에 대해 테스트됩니다.
Docker는 GPU를 활용하든 CPU에서 실행하든 AllEnnlp를 실행하기 위해 설정된 모든 것을 갖춘 가상 머신을 제공합니다. Docker는 더 많은 분리와 일관성을 제공하며 환경을 컴퓨팅 클러스터에 쉽게 배포 할 수 있습니다.
Docker를 설치 한 후에는 릴리스에서 사전 제작 된 이미지를 사용하거나 allennlp 및 allennlp-models 버전으로 로컬로 이미지를 빌드 할 수 있습니다.
GPU를 사용할 수있는 경우 NVIDIA DOCKER 런타임을 설치해야합니다.
특정 릴리스에서 로컬로 이미지를 작성하려면
docker build
--build-arg RELEASE=1.2.2
--build-arg CUDA=10.2
-t allennlp/models - < Dockerfile.release RELEASE 교체하고 CUDA Build Args를 필요한 것으로 바꾸십시오. Docker Hub에서 사용 가능한 태그를 확인하여 주어진 RELEASE 에 사용할 수있는 CUDA 버전을 확인할 수 있습니다.
또는 allennlp 및 allennlp-models 의 특정 커밋에 대해 구축 할 수 있습니다.
docker build
--build-arg ALLENNLP_COMMIT=d823a2591e94912a6315e429d0fe0ee2efb4b3ee
--build-arg ALLENNLP_MODELS_COMMIT=01bc777e0d89387f03037d398cd967390716daf1
--build-arg CUDA=10.2
-t allennlp/models - < Dockerfile.commit ALLENNLP_COMMIT / ALLENNLP_MODELS_COMMIT 및 CUDA 각각 원하는 Commit Shas 및 Cuda 버전으로 변경하십시오.
이미지를 구축하면 다음과 같이 실행할 수 있습니다.
mkdir -p $HOME /.allennlp/
docker run --rm --gpus all -v $HOME /.allennlp:/root/.allennlp allennlp/models참고 :
--gpus allNVIDIA DOCKER 런타임을 설치 한 경우에만 유효합니다.