โมเดลและแพลตฟอร์ม AI

UltraFastBERT : การแนะนำโมเดลภาษาที่เร็วขึ้นแบบชี้กำลัง

mm
เพิ่ม Unite.AI ลงในแหล่งข้อมูลที่คุณต้องการบน Google

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

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

บทความนี้แนะนำ UltraFastBERT ซึ่งเป็นโมเดลที่พัฒนาจาก BERT และให้ผลใกล้เคียงโมเดล BERT ชั้นนำ โดยใช้เซลล์ประสาทเพียง 0.3% ระหว่างการอนุมาน หรือ 12 จาก 4,095 เซลล์ในแต่ละชั้น ต่อไปเราจะดูสถาปัตยกรรม การทำงาน และผลการทดลอง

UltraFastBERT: การสร้างโมเดลภาษาที่เร็วขึ้นแบบเอ็กซ์โพเนนเชียล

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

UltraFastBERT แทนชั้นป้อนข้อมูลไปข้างหน้าแบบปกติด้วยโครงข่ายป้อนข้อมูลไปข้างหน้าแบบเร็ว (FFF) จึงใช้เซลล์ประสาทเพียง 0.3% แต่ยังให้ผลใกล้เคียง BERT ที่มีขนาดและกระบวนการฝึกเทียบเคียงกัน โดยเฉพาะงานปลายทาง การออกแบบนี้ลดความซับซ้อนของชั้นกลางได้มาก

เมื่อมีเซลล์ประสาท n เซลล์ การส่งผ่านไปข้างหน้าของโครงข่ายป้อนข้อมูลไปข้างหน้าแบบปกติ (FF) มีความซับซ้อน O(n) ส่วน FFF มีความซับซ้อน O(log₂n) เพราะจัดเซลล์เป็นต้นไม้ทวิภาคแบบสมดุลและเลือกเดินเพียงหนึ่งเส้นทางตามอินพุต การอนุมานใช้การคูณเมทริกซ์แบบมีเงื่อนไข (CMM): แถวอินพุตคำนวณดอตโปรดักต์กับคอลัมน์น้ำหนักที่เลือก และผลก่อนหน้ากำหนดคอลัมน์ถัดไป เซลล์ทั้งหมดรองรับอินพุตที่แตกต่างกัน แต่แต่ละอินพุตใช้เพียงไม่กี่เซลล์ ต่างจากการคูณเมทริกซ์แบบหนาแน่น (DMM) ที่คำนวณดอตโปรดักต์ของทุกอินพุตกับทุกคอลัมน์น้ำหนัก

  • ใช้เซลล์ประสาทเพียง 0.3% ระหว่างการอนุมาน หรือ 12 จาก 4,095 เซลล์ต่อชั้น
  • ให้ผลใกล้เคียง BERT ชั้นนำเมื่อปรับละเอียดสำหรับงานปลายทาง
  • มีการใช้งาน CMM ซึ่งเป็นพื้นฐานของ FFF และรายงานความเร็วสูงขึ้นถึง 78 เท่าในการเปรียบเทียบกับการใช้งาน DMM ที่ระบุไว้ในการทดลอง

โครงข่ายประสาทเทียมแบบป้อนข้อมูลไปข้างหน้า

โครงข่ายป้อนข้อมูลไปข้างหน้าเป็น โครงข่ายประสาทเทียม รูปแบบพื้นฐาน ข้อมูลไหลจากโหนดอินพุตผ่านโหนดซ่อนไปยังเอาต์พุต ไม่มีวงวนหรือวัฏจักร และสร้างได้ง่ายกว่าโครงข่ายเวียนกลับ (RNN) และโครงข่ายคอนโวลูชัน (CNN) โครงสร้างประกอบด้วยชั้นอินพุต ชั้นซ่อน และชั้นเอาต์พุต โดยเซลล์ประสาทเชื่อมต่อกันผ่านน้ำหนัก

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

การทำงานมีสองขั้นตอนหลัก ได้แก่ การส่งผ่านไปข้างหน้าและการแพร่ย้อนกลับ

การส่งผ่านไปข้างหน้า

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

การแพร่ย้อนกลับ

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

UltraFastBERT: สถาปัตยกรรมและการทำงาน

UltraFastBERT สร้างบนสถาปัตยกรรม crammedBERT และคงองค์ประกอบเดิมไว้ ยกเว้นโครงข่ายป้อนข้อมูลไปข้างหน้าในชั้นกลางของตัวเข้ารหัส Transformer ซึ่งเปลี่ยนเป็น FFF การเปลี่ยนแปลงหลักมีดังนี้

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

การฝึกใช้กระบวนการของ crammedBERT โดยปิด dropout ระหว่างการฝึกล่วงหน้า และใช้ตารางอัตราการเรียนรู้แบบสามเหลี่ยมหนึ่งรอบ จากนั้นปรับละเอียดโมเดลเป็นเวลา 5 epoch สำหรับงานหลายประเภท โดยเน้นชุดทดสอบ GLUE

การอนุมาน

การอนุมานเป็นส่วนสำคัญของ FFF และมีศักยภาพในการเพิ่มความเร็วสูง ตัวอย่างเช่น โครงข่ายป้อนข้อมูลไปข้างหน้าในแต่ละชั้น Transformer ของ GPT-3 มีเซลล์ประสาทมากกว่า 49,100 เซลล์ หากสามารถฝึก FFF ที่มีความลึกสูงสุด 15 มาแทนได้ โครงข่ายนั้นจะมีมากกว่า 65,000 เซลล์ แต่ใช้เพียง 16 เซลล์ต่อการอนุมาน หรือประมาณ 0.03% ตัวอย่างนี้อธิบายศักยภาพของแนวทาง ไม่ได้หมายความว่า GPT-3 ถูกดัดแปลงเช่นนี้แล้ว

อัลกอริทึมและความเข้ากันได้

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

B หมายถึงขนาดแบตช์ H หมายถึงความกว้างของอินพุต และ M หมายถึงคอลัมน์ ประเด็นหนึ่งคือ CMM จะเข้ากันได้กับกระบวนการ DMM และเฟรมเวิร์กการเรียนรู้เชิงลึกเดิมหรือไม่ การใช้งานนี้ไม่สร้างปัญหาความเข้ากันได้ แต่เพิ่มความซับซ้อนในการจัดการแคช

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

UltraFastBERT: ประสิทธิภาพและผลลัพธ์

ส่วนนี้พิจารณาทั้งการปรับละเอียดและการอนุมาน เพื่อเปรียบเทียบกับโมเดลภาษาชั้นนำ

ผลการปรับละเอียด

ภาพต่อไปนี้แสดงผลบน GLUE-dev โดย N คือจำนวนเซลล์ประสาทที่มีสำหรับการฝึก และ Avg คือคะแนนเฉลี่ยของทุกงาน

หลังฝึกด้วย GPU A6000 ประมาณ 24 ชั่วโมง UltraFastBERT รักษาประสิทธิภาพการทำนายบนงาน GLUE ได้เกือบ 96% เมื่อเทียบกับ BERT ต้นฉบับ เมื่อเพิ่มความลึกของ FFF ประสิทธิภาพลดลง แต่การลดลงส่วนใหญ่อยู่ที่งาน CoLA หากไม่นับ CoLA ประสิทธิภาพจะอยู่ที่ประมาณ 98.6% ของโมเดลอ้างอิง

ผลการอนุมาน

การเปรียบเทียบ FF กับ FFF แบ่งเป็นสามระดับ

  • ระดับ 1: ใช้ BLAS ระดับ 1 ได้แก่ ผลคูณสเกลาร์กับเวกเตอร์ และดอตโปรดักต์ระหว่างเวกเตอร์
  • ระดับ 2: ใช้ BLAS ระดับ 2 ได้แก่ การคำนวณแบบแบตช์และผลคูณเมทริกซ์กับเวกเตอร์ตามการใช้งานที่อธิบาย
  • ระดับ 3: ใช้การคูณเมทริกซ์กับเมทริกซ์แบบไม่แบ่งแบตช์ของ BLAS ระดับ 3 ซึ่งเร็วที่สุดสำหรับ FF ในการเปรียบเทียบนี้ แต่ไลบรารีไม่มีวิธีเทียบเท่าสำหรับ FFF เพราะไม่รองรับความเบาบางระดับเวกเตอร์ของ CMM

การใช้งานบน GPU ใช้เคอร์เนล CUDA ที่พัฒนาขึ้นเฉพาะหรือเคอร์เนล PyTorch

ตารางเปรียบเทียบความเร็วสัมพัทธ์ของ FFF ต่อ FF เมื่อทั้งสองใช้การดำเนินการพีชคณิตเชิงเส้นพื้นฐานเดียวกัน

ตัวเลขนี้เป็นการเปรียบเทียบโดยใช้การดำเนินการพื้นฐานเหมือนกันเพื่อความเป็นธรรม ไม่ใช่ความเร็วที่เพิ่มขึ้นของทั้งโมเดลเมื่อเทียบกับทุกการใช้งานที่ปรับแต่งแล้ว ในระดับ 1 และ 2 การอนุมานของ FFF เร็วกว่า FF ที่เร็วที่สุดในกลุ่มเปรียบเทียบที่เกี่ยวข้อง 48 และ 78 เท่าตามลำดับ

บทสรุป

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

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

Kunal Kejriwal เป็นวิศวกรแบ็กเอนด์ที่เชี่ยวชาญด้าน Python, PostgreSQL, Redis และโครงสร้างพื้นฐานคลาวด์บน GCP และ AWS. ด้วยประสบการณ์สามปีในการสร้างและขยายระบบที่ใช้งานจริง เขาเขียนเกี่ยวกับโครงสร้างพื้นฐาน AI, ระบบแบบกระจาย, และสถาปัตยกรรมที่อยู่เบื้องหลังการนำเวิร์กโหลดแมชชีนเลิร์นนิงไปใช้งาน