1,365 การอ่าน
1,365 การอ่าน

วิธีการสอนให้โมเดล AI ขนาดเล็กรู้ทุกสิ่งที่โมเดลขนาดใหญ่รู้

โดย Raviteja Reddy Ganta7m2025/03/12
Read on Terminal Reader

นานเกินไป; อ่าน

การกลั่นกรองความรู้เป็นเทคนิคหนึ่งในปัญญาประดิษฐ์ โดยที่แบบจำลองที่เล็กกว่าและมีประสิทธิภาพมากกว่า (นักเรียน) เรียนรู้จากแบบจำลองที่ใหญ่กว่าและทรงพลังกว่า (ครู) นักเรียนจะเลียนแบบผลลัพธ์ของครู โดยมักจะใช้ป้ายกำกับอ่อนและการแสดงระดับกลาง เพื่อให้ได้ประสิทธิภาพที่ใกล้เคียงกันโดยมีต้นทุนการคำนวณที่ลดลง
featured image - วิธีการสอนให้โมเดล AI ขนาดเล็กรู้ทุกสิ่งที่โมเดลขนาดใหญ่รู้
Raviteja Reddy Ganta HackerNoon profile picture

สารบัญ

  1. การแนะนำ
  2. ความรู้ด้านมืด
  3. ขั้นตอนการกลั่น
  4. การทดลองกับ MNIST
  5. การทดลองเพิ่มเติมเกี่ยวกับ MNIST

1. บทนำ

ในบทความนี้ ฉันจะสำรวจกระบวนการกลั่นความรู้ใน AI ว่ามันทำงานอย่างไรโดยทั่วไป ความสำคัญ และเหตุผลในการใช้มัน


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


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


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


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


Geoffrey Hinton, Oriol Vinyals และ Jeff Dean จาก Google ได้คิดค้นการฝึกอบรมประเภทอื่นที่เรียกว่า การกลั่น เพื่อถ่ายทอดความรู้ไปยังโมเดลขนาดเล็ก ซึ่งเป็นเทคนิคเดียวกับที่ Hugging Face ใช้ในการนำ Distill BERT ไปใช้



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

2. ความรู้ด้านมืด

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


ในรูปด้านบน 2 เวอร์ชันนี้ได้รับความน่าจะเป็น 10-6 ที่จะได้ 3 และ 10-9 ที่จะได้ 7 ในขณะที่อีกเวอร์ชันหนึ่งอาจเป็นแบบตรงกันข้าม ข้อมูลนี้มีค่ามากซึ่งกำหนดโครงสร้างความคล้ายคลึงกันที่หลากหลายเหนือข้อมูล (กล่าวคือ ระบุว่า 2 ตัวใดดูเหมือน 3 และตัวใดดูเหมือน 7) แต่มีอิทธิพลน้อยมากต่อฟังก์ชันต้นทุนเอนโทรปีไขว้ในระหว่างขั้นตอนการถ่ายโอน เนื่องจากความน่าจะเป็นนั้นใกล้เคียงกับศูนย์มาก


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

สูตรสำหรับการคำนวณซอฟต์แม็กซ์มีดังนี้

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


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

3. ขั้นตอนการกลั่น

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


ดังนั้นกระบวนการก็เป็นดังนี้:

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


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


  • ข้อมูลส่วนใหญ่เกี่ยวกับฟังก์ชันที่เรียนรู้จากโมเดลขนาดใหญ่มีอยู่ในอัตราส่วนความน่าจะเป็นที่เล็กมากในเป้าหมายที่อ่อน
  • คำศัพท์บางคำ:
  1. เป้าหมายอ่อน - เอาท์พุตจากแบบจำลองขนาดใหญ่หลังจากอุณหภูมิ T ถูกนำมาใช้ระหว่างซอฟต์แม็กซ์
  2. การคาดการณ์แบบซอฟต์ - เอาท์พุตจากแบบจำลองขนาดเล็กลงหลังจากอุณหภูมิ T ถูกนำไปใช้ระหว่างซอฟต์แม็กซ์
  3. การทำนายที่ยาก - เอาต์พุตจากแบบจำลองที่เล็กกว่าเมื่ออุณหภูมิ T = 1 (ซอฟต์แม็กซ์ปกติ)
  4. เป้าหมายที่แท้จริง - เป้าหมายจริงจากชุดการฝึกอบรม


ด้านล่างนี้เป็นแผนภูมิขั้นตอนของกระบวนการฝึกอบรมทั้งหมด


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


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

4. การทดลองเกี่ยวกับ MNIST

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


  1. โมเดลขนาดเล็กที่สามารถดูได้เป็น 784 -> 800 -> 800 -> 10 (โดยที่ 784 คือขนาดที่คลี่ออกของภาพ 800 คือจำนวนหน่วยที่ซ่อนอยู่พร้อมการเปิดใช้งาน RELU และ 10 คือจำนวนคลาสที่เราคาดการณ์ไว้) โมเดลนี้ให้ข้อผิดพลาดในการทดสอบ 146 ข้อโดยไม่มีการปรับให้เป็นมาตรฐาน
  2. โมเดลขนาดใหญ่กว่าซึ่งสามารถดูได้เป็น 784 -> 1200 -> 1200 -> 10 (โดยที่ 784 คือขนาดที่คลี่ออกของภาพ 1200 คือจำนวนหน่วยที่ซ่อนอยู่พร้อมการเปิดใช้งาน RELU และ 10 คือจำนวนคลาสที่เรากำลังคาดการณ์) โมเดลนี้ได้รับการฝึกบน MNIST โดยใช้การดร็อปเอาต์ การจำกัดน้ำหนัก และภาพอินพุตที่สั่นไหว และเครือข่ายนี้ทำให้เกิดข้อผิดพลาดในการทดสอบ 67 รายการ


เราจะถ่ายโอนการปรับปรุงนี้ในโมเดลขนาดใหญ่ไปยังโมเดลขนาดเล็กได้หรือไม่


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


ข้อผิดพลาดในการทดสอบ 74 รายการ โดยใช้ 784 -> 800 -> 800 -> 10


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


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


เครือข่ายขนาดใหญ่ที่ใช้เป้าหมายที่ยืดหยุ่นได้เรียนรู้การวัดความคล้ายคลึงที่เรียนรู้ว่า 'อะไรเป็นอย่างไร' และด้วยการถ่ายโอนความรู้ครั้งนี้ เรากำลังบอกเครือข่ายขนาดเล็กว่า 'อะไรเป็นอย่างไร'


การทดลอง MNIST ทั้งหมดข้างต้นสรุปไว้ด้านล่างนี้

5. การทดลองเพิ่มเติมเกี่ยวกับ MNIST

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


ข้อคิดจากเรื่องนี้ก็คือ


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


อ้างอิง:

  1. Hinton, Geoffrey, Oriol Vinyals และ Jeff Dean “การกลั่นกรองความรู้ในเครือข่ายประสาท”
  2. การกลั่นความรู้โดย intellabs


L O A D I N G
. . . comments & more!

About Author

Raviteja Reddy Ganta HackerNoon profile picture
Raviteja Reddy Ganta@raviteja.ganta
ML Engineer at TikTok

แขวนแท็ก

บทความนี้ถูกนำเสนอใน...

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks