- โค้ดฝึก LLM แบบเรียบง่ายที่ Andrej Karpathy สร้างด้วย C/CUDA ล้วน ๆ
- ไม่ต้องใช้ PyTorch/cPython
- สามารถฝึก GPT-2 (CPU, fp32) ได้ด้วยไฟล์เดียวขนาดประมาณ 1000 บรรทัด
- เหตุผลที่เลือก GPT-2 เป็นตัวอย่างแรกที่ใช้งานได้ เพราะมันเป็นเหมือนคุณปู่ของ LLM ที่สแต็กสมัยใหม่ถูกรวมเข้าด้วยกันเป็นครั้งแรก
- คอมไพล์และรันได้ทันที และให้ผลตรงกับ PyTorch reference implementation อย่างแม่นยำ
- สิ่งที่กำลังทำอยู่ในตอนนี้
- การทำ implementation แบบ CUDA โดยตรงที่เร็วขึ้นมาก และอาจเข้าใกล้ PyTorch มากขึ้น
- เพิ่มความเร็วเวอร์ชัน CPU ด้วยคำสั่ง SIMD, AVX2 บน x86 / NEON บน ARM (เช่น Apple Silicon)
- รองรับสถาปัตยกรรมที่ทันสมัยกว่า (เช่น Llama2, Gemma เป็นต้น)
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
แสดงความทึ่งต่อโปรเจกต์นี้ พร้อมชี้ว่าตอนนี้ส่วนของ CUDA ยังไม่ได้ถูกทำขึ้นมา โดยโค้ด GPU ยังไม่มีอยู่ในรีโพซิทอรี
หลังจากได้เห็น nano GPT ที่ทำด้วย JAX ก็อยากเห็นเวอร์ชันที่ทำด้วย C/CUDA บ้าง และสงสัยว่า nano GPT จะทำบน Mojo ได้หรือไม่ พร้อมยอมรับว่า Python มีความสะดวกหลายอย่างเมื่อเทียบกับภาษาอื่น
แสดงความคาดหวังว่าการเขียน CUDA โดยตรงจะเร็วกว่าการใช้ PyTorch มาก และเมื่อพิจารณาราคา GPU-RAM ก็สงสัยว่าความเร็วฝั่ง CPU จะดีขึ้นได้มากแค่ไหน อีกทั้งถามว่ามีข้อจำกัดทางเทคนิคหรือไม่ในการเพิ่มสล็อต SO-DIMM ให้ซีรีส์ RTX เพื่อขยาย RAM ได้ตามต้องการ
ถามว่ามีตัวอย่างการนำ GPT-2 ไปใช้กับข้อมูลอนุกรมเวลาหรือไม่ โดยเฉพาะกรณีที่มีตัวแปรร่วม (covariates) ด้วย เพราะมองว่าการที่ LLM ทำนายโทเค็นถัดไปจากโทเค็นก่อนหน้า คล้ายกับการพยากรณ์อนุกรมเวลา
คิดว่าชื่อน่าจะได้แรงบันดาลใจมาจากโปรเจกต์ llm.f90 ของตนเอง ซึ่งอิงจาก llama2.c ของ Karpathy และเปลี่ยนชื่อเพื่อรองรับสถาปัตยกรรมอื่น ๆ แต่ก็น่าจะเป็นเรื่องบังเอิญ
เล่าว่าตอนที่ Lex คุยกับ Andre, Andre มีความหมกมุ่นเชิงบวกกับปัญหาและพูดว่า "สิ่งนี้ต้องมีอยู่ให้ได้" และโปรเจกต์นี้ก็น่าจะเป็นหนึ่งในผลลัพธ์จากแนวคิดแบบนั้น
ถามว่าถ้าจะเริ่มจากศูนย์ ควรดูแหล่งข้อมูลอะไรเพื่อค่อย ๆ สร้างความเข้าใจว่าโค้ดนี้ทำอะไรและควรอ่านอย่างไร เพราะตนมีความรู้เรื่อง LLM จำกัดมาก และยังสงสัยว่าการใช้ชื่อตัวแปรสั้น ๆ เป็นมาตรฐานในวงการ LLM หรือไม่
เห็นว่าน่าจะดีหากมีการทำทิวทอเรียลอธิบายโปรเจกต์นี้และวิธีรันการฝึกทดสอบ แม้ว่าการฝึกโมเดลแบบ "จริงจัง" บนฮาร์ดแวร์ส่วนตัวจะไม่ค่อยเป็นไปได้ แต่ก็ต้องการประสบการณ์การเรียนรู้แบบลงมือปฏิบัติ
แสดงความสงสัยว่า CUDA ยังเป็นตัวเลือกเดียวสำหรับงาน AI อยู่หรือไม่ หรือว่าการรองรับ AMD/Intel/วิธีการรันงาน AI แบบอื่น ๆ กำลังเพิ่มขึ้นแล้ว