เครื่องคำนวณหน่วยความจำ GPU ตัวใหม่ที่ออกแบบมาเพื่อช่วยนักวิจัยและวิศวกรประเมินความต้องการหน่วยความจำสำหรับ Large Language Models ได้จุดประกายการอพยพในชุมชนเกี่ยวกับข้อจำกัดของเครื่องมือคำนวณทั่วไปและความจำเป็นในการมีทางเลือกที่ซับซ้อนมากขึ้น
เครื่องคำนวณนี้สร้างขึ้นโดยนักพัฒนา chlobunnee มีจุดมุ่งหมายเพื่อแก้ไขความหงุดหงิดของนักวิจัย ML ที่ต้องจัดการกับคิวคลัสเตอร์ที่ช้าและการซื้อ GPU ที่สิ้นเปลือง โดยใช้พารามิเตอร์ transformer พื้นฐานเช่นจำนวนเลเยอร์และขนาดโทเค็นเพื่อแนะนำ GPU ที่เข้ากันได้สำหรับทั้งงานฝึกอบรมและการอนุมาน
ตัวอย่างการกำหนดค่าโมเดล (3.77B parameters)
- สถาปัตยกรรม: 300 layers × 1024 dimension
- คำศัพท์: 128,256 tokens
- หน้าต่างบริบท: 1024 tokens
- ขนาด batch: 4
- การบีบอัด: BF16 (16-bit)
ชุมชนชี้ไปที่ทางเลือกที่เหนือกว่า
การอพยพเปลี่ยนไปสู่การเปรียบเทียบกับเครื่องมือที่มีอยู่อย่างรวดเร็ว โดยผู้ใช้เน้นย้ำถึงทางเลือกที่ครอบคลุมมากขึ้นที่ apxml.com เครื่องคำนวณคู่แข่งนี้มีคุณสมบัติขั้นสูงหลายอย่างที่เครื่องมือใหม่ขาดหายไป รวมถึงการสนับสนุนรูปแบบ attention ที่แตกต่างกน ตัวเลือก quantization สำหรับทั้งโมเดลและ KV cache และความสามารถในการปรับแต่งอย่างละเอียด อย่างไรก็ตาม มันมาพร้อมกับการแลกเปลี่ยนในการสนับสนุนเฉพาะสถาปัตยกรรมโมเดลเฉพาะแทนที่จะเป็นการกำหนดค่าทั่วไป
ปัญหาหลักที่ชุมชนระบุคือเครื่องคำนวณทั่วไปมักให้ผลลัพธ์ที่ไม่แม่นยำเพราะสถาปัตยกรรมโมเดลแตกต่างกันอย่างมาก โดยเฉพาะในการใช้งาน KV cache ความหลากหลายทางสถาปัตยกรรมนี้ทำให้การคำนวณแบบเดียวกันใช้ได้กับทุกกรณีเป็นปัญหาสำหรับการใช้งานในโลกแห่งความเป็นจริง
การขาดการสนับสนุนฮาร์ดแวร์ทำให้เกิดคำถาม
ผู้ใช้หลายคนสังเกตเห็นช่องว่างที่สำคัญในการครอบคลุมฮาร์ดแวร์ เครื่องคำนวณมุ่งเน้นไปที่ GPU ของ NVIDIA เท่านั้น โดยละเลยทางเลือกของ AMD เช่น 9070 XT ไปโดยสิ้นเชิง แม้แต่ในไลน์อัพของ NVIDIA การ์ดผู้บริโภคยอดนิยมเช่น RTX 3090 และ RTX 5060 Ti ที่เพิ่งเปิดตัวพร้อมหน่วยความจำ 16GB ก็ไม่อยู่ในรายการความเข้ากันได้
มากกว่าเครื่องคำนวณ GPU นี่เป็นเครื่องคำนวณ NVIDIA
แนวทาง NVIDIA เป็นศูนย์กลางนี้สะท้อนถึงการครอบงำในปัจจุบันของฮาร์ดแวร์ NVIDIA ในงาน ML แต่ผู้ใช้โต้แย้งให้มีการสนับสนุนฮาร์ดแวร์ที่กว้างขึ้น โดยเฉพาะอย่างยิ่งเมื่อพิจารณาถึงความพร้อมใช้งานของเฟรมเวิร์กเช่น llama.cpp ที่สนับสนุน Vulkan ข้ามผู้ขาย GPU หลายราย
GPU ที่รองรับสำหรับการ Inference (ต้องการ 11.72 GB)
หมวดหมู่ GPU | รุ่น | VRAM | การใช้งาน % |
---|---|---|---|
Data Center | H200 | 141GB | 8% |
A100 SXM | 80GB | 15% | |
H100 PCIe/SXM | 80GB | 15% | |
Professional | A6000/RTX 6000 Ada/L40S | 48GB | 24% |
Consumer | RTX 5090 | 32GB | 37% |
RTX 4090 | 24GB | 49% | |
RTX 4080 | 16GB | 73% | |
RTX 4070 Ti | 12GB | 98% |
ข้อกังวลด้านการใช้งานและคำขอคุณสมบัติ
ส่วนติดต่อผู้ใช้ของเครื่องมือได้รับการวิพากษ์วิจารณ์ที่ต้องการให้ผู้ใช้ป้อนพารามิเตอร์ทางเทคนิคจำนวนมากด้วยตนเองโดยไม่ให้การกำหนดค่าโมเดลที่ตั้งไว้ล่วงหน้า ผู้ใช้แสดงความหงุดหงิดกับการต้องเติมข้อมูลในฟิลด์หลายฟิลด์ด้วยรายละเอียดสถาปัตยกรรมเฉพาะที่อาจไม่พร้อมใช้งาน
ข้อเสนอแนะจากชุมชนแนะนำการปรับปรุงหลายประการ รวมถึงการเปรียบเทียบ GPU โดยตรง การสนับสนุนการแบ่ง sharding โมเดลข้าม GPU หลายตัว และความสามารถในการกำหนดว่าทรัพยากร GPU บางส่วนสามารถจัดการกับงานเฉพาะได้หรือไม่ การขาดการสนับสนุน sharding เป็นสิ่งที่น่าสังเกตเป็นพิเศษ เนื่องจากเทคนิคนี้ใช้กันทั่วไปในการรันโมเดลขนาดใหญ่ข้าม GPU หลายตัว
การแบ่งแยกความต้องการหน่วยความจำ
- การอนุมาน (BF16): รวม 11.72 GB
- น้ำหนักโมเดล: 7.03 GB
- แคช KV: 4.69 GB
- การฝึกอบรม (FP32 + Adam): รวม 62.2 GB
- น้ำหนักโมเดล: 14.06 GB
- เกรเดียนต์: 14.06 GB
- ออปติไมเซอร์ Adam: 28.13 GB
- โอเวอร์เฮด CUDA: 2.0 GB
บทสรุป
แม้ว่าเครื่องคำนวณจะตอบสนองความต้องการที่แท้จริงในชุมชน ML แต่การอพยพเผยให้เห็นว่าการประเมินหน่วยความจำ GPU ที่มีประสิทธิภาพต้องการแนวทางที่ละเอียดอ่อนมากกว่าที่การคำนวณทั่วไปตามพารามิเตอร์สามารถให้ได้ การที่ชุมชนชอบเครื่องมือที่เข้าใจสถาปัตยกรรมโมเดลเฉพาะมากกว่าเครื่องคำนวณทั่วไปที่เรียบง่าย เน้นย้ำถึงความซับซ้อนของการปรับใช้ LLM สมัยใหม่และความสำคัญของการวางแผนหน่วยความจำที่แม่นยำในสภาพแวดล้อมที่ GPU มีข้อจำกัด
อ้างอิง: GPU Memory Calculator