เทคนิคที่ใช้ข้อมูลฝึกน้อยกว่าและโมเดลเล็กกว่า แต่เอาชนะโมเดลภาษาขนาดใหญ่ได้
(blog.research.google)- แม้ LLM ขนาดใหญ่จะสามารถแก้งานใหม่ได้ด้วย few-shot แต่ต้นทุนการให้บริการสูงมาก ทำให้ทีม Google Cloud AI เสนอแนวทาง distilling step-by-step ที่ฝึกโมเดลขนาดเล็กแบบเฉพาะงานร่วมกับ เหตุผลในภาษาธรรมชาติ (rationale)
- วิธีนี้ดึงการให้เหตุผลระหว่างทางของ LLM ออกมาด้วย few-shot Chain-of-Thought (CoT) แล้วเปลี่ยนเป็นการฝึกแบบ multitask learning ที่ให้โมเดล T5 เรียนรู้ทั้งการทำนาย label และการสร้างเหตุผลประกอบ
- การทดลองใช้ PaLM ขนาด 540B เป็น LLM อ้างอิง และใช้ T5 เป็นโมเดลปลายทาง เพื่อประเมินงานด้านการอนุมานภาษาธรรมชาติ การถามตอบเชิงสามัญสำนึก และโจทย์ข้อความคณิตศาสตร์บน e-SNLI, ANLI, CQA และ SVAMP
- บน e-SNLI วิธีนี้ให้ผลดีกว่า standard fine-tuning แม้ใช้ข้อมูลเพียง 12.5% ของชุดข้อมูลทั้งหมด และบน ANLI นั้น T5 ขนาด 770M ใช้ข้อมูล 80% ก็ทำผลงานเหนือกว่า few-shot ของ PaLM 540B พร้อมลดขนาดโมเดลลงมากกว่า 700 เท่า
- เป็นแนวทางที่ลดจุดแลกเปลี่ยนระหว่างการ deploy โมเดลขนาดเล็กกับต้นทุนการเก็บข้อมูลฝึก และเปิดให้ใช้งานแบบ private preview บน Vertex AI
ต้นทุนการ deploy LLM และข้อจำกัดของการฝึกโมเดลขนาดเล็ก
- LLM สามารถจัดการงานใหม่ที่ไม่เคยเห็นมาก่อนได้ด้วย zero-shot และ few-shot prompting แต่ในการใช้งานจริง ขนาดของโมเดล เป็นข้อจำกัดสำคัญ
- การให้บริการ LLM ระดับ 175B หนึ่งตัวต้องใช้ หน่วยความจำ GPU อย่างน้อย 350GB บนโครงสร้างพื้นฐานเฉพาะทาง
- LLM รุ่นล้ำสมัยในเวลานั้นมีขนาดเกิน 500B พารามิเตอร์
- ในงานจริงมัก deploy โมเดลเฉพาะงานที่มีขนาดเล็กกว่า โดยทั่วไปมี 2 วิธีหลัก
- fine-tuning: อัปเดตโมเดลขนาดเล็กที่ pretrain มาแล้ว เช่น BERT หรือ T5 ด้วยข้อมูลปลายทางที่มนุษย์ติด label
- distillation: ฝึกโมเดลขนาดเล็กด้วย label ที่สร้างโดย LLM ที่ใหญ่กว่า
- ทั้งสองวิธียังมีภาระด้านต้นทุนอยู่
- fine-tuning ต้องใช้ label ที่มนุษย์สร้างขึ้น จึงมีค่าใช้จ่ายและภาระงานสูง
- distillation ต้องใช้ข้อมูลที่ยังไม่มี label จำนวนมาก ซึ่งอาจเก็บรวบรวมได้ยากเช่นกัน
แนวคิดหลักของ Distilling step-by-step
- Distilling Step-by-Step! Outperforming Larger Language Models with Less Training Data and Smaller Model Sizes เป็นวิธีที่มุ่งลดจุดแลกเปลี่ยนระหว่างขนาดโมเดลกับต้นทุนในการเก็บข้อมูลฝึก
- distilling step-by-step จะดึงเหตุผลในภาษาธรรมชาติ หรือขั้นตอนการให้เหตุผลระหว่างทาง จาก LLM มาใช้เป็นสัญญาณกำกับเพิ่มเติมสำหรับการฝึกโมเดลขนาดเล็ก
- เหตุผลในภาษาธรรมชาติช่วยเผยความเชื่อมโยงระหว่างคำถามอินพุตกับคำตอบเอาต์พุต
- ตัวอย่างเช่น เมื่อกำหนดความยาวและความกว้างของห้อง รวมถึงพื้นที่พรมที่มีอยู่แล้ว LLM อาจสร้างเหตุผลระหว่างทางอย่าง “Area = length * width”
- เหตุผลลักษณะนี้อาจมีความรู้เกี่ยวกับงานที่โมเดลเล็กต้องใช้ข้อมูลจำนวนมากจึงจะเรียนรู้ได้ตามปกติ
- แทนที่จะเรียนรู้เฉพาะ label วิธีนี้ให้เรียนรู้ทั้ง label และเหตุผล พร้อมกัน เพื่อให้โมเดลเล็กเข้าใจงานได้ด้วยข้อมูลที่น้อยลง
ขั้นตอนการฝึก 2 ระยะ
- ระยะแรกคือการดึงเหตุผลจาก LLM ด้วย few-shot CoT prompting
- สำหรับแต่ละงาน จะใส่ตัวอย่างที่ประกอบด้วยอินพุต เหตุผล และเอาต์พุต ลงใน prompt ของ LLM
- LLM จะทำตามตัวอย่างเหล่านี้เพื่อสร้างเหตุผลสำหรับอินพุตใหม่
- ในตัวอย่างงานถามตอบเชิงสามัญสำนึก มีคำถามว่า “Sammy wanted to go to where the people are” พร้อมตัวเลือก
- คำตอบที่ถูกต้องคือ “(a) populated areas”
- เหตุผลคือ “ต้องเป็นสถานที่ที่มีคนจำนวนมาก และในตัวเลือกมีเพียง populated areas เท่านั้นที่เป็นที่ที่มีคนมาก” ซึ่งช่วยเชื่อมโยงไปยังคำตอบ
- ระยะที่สองคือการนำเหตุผลที่ดึงมาได้ไปใช้ฝึกโมเดลขนาดเล็ก
- นอกจาก งานทำนาย label แบบมาตรฐานแล้ว ยังเพิ่ม งานสร้างเหตุผล ใหม่เข้าไปด้วย
- ใส่คำนำหน้างานอย่าง
[label]หรือ[rationale]หน้าอินพุตของโมเดลเพื่อแยกสองงานออกจากกัน - งานสร้างเหตุผลจะฝึกให้โมเดลสร้างขั้นตอนการให้เหตุผลระหว่างทาง และส่งผลให้ทำนาย label ได้ดีขึ้นในที่สุด
การตั้งค่าการทดลองและตัวเปรียบเทียบ
- LLM อ้างอิงคือ PaLM 540B
- สำหรับโมเดลปลายทางเฉพาะงาน ใช้ โมเดล T5
- CoT prompting ใช้ prompt CoT ที่มีอยู่เดิมเมื่อทำได้ และสำหรับชุดข้อมูลใหม่ก็จัดทำตัวอย่างขึ้นเอง
- การประเมินทำบน 4 เบนช์มาร์ก ครอบคลุม 3 งาน NLP
- เกณฑ์เปรียบเทียบมี 2 สายหลัก
- เพื่อเทียบกับ LLM ที่ใช้ few-shot prompt จึงใช้ few-shot CoT prompting ของ PaLM 540B
- ยังรวม standard fine-tuning และ standard distillation ไว้เป็นตัวเปรียบเทียบด้วย แต่เนื้อหาของบล็อกเน้นการเปรียบเทียบกับ standard fine-tuning เป็นหลัก
เหนือกว่า standard fine-tuning ด้วยข้อมูลฝึกที่น้อยกว่า
- distilling step-by-step ให้ผลลัพธ์ดีกว่า standard fine-tuning แม้ใช้ข้อมูลฝึกน้อยกว่ามาก
- บน e-SNLI ใช้เพียง 12.5% ของชุดข้อมูลทั้งหมด ก็ทำผลงานได้ดีกว่า standard fine-tuning ที่ฝึกด้วยข้อมูลเต็มชุด
- ในชุดข้อมูลอื่น ๆ ก็ลดขนาดข้อมูลที่ต้องใช้ลงได้เช่นกัน
- ANLI: ลดขนาดชุดข้อมูลลง 75%
- CQA: ลดขนาดชุดข้อมูลลง 25%
- SVAMP: ลดขนาดชุดข้อมูลลง 20%
- การเปรียบเทียบนี้ทำโดยใช้ โมเดล T5 ขนาด 220M บนชุดข้อมูลที่มนุษย์ติด label หลายขนาด
เหนือกว่าเกณฑ์ของ PaLM ด้วยโมเดลสำหรับ deploy ที่เล็กกว่า
- distilling step-by-step ให้ผลดีกว่า LLM ที่ใช้ few-shot CoT prompt แม้ใช้โมเดลที่เล็กกว่ามาก
- บน e-SNLI โมเดล T5 ขนาด 220M ให้ผลดีกว่า PaLM 540B
- บน ANLI โมเดล T5 ขนาด 770M ให้ผลดีกว่า PaLM 540B
- โมเดลนี้มีขนาดเล็กกว่า PaLM มากกว่า 700 เท่า
- และแม้จะใช้ T5 ขนาด 770M ตัวเดียวกัน การทำ standard fine-tuning เพียงอย่างเดียวก็ยากจะไปถึงระดับผลงานของ PaLM
- เป็นผลลัพธ์ที่แสดงให้เห็นพร้อมกันทั้งการลดขนาดโมเดลและการทำผลงานเหนือกว่า LLM อ้างอิง
ผลลัพธ์ที่ลดทั้งข้อมูลและขนาดโมเดลพร้อมกัน
- บน ANLI นั้น distilling step-by-step ใช้ T5 ขนาด 770M และข้อมูลเพียง 80% ของข้อมูลทั้งหมด ก็ทำผลงานเหนือกว่า few-shot ของ PaLM 540B ได้
- ภายใต้เงื่อนไขเดียวกัน standard fine-tuning ต่อให้ใช้ข้อมูล 100% ของชุดข้อมูลทั้งหมด ก็ยังตามผลงานของ PaLM ไม่ทัน
- จากการสำรวจแบบคร่าว ๆ มีการระบุขนาดขั้นต่ำของโมเดล T5 และจำนวนขั้นต่ำของตัวอย่างที่มนุษย์ติด label ซึ่งจำเป็นต่อการทำผลงานให้เหนือกว่า few-shot CoT ของ LLM
- สุดท้าย วิธีนี้ช่วยลดทั้ง ขนาดโมเดลสำหรับ deploy และ ปริมาณข้อมูลฝึก ที่ต้องใช้เพื่อให้ทำผลงานเหนือกว่า LLM
รูปแบบการให้บริการ
- distilling step-by-step เปิดให้ใช้งานแบบ private preview บน Vertex AI
- หากต้องการใช้งาน มีการแนะนำให้ติดต่อ
vertex-llm-tuning-preview@google.comพร้อมหมายเลข Google Cloud Project และสรุป use case
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ดูเหมือนว่า โมเดลผู้เชี่ยวชาญ ที่เล็กกว่าจะครองแอปพลิเคชันส่วนใหญ่ได้ มีจุดเหมาะสมที่สุดและความสมดุลที่ละเอียดอ่อนระหว่างขนาดกับการใช้งาน และกลไกหลายอย่างแบบที่บทความนี้แสดงก็น่าจะช่วยค้นหาและทำให้จุดเหมาะสมนั้นเกิดขึ้นจริง
น่าสนใจที่ใช้ T5 กับโมเดลที่ผ่านการกลั่นความรู้ ผมคิดว่าโครงสร้างแบบเอนโค้ดเดอร์-ดีโค้ดเดอร์กำลังค่อย ๆ หายไปแล้ว แต่ดูเหมือนว่ายังมีความเกี่ยวข้องอยู่
อีกอย่างที่น่าสนใจก็คือ ไอเดียนี้ไม่ได้ถึงกับแปลกใหม่สุดขั้วหรือหลุดกรอบจนคาดไม่ถึงนัก ซึ่งแสดงให้เห็นว่ายังมี low-hanging fruit ให้สำรวจอีกมาก และอนาคตของโมเดลภาษาขนาดใหญ่ก็ยังไม่ได้ถูกกำหนดตายตัว ทางออกที่แท้อาจเป็น mixture of experts ที่ฝึกด้วยวิธีแบบนี้ก็ได้ มันน่าตื่นเต้นตรงที่ถ้าหาชุดแนวคิดที่ถูกต้องมาเข้าคู่กันได้ ก็ดูเหมือนจะเข้าใกล้เป้าหมายระดับจอกศักดิ์สิทธิ์ได้
ยังมี low-hanging fruit เหลืออีกเยอะ เหมือนจะเห็นรูปแบบย่อยนับสิบแบบแล้ว เช่น chain of thought, tree of thought, graph of thought, self-ask, self-critique, self-plan, self-reflect เป็นต้น
ปริมาณกิจกรรมและความก้าวหน้าในวงการโมเดลภาษาขนาดใหญ่/แมชชีนเลิร์นนิง/AI นี่มหาศาลจริง ๆ โดยเฉพาะในสถานการณ์ที่ฮาร์ดแวร์อย่าง Nvidia แพงมาก การทำ optimization แบบนี้ยิ่งมีคุณค่าเป็นพิเศษ
อันนี้เหมือนกับ https://arxiv.org/abs/2212.08410 ไม่ใช่หรือ แค่ตีพิมพ์ช้ากว่า 1 ปี?
ผมไม่ใช่นักวิจัย แต่ผมมีสัญชาตญาณมาตลอดว่าโมเดลที่มีประสิทธิภาพที่สุดน่าจะเป็นแบบ มัลติโหมด และฝึกด้วยการออกแบบหลักสูตรแกนกลางอย่างรอบคอบ
ผมอยากให้มั่นใจว่าระบบได้เรียนรู้และคงรักษาโครงสร้างพื้นฐานกับเทคนิคที่จำเป็นต่อการทำให้การทำให้เป็นทั่วไปมีประสิทธิภาพและแม่นยำ จากนั้นคงสิ่งเหล่านั้นไว้แล้วป้อนข้อมูลหลากหลายจำนวนมากเพื่อให้มันเรียนรู้ข้อยกเว้นและวิธีผสมผสานเทคนิคต่าง ๆ แต่ก็ยังต้องมีวิธีรับประกันว่าเทคนิคและความรู้แกนกลางจะยังคงอยู่จนจบ บางทีอาจทำได้ถ้าให้มันแสดงไม่ใช่แค่คำตอบสุดท้าย แต่รวมถึงความเข้าใจหรือกระบวนการจัดการด้วย เหมือนที่งานวิจัยนี้ทำ
ตัวอย่างเช่น ถ้าเป็นโมเดลสร้างโค้ด ก็อาจบังคับให้แสดง การจำลอง state machine ของโปรแกรมที่ร้องขอ
สงสัยว่าทำไมในรูปแรก ปริมาณข้อมูลฝึก ของโมเดลภาษาขนาดใหญ่ถึงน้อยกว่าโมเดลที่ผ่านการกลั่นและโมเดลเฉพาะงาน
หรือผู้เขียนกำลังนับปริมาณข้อมูลฝึกที่จำเป็นสำหรับโมเดลภาษาขนาดใหญ่รวมเข้าไปในข้อมูลที่ต้องใช้สำหรับโมเดลกลั่น/โมเดลเฉพาะงานด้วย?
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj...
คุณสามารถหยิบโมเดลภาษาขนาดใหญ่ที่ pre-train ไว้แล้วมาใช้ได้ และในกรณีนั้นข้อมูลที่ผมต้องรวบรวมก็คือข้อมูลที่จำเป็นสำหรับ fine-tune โมเดลนั้น
ในโมเดลภาษาขนาดใหญ่ยักษ์ ๆ พวกนั้นยังมี ความจุ ที่ไม่ได้ใช้อยู่อีกมากหรือเปล่า หรือว่าโมเดลภาษาเล็กแค่เลียนแบบงานให้เหตุผล แบบเลียนแบบการเลียนแบบอีกที?
ชุดข้อมูลที่ใช้ฝึกโมเดลภาษาขนาดใหญ่ยักษ์มีสัญญาณรบกวนจำนวนมากที่ขัดขวางความก้าวหน้า อีกทั้งยังมีความรู้ที่ไม่เกี่ยวข้องอยู่เยอะ ทำให้โมเดลต้องเรียนรู้หรือจดจำสิ่งเหล่านั้นไปด้วย และนั่นทำให้ต้องใช้พารามิเตอร์จำนวนมหาศาล
ถ้าไม่ได้พยายามสอนผลรวมของความรู้มนุษย์ทั้งหมดให้โมเดลภาษา แต่ให้ชุดข้อมูลที่คัดสรรคุณภาพสูงแทน กำแพงด้านสเกลจะต่ำลงมาก
https://arxiv.org/abs/2305.07759
ผมสงสัยว่าจะมีไอเดียอะไรบ้างสำหรับการประเมินขนาดที่เหมาะสมที่สุด
น่าสนใจ ถ้าโมเดลเล็กจะให้ประสิทธิภาพใกล้เคียงโมเดลภาษาขนาดใหญ่รุ่นล่าสุด RLHF จำเป็นไหม? ปัญหาเรื่องโครงสร้างผลลัพธ์ น้ำเสียง และความเข้าใจโดเมน ดูเหมือนจะแก้ได้ด้วย instruction tuning แต่ไม่แน่ใจว่าจะพอสำหรับยกระดับความสามารถด้านการให้เหตุผลของโมเดลเล็กด้วยหรือไม่
เขาว่าการให้บริการโมเดลภาษาขนาดใหญ่ 175 พันล้านพารามิเตอร์หนึ่งตัว ต้องใช้ หน่วยความจำ GPU 350GB เป็นอย่างน้อยบนโครงสร้างพื้นฐานเฉพาะทาง
Apple ขาย Mac Studio ที่รองรับหน่วยความจำ GPU ใช้งานได้สูงสุด 144GB
ถ้าออก Mac Pro ที่ใส่ได้เกิน 300GB แล้วเข้ามายึดตลาดการเสิร์ฟโมเดลภาษาขนาดใหญ่ ก็คงน่าสนใจไม่น้อย
ถ้ายังไม่มี นั่นก็เป็นอีกเหตุผลว่าทำไมตอนนี้มันยังไม่เหมาะกับการโฮสต์โมเดลภาษาขนาดใหญ่
อย่างไรก็ตาม ฝั่งที่อาจเขย่าตลาดจริง ๆ น่าจะเป็น Intel ในทางทฤษฎีอาจเข้ามาพร้อมการ์ด Arc 2x48GB แล้วบุกตลาดที่ AMD/Nvidia ไม่ลงมาเล่นเพราะห่วงลูกค้าการ์ดโปร ด้วยราคาที่ต่ำกว่า
พูดตรง ๆ นั่นเป็นเหตุผลเดียวที่ทำให้ผมเลี่ยงฮาร์ดแวร์ Apple รุ่นใหม่ ทุกวันนี้ผมใช้คอมที่โต๊ะเป็นหลัก และฮาร์ดแวร์ฝั่ง PC โดยเฉพาะ GPU นำหน้าเกินกว่าสิ่งที่สินค้าระดับสูงสุดของ Apple ทำได้มาก Linux ก็เหมาะกับงานมาก และหลังเลิกงานยังเล่นเกมได้ด้วย เลยยากจะหาเหตุผลมาจ่ายเกือบ 4,000 ดอลลาร์
สงสัยว่า Facebook จะสามารถฝึกโมเดลภาษาขนาดใหญ่จาก ประวัติแชตทั้งหมด ของผู้ใช้ทุกคนได้ไหม