ที่เก็บนี้มีรหัสอย่างเป็นทางการที่ใช้สำหรับการทดลองแบบจำลองภาษาในกระดาษ:
โดยทั่วไปแล้วสิ่งนี้สามารถใช้เป็นชุดเครื่องมือสร้างแบบจำลองภาษาใน Pytorch เพื่อทดลอง:
หม้อแปลงมาตรฐาน
Transformer-XL
โปรแกรมเมอร์น้ำหนักเร็ว พร้อม กฎการอัปเดต ที่แตกต่างกันและ ฟังก์ชั่นความสนใจเชิงเส้น :
เช่นชุดค่าผสมบางอย่างส่งผลให้โมเดลที่รู้จักกันดี:
repositiory นี้มีสองการใช้งานของน้ำหนักที่รวดเร็ว
torch.autograd.Function (ดู Utils/fast_weight.py) ในขณะที่เราใช้การใช้งาน CUDA สำหรับการทดลองขั้น torch.autograd.Function ทั้งหมดของเราทั้งหมด
ชุดเครื่องมือนี้ต้องใช้ Pytorch torch และ ninja (เพื่อรวบรวมเมล็ด Cuda)
การทดลองสำหรับกระดาษได้ดำเนินการด้วย Python 3.6 และ Pytorch 1.4.0 (หมายเหตุเมื่อวันที่ 24 ส.ค. 2023: รหัสยังทำงานร่วมกับ Python 3.11 และ Pytorch 2.0.1+Cu117)
Pytorch เวอร์ชันล่าสุดยังไม่ได้รับการสนับสนุนอย่างดีจากชุดเครื่องมือนี้ซึ่งยังคงใช้ torch.nn.DataParallel สำหรับการฝึกอบรมหลาย GPU หากคุณต้องการใช้ Pytorch เวอร์ชันล่าสุดให้ตรวจสอบเอกสารเพื่อใช้ torch.nn.parallel.DistributedDataParallel แทน เราหวังว่าจะแก้ไขปัญหานี้ได้เร็ว ๆ นี้ แต่เราไม่สามารถบอกได้ว่าเมื่อไหร่
ชุดเครื่องมือรองรับน้ำหนักและอคติสำหรับการตรวจสอบงาน หากคุณใช้ให้ติดตั้ง wandb ด้วย
ความซ้ำซ้อนนี้มีรหัสหลายบรรทัดที่นำมาและปรับจากแหล่งข้อมูลต่อไปนี้:
โปรดตรวจสอบไฟล์ภายใต้ example_scripts สำหรับคำแนะนำทั่วไปและตัวอย่างเพื่อฝึกอบรมและประเมินโมเดล
@inproceedings{schlag2021linear,
title={Linear Transformers Are Secretly Fast Weight Programmers},
author={Imanol Schlag and Kazuki Irie and J"urgen Schmidhuber},
booktitle={Proc. Int. Conf. on Machine Learning (ICML)},
address = {Virtual only},
month = jul,
year={2021}
}
@article{irie2021going,
title={Going Beyond Linear Transformers with Recurrent Fast Weight Programmers},
author={Kazuki Irie and Imanol Schlag and R'obert Csord'as and J"urgen Schmidhuber},
journal={Preprint arXiv:2106.06295},
year={2021}
}