โมเดล AI ที่ทรงพลังที่สุดซึ่งฝึกบนแล็ปท็อปได้ใน 5 นาทีคืออะไร?
(seangoedecke.com)- ฝึกโมเดลทรานส์ฟอร์เมอร์สไตล์ GPT ขนาดประมาณ 1.8M พารามิเตอร์ บน MacBook Pro ภายใน 5 นาที โดยใช้โทเค็น TinyStories ราว 20M โทเค็น และทำได้ประมาณ 9.6 perplexity
- ข้อจำกัดหลักของการ ฝึกภายใน 5 นาที คือขนาดโมเดลและจำนวนโทเค็นที่ประมวลผลได้ โดยเมื่อโมเดลใหญ่ขึ้นจะคอนเวิร์จช้าลงและได้ประโยชน์จากข้อมูลจำนวนน้อยลดลง
- ในด้าน การเพิ่มประสิทธิภาพ การใช้ MPS ให้ผลดีที่สุด ขณะที่ การเลือกโมเดลขนาดเล็ก มีประสิทธิภาพกว่าการใช้คอมไพล์/ควอนไทซ์/gradient accumulation หรือการใช้ทางเลือกแทน PyTorch
- ชุดข้อมูลที่เรียบง่ายและสม่ำเสมออย่าง TinyStories ส่งผลเชิงบวกต่อประสิทธิภาพของโมเดลขนาดเล็กมากกว่าข้อมูลแนวสารานุกรม
- สถาปัตยกรรม ทรานส์ฟอร์เมอร์ ให้ผลดีกว่า LSTM หรือ diffusion ภายใต้เงื่อนไขของขนาดเล็กและเวลาฝึกสั้น
ภาพรวม
บทความนี้นำเสนอผลการทดลองหา โมเดลภาษา AI ที่ให้ประสิทธิภาพสูงสุด ซึ่งสามารถฝึกบนแล็ปท็อป (MacBook Pro) ได้ภายใน 5 นาที พร้อมอินไซต์เกี่ยวกับกลยุทธ์การเทรนที่เหมาะสม การเลือกชุดข้อมูล และสถาปัตยกรรมของโมเดล
สรุปผลการทดลอง
- ฝึกโมเดลทรานส์ฟอร์เมอร์สไตล์ GPT ขนาดประมาณ 1.8M พารามิเตอร์ ด้วยข้อมูล TinyStories ราว 20M และทำสถิติ 9.6 perplexity
- ตัวอย่างข้อความที่สร้างได้ยังสั้น แต่คงรูปแบบของเรื่องเล่าที่สอดคล้องกัน และไวยากรณ์ภาษาอังกฤษโดยรวมยังถูกต้อง
- เน้นย้ำว่าผลลัพธ์ของโมเดลที่ใช้งานได้จริงภายใน 5 นาที นั้นดีกว่าที่คาดไว้
ที่มาของการทดลองและข้อจำกัด
- การทดลองนี้เริ่มจากความสงสัยเชิงเล่น ๆ ว่าใน สภาพแวดล้อมแบบแล็ปท็อป จะฝึกโมเดลที่ทรงพลังได้เร็วแค่ไหน ซึ่งในทางปฏิบัติอาจไม่สมจริงนัก
- ตามความเป็นจริงสามารถฝึกโมเดลที่ทรงพลังกว่าได้บน GPU ประสิทธิภาพสูงบนคลาวด์ (เช่น H100) แต่เงื่อนไขจำกัดของการทดลองนี้คือเวลา 5 นาที
- เมื่อ ขนาดโมเดลใหญ่ขึ้น ความเร็วในการประมวลผลโทเค็นจะลดลง ทำให้ยากที่จะได้ผลลัพธ์ที่ดีภายใน 5 นาที
- โมเดลที่เล็กเกินไป (เช่น 10K พารามิเตอร์) ไม่สามารถเรียนรู้ความซับซ้อนได้เพียงพอ
- ช่วงที่ใช้งานได้จริงอยู่ที่ราว 1M~2M พารามิเตอร์
การเพิ่ม throughput
- การใช้ MPS (Metal Performance Shaders ของ Apple) ได้ผลดีที่สุด
- การเพิ่มประสิทธิภาพเชิงคำนวณหลากหลายแบบ เช่น
torch.compile, float16, MLX ให้ผลดีน้อยกว่าที่คาด หรือบางกรณีกลับทำให้ประสิทธิภาพลดลง - gradient accumulation มีไว้เพื่อจัดการหน่วยความจำ แต่ในทางปฏิบัติกลับทำให้ความเร็วลดลงอย่างมาก
- โมเดลต้องสามารถอัปเดต weight ได้อย่างรวดเร็วภายในหน่วยความจำภายใน จึงจะมีประสิทธิภาพ
การเลือกชุดข้อมูล
- เมื่อใช้จำนวนโทเค็นที่จำกัด (ราว 10~20M) แล้วเริ่มจากข้อมูลวิกิภาษาอังกฤษแบบเรียบง่าย เช่น Simple English Wikipedia พบว่าสามารถรักษาความสม่ำเสมอทางไวยากรณ์ได้ แต่ขาดความสอดคล้องด้านความหมาย
- เน้นคำนามเฉพาะและการเรียงข้อเท็จจริงที่ดูเหมือนฝืน ทำให้มีข้อจำกัดในการสร้างเนื้อหาที่มีความหมายจริง
- เมื่อใช้ชุดข้อมูล TinyStories ผลลัพธ์มีความสอดคล้องและมีความหมายมากขึ้นอย่างชัดเจน เพราะโครงสร้างเรื่องชัดเจนและภาษาง่าย
- เป็นเรื่องเล่าระดับเด็ก 4 ขวบ จึงเหมาะให้โมเดลขนาดเล็กเรียนรู้ได้ดี
โทเค็นไนเซอร์และการทำโทเค็น
- การเทรนโทเค็นไนเซอร์ไม่ถูกนับรวมในเวลา 5 นาที และด้วยขนาดข้อมูลที่เล็ก จึงแทบไม่มีความจำเป็นต้องปรับแต่งมาก
- การเรียนรู้โทเค็นแบบหลายไบต์ทำให้โมเดลเรียนรู้ง่ายกว่า
การทดลองสถาปัตยกรรมโมเดล
-
ใช้สถาปัตยกรรม ทรานส์ฟอร์เมอร์ (สไตล์ GPT-2)
- ปรับไฮเปอร์พารามิเตอร์ เช่น 2~3 เลเยอร์, ฟังก์ชันกระตุ้นแบบ SwiGLU, positional embedding
- LSTM ให้ประสิทธิภาพใกล้เคียงกัน แต่ทรานส์ฟอร์เมอร์ดีกว่าในแง่ perplexity
- Dropout, mixture-of-experts เป็นต้น ไม่มีประสิทธิภาพนักเมื่อโมเดลมีขนาดเล็ก
- Curriculum learning แทบไม่เกิดผล เพราะเวลาฝึกสั้นเกินไป
-
ทดลองใช้ โมเดล diffusion (D3PM)
- เนื่องจากภาษาธรรมชาติเป็นโทเค็นแบบไม่ต่อเนื่อง กระบวนการ diffusion จึงล้มเหลวและสร้างได้เพียงโทเค็นสุ่มที่ไร้ความหมาย
- การสร้างโครงสร้างประโยคอย่างรวดเร็วทำได้ยากกว่าเมื่อเทียบกับทรานส์ฟอร์เมอร์หรือ LSTM
ความสัมพันธ์ระหว่างขนาดโมเดลกับ throughput โทเค็น/วินาที
- โมเดลขนาด 1M~2M พารามิเตอร์คือ sweet spot ที่เหมาะที่สุด
- ถ้าใหญ่เกินไปจะคอนเวิร์จไม่ทันภายใน 5 นาที ถ้าเล็กเกินไปก็จะชนเพดานประสิทธิภาพทันทีหลังเริ่มฝึก
- Chinchilla scaling law สอดคล้องกับผลการทดลองโดยรวมพอสมควร
- ขนาดโมเดลที่เหมาะสมคือจำนวนโทเค็นฝึกทั้งหมด/20 และการทดลองนี้ก็ยืนยันแนวโน้มนั้น
บทสรุปและนัยสำคัญ
- แม้จะมีเวลาสั้นมากและใช้ฮาร์ดแวร์ขนาดเล็ก ก็ยัง สามารถ ฝึกโมเดลสำหรับการเล่าเรื่องที่มีความสอดคล้องได้
- การฝึก 5 นาทีไม่เหมาะกับการพัฒนาโมเดลทรงพลัง แต่มีความหมายต่อการออกแบบโมเดลขนาดเล็กมาก น้ำหนักเบามาก และการทดลองด้านการปรับแต่งฮาร์ดแวร์กับสถาปัตยกรรม
- ในอนาคต หาก GPU บนแล็ปท็อปและโครงสร้างโมเดลพัฒนาขึ้น ก็มีความเป็นไปได้ที่ประสิทธิภาพของโมเดลที่ฝึกได้ภายในเวลาเพียงไม่กี่นาทีจะดีขึ้นอีก
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
อยากดูบรรยายของเขาเกี่ยวกับการเข้ารหัสควอนตัม และสงสัยว่ามีใครรู้ลิงก์ของบรรยายนั้นที่ถูกพูดถึงช่วงต้นวิดีโอบ้างไหม
การฝึกโมเดลเล็กแบบปรับให้เหมาะสมมีความสำคัญไม่ใช่แค่ในแง่การเข้าถึงได้ง่าย แต่ยังสำคัญต่อการวิจัยเชิงวิทยาศาสตร์ของ LLM ด้วย เปรียบเหมือนการใช้สิ่งมีชีวิตง่าย ๆ อย่างยีสต์ในงานวิจัยชีววิทยา เราจำเป็นต้องศึกษา transformer ที่เรียบง่ายที่สุดซึ่งยังแสดงพฤติกรรมที่น่าสนใจของโมเดลขนาดใหญ่ เพื่อให้เข้าใจและควบคุมมันได้
หนึ่งในพอดแคสต์ที่ประทับใจเมื่อไม่นานมานี้พูดถึงงานวิจัยและชุดข้อมูล TinyStories ซึ่งชุดข้อมูลนี้มีเพียงคำและแนวคิดง่าย ๆ แบบนิทานสำหรับเด็กเล็ก แต่ก็ทำให้โมเดลเล็กสามารถสร้างภาษาอังกฤษที่มีไวยากรณ์ ความหลากหลาย และการให้เหตุผลได้ ตัวพอดแคสต์ที่คุยกับผู้เขียนเองก็อธิบายความสามารถของ LLM ผ่านตัวอย่างการวิจัยขนาดเล็กและควบคุมได้อย่างยอดเยี่ยม ในอุปมาทางชีววิทยานั้น ชุดข้อมูลนี้น่าจะเปรียบได้กับอาหารวุ้น agar ที่เรียบง่ายและควบคุมได้มาก ลิงก์ที่เกี่ยวข้องคือ ตอนพอดแคสต์, งานวิจัย TinyStories
หลายบริษัทสามารถใช้โมเดลเล็กร่วมกับชุดข้อมูลภายใน เช่น ประวัติการซื้อของผู้ใช้ เพื่อแก้ปัญหาทางธุรกิจจริงได้ และความก้าวหน้าที่เกิดขึ้นในโมเดลภาษาขนาดใหญ่ก็สามารถนำมาใช้กับปัญหาเล็กได้ตรง ๆ หากสามารถแทนลำดับอินพุตเป็นภาษาที่เฉพาะทางได้
เป็นที่รู้กันโดยทั่วไปว่าพฤติกรรมและการปรับให้เหมาะสมที่พบในโมเดลเล็ก มักทำซ้ำในโมเดลใหญ่ได้ไม่ดีนัก
สิ่งที่ผู้เขียนทำในที่นี้คือ pretraining ซึ่งปกติเป็นงานของผู้สร้างโมเดลอย่าง Google หรือ Meta ส่วนในภาคธุรกิจ การ fine-tuning หรือไม่ก็ additional pretraining ในระดับที่น้อยกว่านั้น ใช้งานได้จริงกว่ามาก และเขาเน้นว่าผู้เขียนทำสิ่งนี้ด้วยเหตุผลทางวิชาการ
สนใจโมเดลที่รันได้เร็วบนโน้ตบุ๊ก แต่ในส่วนของการฝึกนั้นอาจยังใช้เวลาหลายวันหรือมากกว่านั้น
คิดว่าน่าจะใช้พลังงานแทนเวลาเป็นเกณฑ์ เช่น ฝึกโมเดลที่ดีที่สุดภายใต้งบพลังงานที่กำหนดเป็น joule แบบนั้นน่าจะเป็นการเปรียบเทียบที่แท้จริงกว่า และจะทำให้การเทียบระหว่าง MBP กับ H100 ยุติธรรมขึ้นด้วย
ประเด็นสำคัญตรงนี้ไม่ใช่ “ประสิทธิภาพ” แต่เป็น “การเข้าถึงได้” เพราะ H100 ไม่ใช่ผลิตภัณฑ์ที่ใช้กันในชีวิตประจำวัน แต่โน้ตบุ๊กใช่
เท่าที่เข้าใจ Mac แข่งขันได้ดีกว่าในแง่การใช้พลังงาน เพราะไม่ได้ดึงไฟหนักแบบ Nvidia GPU และอนึ่ง ตอนนี้สามารถเช่า H100 ได้ในราคาต่ำกว่า 10 ดอลลาร์ต่อชั่วโมง ดังนั้นการแข่งกันที่ประสิทธิภาพของโมเดลที่ฝึกเสร็จภายใน 1 ชั่วโมงก็น่าจะน่าสนใจเหมือนกัน
คิดว่าใช้เกณฑ์ไหนก็ได้ แม้จะค่อนข้างกำหนดขึ้นเองบ้างก็ไม่เป็นไร
ถ้าเจตนาคือจะใช้ความเป็นโน้ตบุ๊กหรือความเป็น MacBook Pro เป็นตัวชี้วัดเชิงปฏิบัติ ก็น่าจะอธิบายเป้าหมายให้ชัดเจนกว่านี้
ตอนนี้ให้ความรู้สึกเหมือนจะจัดโอลิมปิกด้านประสิทธิภาพ AI แล้ว จะเป็นโน้ตบุ๊ก เดสก์ท็อป โทรศัพท์ 5 นาที 1 ชั่วโมง 1 วัน 1 สัปดาห์ หรือจะอยู่บนเรือกับแพะก็ได้ทั้งนั้น พูดแบบขำ ๆ
พูดถึงแพะนี่คงหมายถึง Llama มากกว่า ถึงจะสัมผัสคล้องจองได้ไม่มาก แต่ถ้าเป็นสำเนียงบอสตันน่าจะยิ่งขำ
ในนิยายของ Vernor Vinge มีเรื่องที่มนุษย์สร้างคอมพิวเตอร์หมากรุกพกพาไว้ใช้เป็นผู้ช่วยระหว่างแข่ง คิดว่าถ้าในการแข่งขันมีการให้พลังงานนอกเหนือจากนาฬิกาหมากรุกด้วย ผู้เข้าแข่งขันอาจต้องคิดว่าจะใช้มันอย่างไรให้ AI ของตัวเองได้เปรียบ ซึ่งคงแปลกดี
ประโยคที่พูดแบบโอ้อวดถึงพลังสุดขีดของ Mac Studio M3 Ultra 512GB พร้อมมุกว่าถ้าเป็นเรือลำนั้นก็ลอยแพะได้เหมือนกัน
แพะมีจำนวนพารามิเตอร์มากเกินไป จนเกือบระดับ GPT-4 เป็นมุกตลก
ถ้ามี GoatLM ออกมาจริงก็พร้อมจ่ายเงิน
ชอบวลี officially major people ในตัวอย่างคำพูดเพ้อเจ้ออย่าง "Paris, France is a city in North Carolina..." และสงสัยว่าจะเอาไปใช้ในบทสนทนาประจำวันยังไงได้บ้าง
ทำให้นึกถึงงานวิจัย “cramming” เมื่อไม่กี่ปีก่อน ที่ผู้เขียนพยายามฝึกโมเดลที่เหมาะที่สุดบนโน้ตบุ๊กสมัยใหม่ภายในหนึ่งวัน พร้อมแชร์ ลิงก์งานวิจัย
คิดว่าแค่นำทริกบางอย่างจากความพยายามทำ GPT-2 speedrun มาใช้ เช่น Muon, การกำหนดค่าน้ำหนักเริ่มต้นที่ดีกว่า, และการปรับ learning rate อย่างพิถีพิถัน ก็น่าจะทำให้ผลลัพธ์ดีขึ้นได้มาก โดยมีข้อมูลที่เกี่ยวข้อง ที่นี่
รู้สึกว่าวงการ AI ยังขาด demoscene อยู่บ้าง คือวัฒนธรรมโชว์เทคนิคเจ๋ง ๆ ด้วยทรัพยากรน้อยแบบงานเดโมกราฟิกยุค 90
รู้สึกว่าการสร้างโมเดลที่เล็กลงและเฉพาะทางมากขึ้น รวมถึงสร้างมันขึ้นมาตามต้องการในทันที เป็นสิ่งที่มีคุณค่า ไม่จำเป็นต้องใช้โมเดลใหญ่ที่รู้ทุกอย่าง แต่อยากได้โมเดลที่โฟกัสแบบเลเซอร์เฉพาะโดเมนที่ทำงานอยู่และทำงานได้เร็วมากมากกว่า ฉันอยากบอก LLM ขนาดใหญ่ว่า “ช่วยเขียนสคริปต์สำหรับฝึกโมเดลที่ปรับให้เหมาะกับ <งานที่ต้องการ> ให้หน่อย” แล้วเอาโมเดลนั้นไปใช้ได้เลย แต่ระหว่างที่กำลังเขียนคอมเมนต์ Google ก็ปล่อย Gemma 3 270M ออกมาแล้ว
ยกตัวอย่างคำตอบเพ้อเจ้ออย่าง "Paris, France is a city in North Carolina..." เพื่อชี้ว่าถ้ามีเทคนิคที่ทำให้มันพูดว่า “ไม่รู้” (
I don't know) ได้ โมเดลเล็กจะมีประโยชน์ขึ้นมาก ที่ต้องใช้ LLM ใหญ่มากก็เพราะขอบเขตมันกว้างมากจนต้องป้องกันไม่ให้มันแต่งเรื่องขึ้นมาเอง ถ้าสามารถฝึกแชตบอตบริการลูกค้าบนโน้ตบุ๊กได้ภายในเวลาที่พอเหมาะก็คงดี แต่มีโอกาสสูงที่มันจะตอบผิดเพี้ยนอย่างหนักเมื่อเจอเรื่องนอกโดเมนนั้น