Genaug: การเพิ่มข้อมูลสำหรับเครื่องกำเนิดข้อความ finetuning
รหัสสำหรับ Genaug นำเสนอใน Genaug: การเพิ่มข้อมูลสำหรับเครื่องกำเนิดข้อความ finetuning ที่เผยแพร่ที่ EMNLP 2020 DEELIO Workshop คุณสามารถอ้างอิงได้ดังนี้:
@inproceedings{feng-etal-2020-genaug,
title = "{G}en{A}ug: Data Augmentation for Finetuning Text Generators",
author = "Feng, Steven Y. and Gangal, Varun and Kang, Dongyeop and Mitamura, Teruko and Hovy, Eduard",
booktitle = "Proceedings of Deep Learning Inside Out (DeeLIO): The First Workshop on Knowledge Extraction and Integration for Deep Learning Architectures",
month = nov, year = "2020", address = "Online",
publisher = "Association for Computational Linguistics",
url = "https://www.aclweb.org/anthology/2020.deelio-1.4",
doi = "10.18653/v1/2020.deelio-1.4", pages = "29--42",
}
ผู้เขียน: Steven Y. Feng, Varun Gangal, Dongyeop Kang, Teruko Mitamura, Eduard Hovy
สามารถพบได้ ที่นี่ สไลด์และทรัพยากรอื่น ๆ สามารถพบได้ ที่นี่
หมายเหตุ: ควรสอบถามข้อมูลไปยัง [email protected] หรือเปิดปัญหาที่นี่

ทรัพยากรที่จำเป็น
- Stanford POS Tagger: https://nlp.stanford.edu/software/stanford-postagger-2018-10-16.zip
- Stanford Corenlp: http://nlp.stanford.edu/software/stanford-corenlp-full-2018-10-05.zip
รุ่น pretrained/finetuned (บน Yelp):
- Bert Sentiment Regressor (Finetuned จากความคิดเห็น YLR ด้วยการจัดอันดับดาว): https://drive.google.com/drive/folders/1jt07zpxmmo9my5hh3mvjf8vmalzuuugf
- GPT-2 (finetuned จาก 2 ล้านรีวิว Yelp-สำหรับการประเมินความงุนงงและการประเมิน Slor): https://drive.google.com/drive/folders/1j3jcw-qtdwxcyzv7lonljkvjzpxifs2h?usp=sharing
- Smerti-transformer (ได้รับการฝึกฝนในชุดย่อยของ YLR): https://drive.google.com/drive/folders/1a-jynp5so4lmv3ztgkmwq7be8coftf_b?usp=sharing
ข้อมูล
- "stopwords.txt" มีรายการคำสั่งที่ใช้
- "yelp_train.txt", "yelp_val.txt" และ "yelp_test.txt" มีการฝึกอบรมทั้งหมดการตรวจสอบและตัวอย่างการทดสอบสำหรับ YLR (ทั้งพรอมต์และต่อเนื่อง)
- "yelp_train_0.5.txt" และ "yelp_test_0.5.txt" มีตัวอย่างการฝึกอบรมและการทดสอบในครึ่งแรกของ YLR (ส่วนพรอมต์เท่านั้น)
- "smerti_chosen_res.txt" มีคำนาม 150 คำที่เลือกเป็นเอนทิตีทดแทนสำหรับการอนุมาน smerti
- "smerti_train.csv" และ "smerti_val.csv" มีการฝึกอบรมและการตรวจสอบความถูกต้องสำหรับ Smerti-transformer ตามลำดับ
รหัส
- โฟลเดอร์ "Augmentation_methods" มีรหัสสำหรับวิธีการเสริม Genaug ต่างๆ (ไม่รวม SMERTI)
- โฟลเดอร์ "การประเมินผล" มีรหัสสำหรับการประเมินผล โดยเฉพาะ "get_unigram_distribution.py" ใช้สำหรับตัวชี้วัด rare_words (rwords) และ "evaluate_combined.py" มีรหัสสำหรับ sbleu, utr, ttr และ rwords โฟลเดอร์ย่อย "ความเชื่อมั่น" มีรหัสสำหรับการประเมินความสอดคล้องของความเชื่อมั่น [รายละเอียดเพิ่มเติมในภายหลัง]
- โฟลเดอร์ "Finetuning_and_Generation" มีสคริปต์และรหัสสำหรับรุ่น Finetuning GPT-2 และสร้างเอาต์พุตจากรุ่น GPT-2 เรียกใช้สคริปต์. ssh สองตัวเพื่อ finetune และสร้าง
- โฟลเดอร์ "Processing_and_Setup" มีรหัสเพื่อประมวลผลและตั้งค่าข้อมูลที่จำเป็นสำหรับการทดลอง "continuation_postprocessor.py" ทำความสะอาดเอาท์พุท GPT-2 (เช่นเครื่องหมายอัศเจรีย์ต่อท้ายการลอก), "genaug_finetuning_setup.ipynb" มีรหัสเพื่อตั้งค่าข้อมูลการเพิ่มขั้นสุดท้ายสำหรับ gpt-2 finetuning "genaug_yelp_dataset_processing.ipynb" มีรหัสเพื่อประมวลผลและตั้งค่าข้อมูล Yelp ตรวจสอบข้อมูลสำหรับ YLR และ 2 ล้านบทวิจารณ์ชุดย่อยสำหรับการประเมิน PPL และ Slor
รหัสวิธีการเสริม SMERTI
รหัสสำหรับวิธีการเสริม SMERTI สามารถพบได้ในโฟลเดอร์ "Genaug Smerti-Transformer" ที่ repo นี้ นี่คือ repo อย่างเป็นทางการสำหรับ "Smerti for Semantic Text Exchange" ที่นำเสนอใน Keep Calm และเปิด! รักษาความเชื่อมั่นและความคล่องแคล่วในการแลกเปลี่ยนข้อความความหมาย เผยแพร่ที่ EMNLP-IJCNLP 2019
หมายเหตุ: รายละเอียดเพิ่มเติมและคำสั่งตัวอย่างสำหรับรหัสทั้งหมดจะถูกเพิ่มในภายหลัง