• เป็นแพ็กเกจที่ช่วยให้สามารถพัฒนาโมเดลแมชชีนเลิร์นนิง (ML) ด้วยภาษา Go ได้ โดยออกแบบมาเพื่อให้ทำงานด้าน ML ได้โดยไม่ต้องพึ่งพา Python
  • เป็นทางเลือกแทนเฟรมเวิร์ก ML ที่มี Python เป็นศูนย์กลาง เช่น TensorFlow (TF), JAX และ PyTorch พร้อมใช้ประโยชน์จากประสิทธิภาพฮาร์ดแวร์แบบเดียวกันบนพื้นฐานของ Go
  • ใช้เทคโนโลยีคอมไพเลอร์และรันไทม์ระดับล่างอย่าง XLA และ PJRT เพื่อมอบประสิทธิภาพที่ปรับแต่งมาอย่างเหมาะสม

คุณสมบัติหลัก

  • สร้างโมเดล ML โดยไม่ต้องใช้ Python
    • ตัด Python ออกทั้งหมด และสามารถสร้าง ฝึก และทำ inference โมเดลได้ด้วยภาษา Go เพียงอย่างเดียว
    • รองรับการสร้าง computational graph การทำ automatic differentiation และการฝึกโมเดล ในลักษณะที่มีความยืดหยุ่นใกล้เคียงกับเฟรมเวิร์ก ML เดิม
  • ใช้ XLA และ PJRT
    • ใช้สแตก OpenXLA เพื่อรองรับการประมวลผลที่ปรับแต่งให้เหมาะกับฮาร์ดแวร์ โดยอาศัยองค์ประกอบพื้นฐานชุดเดียวกับที่ TensorFlow และ JAX ใช้งาน
    • มีฟีเจอร์ขั้นสูง เช่น automatic differentiation, การจัดการข้อมูลเทนเซอร์ และการแบ่งงานประมวลผล
  • ตัวอย่างการพัฒนาโมเดล CNN
    • พัฒนาโมเดล CNN (โครงข่ายประสาทเทียมแบบคอนโวลูชัน) ด้วย Go โดยใช้ชุดข้อมูล CIFAR-10
    • โมเดลที่พัฒนาด้วย GoMLX โดยไม่ใช้ Python ให้ประสิทธิภาพใกล้เคียงกับโมเดลที่ฝึกด้วย TensorFlow+Keras
  • กรณีใช้งานจริง: โมเดล Gemma2
    • ใช้น้ำหนักของ Gemma2 LLM (Large Language Model) จาก HuggingFace เพื่อรัน inference ของ LLM ระดับ production จริง
    • สามารถรันโมเดลขั้นสูงอย่าง Gemma2 ได้โดยไม่ต้องใช้ Python

สรุป

  • GoMLX รองรับการพัฒนาโมเดล ML การฝึก และการทำ inference บนภาษา Go พร้อมตัดการพึ่งพา Python ออกไป
  • ใช้ XLA และ PJRT เพื่อมอบการประมวลผลที่ปรับแต่งตามฮาร์ดแวร์และฟีเจอร์ ML ขั้นสูง
  • สามารถทำงานซับซ้อนอย่างโมเดล CNN บน CIFAR-10 และ inference ของ Gemma2 LLM ได้โดยไม่ต้องใช้ Python
  • แม้ GoMLX ยังอยู่ในระยะเริ่มต้น แต่ก็เปิดทางให้กับการพัฒนา ML แบบ Python-Free และน่าจับตาการเติบโตในอนาคต

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น