ขอแนะนำ Packed BERT สำหรับการฝึกอบรมที่เร็วขึ้น 2 เท่าในการประมวลผลภาษาธรรมชาติ
ดูอัลกอริธึมการบรรจุใหม่ของ BERT เพื่อการฝึกอบรมที่มีประสิทธิภาพยิ่งขึ้น
By ดร.มาริโอ ไมเคิล เครล, หัวหน้าฝ่ายการเรียนรู้ของเครื่องที่ Graphcore & มาเตจ โคเซค, AI Applications Specialist ที่ Graphcore
รูปภาพโดยผู้เขียน
ด้วยการใช้อัลกอริธึมการบรรจุใหม่ เราได้เร่งการประมวลผลภาษาธรรมชาติมากกว่า 2 เท่าขณะฝึก BERT-Large เทคนิคการบรรจุแบบใหม่ของเราช่วยขจัดช่องว่างภายใน ทำให้การคำนวณมีประสิทธิภาพมากขึ้นอย่างเห็นได้ชัด
เราสงสัยว่าสิ่งนี้สามารถนำไปใช้กับโมเดลจีโนมและโปรตีนพับ และรุ่นอื่นๆ ที่มีการกระจายความยาวแบบเบ้เพื่อสร้างผลกระทบในวงกว้างมากขึ้นในอุตสาหกรรมและการใช้งานที่แตกต่างกัน
เราแนะนำอัลกอริธึม Non-Negative Least Squares Histogram-Packing (หรือ NNLSHP) ที่มีประสิทธิภาพสูงของ Graphcore รวมถึงอัลกอริทึม BERT ของเราที่ใช้กับลำดับที่บรรจุในกระดาษใหม่ [1]
ของเสียจากการคำนวณใน NLP เนื่องจากการเติมตามลำดับ
เราเริ่มสำรวจวิธีการใหม่ๆ ในการเพิ่มประสิทธิภาพการฝึกอบรม BERT ในขณะทำงานล่าสุดของเรา การส่งเกณฑ์มาตรฐานไปยัง MLPerf™. เป้าหมายคือการพัฒนาการเพิ่มประสิทธิภาพที่มีประโยชน์ซึ่งสามารถนำไปใช้ในแอปพลิเคชันในโลกแห่งความเป็นจริงได้อย่างง่ายดาย BERT เป็นตัวเลือกที่เป็นธรรมชาติเนื่องจากเป็นหนึ่งในโมเดลที่มุ่งเน้นการเพิ่มประสิทธิภาพเหล่านี้ เนื่องจากมีการใช้กันอย่างแพร่หลายในอุตสาหกรรมและโดยลูกค้าของเราจำนวนมาก
ทำให้เราประหลาดใจมากที่ได้เรียนรู้ว่าในแอปพลิเคชันการฝึกอบรม BERT-Large ของเราเองโดยใช้ชุดข้อมูล Wikipedia นั้น 50% ของโทเค็นในชุดข้อมูลนั้นเป็นช่องว่างภายใน ส่งผลให้มีการคำนวณที่สูญเปล่าจำนวนมาก
ลำดับการเติมเพื่อจัดแนวทั้งหมดให้มีความยาวเท่ากันเป็นแนวทางทั่วไปที่ใช้กับ GPU แต่เราคิดว่ามันคุ้มค่าที่จะลองใช้แนวทางอื่น
ลำดับมีความยาวต่างกันมากด้วยเหตุผลสองประการ:
- ข้อมูลวิกิพีเดียพื้นฐานแสดงรูปแบบความยาวเอกสารที่หลากหลาย
- การประมวลผลล่วงหน้าของ BERT นั้นสุ่มลดขนาดของเอกสารที่แยกออกมาซึ่งรวมกันเพื่อสร้างลำดับการฝึกอบรม
การกรอกความยาวสูงสุด 512 ส่งผลให้ 50% ของโทเค็นทั้งหมดเป็นโทเค็นเสริม การแทนที่ 50% ของการเติมด้วยข้อมูลจริงอาจส่งผลให้มีการประมวลผลข้อมูลเพิ่มขึ้น 50% โดยใช้ความพยายามในการคำนวณแบบเดียวกัน และทำให้ความเร็วเพิ่มขึ้น 2 เท่าภายใต้สภาวะที่เหมาะสม
รูปที่ 1: การกระจายชุดข้อมูล Wikipedia รูปภาพโดยผู้เขียน
นี่เป็นข้อมูลเฉพาะสำหรับ Wikipedia หรือไม่ เลขที่.
แล้วมันเจาะจงภาษาหรือเปล่าคะ? เลขที่.
อันที่จริง การกระจายความยาวเบ้พบได้ทุกที่: ในภาษา จีโนม และการพับของโปรตีน รูปที่ 2 และ 3 แสดงการแจกแจงสำหรับชุดข้อมูล SQUAAD 1.1 และชุดข้อมูล GLUE
รูปที่ 2: SQUAAD 1.1 BERT ฮิสโตแกรมลำดับความยาวชุดข้อมูลก่อนการฝึกอบรมสำหรับความยาวลำดับสูงสุด 384 รูปภาพโดยผู้เขียน
รูปที่ 3: ฮิสโทแกรมความยาวลำดับชุดข้อมูล GLUE สำหรับความยาวลำดับสูงสุด 128 รูปภาพโดยผู้เขียน
เราจะจัดการกับความยาวที่แตกต่างกันได้อย่างไรในขณะที่หลีกเลี่ยงการสูญเสียจากการคำนวณ
วิธีการปัจจุบันต้องใช้เมล็ดในการคำนวณที่แตกต่างกันสำหรับความยาวที่แตกต่างกัน หรือสำหรับวิศวกรในการเอาช่องว่างภายในออกโดยทางโปรแกรมแล้วเพิ่มกลับเข้าไปซ้ำๆ สำหรับแต่ละบล็อกความสนใจและการคำนวณการสูญเสีย การบันทึกการคำนวณโดยการเพิ่มโค้ดและทำให้ซับซ้อนขึ้นนั้นไม่น่าสนใจ เราจึงค้นหาสิ่งที่ดีกว่า เราไม่สามารถรวมหลายซีเควนซ์เข้าด้วยกันในชุดที่มีความยาวสูงสุดและประมวลผลทั้งหมดรวมกันได้หรือไม่ ปรากฎว่าเราทำได้!
วิธีนี้ต้องใช้ส่วนผสมหลักสามประการ:
- อัลกอริธึมที่มีประสิทธิภาพในการตัดสินใจว่าจะรวบรวมตัวอย่างใดเพื่อให้เหลือช่องว่างให้น้อยที่สุด
- การปรับโมเดล BERT เพื่อประมวลผลแพ็คแทนการเรียงลำดับ
- และปรับไฮเปอร์พารามิเตอร์
การบรรจุ
ในตอนแรก ดูเหมือนไม่น่าเป็นไปได้ที่คุณจะสามารถแพ็คชุดข้อมูลขนาดใหญ่ เช่น Wikipedia ได้อย่างมีประสิทธิภาพมาก ปัญหานี้มักเรียกว่า bin-packing แม้ว่าการบรรจุจะถูกจำกัดไว้ที่สามลำดับหรือน้อยกว่านั้น ปัญหาที่ได้จะยังคงเป็น NP-complete อย่างแน่นหนา ขาดโซลูชันอัลกอริธึมที่มีประสิทธิภาพ อัลกอริธึมการบรรจุฮิวริสติกที่มีอยู่ไม่ได้มีแนวโน้มเพราะว่ามีความซับซ้อนอย่างน้อย O(ไม่มีบันทึก(n)) ที่ไหน n คือจำนวนลำดับ (~16M สำหรับ Wikipedia) เรามีความสนใจในแนวทางที่สามารถปรับขนาดได้ดีเป็นลำดับนับล้าน
กลเม็ดสองข้อช่วยให้เราลดความซับซ้อนลงได้อย่างมาก:
- จำกัดจำนวนลำดับในแพ็คเป็นสามชุด (สำหรับแนวทางแก้ไขปัญหาแรกของเรา)
- ใช้งานบนฮิสโตแกรมของความยาวลำดับเพียงอย่างเดียวโดยมีถังเดียวสำหรับแต่ละความยาวที่เกิดขึ้น
ความยาวลำดับสูงสุดของเราคือ 512 ดังนั้น การย้ายไปยังฮิสโตแกรมจึงลดขนาดและความซับซ้อนจาก 16 ล้านลำดับเหลือ 512 จำนวนความยาว การอนุญาตให้มีลำดับสูงสุดสามลำดับในชุดจะลดจำนวนชุดค่าผสมความยาวที่อนุญาตเป็น 22K ซึ่งรวมถึงเคล็ดลับที่ต้องใช้ลำดับในการจัดเรียงตามความยาวในชุด ทำไมไม่ลอง 4 ซีเควนซ์ล่ะ? เพิ่มจำนวนชุดค่าผสมจาก 22K เป็น 940K ซึ่งมากเกินไปสำหรับวิธีการสร้างแบบจำลองครั้งแรกของเรา นอกจากนี้ ความลึก 3 ยังมีประสิทธิภาพการบรรจุที่สูงอย่างน่าทึ่งแล้ว
เดิมที เราคิดว่าการใช้ลำดับมากกว่าสามชุดในหนึ่งชุดจะเพิ่มค่าใช้จ่ายในการคำนวณและส่งผลต่อพฤติกรรมการบรรจบกันระหว่างการฝึก อย่างไรก็ตาม เพื่อสนับสนุนแอปพลิเคชันต่างๆ เช่น การอนุมาน ซึ่งต้องใช้การแพ็คแบบเรียลไทม์ที่รวดเร็วยิ่งขึ้นไปอีก เราได้พัฒนาอัลกอริธึม Non-Negative Least Squares Histogram-Packing (NNLSHP) ที่มีประสิทธิภาพสูง
ฮิสโตแกรมการบรรจุสี่เหลี่ยมน้อยที่สุดที่ไม่เป็นลบ (NNLSHP)
การบรรจุในถังขยะมักถูกกำหนดให้เป็นปัญหาการปรับให้เหมาะสมทางคณิตศาสตร์ อย่างไรก็ตาม ด้วย 16 ล้านซีเควนซ์ (หรือมากกว่านั้น) วิธีนี้ใช้ไม่ได้ผล ตัวแปรปัญหาเพียงอย่างเดียวจะเกินหน่วยความจำของเครื่องส่วนใหญ่ โปรแกรมทางคณิตศาสตร์สำหรับวิธีการอิงฮิสโตแกรมค่อนข้างเรียบร้อย เพื่อความง่าย เราตัดสินใจใช้วิธีกำลังสองน้อยที่สุด (ขวาน=b) ด้วยเวกเตอร์ฮิสโตแกรม b. เราขยายมันโดยขอเวกเตอร์กลยุทธ์ x ให้ไม่เป็นค่าลบและเพิ่มน้ำหนักเพื่อให้มีช่องว่างภายในเล็กน้อย
ส่วนที่ยุ่งยากคือเมทริกซ์กลยุทธ์ แต่ละคอลัมน์มีผลรวมสูงสุดสามรายการและเข้ารหัสซึ่งลำดับจะถูกรวมเข้าด้วยกันเพื่อให้ตรงกับความยาวทั้งหมดที่ต้องการ 512 ในกรณีของเรา แถวจะเข้ารหัสชุดค่าผสมที่เป็นไปได้แต่ละชุดเพื่อให้ได้ความยาวเท่ากับความยาวทั้งหมด เวกเตอร์กลยุทธ์ x คือสิ่งที่เรากำลังมองหา ซึ่งอธิบายว่าเราเลือกชุดค่าผสม 20 รายการใดบ่อยเพียงใด ที่น่าสนใจคือมีการเลือกชุดค่าผสมประมาณ 600 ชุดในตอนท้าย เพื่อให้ได้โซลูชันที่แน่นอน กลยุทธ์จะนับใน x จะต้องเป็นจำนวนเต็มบวก แต่เราตระหนักว่าผลเฉลยที่ปัดเศษโดยประมาณโดยมีค่าไม่ติดลบ x ก็เพียงพอแล้ว สำหรับวิธีแก้ปัญหาโดยประมาณ สามารถใช้ตัวแก้ปัญหาแบบสำเร็จรูปที่ใช้งานง่ายเพื่อให้ได้ผลลัพธ์ภายใน 30 วินาที
รูปที่ 4: ตัวอย่างของเมทริกซ์กลยุทธ์สำหรับความยาวของลำดับ 8 และความลึกของการบรรจุ 3 แถวหมายถึงลำดับที่มีความยาว 1–8 ที่รวมเข้าด้วยกัน และคอลัมน์แสดงถึงความยาวรวมกันทั้งหมดที่เป็นไปได้ในชุดที่ไม่มีลำดับเฉพาะ รูปภาพโดยผู้เขียน
ในตอนท้าย เราต้องแก้ไขตัวอย่างบางส่วนที่ไม่ได้รับมอบหมายกลยุทธ์ แต่มีเพียงเล็กน้อย เรายังได้พัฒนาตัวแก้ไขตัวแปรที่บังคับให้แต่ละลำดับได้รับการบรรจุ อาจมีช่องว่างภายใน และมีน้ำหนักขึ้นอยู่กับช่องว่างภายใน ใช้เวลานานกว่านั้นมาก และการแก้ปัญหาก็ไม่ดีขึ้นมากนัก
การบรรจุฮิสโตแกรมที่สั้นที่สุด-แพ็ค-แรก
NNLSHP นำเสนอแนวทางการบรรจุที่เพียงพอสำหรับเรา อย่างไรก็ตาม เราสงสัยว่าในทางทฤษฎีแล้วเราจะสามารถหาแนวทางออนไลน์ที่เร็วกว่าเดิมได้หรือไม่ และขจัดข้อจำกัดในการรวม 3 ลำดับเข้าด้วยกัน
ดังนั้นเราจึงได้รับแรงบันดาลใจจากอัลกอริธึมการบรรจุที่มีอยู่ แต่ยังคงเน้นที่ฮิสโตแกรม
มีส่วนผสมสี่อย่างสำหรับอัลกอริธึมแรกของเรา Shortest-pack-first histogram-packing (SPFHP):
- ดำเนินการตามจำนวนฮิสโตแกรมจากลำดับที่ยาวที่สุดไปยังลำดับที่สั้นที่สุด
- หากความยาวของลำดับปัจจุบันไม่พอดีกับแพ็กใดๆ ให้เริ่มชุดใหม่ของ packs
- หากมีหลายแบบ ให้นำชุดที่ผลรวมของความยาวลำดับสั้นที่สุดมาแก้ไขการนับตามลำดับ
- ตรวจสอบความพอดีของการนับที่เหลืออีกครั้ง
วิธีนี้เป็นวิธีที่ตรงไปตรงมาที่สุดในการนำไปใช้และใช้เวลาเพียง 0.02 วินาที
ตัวแปรหนึ่งคือการใช้ผลรวมของความยาวลำดับที่มากที่สุด แทนที่จะใช้จำนวนที่สั้นที่สุดและแยกจำนวนเพื่อให้ได้ขนาดที่พอดียิ่งขึ้น โดยรวมแล้ว สิ่งนี้ไม่ได้เปลี่ยนแปลงประสิทธิภาพมากนัก แต่เพิ่มความซับซ้อนของโค้ดอย่างมาก
วิธีการทำงานของการบรรจุฮิสโตแกรมแบบ shortest-pack-first แอนิเมชั่นโดยผู้เขียน
Wikipedia, SQUAD 1.1, ผลการบรรจุ GLUE
ตารางที่ 1, 2 และ 3 แสดงผลการบรรจุของสองอัลกอริธึมที่เราเสนอ ความลึกของการบรรจุ อธิบายจำนวนสูงสุดของลำดับที่บรรจุ ความลึกของการบรรจุ 1 คือการใช้งาน BERT พื้นฐาน ความลึกของการบรรจุสูงสุดที่เกิดขึ้น ไม่มีการจำกัดถูกกำหนดด้วย “สูงสุด” เพิ่มเติม NS จำนวนแพ็ค อธิบายความยาวของชุดข้อมูลที่แพ็กใหม่ อย่างมีประสิทธิภาพ คือเปอร์เซ็นต์ของโทเค็นจริงในชุดข้อมูลที่บรรจุ NS ปัจจัยการบรรจุ อธิบายผลลัพธ์ที่อาจเกิดขึ้นได้ในการเร่งความเร็วเมื่อเปรียบเทียบกับความลึกของการบรรจุ 1
เรามีข้อสังเกตหลักสี่ประการ:
- ยิ่งการแจกจ่ายเบ้มากเท่าไร ประโยชน์ของการบรรจุก็ยิ่งสูงขึ้นเท่านั้น
- ชุดข้อมูลทั้งหมดได้รับประโยชน์จากการบรรจุ บางคนถึงกับมากกว่า 2 เท่าด้วยซ้ำ
- SPFHP จะมีประสิทธิภาพมากขึ้นเมื่อความลึกของบรรจุภัณฑ์ไม่จำกัด
- สำหรับลำดับการแพ็กสูงสุด 3 ลำดับ ยิ่ง NNLSHP ซับซ้อนมากเท่าใด ก็ยิ่งมีประสิทธิภาพมากขึ้นเท่านั้น (99.75 เทียบกับ 89.44)
ตารางที่ 1: ผลการปฏิบัติงานที่สำคัญของอัลกอริธึมการบรรจุที่เสนอ (SPFHP และ NNLSHP) บนวิกิพีเดีย รูปภาพโดยผู้เขียน
ตารางที่ 2: ผลการปฏิบัติงานของอัลกอริธึมการบรรจุที่เสนอสำหรับ SQUAD 1.1 BERT ก่อนการฝึกอบรม รูปภาพโดยผู้เขียน
ตารางที่ 3: ผลการปฏิบัติงานของอัลกอริธึมการบรรจุที่เสนอสำหรับชุดข้อมูล GLUE เฉพาะค่าพื้นฐานและผลลัพธ์การบรรจุ SPFHP โดยไม่จำกัดความลึกของบรรจุภัณฑ์เท่านั้นที่จะแสดง รูปภาพโดยผู้เขียน
การปรับการประมวลผลของ BERT
สิ่งที่น่าสนใจเกี่ยวกับสถาปัตยกรรม BERT คือการประมวลผลส่วนใหญ่เกิดขึ้นในระดับโทเค็น ซึ่งหมายความว่าจะไม่รบกวนการบรรจุของเรา มีเพียงสี่องค์ประกอบที่ต้องการการปรับเปลี่ยน: มาสก์ความสนใจ, การสูญเสีย MLM, การสูญเสีย NSP และความแม่นยำ
กุญแจสำคัญสำหรับทั้งสี่วิธีในการจัดการจำนวนลำดับที่แตกต่างกันคือ vectorization และใช้จำนวนสูงสุดของลำดับที่สามารถต่อกันได้ สำหรับความสนใจ เรามีหน้ากากเพื่อจัดการกับช่องว่างภายในแล้ว การขยายสิ่งนี้ไปยังหลาย ๆ ลำดับนั้นตรงไปตรงมาดังที่เห็นในโค้ดหลอก TensorFlow ต่อไปนี้ แนวความคิดคือเราทำให้แน่ใจว่าความสนใจนั้น จำกัด อยู่ที่ลำดับที่แยกจากกันและไม่สามารถขยายเกินนั้นได้
ตัวอย่างโค้ดมาสก์ความสนใจ
รูปที่ 5: ตัวอย่าง Zero-one mask
สำหรับการคำนวณการสูญเสีย โดยหลักการแล้ว เราจะแกะลำดับและคำนวณการสูญเสียที่แยกจากกัน ในที่สุดก็ได้ค่าเฉลี่ยของการสูญเสียเหนือลำดับ (แทนที่จะเป็นแพ็ค)
สำหรับการสูญเสีย MLM โค้ดจะมีลักษณะดังนี้:
ตัวอย่างรหัสคำนวณการสูญเสีย
สำหรับการสูญเสีย NSP และความแม่นยำ หลักการก็เหมือนกัน ในตัวอย่างสาธารณะของเรา คุณสามารถหาโค้ดที่เกี่ยวข้องได้จากในบริษัท กรอบ PopART.
ค่าโสหุ้ยวิกิพีเดียและการประมาณการเร่งความเร็ว
ด้วยการปรับเปลี่ยน BERT เรามีคำถามสองข้อ:
- มันนำมาซึ่งค่าโสหุ้ยเท่าไหร่?
- ค่าโสหุ้ยขึ้นอยู่กับจำนวนสูงสุดของลำดับที่ประกอบกันเป็นแพ็คเท่าใด
เนื่องจากการเตรียมข้อมูลใน BERT อาจเป็นเรื่องยุ่งยาก เราจึงใช้ทางลัดและคอมไพล์โค้ดสำหรับความลึกของการบรรจุที่แตกต่างกันหลายแบบ และเปรียบเทียบรอบ (ที่วัด) ตามลำดับ ผลลัพธ์แสดงในตารางที่ 4 ด้วย เหนือศีรษะเราแสดงถึงเปอร์เซ็นต์ที่ลดลงของปริมาณงานเนื่องจากการเปลี่ยนแปลงรูปแบบเพื่อเปิดใช้งานการบรรจุ (เช่น รูปแบบการกำบังสำหรับความสนใจและการคำนวณการสูญเสียที่เปลี่ยนแปลง) NS ตระหนักถึงการเร่งความเร็ว คือการรวมกันของการเร่งความเร็วเนื่องจากการบรรจุ (the ปัจจัยการบรรจุ) และปริมาณงานลดลงเนื่องจาก เหนือศีรษะ.
ตารางที่ 4: การเปรียบเทียบการเร่งความเร็วโดยประมาณของอัลกอริธึมการบรรจุที่เสนอ (SPFHP และ NNLSHP) บน Wikipedia รูปภาพโดยผู้เขียน
ต้องขอบคุณเทคนิค vectorization ที่ทำให้โอเวอร์เฮดมีขนาดเล็กอย่างน่าประหลาดใจ และไม่มีข้อเสียใด ๆ จากการรวมหลายๆ ลำดับเข้าด้วยกัน
การปรับไฮเปอร์พารามิเตอร์
ด้วยการบรรจุ เรากำลังเพิ่มขนาดแบทช์ที่มีประสิทธิภาพเป็นสองเท่า (โดยเฉลี่ย) ซึ่งหมายความว่าเราจำเป็นต้องปรับไฮเปอร์พารามิเตอร์การฝึกอบรม เคล็ดลับง่ายๆ คือ ลดจำนวนการไล่ระดับการไล่ระดับลงครึ่งหนึ่ง เพื่อรักษาขนาดแบทช์เฉลี่ยที่มีประสิทธิภาพเท่าเดิมก่อนการฝึก ด้วยการใช้การตั้งค่าเกณฑ์มาตรฐานกับจุดตรวจที่ฝึกไว้ล่วงหน้า เราจะเห็นได้ว่าเส้นโค้งความแม่นยำเข้ากันได้อย่างสมบูรณ์แบบ
รูปที่ 6: เปรียบเทียบเส้นโค้งการเรียนรู้สำหรับการประมวลผลแบบแพ็คและแบบแยกส่วนกับ ลดขนาดแบทช์ สำหรับแนวทางที่อัดแน่น รูปภาพโดยผู้เขียน
ความถูกต้องตรงกัน: การสูญเสียการฝึกอบรม MLM อาจแตกต่างกันเล็กน้อยในตอนเริ่มต้น แต่จะตามทันอย่างรวดเร็ว ความแตกต่างเบื้องต้นนี้อาจมาจากการปรับชั้นความสนใจเล็กน้อย ซึ่งอาจมีอคติต่อลำดับสั้นๆ ในการฝึกครั้งก่อน
เพื่อหลีกเลี่ยงการทำงานที่ช้าลง ในบางครั้ง การรักษาขนาดแบทช์ดั้งเดิมให้เท่าเดิม และปรับไฮเปอร์พารามิเตอร์ให้เป็นขนาดแบทช์ที่มีประสิทธิภาพเพิ่มขึ้น (สองเท่า) ไฮเปอร์พารามิเตอร์หลักที่ต้องพิจารณาคือพารามิเตอร์เบต้าและอัตราการเรียนรู้ วิธีการทั่วไปวิธีหนึ่งคือการเพิ่มขนาดแบทช์เป็นสองเท่า ซึ่งในกรณีของเราประสิทธิภาพลดลง เมื่อดูสถิติของเครื่องมือเพิ่มประสิทธิภาพ LAMB เราสามารถพิสูจน์ได้ว่าการเพิ่มพารามิเตอร์เบต้าเป็นกำลังของปัจจัยการบรรจุนั้นสอดคล้องกับการฝึกหลายชุดอย่างต่อเนื่องเพื่อรักษาโมเมนตัมและความเร็วให้เทียบเคียงได้
รูปที่ 7: เปรียบเทียบเส้นโค้งการเรียนรู้สำหรับการประมวลผลแบบแพ็คและแบบแยกส่วนกับ การวิเคราะห์พฤติกรรม สมัครแล้ว. รูปภาพโดยผู้เขียน
การทดลองของเราแสดงให้เห็นว่าการนำเบต้ามาสู่กำลังของสองนั้นเป็นฮิวริสติกที่ดี ในสถานการณ์สมมตินี้ เส้นโค้งไม่คาดว่าจะตรงกัน เนื่องจากการเพิ่มขนาดแบทช์มักจะลดความเร็วในการลู่เข้าในแง่ของกลุ่มตัวอย่าง/ยุคจนกว่าจะถึงความแม่นยำของเป้าหมาย
ตอนนี้คำถามคือถ้าในสถานการณ์จริง เราได้รับความเร็วที่คาดหวังไว้จริง ๆ หรือไม่?
รูปที่ 8: การเปรียบเทียบเส้นโค้งการเรียนรู้สำหรับการประมวลผลแบบแพ็กและแบบไม่แพ็กใน การตั้งค่าที่เหมาะสมที่สุด. รูปภาพโดยผู้เขียน
ใช่พวกเราทำ! เราได้รับความเร็วเพิ่มขึ้นเนื่องจากเราบีบอัดการถ่ายโอนข้อมูล
สรุป
การรวมประโยคเข้าด้วยกันสามารถประหยัดความพยายามในการคำนวณและสิ่งแวดล้อม เทคนิคนี้สามารถนำไปใช้ในกรอบงานใดก็ได้ รวมถึง PyTorch และ TensorFlow เราได้รับความเร็วที่เพิ่มขึ้นอย่างชัดเจนถึง 2 เท่า และระหว่างทาง เราได้ขยายความทันสมัยในอัลกอริธึมการบรรจุ
แอปพลิเคชั่นอื่น ๆ ที่เราอยากรู้คือจีโนมและการพับของโปรตีนซึ่งสามารถสังเกตการกระจายข้อมูลที่คล้ายคลึงกัน หม้อแปลงวิชันซิสเต็มอาจเป็นพื้นที่ที่น่าสนใจในการใช้ภาพที่บรรจุขนาดต่างกัน แอปพลิเคชันใดที่คุณคิดว่าจะทำงานได้ดี เราชอบที่จะได้ยินจากคุณ!
ขอขอบคุณ
ขอขอบคุณเพื่อนร่วมงานของเราในทีมวิศวกรรมแอปพลิเคชันของ Graphcore Sheng Fu และ Mrinal Iyer ที่มีส่วนร่วมในงานนี้ และขอขอบคุณ Douglas Orr จากทีมวิจัยของ Graphcore สำหรับความคิดเห็นอันมีค่าของเขา
อ้างอิง
[1] M. Kosec, S. Fu, MM Krell, การบรรจุ: มุ่งสู่การเร่งความเร็ว NLP BERT 2 เท่า (2021), arXiv
ดร.มาริโอ ไมเคิล เครล เป็นหัวหน้าฝ่ายการเรียนรู้ของเครื่องที่ Graphcore Mario ทำการวิจัยและพัฒนาอัลกอริธึมแมชชีนเลิร์นนิงมานานกว่า 12 ปี โดยสร้างซอฟต์แวร์สำหรับอุตสาหกรรมที่หลากหลาย เช่น หุ่นยนต์ ยานยนต์ โทรคมนาคม และการดูแลสุขภาพ ที่ Graphcore เขามีส่วนทำให้เราประทับใจ ส่ง MLPerf และมีความปรารถนาที่จะเร่งสร้างโมเดลใหม่ที่ไม่ได้มาตรฐาน เช่น การคำนวณแบบเบย์โดยประมาณสำหรับการวิเคราะห์ข้อมูลโควิด-19 ทางสถิติ
มาเตจ โคเซค เป็นผู้เชี่ยวชาญด้านแอปพลิเคชัน AI ที่ Graphcore ในพาโลอัลโต ก่อนหน้านี้เขาเคยทำงานเป็นนักวิทยาศาสตร์ AI ด้านการขับรถอัตโนมัติที่ NIO ในซานโฮเซ และสำเร็จการศึกษาระดับปริญญาโทด้านวิชาการบินและอวกาศจากมหาวิทยาลัยสแตนฟอร์ด
Original. โพสต์ใหม่โดยได้รับอนุญาต
ที่เกี่ยวข้อง
เรื่องเด่นใน 30 วันที่ผ่านมา | |||||
---|---|---|---|---|---|
|
|
- "
- &
- 2021
- 7
- เพิ่มเติม
- วิชาการบิน
- AI
- ขั้นตอนวิธี
- อัลกอริทึม
- ทั้งหมด
- การอนุญาต
- การวิเคราะห์
- ภาพเคลื่อนไหว
- การใช้งาน
- การใช้งาน
- สถาปัตยกรรม
- AREA
- รอบ
- ศิลปะ
- รถยนต์
- ยานยนต์
- อิสระ
- baseline
- มาตรฐาน
- เบต้า
- เปลี่ยนแปลง
- รหัส
- คอลัมน์
- ร่วมกัน
- คำนวณ
- ส่วน
- Covid-19
- การสร้าง
- ปัจจุบัน
- ลูกค้า
- ข้อมูล
- การวิเคราะห์ข้อมูล
- วิทยาศาสตร์ข้อมูล
- การเรียนรู้ลึก ๆ
- พัฒนา
- DID
- Dimension
- ผู้อำนวยการ
- เอกสาร
- การขับขี่
- มีประสิทธิภาพ
- อย่างมีประสิทธิภาพ
- วิศวกร
- ชั้นเยี่ยม
- สิ่งแวดล้อม
- ชื่อจริง
- พอดี
- แก้ไขปัญหา
- โฟกัส
- กรอบ
- ฟังก์ชั่น
- ดี
- GPUs
- การดูแลสุขภาพ
- จุดสูง
- สรุป ความน่าเชื่อถือของ Olymp Trade?
- HTTPS
- ภาพ
- ส่งผลกระทบ
- รวมทั้ง
- เพิ่ม
- อุตสาหกรรม
- อุตสาหกรรม
- แรงบันดาลใจ
- สัมภาษณ์
- สอบสวน
- IT
- การสัมภาษณ์
- คีย์
- ความรู้
- ภาษา
- ใหญ่
- นำ
- เรียนรู้
- การเรียนรู้
- ชั้น
- ถูก จำกัด
- ความรัก
- เรียนรู้เครื่อง
- การทำ
- หน้ากาก
- การจับคู่
- ล้าน
- ML
- แบบ
- โมเมนตัม
- ภาษาธรรมชาติ
- ประมวลผลภาษาธรรมชาติ
- เรียบร้อย
- ประสาท
- NLP
- ตัวเลข
- ออนไลน์
- เปิด
- โอเพนซอร์ส
- อื่นๆ
- กระดาษ
- รูปแบบไฟล์ PDF
- การปฏิบัติ
- อำนาจ
- หลัก
- โครงการ
- โปรตีน
- สาธารณะ
- หลาม
- ไฟฉาย
- ราคา
- เรียลไทม์
- เหตุผล
- ลด
- ถดถอย
- การวิจัย
- ผลสอบ
- หุ่นยนต์
- ซาน
- ซานโฮเซ
- ประหยัด
- ขนาด
- วิทยาศาสตร์
- นักวิทยาศาสตร์
- ค้นหา
- เลือก
- ความรู้สึก
- ชุด
- การตั้งค่า
- สั้น
- ง่าย
- ขนาด
- เล็ก
- So
- ซอฟต์แวร์
- ความเร็ว
- แยก
- Stanford
- มหาวิทยาลัยสแตนฟอร์ด
- เริ่มต้น
- สถานะ
- สถิติ
- จำนวนชั้น
- กลยุทธ์
- สนับสนุน
- เป้า
- โทรคมนาคม
- tensorflow
- โทเค็น
- ราชสกุล
- ด้านบน
- การฝึกอบรม
- มหาวิทยาลัย
- us
- ความเร็ว
- วิสัยทัศน์
- วิกิพีเดีย
- ภายใน
- งาน
- โรงงาน
- คุ้มค่า
- X
- ปี