กลับไปหน้าบทความ

อ่าน 4 นาที

การบีบอัดโมเดล

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

การบีบอัดโมเดล

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

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

การบีบอัดโมเดลไม่ควรสับสนกับการกลั่นความรู้ซึ่งโมเดล "นักเรียน" ขนาดเล็กกว่าจะถูกฝึกฝนให้เลียนแบบพฤติกรรมอินพุต-เอาต์พุตของโมเดล "ครู" ขนาดใหญ่กว่า (ตรงข้ามกับการใช้พารามิเตอร์ที่ฝึกฝนของ "ครู" หรือเป้าหมายการฝึกฝนของ "ครู") [ 3 ]

เทคนิค

มีการใช้เทคนิคหลายอย่างในการบีบอัดโมเดล

การตัดแต่งกิ่ง

การตัดแต่งกิ่งทำให้โมเดลขนาดใหญ่มีความเบาบางลงโดยการตั้งค่าพารามิเตอร์บางตัวให้เป็นศูนย์อย่างแม่นยำ ซึ่งจะช่วยลดจำนวนพารามิเตอร์ลงได้อย่างมีประสิทธิภาพ ทำให้สามารถใช้การดำเนินการเมทริกซ์แบบเบาบางได้ซึ่งเร็วกว่าการดำเนินการเมทริกซ์แบบหนาแน่น[ 4 ]

เกณฑ์การตัดแต่งกิ่งสามารถอิงตามขนาดของพารามิเตอร์ รูปแบบทางสถิติของการกระตุ้นประสาทค่าเฮสเซียนฯลฯ[ 5 ] [ 6 ]

การหาปริมาณ

การควอนไทเซชันช่วยลดความแม่นยำเชิงตัวเลขของน้ำหนักและการเปิดใช้งาน ตัวอย่างเช่น แทนที่จะจัดเก็บน้ำหนักเป็น ตัวเลข จุดลอยตัว 32 บิต ก็สามารถแสดงได้โดยใช้จำนวนเต็ม 8 บิต พารามิเตอร์ที่มีความแม่นยำต่ำใช้พื้นที่น้อยกว่า และใช้การคำนวณน้อยกว่าในการคำนวณทางคณิตศาสตร์[ 7 ]

นอกจากนี้ยังสามารถกำหนดค่าพารามิเตอร์บางตัวให้เข้มงวดกว่าตัวอื่นได้ เช่น พารามิเตอร์ที่มีความสำคัญน้อยกว่าอาจมีความแม่นยำ 8 บิต ในขณะที่พารามิเตอร์ที่สำคัญกว่าอาจมีความแม่นยำ 16 บิต การอนุมานด้วยโมเดลดังกล่าวต้องใช้การคำนวณเลขคณิตแบบความแม่นยำผสม[ 8 ] [ 9 ]

โมเดลควอนไทซ์สามารถใช้ระหว่างการฝึกอบรมได้เช่นกัน (แทนที่จะใช้หลังจากฝึกอบรม) PyTorchใช้การจำลองความแม่นยำแบบผสมอัตโนมัติ (AMP) ซึ่งทำการแปลงอัตโนมัติ การปรับขนาดเกรเดียนต์ และการปรับขนาดการสูญเสีย[ 10 ] [ 11 ]

การแยกตัวประกอบลำดับต่ำ

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

สามารถค้นหาการประมาณค่าอันดับต่ำได้โดยการแยกส่วนค่าเอกลักษณ์ (SVD) การเลือกอันดับสำหรับเมทริกซ์น้ำหนักแต่ละเมทริกซ์เป็นพารามิเตอร์เสริม และปรับให้เหมาะสมร่วมกันเป็นปัญหาการปรับให้เหมาะสมแบบผสมผสานระหว่างแบบไม่ต่อเนื่องและแบบต่อเนื่อง[ 12 ]อันดับของเมทริกซ์น้ำหนักอาจถูกตัดแต่งหลังจากการฝึกอบรม โดยคำนึงถึงผลกระทบของฟังก์ชันการกระตุ้น เช่นReLUต่ออันดับโดยนัยของเมทริกซ์น้ำหนัก[ 13 ]

การฝึกอบรม

การบีบอัดโมเดลอาจแยกออกจากการฝึกฝน กล่าวคือ โมเดลจะถูกฝึกฝนก่อนโดยไม่คำนึงถึงวิธีการบีบอัด จากนั้นจึงทำการบีบอัด อย่างไรก็ตาม การบีบอัดอาจรวมเข้ากับการฝึกฝนได้เช่นกัน

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

ในการบีบอัดแบบลึก[ 15 ]การบีบอัดมีสามขั้นตอน

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

เอกสารSqueezeNetรายงานว่า Deep Compression บรรลุอัตราส่วนการบีบอัดที่ 35 บน AlexNet และอัตราส่วนประมาณ 10 บน SqueezeNets [ 16 ]

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Model_compression&oldid=1352523580 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การบีบอัดโมเดล

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

การตัดแต่งกิ่ง

การตัดแต่งกิ่งทำให้โมเดลขนาดใหญ่มีความเบาบางลงโดยการตั้งค่าพารามิเตอร์บางตัวให้เป็นศูนย์อย่างแม่นยำ ซึ่งจะช่วยลดจำนวนพารามิเตอร์ลงได้อย่างมีประสิทธิภาพ ทำให้สามารถใช้ การดำเนินการเมทริกซ์แบบเบาบางได้ ซึ่งเร็วกว่าการดำเนินการเมทริกซ์แบบหนาแน่น [ 4 ]

การหาปริมาณ

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

การแยกตัวประกอบลำดับต่ำ

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