ที่เก็บนี้มีส่วนประกอบ - เช่น DatasetReader , Model และ Predictor Classes - สำหรับการใช้ AllennLP กับงาน NLP ที่หลากหลาย นอกจากนี้ยังมีวิธีที่ง่ายในการดาวน์โหลดและใช้โมเดลที่ผ่านการฝึกอบรมมาก่อนซึ่งได้รับการฝึกฝนด้วยส่วนประกอบเหล่านี้
นี่คือภาพรวมของงานที่ได้รับการสนับสนุนโดยห้องสมุด Models Allennlp พร้อมกับส่วนประกอบที่เกี่ยวข้องที่จัดทำโดยหมวดหมู่ สำหรับภาพรวมที่ครอบคลุมมากขึ้นให้ดูเอกสารประกอบโมเดล AllennLP หรือหน้า PapersWithCode
การจำแนกประเภท
งานการจำแนกประเภทเกี่ยวข้องกับการทำนายหนึ่งหรือมากกว่าหนึ่งฉลากจากชุดที่กำหนดไว้ล่วงหน้าเพื่อกำหนดให้กับแต่ละอินพุต ตัวอย่างรวมถึงการวิเคราะห์ความเชื่อมั่นที่ฉลากอาจเป็น {"positive", "negative", "neutral"} , และการตอบคำถามไบนารีที่ฉลากเป็น {True, False}
- ส่วนประกอบที่มีให้: เครื่องอ่านชุดข้อมูลสำหรับชุดข้อมูลต่าง ๆ รวมถึง BoolQ และ SST รวมถึงโมเดลเครือข่ายการจำแนกประเภท biatentive
ความละเอียด coreference
งานความละเอียด CoreFerence ต้องการการค้นหาการแสดงออกทั้งหมดในข้อความที่อ้างถึงเอนทิตีทั่วไป
ดู nlp.stanford.edu/projects/coref สำหรับรายละเอียดเพิ่มเติม
- ส่วนประกอบที่มีให้: โมเดล CoreF ทั่วไปและเครื่องอ่านชุดข้อมูลหลายตัว
รุ่น
นี่เป็นหมวดหมู่ที่กว้างสำหรับงานเช่นการสรุปที่เกี่ยวข้องกับการสร้างข้อความที่ไม่มีการ จำกัด และมักจะมีความยาวตัวแปร
- ส่วนประกอบที่มีให้: SEQ2SEQ หลายรุ่นเช่น BART, COPYNET และ SEQ2SEQ ที่ประกอบขึ้นทั่วไปพร้อมกับเครื่องอ่านชุดข้อมูลที่สอดคล้องกัน
การสร้างแบบจำลองภาษา
งานการสร้างแบบจำลองภาษาเกี่ยวข้องกับการเรียนรู้การกระจายความน่าจะเป็นมากกว่าลำดับของโทเค็น
- ส่วนประกอบที่มีให้: การใช้แบบจำลองภาษาหลายแบบเช่น LM ที่สวมหน้ากากและโทเค็น LM ถัดไป
หลายทางเลือก
งานหลายตัวเลือกต้องเลือกตัวเลือกที่ถูกต้องระหว่างทางเลือกโดยที่ชุดของตัวเลือกอาจแตกต่างกันสำหรับแต่ละอินพุต สิ่งนี้แตกต่างจากการจำแนกประเภทที่ชุดของตัวเลือกถูกกำหนดไว้ล่วงหน้าและแก้ไขในอินพุตทั้งหมด
- ส่วนประกอบที่มีให้: โมเดลตัวเลือกแบบหลายตัวเลือกที่ใช้หม้อแปลงและเครื่องอ่านชุดข้อมูลจำนวนหนึ่งสำหรับชุดข้อมูลเฉพาะ
การจำแนกคู่
การจำแนกประเภทคู่เป็นอีกหมวดหมู่กว้าง ๆ ที่มีงานเช่นการใส่ข้อความที่เป็นข้อความซึ่งคือการพิจารณาว่าสำหรับประโยคคู่หนึ่งข้อเท็จจริงในประโยคแรกบ่งบอกถึงข้อเท็จจริงในวินาทีหรือไม่
- ส่วนประกอบที่มีให้: เครื่องอ่านชุดข้อมูลสำหรับชุดข้อมูลหลายชุดรวมถึง SNLI และ Quora Paraphrase
การอ่านความเข้าใจ
การอ่านงานความเข้าใจเกี่ยวข้องกับการตอบคำถามเกี่ยวกับข้อความที่แสดงเพื่อแสดงว่าระบบเข้าใจข้อความ
- ส่วนประกอบที่มีให้: โมเดลเช่น BIDAF และโมเดล QA ที่ใช้หม้อแปลงรวมถึงผู้อ่านสำหรับชุดข้อมูลเช่น Drop, Quac และ Squad
การทำนายที่มีโครงสร้าง
การทำนายที่มีโครงสร้างรวมถึงงานต่าง ๆ เช่นการติดฉลากบทบาทความหมาย (SRL) ซึ่งมีไว้สำหรับการพิจารณาโครงสร้างอาร์กิวเมนต์ที่แฝงอยู่ของประโยคและการจัดหาตัวแทนที่สามารถตอบคำถามพื้นฐานเกี่ยวกับความหมายของประโยครวมถึงผู้ที่ทำสิ่งที่ใครเป็นต้น
- ส่วนประกอบที่มีให้: เครื่องอ่านชุดข้อมูลสำหรับ Penn Tree Bank, Ontonotes ฯลฯ และหลายรุ่นรวมถึงรุ่นสำหรับ SRL และตัวแยกวิเคราะห์กราฟทั่วไป
การติดแท็กลำดับ
งานการติดแท็กลำดับรวมถึงการจดจำเอนทิตีชื่อ (NER) และ NER เนื้อละเอียด
- ส่วนประกอบที่มีให้: แบบจำลองฟิลด์แบบสุ่มแบบมีเงื่อนไขและเครื่องอ่านชุดข้อมูลสำหรับชุดข้อมูลเช่น Conll-2000, Conll-2003, CCGBANK และ ONTONOTES
ข้อความ + วิสัยทัศน์
นี่คือหมวดหมู่ทั้งหมดสำหรับข้อความใด ๆ + วิสัยทัศน์หลายรูปแบบโมเดลการตอบคำถามด้วยภาพ (VQA) งานสร้างคำตอบเพื่อตอบคำถามภาษาธรรมชาติเกี่ยวกับเนื้อหาของภาพ
- ส่วนประกอบที่มีให้: หลายรุ่นเช่นโมเดล VILBERT สำหรับ VQA และอีกรุ่นหนึ่งสำหรับ Visual Entailment พร้อมกับเครื่องอ่านชุดข้อมูลที่สอดคล้องกัน
ทุกรุ่นที่ได้รับการฝึกฝนในโมเดล Allennlp มี ModelCard ที่สอดคล้องกันใน allennlp_models/modelcards/ Folder หลายรุ่นเหล่านี้ยังเป็นเจ้าภาพในการสาธิต Allennlp และแกลเลอรีโครงการ Allennlp
ในการแสดงรายการแบบจำลองที่มีอยู่คุณสามารถเรียกใช้ต่อไปนี้จากเซสชัน Python:
> >> from allennlp_models import pretrained
> >> print ( pretrained . get_pretrained_models ()) เอาต์พุตเป็นพจนานุกรมที่แมปรหัสโมเดลกับ ModelCard ของพวกเขา:
{'structured-prediction-srl-bert': <allennlp.common.model_card.ModelCard object at 0x14a705a30>, ...}
คุณสามารถโหลด Predictor สำหรับโมเดลเหล่านี้ด้วยตัวช่วย pretrained.load_predictor() ตัวอย่างเช่น:
> >> pretrained . load_predictor ( "mc-roberta-swag" )นี่คือรายการของรุ่นที่ผ่านการฝึกอบรมมาก่อนในปัจจุบัน
coref-spanbert -CoreF ลำดับที่สูงขึ้นพร้อมการอนุมานแบบหยาบถึงระยะไกล (กับ Spanbert Embeddings)evaluate_rc-lerc - โมเดลเบิร์ตที่ให้คะแนนผู้สมัครตอบจาก 0 ถึง 1generation-bart - BART พร้อมหัวรูปแบบภาษาสำหรับการสร้างglove-sst - LSTM Binary Classifier พร้อมถุงมือฝังlm-masked-language-model รูปแบบภาษาที่สวมหน้ากาก Bertlm-next-token-lm-gpt2 โมเดลภาษา GPT-2 ของ OpenAI ที่สร้างโทเค็นถัดไปmc-roberta-commonsenseqa โมเดลตัวเลือกแบบหลายตัวเลือกจาก Roberta สำหรับ PommonsenseQamc-roberta-piqa -PIQA-โมเดลตัวเลือกแบบหลายตัวเลือกที่ใช้ Roberta สำหรับ PIQAmc-roberta-swag -Swag-โมเดลตัวเลือกแบบหลายตัวเลือกที่ใช้ Roberta สำหรับ Swagnlvr2-vilbert โมเดลที่ใช้ VILBERT สำหรับ Visual Entailmentnlvr2-vilbert โมเดลที่ใช้ VILBERT สำหรับ Visual Entailmentpair-classification-adversarial-binary-gender-bias-mitigated-roberta-snli -Roberta finetuned บน SNLI ด้วยการลดอคติทางเพศแบบไบนารีpair-classification-binary-gender-bias-mitigated-roberta-snli -โรเบอร์ต้า finetuned บน SNLI ด้วยการลดอคติทางเพศแบบไบนารีpair-classification-decomposable-attention-elmo แบบจำลองความสนใจแบบสลายตัว (Parikh et al, 2017) รวมกับ Elmo Embeddings ที่ได้รับการฝึกฝนเกี่ยวกับ SNLIpair-classification-esim การปรับปรุง LSTM ที่ได้รับการฝึกฝนบน SNLIpair-classification-roberta-mnli -Roberta Finetuned บน MNLIpair-classification-roberta-rte โมเดลการจำแนกประเภทคู่ที่มีลวดลายหลังจากโมเดลที่เสนอใน Devlin et al, ปรับแต่งอย่างละเอียดบนคลังข้อมูล Superglue Rtepair-classification-roberta-snli -Roberta Finetuned บน SNLIrc-bidaf-elmo โมเดล BIDAF กับ ELMO EMBEDDINGS แทนถุงมือrc-bidaf - โมเดล BIDAF พร้อมถุงมือฝังrc-naqanet - Qanet เวอร์ชันเติมที่เพิ่มความสามารถในการใช้เหตุผลเชิงตัวเลขขั้นพื้นฐานได้รับการฝึกฝนเกี่ยวกับการลดลง (Dua et al., 2019) ตามที่ตีพิมพ์ในกระดาษวางเดิมrc-nmn - เครือข่ายโมดูลประสาทที่ผ่านการฝึกอบรมเกี่ยวกับการลดลงrc-transformer-qa รูปแบบความเข้าใจในการอ่านที่มีลวดลายหลังจากโมเดลที่เสนอใน Devlin และคณะพร้อมการปรับปรุงที่ยืมมาจากโมเดลทีมในโครงการ Transformersroberta-sst ตัวจําแนกไบนารีที่ใช้ Roberta สำหรับ Stanford Sentiment Treebankstructured-prediction-biaffine-parser -แบบจำลองระบบประสาทสำหรับการแยกวิเคราะห์การพึ่งพาโดยใช้ตัวแยกประเภท biaffine ที่ด้านบนของ LSTM แบบสองทิศทางstructured-prediction-constituency-parser แยกวิเคราะห์การเลือกตั้งด้วย ELMO EMBEDDINGS ตามอักขระstructured-prediction-srl-bert แบบจำลอง BERT (Shi et al, 2019) พร้อมการแก้ไขบางอย่าง (ไม่มีพารามิเตอร์เพิ่มเติมนอกเหนือจากเลเยอร์การจำแนกเชิงเส้น)structured-prediction-srl การปรับแต่งแบบจำลองการทำนายลำดับ BILSTM ลึก (Stanovsky et al., 2018)tagging-elmo-crf-tagger -Ner Tagger โดยใช้ตัวเข้ารหัสตัวเข้ารหัสอักขระที่มีรั้วรอบขอบชิด (GRU) เช่นเดียวกับตัวเข้ารหัสวลี GRU พร้อมฝังถุงมือtagging-fine-grained-crf-tagger รุ่นนี้ระบุช่วงความหมาย 16 ประเภทในข้อความอินพุต มันคือการปรับปรุงของ Lample (2016) และใช้ bilstm กับเลเยอร์ CRF, การฝังตัวละครและ Elmo Embeddingstagging-fine-grained-transformer-crf-tagger รุ่น NER ที่ละเอียดve-vilbert โมเดลที่ใช้ VILBERT สำหรับ Visual Entailmentvgqa-vilbert -VILBERT (ย่อมาจาก Bert Vision และ Language) เป็นแบบจำลองสำหรับการเรียนรู้ร่วมกันเป็นตัวแทนของเนื้อหาภาพและภาษาธรรมชาติvqa-vilbert -VILBERT (ย่อมาจาก Bert ที่มีวิสัยทัศน์และภาษา) เป็นแบบจำลองสำหรับการเรียนรู้ร่วมกันเป็นตัวแทนของเนื้อหาภาพและภาษาธรรมชาติ allennlp-models มีให้บริการใน PYPI ในการติดตั้งด้วย pip เพียงแค่เรียกใช้
pip install allennlp-models โปรดทราบว่าแพ็คเกจ allennlp-models นั้นเชื่อมโยงกับแพ็คเกจ allennlp Core ดังนั้นเมื่อคุณติดตั้งแพ็คเกจโมเดลคุณจะได้รับ 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 และยังไม่ต้องการจัดการการติดตั้งในพื้นที่เพียงแค่ละเว้นตัวแปรสภาพแวดล้อมนี้และ allennlp จะถูกติดตั้งจากสาขาหลักใน GitHub
ทั้ง allennlp และ allennlp-models ได้รับการพัฒนาและทดสอบแบบเคียงข้างกันดังนั้นพวกเขาควรได้รับการปรับปรุงให้ทันสมัยซึ่งกันและกัน หากคุณดูเวิร์กโฟลว์การกระทำของ GitHub สำหรับ allennlp-models มันจะถูกทดสอบกับสาขาหลักของ allennlp เสมอ ในทำนองเดียวกัน allennlp จะถูกทดสอบกับสาขาหลักของ allennlp-models
Docker จัดเตรียมเครื่องเสมือนพร้อมทุกอย่างที่ตั้งค่าให้เรียกใช้ Allennlp- ไม่ว่าคุณจะใช้ประโยชน์จาก GPU หรือเพียงแค่ทำงานบน CPU Docker ให้ความโดดเดี่ยวและความสอดคล้องมากขึ้นและทำให้ง่ายต่อการกระจายสภาพแวดล้อมของคุณไปยังคลัสเตอร์การคำนวณ
เมื่อคุณติดตั้ง Docker แล้วคุณสามารถใช้ภาพ prebuilt จากการเปิดตัวหรือสร้างภาพในเครื่องด้วย 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 เพื่อดูว่า CUDA เวอร์ชันใดพร้อมใช้งานสำหรับ RELEASE ที่กำหนด
หรือคุณสามารถสร้างกับการกระทำเฉพาะของ 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 สร้าง args เป็นรุ่นที่ต้องการ shas และ cuda ตามลำดับ
เมื่อคุณสร้างภาพของคุณแล้วคุณสามารถเรียกใช้เช่นนี้:
mkdir -p $HOME /.allennlp/
docker run --rm --gpus all -v $HOME /.allennlp:/root/.allennlp allennlp/modelsหมายเหตุ:
--gpus allใช้ได้เฉพาะเมื่อคุณติดตั้งรันไทม์ Nvidia-Docker