R-net
- การใช้งาน TensorFlow ของ R-NET: การอ่านความเข้าใจของเครื่องด้วยเครือข่ายการจับคู่ตนเอง โครงการนี้ได้รับการออกแบบมาเป็นพิเศษสำหรับชุดข้อมูลทีม
- หากคุณมีคำถามใด ๆ โปรดติดต่อ Wenxuan Zhou ([email protected])
ความต้องการ
มีปัญหาที่ทราบกันดีว่าเกิดจากการใช้ซอฟต์แวร์เวอร์ชันที่แตกต่างกัน โปรดตรวจสอบเวอร์ชันของคุณก่อนที่จะเปิดปัญหาหรือส่งอีเมลถึงฉัน
ทั่วไป
- Python> = 3.4
- รูดซิป, wget
แพ็คเกจ Python
- tensorflow-gpu> = 1.5.0
- Spacy> = 2.0.0
- TQDM
- Ujson
การใช้งาน
ในการดาวน์โหลดและประมวลผลข้อมูลล่วงหน้า Run
# download SQuAD and Glove
sh download.sh
# preprocess the data
python config.py --mode prepro
พารามิเตอร์ไฮเปอร์จะถูกเก็บไว้ใน config.py ในการดีบัก/รถไฟ/ทดสอบรุ่น Run
python config.py --mode debug/train/test
เพื่อให้ได้คะแนนอย่างเป็นทางการวิ่ง
python evaluate-v1.1.py ~ /data/squad/dev-v1.1.json log/answer/answer.json
ไดเรกทอรีเริ่มต้นสำหรับไฟล์บันทึก tensorboard คือ log/event
ดูรุ่นที่ผ่านการฝึกอบรม
โดยละเอียด edportaion
- กระดาษต้นฉบับใช้ความสนใจเพิ่มเติมซึ่งใช้หน่วยความจำจำนวนมาก โครงการนี้ใช้ความสนใจแบบทวีคูณที่เพิ่มขึ้นในความสนใจคือสิ่งที่คุณต้องการ
- โครงการนี้ใช้การออกกลางคันแบบ Variational ที่นำเสนอในการประยุกต์ใช้หลักทฤษฎีของการออกกลางคันในเครือข่ายประสาทกำเริบ
- เพื่อแก้ปัญหาการย่อยสลายใน RNN แบบซ้อนกันเอาต์พุตของแต่ละชั้นจะถูกต่อกันเพื่อสร้างผลลัพธ์สุดท้าย
- เมื่อการสูญเสียในชุด Dev เพิ่มขึ้นในช่วงเวลาหนึ่งอัตราการเรียนรู้จะลดลงครึ่งหนึ่ง
- ในระหว่างการทำนายโครงการใช้วิธีการค้นหาที่นำเสนอในความเข้าใจของเครื่องโดยใช้ Match-LSTM และคำตอบตัวชี้
- เพื่อแก้ไขปัญหาประสิทธิภาพการใช้งานนี้ใช้วิธีการเก็บข้อมูล (สนับสนุนโดย Xiongyifan) และ Cudnngru วิธีการเก็บข้อมูลสามารถเพิ่มความเร็วในการฝึกอบรม แต่จะลดคะแนน F1 ลง 0.3%
ผลงาน
คะแนน
| em | F1 |
|---|
| กระดาษต้นฉบับ | 71.1 | 79.5 |
| โครงการนี้ | 71.07 | 79.51 |


เวลาฝึกอบรม (s/it)
| พื้นเมือง | Bucket + Native | คนขี้เกียจ | cudnn + bucket |
|---|
| E5-2640 | 6.21 | 3.56 | - | - |
| ไททัน x | 2.56 | 1.31 | 0.41 | 0.28 |
ส่วนขยาย
การตั้งค่าเหล่านี้อาจเพิ่มคะแนน แต่ไม่ได้ใช้ในโมเดลโดยค่าเริ่มต้น คุณสามารถเปิดการตั้งค่าเหล่านี้ใน config.py
- การฝังตัวละครถุงมือ pretrained ได้รับการสนับสนุนจาก Yanghanxy
- การฝัง FastText สนับสนุนโดย Xiongyifan อาจเพิ่ม F1 1% (รายงานโดย Xiongyifan)