ขึ้นอยู่กับหม้อแปลงจะปรับปรุงผลลัพธ์การสร้างข้อความได้อย่างไร?

Aug 19 2020

หากฉันไม่ได้เตรียมโมเดลการสร้างข้อความไว้ล่วงหน้าเช่น BART จะปรับปรุงผลลัพธ์ตามหม้อแปลงเช่นเทนเซอร์ 2 เทนเซอร์ได้อย่างไร

อะไรคือแนวคิดในการปรับปรุงสำหรับ Transformer ในงานสร้างข้อความ?

คำตอบ

1 noe Aug 19 2020 at 14:41

หากคุณมีข้อมูลจำนวนมากสำหรับการฝึกอบรมคุณควรใช้เทคนิคที่ใช้ในหม้อแปลงรุ่นใหญ่เช่นGPT-2 : แบบจำลองที่ลึกมาก (48 ชั้นสำหรับพารามิเตอร์ 1.5B) การปรับเปลี่ยนการเริ่มต้นก่อนการทำให้เป็นมาตรฐานและโทเค็นแบบย้อนกลับได้ . คุณยังสามารถใช้รูปแบบความสนใจแบบกระจัดกระจายของGPT-3ในท้องถิ่นได้อีกด้วย

หากคุณมีข้อมูลการฝึกอบรมเพียงเล็กน้อยคุณสามารถใช้เทคนิคเชิงรุกที่ "ไม่ได้เขียน" ที่อธิบายไว้ในทวีตนี้ได้แก่ การเพิ่มข้อมูลการฝังตัวแบบไม่ต่อเนื่องการออกกลางคันตามปกติและการสลายตัวของน้ำหนักและเวลาในการฝึกอบรมผู้ป่วยจำนวนมาก

อัปเดต: ฉันรู้สึกว่าเธรดทวีตที่ฉันอ้างถึงมีความสำคัญดังนั้นนี่คือทวีตที่เกี่ยวข้องมากที่สุด:

  • คุณจะฝึก Transformers บนชุดข้อมูลขนาดเล็กเช่น PTB และ WikiText-2 ได้อย่างไร? LSTM ดีกว่าสำหรับชุดข้อมูลขนาดเล็กหรือไม่? ฉันทำการทดลอง 339 ครั้งซึ่งมีมูลค่า 568 ชั่วโมง GPU และได้รับคำตอบบางอย่าง ฉันไม่มีเวลาเขียนโพสต์ในบล็อกดังนั้นที่นี่จึงเป็นกระทู้ในทวิตเตอร์แทน

  • เพื่อให้ข้อมูลเบื้องหลัง: ทั้งหมดนี้เกิดจากความไม่พอใจในอดีตของฉันกับการจำลองผลลัพธ์ Transformer-XL บน PTB และมีผลลัพธ์ที่แย่มากใน WikiText-2 (WT2) ใน WT2 โมเดลที่ดีที่สุดของฉันหลังจากการทดลองมากกว่า 200 ครั้งคือ 90ish ppl ซึ่งอยู่ไกลจากพื้นฐาน LSTM มาตรฐาน (65.8 ppl)

  • ...

  • ข้อมูลเชิงลึกที่สำคัญมีดังต่อไปนี้: ในระบอบการปกครองชุดข้อมูลขนาดเล็กทั้งหมดนี้เกี่ยวกับการเพิ่มชุดข้อมูล อะนาล็อกในการมองเห็นของคอมพิวเตอร์คือคุณจะได้ผลลัพธ์ที่ดีขึ้นมากโดยเฉพาะในชุดข้อมูลขนาดเล็กหากคุณทำการเพิ่มชุดข้อมูลบางอย่าง นอกจากนี้ยังทำให้โมเดลเป็นประจำ

  • ประสิทธิภาพที่เพิ่มขึ้นอย่างมากมาจากการออกกลางคันการฝังแบบไม่ต่อเนื่อง: คุณฝังได้ตามปกติ แต่ตอนนี้มีความน่าจะเป็นทำให้เวกเตอร์คำทั้งหมดเป็นศูนย์ สิ่งนี้คล้ายกับการสร้างแบบจำลองภาษาที่สวมหน้ากาก แต่เป้าหมายไม่ใช่เพื่อทำนายหน้ากาก - เป็นเพียง LM ธรรมดาที่มีบริบทไม่แน่นอน

  • ปัจจัยที่สำคัญอันดับสองคือการออกกลางคันการป้อนข้อมูลปกติ: คุณรับส่วนฝังและองค์ประกอบออกกลางคันด้วยความน่าจะเป็น p นอกจากนี้ยังมีเอฟเฟกต์การเพิ่มข้อมูลคล้ายกับการปล่อยพิกเซลแบบสุ่มสำหรับรูปภาพ วิธีที่ดีในการคิดเกี่ยวกับเรื่องนี้คืออะไร? 1/2

  • จำไว้ว่าเราทำได้ King-man + woman = Queen? ลองนึกภาพการออกกลางคันการป้อนข้อมูลลบองค์ประกอบ "man" ของ "King" สิ่งนี้บังคับให้โมเดลกระจายข้อมูลที่เฉพาะเจาะจง (เพศในกรณีนี้) ไปยังหลายมิติเพื่อปรับปรุงการกำหนดลักษณะทั่วไปทำให้มีประสิทธิภาพมากขึ้น 2/2

  • มิฉะนั้นมันเป็นเกมของการทำให้เป็นมาตรฐานต่อไป (การออกกลางคันมากขึ้น + การลดน้ำหนัก) และความอดทน ฉันสามารถฝึกหุ่นจำลองที่ดีได้โดยไม่ต้องใช้เทคนิคเหล่านี้ใน 15 นาทีและได้รับ 97 คน ถ้าฉันใช้ดรอปเอาต์ทั้งหมดนี้กับโมเดลชุดชั้นในหลังการฝึก 7 ชั่วโมงเป็น 63.4 ppl (ดีกว่า LSTM)

  • คุณยังสามารถใช้สูตรการเพิ่มข้อมูลเหล่านี้กับชุดข้อมูลขนาดใหญ่ได้ แต่ไม่มีใครต้องการฝึก WT-103 เป็นเวลาหลายเดือนสำหรับคะแนน ppl สองสามจุด ในความคิดของฉันเทคนิคที่ต้องใช้การประมวลผลมากเกินไปเป็นอันตรายต่อชุมชนมากกว่ามีประโยชน์ 1/2

  • ที่นี่รหัสจะเปลี่ยนเป็น repo Transformer-XL สาธารณะซึ่งผลลัพธ์ของฉันอ้างอิงจาก: https://github.com/TimDettmers/transformer-xl/tree/wikitext2

  • ด้วยการเปลี่ยนแปลงของฉันใน repo Transformer-XL สาธารณะคุณสามารถเรียกใช้สคริปต์นี้เพื่อลงไปที่ 63.4 ppl บน WT2: https://github.com/TimDettmers/transformer-xl/blob/wikitext2/pytorch/replicate_wt2.sh