3 คะแนน โดย GN⁺ 2023-09-24 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • แม้ 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
    • e-SNLI, ANLI: การอนุมานภาษาธรรมชาติ
    • CQA: การถามตอบเชิงสามัญสำนึก
    • SVAMP: โจทย์ข้อความคณิตศาสตร์
  • เกณฑ์เปรียบเทียบมี 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 ความคิดเห็น

 
GN⁺ 2023-09-24
ความคิดเห็นจาก Hacker News
  • ดูเหมือนว่า โมเดลผู้เชี่ยวชาญ ที่เล็กกว่าจะครองแอปพลิเคชันส่วนใหญ่ได้ มีจุดเหมาะสมที่สุดและความสมดุลที่ละเอียดอ่อนระหว่างขนาดกับการใช้งาน และกลไกหลายอย่างแบบที่บทความนี้แสดงก็น่าจะช่วยค้นหาและทำให้จุดเหมาะสมนั้นเกิดขึ้นจริง

    • โมเดลทั่วไปขนาดใหญ่สามารถประกอบจากโมเดลผู้เชี่ยวชาญขนาดเล็กหลายตัว พร้อมโมเดลตัวกลางที่คอยตัดสินใจว่าจะไปถาม โมเดลเฉพาะโดเมน ตัวไหน
  • น่าสนใจที่ใช้ T5 กับโมเดลที่ผ่านการกลั่นความรู้ ผมคิดว่าโครงสร้างแบบเอนโค้ดเดอร์-ดีโค้ดเดอร์กำลังค่อย ๆ หายไปแล้ว แต่ดูเหมือนว่ายังมีความเกี่ยวข้องอยู่
    อีกอย่างที่น่าสนใจก็คือ ไอเดียนี้ไม่ได้ถึงกับแปลกใหม่สุดขั้วหรือหลุดกรอบจนคาดไม่ถึงนัก ซึ่งแสดงให้เห็นว่ายังมี low-hanging fruit ให้สำรวจอีกมาก และอนาคตของโมเดลภาษาขนาดใหญ่ก็ยังไม่ได้ถูกกำหนดตายตัว ทางออกที่แท้อาจเป็น mixture of experts ที่ฝึกด้วยวิธีแบบนี้ก็ได้ มันน่าตื่นเต้นตรงที่ถ้าหาชุดแนวคิดที่ถูกต้องมาเข้าคู่กันได้ ก็ดูเหมือนจะเข้าใกล้เป้าหมายระดับจอกศักดิ์สิทธิ์ได้

    • ตระกูล T5 ยอดเยี่ยมมาก FastChat-T5 ให้คุณภาพการสร้างข้อความที่น่าทึ่ง เหมาะกับงานอย่างแชตบอตแบบ retrieval-augmented generation เช่นกัน และยังรันได้เร็วพอสำหรับสนทนาแบบเรียลไทม์บน CPU ได้ด้วย
    • งานวิจัยที่อ้างถึงถูกส่งเมื่อเดือนพฤษภาคม โครงสร้างแบบ เอนโค้ดเดอร์-ดีโค้ดเดอร์ ยังดูสมเหตุสมผลอยู่มากในโมเดลมัลติโหมด
      ยังมี 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 ปี?

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

    • เห็นด้วยว่ามัลติโหมดคือทิศทางที่จะไป แต่ไม่มีอะไรที่ชวนให้รู้สึกโดยสัญชาตญาณเลยว่าจำเป็นต้องออกแบบ หลักสูตร อย่างระมัดระวัง เปรียบเทียบกับ https://gwern.net/scaling-hypothesis ได้
    • ถ้าคิดตามแนวคิดเรื่องหลักสูตรในโรงเรียน ก็สงสัยว่า ลำดับของข้อมูลฝึก มีผลหรือไม่ การป้อนจากเรื่องง่ายไปยาก หรือกลับกัน อาจให้ผลต่างกันหรือเปล่า การไล่ระดับลงแบบ gradient descent อาจไปจบที่ local minimum ที่ดีกว่าหรือแย่กว่ากันได้ไม่ใช่หรือ
  • สงสัยว่าทำไมในรูปแรก ปริมาณข้อมูลฝึก ของโมเดลภาษาขนาดใหญ่ถึงน้อยกว่าโมเดลที่ผ่านการกลั่นและโมเดลเฉพาะงาน
    หรือผู้เขียนกำลังนับปริมาณข้อมูลฝึกที่จำเป็นสำหรับโมเดลภาษาขนาดใหญ่รวมเข้าไปในข้อมูลที่ต้องใช้สำหรับโมเดลกลั่น/โมเดลเฉพาะงานด้วย?
    https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj...

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

    • ไม่มีเส้นแบ่งเชิงแก่นสารระหว่างของจริงกับ การเลียนแบบ
      ชุดข้อมูลที่ใช้ฝึกโมเดลภาษาขนาดใหญ่ยักษ์มีสัญญาณรบกวนจำนวนมากที่ขัดขวางความก้าวหน้า อีกทั้งยังมีความรู้ที่ไม่เกี่ยวข้องอยู่เยอะ ทำให้โมเดลต้องเรียนรู้หรือจดจำสิ่งเหล่านั้นไปด้วย และนั่นทำให้ต้องใช้พารามิเตอร์จำนวนมหาศาล
      ถ้าไม่ได้พยายามสอนผลรวมของความรู้มนุษย์ทั้งหมดให้โมเดลภาษา แต่ให้ชุดข้อมูลที่คัดสรรคุณภาพสูงแทน กำแพงด้านสเกลจะต่ำลงมาก
      https://arxiv.org/abs/2305.07759
    • คำถามนั้นดูแทบจะมีความหมายเดียวกับการถามว่า “โมเดลภาษาขนาดใหญ่ยักษ์ในปัจจุบัน ใกล้เคียง optimum หรือยัง” ซึ่งเห็นได้ชัดว่าไม่ใช่
      ผมสงสัยว่าจะมีไอเดียอะไรบ้างสำหรับการประเมินขนาดที่เหมาะสมที่สุด
    • โมเดลใหญ่ generalize ได้ดีกว่า โมเดลเล็กฝึกให้เหมาะกับงานเฉพาะได้ง่ายกว่า
  • น่าสนใจ ถ้าโมเดลเล็กจะให้ประสิทธิภาพใกล้เคียงโมเดลภาษาขนาดใหญ่รุ่นล่าสุด RLHF จำเป็นไหม? ปัญหาเรื่องโครงสร้างผลลัพธ์ น้ำเสียง และความเข้าใจโดเมน ดูเหมือนจะแก้ได้ด้วย instruction tuning แต่ไม่แน่ใจว่าจะพอสำหรับยกระดับความสามารถด้านการให้เหตุผลของโมเดลเล็กด้วยหรือไม่

  • เขาว่าการให้บริการโมเดลภาษาขนาดใหญ่ 175 พันล้านพารามิเตอร์หนึ่งตัว ต้องใช้ หน่วยความจำ GPU 350GB เป็นอย่างน้อยบนโครงสร้างพื้นฐานเฉพาะทาง
    Apple ขาย Mac Studio ที่รองรับหน่วยความจำ GPU ใช้งานได้สูงสุด 144GB
    ถ้าออก Mac Pro ที่ใส่ได้เกิน 300GB แล้วเข้ามายึดตลาดการเสิร์ฟโมเดลภาษาขนาดใหญ่ ก็คงน่าสนใจไม่น้อย

    • มีเฟรมเวิร์กบน Metal ที่รองรับ batch processing สำหรับโมเดลภาษาขนาดใหญ่หรือยัง? ดูเหมือน GGML หรือ MLC จะยังไม่มี
      ถ้ายังไม่มี นั่นก็เป็นอีกเหตุผลว่าทำไมตอนนี้มันยังไม่เหมาะกับการโฮสต์โมเดลภาษาขนาดใหญ่
      อย่างไรก็ตาม ฝั่งที่อาจเขย่าตลาดจริง ๆ น่าจะเป็น Intel ในทางทฤษฎีอาจเข้ามาพร้อมการ์ด Arc 2x48GB แล้วบุกตลาดที่ AMD/Nvidia ไม่ลงมาเล่นเพราะห่วงลูกค้าการ์ดโปร ด้วยราคาที่ต่ำกว่า
    • หวังว่าจุดแข็งด้านฮาร์ดแวร์ของ Apple จะถูกปลดปล่อยเต็มที่ใน เจเนอเรชัน M3 การที่ A17 Pro รองรับ ray tracing ทำให้มีความหวังว่าพวกเขาจะไล่ตามเจ้าตลาดเดิมได้เร็ว
      พูดตรง ๆ นั่นเป็นเหตุผลเดียวที่ทำให้ผมเลี่ยงฮาร์ดแวร์ Apple รุ่นใหม่ ทุกวันนี้ผมใช้คอมที่โต๊ะเป็นหลัก และฮาร์ดแวร์ฝั่ง PC โดยเฉพาะ GPU นำหน้าเกินกว่าสิ่งที่สินค้าระดับสูงสุดของ Apple ทำได้มาก Linux ก็เหมาะกับงานมาก และหลังเลิกงานยังเล่นเกมได้ด้วย เลยยากจะหาเหตุผลมาจ่ายเกือบ 4,000 ดอลลาร์
    • สงสัยว่าใครจะเป็นเจ้าแรกที่เพิ่ม ความจุ RAM ในผลิตภัณฑ์ฮาร์ดแวร์แบบก้าวกระโดดเพื่อจับฐานผู้ใช้โมเดลภาษาขนาดใหญ่ ดูเหมือนเป็นเส้นทางสู่ส่วนแบ่งตลาด
    • ตัวเลขนั้นยังเป็นค่าที่ยังไม่ได้ทำ quantization ด้วยซ้ำ ถ้า quantize 175 พันล้านพารามิเตอร์เป็น 4 บิต ก็จะอยู่ในราว 120GB VRAM ส่วนโมเดล 34 พันล้านพารามิเตอร์ เมื่อทำ quantization 4 บิตแล้ว ใส่ในการ์ด RTX3090 ที่มี 24GB VRAM ใบเดียวได้
  • สงสัยว่า Facebook จะสามารถฝึกโมเดลภาษาขนาดใหญ่จาก ประวัติแชตทั้งหมด ของผู้ใช้ทุกคนได้ไหม