24 คะแนน โดย GN⁺ 2025-01-31 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • โปรเจ็กต์ฝึก LLM แบบเรียบง่ายบน PyTorch ที่ออกแบบมาเพื่อการเรียนรู้ โดยเน้นการฝึกอย่างมีประสิทธิภาพและใช้เทคนิคการสุ่มตัวอย่างสมัยใหม่

Features

  • โค้ดเบสขนาดเล็กที่สุดเท่าที่จำเป็น: พัฒนาด้วย PyTorch โดยไม่มี abstraction ที่ซับซ้อน
  • สถาปัตยกรรมสมัยใหม่: โมเดล GPT พร้อม Flash Attention, RMSNorm, SwiGLU และเทคนิคการสุ่มตัวอย่างที่มีประสิทธิภาพ
  • ฟีเจอร์การฝึก:
    • mixed precision (bfloat16/float16)
    • gradient accumulation
    • การลดอัตราการเรียนรู้พร้อม warmup
    • weight decay และ gradient clipping
  • รองรับชุดข้อมูล: มีการประมวลผลชุดข้อมูล TinyStories มาให้ในตัว
  • โทเคไนเซอร์แบบกำหนดเอง: ผสานการฝึก SentencePiece tokenizer

การติดตั้ง

  • Python 3.8+
  • PyTorch 2.0+ และ CUDA
  • แนะนำให้ใช้ GPU รุ่นใหม่

เริ่มต้นอย่างรวดเร็ว 🚀

ตัวเลือก 1: วงจรการฝึกครบทั้งหมด

  1. เตรียมชุดข้อมูล
  2. เริ่มการฝึก
  3. สร้างข้อความ

ตัวเลือก 2: ใช้โมเดลที่ฝึกไว้ล่วงหน้า

  1. ดาวน์โหลดไฟล์ที่จำเป็น
  2. รัน inference

รายละเอียดโมเดลที่ฝึกไว้ล่วงหน้า

  • ฝึกด้วยชุดข้อมูล TinyStories
  • vocabulary 4096 โทเค็น, transformer 8 heads, 8 layers, embedding dimension 512
  • ฝึกด้วยโทเค็นประมาณ 400 ล้านโทเค็นเป็นเวลา 18.5 ชั่วโมง
  • validation loss: 1.0491

สเปกเครื่องที่ใช้ฝึก

  • GPU: NVIDIA L4 Tensor Core
  • vCPUs: 16
  • RAM: 64 GB
  • VRAM: 24 GB

หมายเหตุ: อิมพลีเมนเทชันนี้สร้างขึ้นเพื่อการเรียนรู้ โดยอ้างอิงแนวทางการฝึก LLM สมัยใหม่ สำหรับการใช้งานจริงใน production แนะนำให้ขยายขนาดโมเดลและชุดข้อมูล

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

 
GN⁺ 2025-01-31
ความคิดเห็นจาก Hacker News
  • ผู้ใช้คนหนึ่งกล่าวว่า ขณะทำงานกับการพัฒนา GPT ด้วย C เขาได้เรียนรู้ถึงความสำคัญของการจัดการหน่วยความจำและการจัดการข้อมูล โดยโปรเจ็กต์ดังกล่าวมีโค้ดประมาณ 1,500 บรรทัด และได้แชร์ลิงก์ GitHub ไว้

  • ผู้ใช้อีกคนอธิบายว่า ขั้นถัดไปคือการลงมือเขียนเองด้วย numpy โดยเน้นว่าสามารถเริ่มจากการใช้ abstraction ที่ทรงพลัง แล้วค่อย ๆ แกะ abstraction ออกเพื่อทำความเข้าใจระบบทั้งหมดอย่างสมบูรณ์

  • มีการแชร์โปรเจ็กต์ที่ใช้ Google Colab notebook ซึ่งใช้เวลาประมาณ 2 ชั่วโมงบน A100 GPU และระบุว่าน่าจะใช้งานได้แม้ในบัญชีฟรี

  • มีการอธิบายว่าใน GitHub มีหลายโปรเจ็กต์ เช่น nanoGPT ของ Andrej Karpathy และยังมีโปรเจ็กต์อื่นที่มีการพัฒนา MoE ด้วย

  • ผู้ใช้คนหนึ่งถามว่าสามารถฝึกโมเดลบางตัวกับชุดข้อมูลเฉพาะและทดสอบผลลัพธ์ได้หรือไม่ โดยบอกว่ากำลังมองหาโปรเจ็กต์โอเพนซอร์ส และต้องการให้แจ้งได้ว่าสามารถใช้ GPU ได้หรือไม่ พร้อมทั้งอยากได้ Docker container ที่สลับไปใช้ CPU แทนได้

  • ผู้ใช้อีกคนหนึ่งแชร์ประสบการณ์การพัฒนาโดยใช้ multi-channel tokenizer ของตนเอง และบอกว่าชื่อตัวละครหลักถูกทำซ้ำบ่อยมากจนสงสัยว่าอาจมีบั๊ก

  • Om Alve กล่าวขอบคุณ โดยบอกว่าโพสต์นี้กลายเป็นไวรัลและทำให้ความพยายามทั้งหมดคุ้มค่า

  • มีการกล่าวว่าน่าสนใจที่เทคโนโลยีนี้สามารถพัฒนาได้ด้วยโค้ดเพียงไม่กี่ร้อยบรรทัด และชวนให้ลองเดาจำนวนบรรทัดโค้ดของโมเดลล้ำสมัยระดับแนวหน้า

  • มีการแชร์ลิงก์บล็อกของ HuggingFace พร้อมระบุว่าไม่ได้เกี่ยวข้องกับ SmolLM

  • มีคนถามว่าสามารถแชร์ตัวอย่างของชุดข้อมูลฝึกและกรณีการใช้งานได้หรือไม่