- เป็นแพ็กเกจที่ช่วยให้สามารถพัฒนาโมเดลแมชชีนเลิร์นนิง (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 และน่าจับตาการเติบโตในอนาคต
ยังไม่มีความคิดเห็น