ดีปเลิร์นนิงเพื่อมนุษย์: เปิดตัว Keras 3.0
(keras.io)- มีการประกาศเปิดตัว Keras 3.0 อย่างเป็นทางการ หลังผ่านการทดสอบเบตาแบบสาธารณะมา 5 เดือน
- Keras 3 คือเวอร์ชันที่เขียนใหม่ทั้งหมด เพื่อให้สามารถรันเวิร์กโฟลว์ของ Keras บน JAX, TensorFlow และ PyTorch ได้
- มาพร้อมความสามารถใหม่สำหรับการฝึกและการดีพลอยโมเดลขนาดใหญ่
ต้อนรับแมชชีนเลิร์นนิงแบบหลายเฟรมเวิร์ก
- จุดเด่นของการใช้ Keras คือความเร็วในการพัฒนา ประสบการณ์ผู้ใช้ การออกแบบ API และความสะดวกในการดีบัก
- เป็นเฟรมเวิร์กที่ผ่านการพิสูจน์แล้วและมีนักพัฒนากว่า 2.5 ล้านคนเลือกใช้ โดยถูกใช้งานในระบบ ML ขนาดใหญ่ เช่น รถยนต์ขับเคลื่อนอัตโนมัติของ Waymo และระบบแนะนำวิดีโอของ YouTube
- Keras 3 ยังให้ประโยชน์เพิ่มเติม เช่น การปรับแต่งประสิทธิภาพของโมเดล การขยายตัวเลือกในอีโคซิสเต็มของโมเดล และการรองรับ model parallelism กับ data parallelism สำหรับโมเดลขนาดใหญ่
ใช้งาน Keras 3 API ได้บน JAX, TensorFlow และ PyTorch
- Keras 3 รองรับการติดตั้งใช้งาน Keras API อย่างครบถ้วน และสามารถใช้ได้บน TensorFlow, JAX และ PyTorch
- โมเดล Keras ทุกตัวที่ใช้เฉพาะเลเยอร์ในตัว จะทำงานได้ทันทีบนทุกแบ็กเอนด์ที่รองรับ
- โมเดล tf.keras เดิมก็สามารถนำไปรันบน JAX และ PyTorch ได้โดยตรงเช่นกัน
เขียนเลเยอร์ โมเดล และเมตริกแบบหลายเฟรมเวิร์ก
- Keras 3 สามารถสร้างคอมโพเนนต์ที่ทำงานเหมือนกันบนทุกแบ็กเอนด์ได้ เช่น custom layer หรือโมเดลที่ผ่านการพรีเทรนแล้ว
- ผ่านเนมสเปซ
keras.opsจะมีทั้ง NumPy API ที่เข้ากันได้ข้ามแบ็กเอนด์ และฟังก์ชันเฉพาะทางสำหรับโครงข่ายประสาทเทียม - ตราบใดที่ใช้เพียง
keras.opscustom layer และเมตริกก็จะทำงานด้วยโค้ดเดียวกันบน JAX, PyTorch และ TensorFlow
Distributed API ใหม่สำหรับ data parallelism และ model parallelism ขนาดใหญ่
- มี Distributed API ใหม่เพื่อแก้ปัญหาการชาร์ดโมเดลขนาดใหญ่
- แยกการนิยามโมเดล ลอจิกการฝึก และการตั้งค่าการชาร์ดออกจากกัน ทำให้สามารถเขียนโมเดลได้เหมือนกำลังรันบนอุปกรณ์เดียว
- มี API ที่ช่วยให้กำหนด sharding layout สำหรับ data parallelism และ model parallelism ได้อย่างง่ายดาย
โมเดลที่ผ่านการพรีเทรนแล้ว
- มีโมเดลที่ผ่านการพรีเทรนแล้วหลากหลายแบบให้ใช้งานใน Keras 3
- โมเดลทั้งหมดใน Keras Applications รวมถึงโมเดลที่พรีเทรนแล้วจาก KerasCV และ KerasNLP สามารถทำงานได้บนทุกแบ็กเอนด์
รองรับ data pipeline แบบข้ามเฟรมเวิร์กบนทุกแบ็กเอนด์
- โมเดล Keras 3 สามารถฝึกได้ด้วย data pipeline ที่หลากหลาย ไม่ว่าจะใช้แบ็กเอนด์ JAX, PyTorch หรือ TensorFlow
การเปิดเผยความซับซ้อนอย่างค่อยเป็นค่อยไป
- Keras API ยึดหลักการออกแบบที่รองรับเวิร์กโฟลว์หลากหลายรูปแบบ เพื่อให้เหมาะกับผู้ใช้หลายกลุ่ม ตั้งแต่งานง่าย ๆ ไปจนถึงการปรับแต่งระดับล่าง
Stateless API
- อ็อบเจ็กต์ Keras ทุกตัวที่มีสถานะ ตอนนี้มี Stateless API ให้ใช้งานในฟังก์ชันของ JAX ได้แล้ว
การย้ายจาก Keras 2 ไปยัง Keras 3
- Keras 3 มีความเข้ากันได้กับ Keras 2 ในระดับสูง ผู้ใช้ส่วนใหญ่จึงสามารถย้ายไปใช้ Keras 3 ได้โดยไม่ต้องแก้โค้ด
- สำหรับโค้ดเบสขนาดใหญ่ อาจจำเป็นต้องมีการแก้ไขโค้ดบางส่วน แต่มี migration guide แบบครบถ้วนเพื่อช่วยในการย้าย
- หากต้องการใช้ Keras 2 ต่อไป ยังสามารถใช้แพ็กเกจ
tf_kerasหรือกำหนดตัวแปรสภาพแวดล้อมTF_USE_LEGACY_KERASเพื่อใช้งาน Keras 2 ได้
ความเห็นของ GN⁺
ประเด็นสำคัญที่สุดของบทความนี้คือการเปิดตัว Keras 3.0 อย่างเป็นทางการ และฟีเจอร์ใหม่ที่มอบให้กับนักพัฒนา Keras 3.0 ทำงานได้บนแบ็กเอนด์ที่หลากหลาย เช่น JAX, TensorFlow และ PyTorch พร้อมยกระดับความยืดหยุ่นและประสิทธิภาพของการพัฒนาแมชชีนเลิร์นนิงอย่างมาก ด้วยการปรับปรุงความสามารถด้านการฝึกและการดีพลอยโมเดลขนาดใหญ่ คุณสมบัติเหล่านี้ถือเป็นข่าวที่น่าตื่นเต้นมากสำหรับชุมชนแมชชีนเลิร์นนิง และเปิดโอกาสให้นักพัฒนาสามารถทดลองและดีพลอยโมเดลได้ในสภาพแวดล้อมที่หลากหลายยิ่งขึ้น.
3 ความคิดเห็น
ส่วนตัวผมชอบ Keras มากอยู่แล้ว และก็ดีใจมากที่ตอนนี้สามารถรันโดยใช้ Pytorch เป็นแบ็กเอนด์ได้ด้วย
โอ้ มีการประกาศ Keras เวอร์ชันใหม่แล้วสินะ
ผมเพิ่งเรียนแต่ PyTorch มาเอง แต่พอเห็นว่า
"โมเดล
tf.kerasเดิมก็สามารถรันบน JAX และ PyTorch ได้ทันที" ก็เลยสงสัยว่าทำกันอย่างไร~โอ้ Keras 3 ออกมาแล้วสินะ +_+
หวังว่าทั้งการพัฒนาโมเดลและการเทรนจะง่ายขึ้นอีกหน่อยนะ