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-รุ่น | เอไอ2 | เลขที่ | คอลเลกชันโมเดลอันล้ำสมัย |
allennlp-semparse | เอไอ2 | เลขที่ | กรอบงานสำหรับการสร้างตัวแยกวิเคราะห์ความหมาย |
allennlp-เซิร์ฟเวอร์ | เอไอ2 | ใช่ | เซิร์ฟเวอร์สาธิตอย่างง่ายสำหรับการให้บริการโมเดล |
allennlp-optuna | มาโคโตะ ฮิรามัตสึ | ใช่ | การรวม Optuna สำหรับการเพิ่มประสิทธิภาพไฮเปอร์พารามิเตอร์ |
AllenNLP จะค้นหาปลั๊กอินที่ดูแลโดย AI2 อย่างเป็นทางการที่คุณได้ติดตั้งไว้โดยอัตโนมัติ แต่เพื่อให้ AllenNLP ค้นหาปลั๊กอินส่วนบุคคลหรือของบริษัทอื่นที่คุณได้ติดตั้งไว้ คุณยังต้องสร้างไฟล์ปลั๊กอินในเครื่องที่ชื่อ .allennlp_plugins
ในไดเร็กทอรีที่คุณเรียกใช้ คำสั่ง allennlp
หรือไฟล์ปลั๊กอินส่วนกลางที่ ~/.allennlp/plugins
ไฟล์ควรแสดงรายการโมดูลปลั๊กอินที่คุณต้องการโหลด หนึ่งรายการต่อบรรทัด
หากต้องการทดสอบว่า AllenNLP สามารถค้นหาและนำเข้าปลั๊กอินของคุณสามารถรันคำสั่ง allennlp test-install
ปลั๊กอินที่ค้นพบแต่ละตัวจะถูกบันทึกลงในเทอร์มินัล
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปลั๊กอิน โปรดดูเอกสาร API ของปลั๊กอิน และสำหรับข้อมูลเกี่ยวกับวิธีสร้างคำสั่งย่อยแบบกำหนดเองเพื่อแจกจ่ายเป็นปลั๊กอิน โปรดดูเอกสาร API คำสั่งย่อย
อัลเลนแอลพี | ห้องสมุดวิจัย NLP แบบโอเพ่นซอร์สที่สร้างบน PyTorch |
allennlp.commands | ฟังก์ชั่นสำหรับ CLI |
allennlp.common | โมดูลยูทิลิตี้ที่ใช้ในไลบรารี |
allennlp.data | โมดูลการประมวลผลข้อมูลสำหรับการโหลดชุดข้อมูลและการเข้ารหัสสตริงเป็นจำนวนเต็มเพื่อแสดงในเมทริกซ์ |
allennlp.ความเป็นธรรม | โมดูลสำหรับอัลกอริธึมและเมตริกการลดอคติและความเป็นธรรม |
allennlp.โมดูล | ชุดโมดูล PyTorch สำหรับใช้กับข้อความ |
allennlp.nn | ฟังก์ชันยูทิลิตี้เทนเซอร์ เช่น ตัวเริ่มต้นและฟังก์ชันการเปิดใช้งาน |
allennlp.การฝึกอบรม | ฟังก์ชั่นสำหรับโมเดลการฝึกอบรม |
AllenNLP ต้องการ Python 3.6.1 ขึ้นไปและ PyTorch
เรารองรับ AllenNLP บนสภาพแวดล้อม Mac และ Linux ขณะนี้เราไม่รองรับ Windows แต่เปิดรับการสนับสนุน
วิธีที่ง่ายที่สุดในการติดตั้ง AllenNLP คือการใช้ conda (คุณสามารถเลือกเวอร์ชันหลามอื่นได้):
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
ขอแนะนำให้คุณติดตั้งระบบนิเวศ PyTorch ก่อนที่ จะติดตั้ง AllenNLP โดยทำตามคำแนะนำบน 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
สร้างสภาพแวดล้อม 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]
กำลังมองหาฟีเจอร์ Bleeding Edge อยู่ใช่ไหม? คุณสามารถติดตั้งการเผยแพร่ทุกคืนได้โดยตรงจาก pypi
AllenNLP จะติดตั้งสคริปต์เมื่อคุณติดตั้งแพ็คเกจ Python ดังนั้นคุณจึงสามารถรันคำสั่ง allennlp ได้เพียงแค่พิมพ์ allennlp
ลงในเทอร์มินัล ตัวอย่างเช่น ตอนนี้คุณสามารถทดสอบการติดตั้งของคุณด้วย allennlp test-install
คุณอาจต้องการติดตั้ง allennlp-models
ซึ่งมีโครงสร้าง NLP เพื่อฝึกฝนและรันโมเดลที่ได้รับการสนับสนุนอย่างเป็นทางการของเรา ซึ่งหลายโมเดลโฮสต์อยู่ที่ https://demo.allennlp.org
pip install allennlp-models
Docker จัดเตรียมเครื่องเสมือนพร้อมทุกอย่างที่ตั้งค่าไว้เพื่อเรียกใช้ AllenNLP ไม่ว่าคุณจะใช้ประโยชน์จาก GPU หรือเพียงแค่ทำงานบน CPU Docker ให้การแยกตัวและความสม่ำเสมอมากขึ้น และยังทำให้การกระจายสภาพแวดล้อมของคุณไปยังคลัสเตอร์การประมวลผลเป็นเรื่องง่าย
AllenNLP จัดเตรียมอิมเมจ Docker อย่างเป็นทางการพร้อมไลบรารีและติดตั้งการอ้างอิงทั้งหมด
เมื่อคุณติดตั้ง Docker แล้ว คุณควรติดตั้ง NVIDIA Container Toolkit หากคุณมี GPU ที่พร้อมใช้งาน
จากนั้นรันคำสั่งต่อไปนี้เพื่อรับสภาพแวดล้อมที่จะทำงานบน 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
flag
ด้วยเหตุผลหลายประการ คุณอาจต้องสร้างอิมเมจ AllenNLP Docker ของคุณเอง เช่น หากคุณต้องการ 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 Container Registry นี้: 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 เป็นโครงการโอเพ่นซอร์สที่ได้รับการสนับสนุนจาก Allen Institute for Artificial Intelligence (AI2) AI2 เป็นสถาบันไม่แสวงผลกำไรที่มีภารกิจในการช่วยเหลือมนุษยชาติผ่านการวิจัยและวิศวกรรม AI ที่มีผลกระทบสูง หากต้องการเรียนรู้เพิ่มเติมว่าใครเป็นผู้มีส่วนสนับสนุนโค้ดเบสนี้โดยเฉพาะ โปรดดูที่หน้าผู้ร่วมให้ข้อมูลของเรา