12 คะแนน โดย xguru 2024-05-06 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • โค้ดฝึก LLM แบบเรียบง่ายที่ Andrej Karpathy สร้างด้วย C/CUDA ล้วน
  • ตอนนี้สามารถเทรนแบบหลาย GPU พร้อม Flash Attention ด้วย bfloat16 ได้แล้ว
  • พัฒนาด้วยโค้ด C/CUDA ราว ~3000 บรรทัด และโดยรวมเร็วกว่า PyTorch ได้ถึงประมาณ 7%
  • สิ่งที่ทำมาจนถึงตอนนี้
    • การเทรนแบบผสมความแม่นยำ (bfloat16)
    • การปรับแต่งเคอร์เนลจำนวนมาก รวมถึง FusedClassifier ที่ไม่ต้องทำให้ normalized logits เป็นรูปธรรม (ต่างจาก torch.compile ในปัจจุบัน)
    • Flash Attention (ตรงจาก cuDNN)
    • โครงสร้างข้อมูล Packed128 ที่บังคับให้ A100 ใช้คำสั่งโหลด 128 บิต (LDG.128) และเก็บข้อมูล (STS.128)
  • ตอนนี้รองรับการเทรนหลาย GPU แล้วเช่นกัน
    • เวอร์ชันแรกของการเทรนหลาย GPU ด้วย MPI+NCCL
    • โปรไฟล์การรันเทรนทั้งหมดด้วย NVIDIA Nsight Compute
    • รวม PR ของ ZeRO (optimizer state sharding) ระยะที่ 1
  • เป้าหมายคือสร้างสแตก LLM ที่เสถียร สะอาด ผ่านการทดสอบ มีขนาดเล็ก เสริมความแข็งแรง และปรับแต่งมาดีพอในระดับขั้นต่ำ เพื่อสร้าง GPT-2 มินิซีรีส์ทุกขนาดโมเดลตั้งแต่ 124M ถึง 1.6B ขึ้นใหม่โดยตรงใน C/CUDA

1 ความคิดเห็น