คู่มือสําหรับการเริ่มโครงการใหม่

ส่วนนี้จะอธิบายวิธีเลือกรายการต่อไปนี้ตั้งแต่ต้น โปรเจ็กต์ ML:

  • สถาปัตยกรรมโมเดล
  • เครื่องมือเพิ่มประสิทธิภาพ
  • ขนาดกลุ่ม
  • การกำหนดค่าเริ่มต้น

สมมติฐาน

คำแนะนำในส่วนนี้ประกอบด้วยข้อมูลต่อไปนี้

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

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

เลือกสถาปัตยกรรมโมเดล

เรามาเริ่มกันด้วยคำจำกัดความต่อไปนี้

  • สถาปัตยกรรมโมเดลคือระบบสำหรับสร้างการคาดการณ์ สถาปัตยกรรมโมเดลมีเฟรมเวิร์กสำหรับการแปลงข้อมูลอินพุต คาดการณ์ไว้ แต่ไม่มี parameter ตัวอย่างเช่น โครงข่ายระบบประสาทเทียมที่มีเลเยอร์ซ่อนอยู่ 3 ชั้น ได้แก่ 10 โหนด, 5 โหนด และ 3 โหนด สถาปัตยกรรมโมเดลตามลำดับ
  • model คือสถาปัตยกรรมโมเดลบวกค่าเฉพาะสำหรับฟังก์ชัน พารามิเตอร์ ตัวอย่างเช่น โมเดลประกอบด้วยโครงข่ายระบบประสาทเทียมที่อธิบายไว้ ในคำจำกัดความของสถาปัตยกรรมโมเดล บวกกับค่าที่เจาะจงสำหรับ น้ำหนักและความลำเอียงของแต่ละโหนด
  • กลุ่มโมเดลคือเทมเพลตสำหรับการสร้างสถาปัตยกรรมโมเดล ได้รับชุดพารามิเตอร์ไฮเปอร์พารามิเตอร์

การเลือกสถาปัตยกรรมโมเดลหมายถึงการเลือกกลุ่ม (1 โมเดลสำหรับการตั้งค่าไฮเปอร์พารามิเตอร์ของโมเดลแต่ละรายการ)

หากเป็นไปได้ ให้พยายามหาฐานของโค้ดที่จัดทำเป็นเอกสารซึ่งพูดถึงบางอย่าง กับปัญหาในปัจจุบันมากที่สุด จากนั้น จำลองโมเดลให้เป็น เป็นจุดเริ่มต้น

เลือกเครื่องมือเพิ่มประสิทธิภาพ

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

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

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

  1. ในตอนต้นของโปรเจ็กต์ ให้เลือกเครื่องมือเพิ่มประสิทธิภาพที่ไม่มีการปรับแต่งหลายรายการ ไฮเปอร์พารามิเตอร์ ต่อไปนี้เป็นตัวอย่าง 2 ตัวอย่าง
    • SGD มีโมเมนตัมคงที่
    • Adam เปิดตัว Epsilon, Beta1 และ Beta2 แบบคงที่
  2. ในขั้นตอนหลังๆ ของโครงการ ให้เปลี่ยนไปใช้เครื่องมือเพิ่มประสิทธิภาพทั่วไปที่ ปรับแต่งไฮเปอร์พารามิเตอร์เพิ่มเติมแทนการแก้ไขเป็นค่าเริ่มต้น

เลือกขนาดกลุ่ม

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

ขนาดกลุ่มจะกำหนดเวลาการฝึกและทรัพยากรในการประมวลผลเป็นหลัก การบริโภค การเพิ่มขนาดกลุ่มมักจะลดเวลาการฝึก ซึ่ง:

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

การเพิ่มขนาดกลุ่มอาจลดหรือเพิ่มการใช้ทรัพยากร หรือปล่อยการใช้ทรัพยากรไว้ตามเดิม

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

  • ไฮเปอร์พารามิเตอร์ของตัวเพิ่มประสิทธิภาพทั้งหมดได้รับการปรับแต่งอย่างดี
  • การปรับให้เป็นมาตรฐานเพียงพอและปรับให้เหมาะสม
  • จำนวนขั้นตอนการฝึกเพียงพอแล้ว

ควรเห็นประสิทธิภาพขั้นสุดท้ายแบบเดียวกันโดยใช้กลุ่มขนาดใดก็ได้ (ดู Shallue et al. 2018 และ เหตุใดจึงไม่ควรปรับแต่งขนาดกลุ่มเพื่อปรับปรุงโดยตรง ของชุดการตรวจสอบความถูกต้อง)

ระบุขนาดกลุ่มที่เป็นไปได้และประเมินอัตราการส่งข้อมูลการฝึก

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

อัตราการส่งข้อมูลการฝึก = จำนวนตัวอย่างที่ประมวลผลต่อวินาที

หรือเวลาต่อขั้นตอนที่เทียบเท่ากันคือ

เวลาต่อขั้นตอน = ขนาดกลุ่ม / อัตราการส่งข้อมูลการฝึก

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

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

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

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

เลือกขนาดกลุ่มเพื่อลดเวลาการฝึก

คำจำกัดความของเวลาการฝึกอบรมมีดังนี้

  • เวลาในการฝึกอบรม = (เวลาต่อขั้นตอน) x (จำนวนก้าวทั้งหมด)

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

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

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

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

เมื่อเปรียบเทียบขนาดกลุ่ม โปรดระวังความแตกต่างระหว่างรายการต่อไปนี้

  • ตัวอย่างงบประมาณหรืองบประมาณ Epoch ทำการทดสอบทั้งหมดขณะที่ โดยการกำหนดจำนวนงานนำเสนอตัวอย่างการฝึกอบรม
  • งบประมาณแบบขั้นตอน - การทดสอบทั้งหมดที่มีจำนวนคงที่ ขั้นตอนการฝึกอบรม

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

เลือกขนาดกลุ่มเพื่อลดการใช้ทรัพยากร

ต้นทุนทรัพยากรที่เกี่ยวข้องกับการเพิ่มขนาดกลุ่มมี 2 ประเภทดังนี้

  • ค่าใช้จ่ายล่วงหน้า ตัวอย่างเช่น การซื้อฮาร์ดแวร์ใหม่หรือการเขียน ไปป์ไลน์การฝึกอบรมเพื่อใช้การฝึกอบรมแบบ Multi-GPU / TPU
  • ค่าใช้จ่ายการใช้งาน เช่น การเรียกเก็บเงินตามงบประมาณทรัพยากรของทีม การเรียกเก็บเงินจากผู้ให้บริการคลาวด์ ค่าไฟฟ้า / การบำรุงรักษา

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

เราจะอ้างอิงต้นทุนการใช้งานทั้งหมด (ซึ่งอาจมี ประเภทค่าใช้จ่าย) เป็นการใช้ทรัพยากร ซึ่งคำนวณดังนี้

การใช้ทรัพยากร = การใช้ทรัพยากรต่อขั้นตอน x จำนวนขั้นตอนทั้งหมด

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

  • การเพิ่มขนาดกลุ่มอาจลดการใช้ทรัพยากร เช่น หากเรียกใช้แต่ละขั้นตอนด้วยขนาดกลุ่มที่ใหญ่ขึ้นได้ โดยใช้ฮาร์ดแวร์เดียวกับกลุ่มขนาดเล็ก (โดย เวลาต่อขั้นตอนเพิ่มขึ้น) การเพิ่มขึ้นของทรัพยากร การใช้จ่ายต่อขั้นตอน อาจมีน้ำหนักมากกว่า จำนวนขั้นตอน
  • การเพิ่มขนาดกลุ่มอาจไม่เปลี่ยนการใช้ทรัพยากร เช่น หากขนาดกลุ่มเป็น 2 เท่าจะลดจํานวนขั้นตอนลงครึ่งหนึ่ง ที่จำเป็นและเพิ่มจำนวน GPU ที่ใช้เป็น 2 เท่า รวมถึงปริมาณการใช้อินเทอร์เน็ตทั้งหมด (ในแง่ของชั่วโมง GPU) จะไม่เปลี่ยนแปลง
  • การเพิ่มขนาดกลุ่มอาจเพิ่มการใช้ทรัพยากร ตัวอย่างเช่น ถ้าต้องการเพิ่มขนาดกลุ่ม จะต้องอัปเกรดฮาร์ดแวร์ ปริมาณการใช้งานที่เพิ่มขึ้นต่อ 1 ขั้นตอนอาจมีน้ำหนักมากกว่าการลด จำนวนขั้นตอน

การเปลี่ยนขนาดกลุ่มต้องปรับแต่งไฮเปอร์พารามิเตอร์ส่วนใหญ่อีกครั้ง

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

  • ไฮเปอร์พารามิเตอร์ของตัวเพิ่มประสิทธิภาพ (เช่น อัตราการเรียนรู้และโมเมนตัม)
  • ไฮเปอร์พารามิเตอร์ปกติ

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

วิธีที่บรรทัดฐานของกลุ่มโต้ตอบกับขนาดกลุ่ม

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

เลือกการกำหนดค่าเริ่มต้น

ขั้นตอนแรกในการปรับแต่งไฮเปอร์พารามิเตอร์คือการพิจารณา จุดเริ่มต้นสำหรับสิ่งต่อไปนี้

  • การกำหนดค่าโมเดล (เช่น จำนวนเลเยอร์)
  • ไฮเปอร์พารามิเตอร์ของตัวเพิ่มประสิทธิภาพ (เช่น อัตราการเรียนรู้)
  • จำนวนขั้นตอนการฝึก

การกำหนดการกำหนดค่าเริ่มต้นนี้ต้องใช้การกำหนดค่าด้วยตนเอง การฝึกที่กำหนดค่าแล้วและการลองผิดลองถูก

หลักการแนะนำของเรามีดังนี้

มองหาการใช้ทรัพยากรที่เรียบง่าย ค่อนข้างรวดเร็ว และค่อนข้างต่ำ ซึ่งมีประสิทธิภาพที่สมเหตุสมผล

โดยมี

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

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

การเลือกจำนวนขั้นตอนการฝึกจะเกี่ยวข้องกับการปรับสมดุลความตึงเครียดต่อไปนี้

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