Consistency LLM: เปลี่ยน LLM ให้เป็นดีโค้ดเดอร์แบบขนาน เพิ่มความเร็วในการอนุมาน 3.5 เท่า
(hao-ai-lab.github.io)Consistency Large Language Models (CLLM)
- โดยทั่วไป LLM ถูกมองว่าเป็นดีโค้ดเดอร์แบบลำดับที่ทำงานด้วยการถอดรหัสโทเค็นทีละตัวอย่างต่อเนื่อง
- บล็อกนี้แสดงให้เห็นว่า LLM ที่ผ่านการพรีเทรนแล้วสามารถแปลงเป็นดีโค้ดเดอร์แบบขนานที่มีประสิทธิภาพได้อย่างง่ายดาย
- Consistency Large Language Models (CLLM) เป็นตระกูลดีโค้ดเดอร์แบบขนานรูปแบบใหม่ที่สามารถถอดรหัสลำดับโทเค็นจำนวน n ตัวได้อย่างมีประสิทธิภาพในแต่ละขั้นของการอนุมาน เพื่อลดเวลาแฝงของการอนุมาน
- CLLM เลียนแบบกระบวนการรับรู้ของมนุษย์ที่มักสร้างประโยคสมบูรณ์ในใจก่อนจะพูดออกมาทีละคำ และสามารถฝึกได้อย่างมีประสิทธิภาพเพียงแค่ทำ fine-tuning กับ LLM ที่พรีเทรนไว้แล้ว
- CLLM ถูกฝึกให้ทำการถอดรหัสแบบขนาน โดยแมปจากลำดับโทเค็นจำนวน n ตัวที่ถูกสุ่มกำหนดค่าเริ่มต้น ไปเป็นผลลัพธ์เดียวกับการถอดรหัสแบบอัตถดถอย (autoregressive, AR) ให้ได้ภายในจำนวนขั้นที่น้อยที่สุดเท่าที่เป็นไปได้
- จากผลการทดลอง CLLM เพิ่มความเร็วในการสร้างข้อความได้ 2.4 ถึง 3.4 เท่าเมื่อเทียบกับดีโค้ดเดอร์ AR แบบเดิม และมีประสิทธิภาพทัดเทียมหรือดีกว่าเทคนิคเร่งการอนุมานอย่าง Medusa2 หรือ Eagle
- CLLM สามารถทำความเร็วระดับนี้ได้โดยไม่ต้องมีต้นทุนหน่วยความจำเพิ่มเติม
ที่มาและข้อจำกัดของ Jacobi decoding
- LLM สร้างโทเค็นทีละตัวด้วยวิธี AR decoding จึงมีเวลาแฝงสูงเมื่อต้องตอบข้อความยาว
- Jacobi decoding มีที่มาจากวิธีแก้สมการไม่เชิงเส้นของ Jacobi และ Gauss-Seidel และได้รับการพิสูจน์แล้วว่าให้ผลเทียบเท่ากับการสร้างแบบ AR ที่ใช้ greedy sampling
- Jacobi decoding ปรับกระบวนการสร้างแบบลำดับใหม่ให้เป็นระบบสมการไม่เชิงเส้นจำนวน n สมการที่มีตัวแปร n ตัวบนพื้นฐานของการวนซ้ำแบบ Jacobi เพื่อให้ประมวลผลแบบขนานได้
- ในแต่ละรอบการวนซ้ำ สามารถทำนายโทเค็นที่ถูกต้องได้ตั้งแต่ 1 ตัวขึ้นไป จึงมีศักยภาพในการเร่ง AR decoding
- อย่างไรก็ตาม ในทางปฏิบัติ LLM ที่ฝึกมาด้วย AR แทบไม่สามารถสร้างโทเค็นที่ถูกต้องได้เมื่อโทเค็นก่อนหน้ามีข้อผิดพลาด ทำให้การวนซ้ำ Jacobi ส่วนใหญ่ได้การแก้ไขเพียงจุดเดียวสำหรับลำดับโทเค็น n ตัว และส่งผลให้เกิดวิถี Jacobi (trajectory) ที่ยาวขึ้น
- แม้ lookahead decoding หรือ speculative decoding จะช่วยบรรเทาความไม่มีประสิทธิภาพของ Jacobi decoding ได้ แต่จะมีต้นทุนหน่วยความจำเพิ่มเติมระหว่างการอนุมาน ขณะที่ CLLM ไม่มีปัญหานี้
วิธีการฝึก CLLM
- การฝึก CLLM แบ่งออกเป็นสองส่วนใหญ่ ๆ คือการเตรียมวิถี Jacobi และการปรับเหมาะค่าความสูญเสียแบบ consistency และ AR
- ในขั้นเตรียมวิถี Jacobi จะตัดลำดับคำตอบทั้งหมดทีละ n โทเค็นและทำ Jacobi decoding แบบลำดับไปเรื่อย ๆ จนกว่าจะสร้างลำดับคำตอบครบ l โทเค็น โดยถือว่าลำดับที่สร้างขึ้นในแต่ละวิถีเป็นหนึ่งรายการข้อมูล
- ระหว่างการฝึก จะทำการปรับเหมาะทั้ง consistency loss และ AR loss ร่วมกัน โดย consistency loss รับประกันการทำนายหลายโทเค็นพร้อมกัน ส่วน AR loss ช่วยให้ CLLM ไม่เบี่ยงเบนจาก LLM ต้นทางเพื่อคงคุณภาพการสร้างข้อความ
- Global consistency (GC) loss จะลดระยะห่างระหว่างจุดใดก็ได้ในวิถี Jacobi กับจุดคงตัว เพื่อกระตุ้นให้ CLLM ทำนายจุดคงตัวได้จากทุกจุดในวิถี Jacobi
- Local consistency (LC) loss จะบังคับให้สถานะที่อยู่ติดกันในวิถี Jacobi ให้ผลลัพธ์เดียวกัน
- AR loss รวมถึง AR loss แบบดั้งเดิมที่อิงจากผลการสร้างของ LLM ต้นทาง โดยมีเป้าหมายเพื่อไม่ให้ CLLM หลุดออกจากการกระจายของโมเดลต้นทาง
ผลการทดลอง
- การทดลองครอบคลุมงานเฉพาะโดเมน เช่น Spider (text-to-SQL), Human-Eval (เติมโค้ด Python), GSM8k (คณิตศาสตร์) รวมถึงงานสนทนาแบบเปิดกว้างอย่าง MT-bench
- CLLM ให้การเพิ่มความเร็วสูงสุดเมื่อเทียบกับโมเดลต้นทาง และทำความเร็วได้ใกล้เคียงหรือดีกว่า Medusa2 โดยไม่มีต้นทุนเพิ่มเติมขณะอนุมาน
- บน MT-bench เมื่อรวม CLLM กับ Medusa2 สามารถทำความเร็วได้แทบไม่ต่างจาก Medusa2 เพียงอย่างเดียว แต่ให้ความสามารถในการปรับใช้และประสิทธิภาพหน่วยความจำที่ดีกว่า
- ต้นทุนการทำ fine-tuning ของ CLLM อยู่ในระดับพอเหมาะ และแม้ในกรณีที่ชุดข้อมูลมีขนาดใหญ่ ก็ยังได้ความเร็วเพิ่มราว 2.5 เท่าโดยใช้เพียงประมาณ 10% ของชุดข้อมูลในการสร้างวิถี Jacobi
- CLLM สามารถทำนายโทเค็นต่อเนื่องหลายตัวได้อย่างถูกต้องภายในการวนซ้ำ Jacobi เพียงครั้งเดียวผ่านปรากฏการณ์ fast forwarding
- CLLM แสดงความสามารถของ stationary token คือแม้โทเค็นก่อนหน้าจะผิด ก็ยังทำนายโทเค็นที่ถูกต้องล่วงหน้าและคงไว้โดยไม่เปลี่ยน
- ผ่านการฝึก CLLM เรียนรู้แนวคิดทางภาษาที่สำคัญ เช่น collocation ทำให้สามารถอนุมานโครงสร้างได้จากทุกจุดในวิถี Jacobi และทำนายหลายคำพร้อมกันเพื่อลดจำนวนรอบการวนซ้ำ
ความเห็นของ GN⁺
-
CLLM ดูเหมือนจะแก้ปัญหาเวลาแฝงยาวของ AR decoding ใน LLM แบบเดิมได้อย่างมีประสิทธิภาพด้วยการใช้ Jacobi decoding โดยเฉพาะการเพิ่มความเร็วผ่านการถอดรหัสแบบขนานโดยไม่ต้องเพิ่มต้นทุนหน่วยความจำ ซึ่งน่าประทับใจมาก
-
วิธีการฝึกของ CLLM ดูค่อนข้างเรียบง่าย เพราะเป็นการทำ fine-tuning กับ LLM เดิมผ่าน consistency loss แต่มีความหมายมากตรงที่สามารถเรียนรู้คุณสมบัติทางภาษาสำคัญอย่าง collocation และยกระดับประสิทธิภาพของ parallel decoding ได้อย่างชัดเจน
-
อย่างไรก็ตาม CLLM ตั้งอยู่บนสมมติฐานของ greedy sampling จึงยังต้องมีการศึกษาต่อว่ามันจะทำงานได้ดีเพียงใดกับกลยุทธ์การ decoding ที่หลากหลายกว่านี้ อีกทั้งผลการทดลองในตอนนี้ยังจำกัดอยู่ที่ภาษาอังกฤษ จึงควรมีการตรวจสอบความสามารถในการทำให้ทั่วไปสู่ภาษาอื่น ๆ เพิ่มเติม
-
CLLM น่าจะเป็นแนวทางที่ใช้งานได้จริงในการเร่งความเร็วการตอบสนองของ LLM และอาจนำไปใช้ได้ดีในงานที่ต้องการความเป็นเรียลไทม์ เช่น เว็บเสิร์ชหรือแชตบอต
-
โดยส่วนตัวคาดหวังว่าวิธีการเรียนรู้แบบ consistency ของ CLLM อาจนำไปประยุกต์ใช้กับโมเดลสร้างข้อมูลชนิดอื่นนอกเหนือจาก LLM อย่าง GPT เช่น โมเดลสร้างภาพหรือโมเดลสังเคราะห์เสียงได้ด้วย และหวังว่าแนวคิดของ CLLM จะช่วยยกระดับประสิทธิภาพของโมเดลเชิงกำเนิดหลากหลายประเภทในอนาคต
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News