𝟯𝟮𝗕 𝗟𝗟𝗠 บน 𝟮𝟬𝟬𝟴 𝗫𝗲𝗼𝗻: 𝗥𝗮𝗺 สำคัญกว่า 𝗩𝗥𝗔𝗠
ผมลองรันโมเดลขนาด 20 GB บนโน้ตบุ๊กที่ใช้ทำงาน โน้ตบุ๊กเครื่องนี้มี RTX 4070 และ RAM 16 GB แต่มันล้มเหลว ระบบค้างไปเลย
ผมเลยตัดสินใจไปทดสอบกับเซิร์ฟเวอร์เก่าปี 2008 แทน เซิร์ฟเวอร์เครื่องนี้มี CPU Intel Xeon E5440 สองตัว และ RAM 64 GB โดยที่ไม่มี GPU เลย
เป้าหมายนั้นเรียบง่ายมาก ฮาร์ดแวร์เก่าๆ ที่มีหน่วยความจำเพียงพอ จะสามารถรันโมเดลขนาดใหญ่ที่โน้ตบุ๊กของผมรันไม่ได้หรือไม่?
นี่คือการเปรียบเทียบสเปกฮาร์ดแวร์:
โน้ตบุ๊ก:
- CPU: โน้ตบุ๊กสมัยใหม่
- RAM: 16 GB
- GPU: 8 GB VRAM
- ผลลัพธ์: ระบบค้าง
เซิร์ฟเวอร์:
- CPU: 2x Xeon E5440
- RAM: 64 GB
- GPU: ไม่มี
- ผลลัพธ์: รันได้
เซิร์ฟเวอร์ทำงานช้ามาก มันสร้างข้อความได้ประมาณ 0.01 tokens ต่อวินาที ผมเริ่มทดสอบตอนเที่ยงคืนและกลับมาเช็คอีกทีตอนเช้า
โมเดลพยายามเขียนโค้ดด้วยภาษา Forth มันสร้างโค้ดออกมาสองเวอร์ชันที่แตกต่างกันหลังจากผ่านไปหลายชั่วโมง แต่ทั้งสองเวอร์ชันกลับรันไม่ได้
ผมได้เรียนรู้สองสิ่งจากเรื่องนี้:
ปริมาณ RAM นั้นสำคัญ RAM ของระบบขนาด 64 GB ช่วยให้คุณรันโมเดลที่ VRAM และ RAM รวมกัน 24 GB ทำไม่ได้ อย่างไรก็ตาม ความเร็ว 0.01 tokens ต่อวินาทีนั้นไม่สามารถนำมาใช้งานจริงในการทำงานได้
โมเดลขนาดใหญ่ไม่ใช่เวทมนตร์ โมเดลขนาดใหญ่ไม่สามารถเขียนโปรแกรมด้วยภาษาเฉพาะทางอย่าง Forth ได้ หากมันไม่เคยถูกฝึกฝนมาด้วยภาษานั้น การจะได้โค้ดที่ใช้งานได้จริง คุณต้องมีกระบวนการที่ดีกว่านี้ คุณต้องมีอัลกอริทึม, deterministic transpilers และเครื่องมือที่ดีกว่าเดิม
อย่าเพิ่งซื้อฮาร์ดแวร์ราคาแพงเพื่อทดสอบไอเดีย ให้ลองทำการทดลองด้วยสิ่งที่คุณมีอยู่ก่อน การประมวลผล (inference) ที่ช้าก็ยังถือเป็นการประมวลผล มันช่วยให้ผมได้คำตอบที่ต้องการโดยไม่ต้องเสียเงินจำนวนมหาศาล
แหล่งที่มา: https://dev.to/ua3mqj/32b-llm-on-a-2008-xeon-when-ram-matters-more-than-vram-28e2
ชุมชนแห่งการเรียนรู้เพิ่มเติม (ทางเลือก): https://t.me/GyaanSetuAi