กำหนดจำนวนขั้นตอนสำหรับการเรียกใช้การฝึกแต่ละครั้ง

ภาระงานการฝึกมี 2 ประเภท ได้แก่

  • ขึ้นอยู่กับการประมวลผล
  • ไม่ได้ขึ้นอยู่กับความสามารถในการประมวลผล

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

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

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

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

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

  • ใช้ขนาดกลุ่มที่เล็กลง
  • เพิ่มการเพิ่มข้อมูล
  • การเพิ่มการทำให้เป็นปกติบางประเภท (เช่น การทำให้เป็นปกติแบบ Dropout)

กำหนดระยะเวลาในการฝึกเมื่อการฝึกไม่ได้ขึ้นอยู่กับการคำนวณ

เป้าหมาย: ฝึกนานพอที่โมเดลจะให้ผลลัพธ์ที่ดีที่สุด โดยไม่เสียขั้นตอนการฝึก

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

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

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

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

อัลกอริทึมสำหรับการเลือกผู้สมัครเริ่มต้นสำหรับ max_train_steps โดยใช้การสวอปอัตราการเรียนรู้

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

  1. หากเป็นไปได้ที่จะปรับชุดการฝึกให้พอดีทั้งหมด ก็ต้องมีการกำหนดค่า (โดยมีค่า max_train_steps บางค่า) ที่ปรับชุดการฝึกให้พอดีทั้งหมด ค้นหาการกำหนดค่าดังกล่าวและ ใช้ค่าของ max_train_steps เป็นจุดเริ่มต้นN
  2. เรียกใช้การกวาดอัตราการเรียนรู้คงที่ (นั่นคือการค้นหาแบบกริดสำหรับอัตราการเรียนรู้) โดยไม่มีการเพิ่มข้อมูลและไม่มีการปรับค่าปกติ โดยการทดลองแต่ละครั้งจะฝึก เป็นจำนวน N ขั้นตอน จำนวนขั้นตอนที่จำเป็นสำหรับการทดลองที่เร็วที่สุดในการ กวาดอัตราการเรียนรู้เพื่อให้ได้ประสิทธิภาพการฝึกที่สมบูรณ์แบบควรเป็น การคาดคะเนเริ่มต้นสำหรับ max_train_steps

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

กำหนดระยะเวลาในการฝึกเมื่อการฝึกขึ้นอยู่กับการคำนวณ

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

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

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

  • ความละเอียดของการปรับแต่ง
  • ความเกี่ยวข้องกับการวิ่งครั้งสุดท้ายที่ยาวที่สุด

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

  • รอบที่ 1: เรียกใช้ระยะเวลาสั้นลงเพื่อค้นหาไฮเปอร์พารามิเตอร์ของโมเดลและเครื่องมือเพิ่มประสิทธิภาพที่ดี
  • รอบที่ 2: เรียกใช้การทดลองระยะยาวเพียงไม่กี่ครั้งในจุดไฮเปอร์พารามิเตอร์ที่ดีเพื่อรับ โมเดลสุดท้าย

คำถามที่สำคัญที่สุดเมื่อเปลี่ยนจากรอบที่ 1 ไปรอบที่ 2 คือ

คุณจะปรับตารางการลดอัตราการเรียนรู้ได้อย่างไร

ข้อผิดพลาดที่พบบ่อยอย่างหนึ่งเมื่อปรับตารางการเรียนรู้ระหว่างรอบคือ การใช้ขั้นตอนการฝึกเพิ่มเติมทั้งหมดด้วยอัตราการเรียนรู้ที่เล็กเกินไป

รอบที่ 1: วิ่งฝึกซ้อมระยะสั้นหลายครั้ง

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

  • มีแนวโน้มสูงที่จะโอน ความไม่เสถียรของการฝึกในช่วงแรกสามารถแก้ไขได้ใน การปรับรอบแรกโดยใช้จำนวนขั้นตอนการฝึกที่น้อยลง ไฮเปอร์พารามิเตอร์ต่อไปนี้มีแนวโน้มที่จะโอนมากที่สุด
    • ระยะเวลาวอร์มอัพ
    • การเริ่มต้น
  • มีแนวโน้มที่จะโอน โดยปกติแล้วการชนะอย่างถล่มทลายในสถาปัตยกรรมโมเดลจะ โอนได้ แต่ก็อาจมีตัวอย่างที่ขัดแย้งกันหลายอย่าง
  • อาจโอน ไฮเปอร์พารามิเตอร์ต่อไปนี้อาจโอนได้
    • อัลกอริทึมการเพิ่มประสิทธิภาพและไฮเปอร์พารามิเตอร์จะโอน "อย่างคร่าวๆ"
    • การเพิ่มข้อมูล
    • Regularization หากไม่สามารถปรับชุดการฝึกให้พอดีได้ โมเดลอาจอยู่ในระบอบที่การทำให้เป็นปกติไม่น่าจะช่วยได้มากนัก
  • มีแนวโน้มว่าจะโอนไม่ได้ กำหนดการอัตราการเรียนรู้ไม่น่าจะโอน ได้อย่างสมบูรณ์ การฝึกโมเดลภาษาขนาดใหญ่ที่เหมาะสมกับการคำนวณชี้ให้เห็นว่าแม้แต่การโอนกำหนดการลดอัตราการเรียนรู้ก็เป็นไปได้ แต่เราไม่เชื่อว่าจะเป็นเช่นนั้นเสมอไป เช่น การปรับการลดลงของ sqrt ในจำนวนขั้นตอนการฝึกขนาดเล็ก แล้วขยายไปยังจำนวนมาก จะทำให้การฝึกส่วนใหญ่เกิดขึ้นในขั้นตอนที่เล็กเกินไป คุณอาจทำได้ "ดีพอ" ด้วยตารางเวลาส่วนใหญ่ในขีดจำกัดของงบประมาณการฝึกที่สูงมาก แต่คุณน่าจะเห็นประสิทธิภาพที่ดีขึ้นอย่างเห็นได้ชัดหากมีการปรับแต่ง ทำความเข้าใจอคติระยะสั้นในการเพิ่มประสิทธิภาพแบบเมตาเชิงสุ่มอธิบายถึงอันตรายของการพยายามเลือกอัตราการเรียนรู้แบบมองในระยะสั้น

รอบที่ 2: จำนวนการทดสอบน้อยลง แต่ระยะเวลานานขึ้น

เรียกใช้การกำหนดค่าไฮเปอร์พารามิเตอร์ที่ดีที่สุดจากรอบที่ 1

การคาดการณ์: 🤖 ใช้ขั้นตอนเพิ่มเติมเพื่อขยายระยะเวลาการฝึก ที่อัตราการเรียนรู้สูง เช่น หากคุณใช้กำหนดการเชิงเส้น ให้คงความยาวของการลดค่าคงที่ตั้งแต่รอบที่ 1 และขยายระยะเวลา ของ lr คงที่ในช่วงเริ่มต้น สําหรับการลดอัตราการเรียนรู้แบบโคไซน์ ให้ใช้ฐาน lr จากรอบที่ 1 และขยาย max_train_steps ตามที่อธิบายไว้ใน การฝึกโมเดลภาษาขนาดใหญ่ที่เหมาะสมกับค่าใช้จ่ายในการคำนวณ

การฝึกอบรมเพิ่มเติมอาจเหมาะสำหรับทีมที่มีคุณสมบัติต่อไปนี้

  • การสร้างโมเดลที่สมบูรณ์มาก
  • ไปป์ไลน์การปรับแต่ง
  • การฝึกการผลิตที่ยาวนานและมีค่าใช้จ่ายสูง

อย่างไรก็ตาม การฝึกเพิ่มเติมมักจะไม่ได้ผล

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

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