Repo แบบน้ำหนักเบาสำหรับการประเมินโมเดลกล่องโต้ตอบโดยอัตโนมัติโดยใช้ 17 เมตริก
- เลือกเมตริกที่คุณต้องการคำนวณ
การประเมินสามารถทำงานได้โดยอัตโนมัติในไฟล์ตอบกลับหรือไดเร็กทอรีที่มีหลายไฟล์
- ตัวชี้วัดจะถูกบันทึกในรูปแบบที่ง่ายต่อการประมวลผลที่กำหนดไว้ล่วงหน้า
รันคำสั่งนี้เพื่อติดตั้งแพ็คเกจที่จำเป็น:
pip install -r requirements.txt
ไฟล์หลักสามารถเรียกได้จากทุกที่ แต่เมื่อระบุพาธไปยังไดเร็กทอรี คุณควรกำหนดไฟล์เหล่านั้นจากรูทของที่เก็บ
python code/main.py -h
สำหรับเอกสารฉบับสมบูรณ์ โปรดไปที่วิกิ
คุณควรระบุเส้นทางอาร์กิวเมนต์ที่ต้องการ (รูปภาพด้านบน) ให้มากที่สุด หากคุณพลาดบางโปรแกรมจะยังคงทำงานอยู่ แต่จะไม่คำนวณตัวชี้วัดบางตัวที่ต้องใช้ไฟล์เหล่านั้น (โปรแกรมจะพิมพ์ตัวชี้วัดเหล่านี้) หากคุณมีไฟล์ข้อมูลการฝึกอบรม โปรแกรมจะสามารถสร้างคำศัพท์และดาวน์โหลดการฝัง fastText ได้โดยอัตโนมัติ
หากคุณไม่ต้องการคำนวณเมตริกทั้งหมด คุณสามารถตั้งค่าเมตริกที่ควรคำนวณในไฟล์ปรับแต่งได้อย่างง่ายดาย
ไฟล์จะถูกบันทึกลงในไดเร็กทอรีที่มีไฟล์ตอบกลับอยู่ แถวแรกประกอบด้วยชื่อของเมตริก จากนั้นแต่ละแถวจะมีเมตริกสำหรับไฟล์เดียว ชื่อของไฟล์จะตามด้วยค่าเมตริกแต่ละรายการโดยคั่นด้วยช่องว่าง เมตริกแต่ละรายการประกอบด้วยตัวเลข 3 ตัวคั่นด้วยเครื่องหมายจุลภาค ได้แก่ ค่าเฉลี่ย ส่วนเบี่ยงเบนมาตรฐาน และช่วงความเชื่อมั่น คุณสามารถตั้งค่า t ของช่วงความเชื่อมั่นในอาร์กิวเมนต์ได้ โดยค่าเริ่มต้นคือสำหรับความเชื่อมั่น 95%
สิ่งที่น่าสนใจคือเมตริกทั้ง 17 ตัวได้รับการปรับปรุงจนถึงจุดหนึ่งแล้วหยุดนิ่งโดยไม่มีการโอเวอร์ฟิตเกิดขึ้นระหว่างการฝึกฝนโมเดล Transformer บน DailyDialog ตรวจสอบภาคผนวกของกระดาษเพื่อดูตัวเลข
TRF คือโมเดล Transformer ที่ได้รับการประเมินที่การสูญเสียการตรวจสอบขั้นต่ำ และ TRF-O คือโมเดล Transformer ที่ได้รับการประเมินหลังจากการฝึกอบรม 150 epochs ซึ่งตัววัดเริ่มซบเซา RT หมายถึง คำตอบที่เลือกแบบสุ่มจากชุดการฝึก และ GT หมายถึง การตอบสนองตามความจริงภาคพื้นดิน
TRF คือโมเดล Transformer ในขณะที่ RT หมายถึงการตอบสนองที่เลือกแบบสุ่มจากชุดการฝึก และ GT หมายถึงการตอบสนองตามความจริงภาคพื้นดิน ผลลัพธ์เหล่านี้วัดจากชุดการทดสอบที่จุดตรวจสอบซึ่งมีการสูญเสียการตรวจสอบน้อยที่สุด
TRF คือโมเดล Transformer ในขณะที่ RT หมายถึงการตอบสนองที่เลือกแบบสุ่มจากชุดการฝึก และ GT หมายถึงการตอบสนองตามความจริงภาคพื้นดิน ผลลัพธ์เหล่านี้วัดจากชุดทดสอบที่จุดตรวจสอบซึ่งมีการสูญเสียการตรวจสอบน้อยที่สุด
คุณสามารถเพิ่ม หน่วยวัดใหม่ ได้โดยการสร้างคลาสสำหรับหน่วยวัด ซึ่งจัดการการคำนวณของหน่วยวัดที่กำหนดข้อมูลที่ให้มา ตรวจสอบเมตริก BLEU เป็นตัวอย่าง โดยปกติแล้ว ฟังก์ชัน init จะจัดการการตั้งค่าข้อมูลใดๆ ที่จำเป็นในภายหลัง และ update_metrics จะอัปเดตคำสั่งเมตริกโดยใช้ตัวอย่างปัจจุบันจากอาร์กิวเมนต์ ภายในคลาส คุณควรกำหนด self.metrics dict ซึ่งจัดเก็บรายการค่าเมตริกสำหรับไฟล์ทดสอบที่กำหนด ควรเพิ่มชื่อของหน่วยวัดเหล่านี้ (คีย์ของพจนานุกรม) ในไฟล์กำหนดค่าใน self.metrics สุดท้ายคุณต้องเพิ่มอินสแตนซ์ของคลาสเมตริกของคุณให้กับ self.objects ในการเริ่มต้น คุณสามารถใช้เส้นทางไปยังไฟล์ข้อมูลได้ หากการวัดของคุณต้องการการตั้งค่าใดๆ หลังจากนี้ เมตริกของคุณควรได้รับการคำนวณและบันทึกโดยอัตโนมัติ
อย่างไรก็ตาม คุณควรเพิ่มข้อจำกัดบางอย่างให้กับหน่วยวัดของคุณ เช่น หากไฟล์ที่จำเป็นสำหรับการคำนวณหน่วยวัดขาดหายไป ผู้ใช้ควรได้รับการแจ้งเตือนดังที่นี่
โครงการนี้ได้รับอนุญาตภายใต้ใบอนุญาต MIT - ดูรายละเอียดในไฟล์ใบอนุญาต
โปรดใส่ลิงก์ไปยัง repo นี้หากคุณใช้ในงานของคุณและพิจารณาอ้างอิงเอกสารต่อไปนี้:
@inproceedings{Csaky:2019,
title = "Improving Neural Conversational Models with Entropy-Based Data Filtering",
author = "Cs{'a}ky, Rich{'a}rd and Purgai, Patrik and Recski, G{'a}bor",
booktitle = "Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics",
month = jul,
year = "2019",
address = "Florence, Italy",
publisher = "Association for Computational Linguistics",
url = "https://www.aclweb.org/anthology/P19-1567",
pages = "5650--5669",
}