10 คะแนน โดย GN⁺ 2023-11-29 | 3 ความคิดเห็น | แชร์ทาง WhatsApp
  • มีการประกาศเปิดตัว 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.ops custom 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 ความคิดเห็น

 
cosine20 2023-12-05

ส่วนตัวผมชอบ Keras มากอยู่แล้ว และก็ดีใจมากที่ตอนนี้สามารถรันโดยใช้ Pytorch เป็นแบ็กเอนด์ได้ด้วย

 
imozart7 2023-11-30

โอ้ มีการประกาศ Keras เวอร์ชันใหม่แล้วสินะ

ผมเพิ่งเรียนแต่ PyTorch มาเอง แต่พอเห็นว่า
"โมเดล tf.keras เดิมก็สามารถรันบน JAX และ PyTorch ได้ทันที" ก็เลยสงสัยว่าทำกันอย่างไร~

 
kuroneko 2023-11-29

โอ้ Keras 3 ออกมาแล้วสินะ +_+
หวังว่าทั้งการพัฒนาโมเดลและการเทรนจะง่ายขึ้นอีกหน่อยนะ