Tools
สร้าง Offline Feature Store ด้วย AWS SageMaker Unified Studio และ Catalog
![]()
ในการพัฒนาโมเดล Machine Learning (ML) ในองค์กรใหญ่ ๆ เรามักเจอปัญหาเยอะแยะไปหมด เช่น การจัดการข้อมูลฟีเจอร์ที่กระจัดกระจาย, คำจำกัดความของข้อมูลไม่ตรงกัน, หรือทีมต่าง ๆ ต้องทำงานซ้ำซ้อนกันเพื่อเตรียมข้อมูล ทำให้เสียเวลาและทรัพยากรไปมาก และที่สำคัญคือ โมเดลอาจถูกเทรนด้วยข้อมูลที่ไม่สอดคล้องกันหรือไม่เป็นปัจจุบัน ซึ่งนำไปสู่ประสิทธิภาพของโมเดลที่ไม่ดีนัก
วันนี้ AWS มีโซลูชันที่น่าสนใจมานำเสนอ นั่นคือการสร้างและจัดการ Offline Feature Store โดยใช้ Amazon SageMaker Unified Studio และ SageMaker Catalog ซึ่งจะช่วยให้การทำงานด้าน ML ของเรามีประสิทธิภาพมากขึ้น ลดความซับซ้อน และเพิ่มความร่วมมือระหว่างทีมได้เป็นอย่างดีเลยล อยากรู้รายละเอียดเพิ่มเติม ลองอ่านบทความต้นฉบับได้ที่ AWS Blog: Offline Feature Store with SageMaker
ปัญหาที่เจอในการพัฒนา ML
ลองนึกภาพว่าคุณมีหลายทีมที่พัฒนา ML โมเดลต่างกันไป แต่ละทีมก็สร้างชุดฟีเจอร์ของตัวเอง เก็บข้อมูลแบบใครแบบมัน ทำให้เกิดปัญหาหลักๆ เช่น:
- Pipeline ของฟีเจอร์แยกส่วน (fragmented feature pipelines): ไม่มีระบบรวมศูนย์ในการสร้างและจัดการฟีเจอร์
- คำจำกัดความข้อมูลไม่สอดคล้องกัน (inconsistent data definitions): ฟีเจอร์เดียวกันอาจถูกนิยามต่างกันในแต่ละทีม
- งานวิศวกรรมข้อมูลซ้ำซ้อน (redundant engineering efforts): ทีมต่าง ๆ ต้องเขียนโค้ดเพื่อเตรียมฟีเจอร์คล้าย ๆ กัน
- ปัญหาการกำกับดูแลข้อมูล (governance issues): ขาดการควบคุมว่าใครเข้าถึงข้อมูลอะไร และข้อมูลมีความถูกต้องแค่ไหน
ปัญหาเหล่านี้ทำให้การเทรนโมเดลเป็นเรื่องยาก เสี่ยงต่อการใช้ข้อมูลที่ไม่ถูกต้อง และลดความน่าเชื่อถือของโมเดลลงไปมากเลยครับ
SageMaker ช่วยแก้ปัญหาอย่างไร?
AWS ได้นำเสนอวิธีแก้ไขปัญหาเหล่านี้ด้วยการสร้าง Offline Feature Store ที่ปรับขนาดได้ มีการกำกับดูแล และทำงานร่วมกันได้ โดยใช้ Amazon SageMaker Unified Studio และ SageMaker Catalog เป็นเครื่องมือหลัก
โซลูชันนี้ออกแบบมาเพื่อจัดการความท้าทายต่าง ๆ ข้างต้น โดยมีสถาปัตยกรรมที่สำคัญคือ:
- Amazon S3 Tables with Apache Iceberg: ใช้สำหรับจัดเก็บข้อมูลฟีเจอร์ เพื่อให้มั่นใจได้ถึงความสอดคล้องของข้อมูลแบบ Transactional consistency รวมถึงความสามารถในการย้อนเวลาดูข้อมูลในอดีต (time-travel)
- AWS Lake Formation: ช่วยในการควบคุมการเข้าถึงข้อมูลแบบละเอียด (fine-grained access control) ว่าใครสามารถดูหรือแก้ไขข้อมูลส่วนไหนได้บ้าง
- Amazon SageMaker Studio: เป็นสภาพแวดล้อมแบบรวมศูนย์สำหรับการทำ Data Engineering ทั้งแบบ Visual และแบบเขียนโค้ด
หัวใจสำคัญของโซลูชันนี้คือการใช้ รูปแบบ Publish-Subscribe สำหรับการแชร์ตารางฟีเจอร์ที่ได้รับการคัดสรรและมีเวอร์ชัน (curated, versioned feature tables) ทำให้ Data Producers สามารถเผยแพร่ฟีเจอร์ที่เตรียมไว้ ส่วน Data Consumers ก็สามารถค้นหา สมัครรับ และนำฟีเจอร์เหล่านั้นไปใช้ซ้ำได้อย่างปลอดภัยสำหรับการพัฒนาโมเดล ช่วยให้การทำงานร่วมกันราบรื่นขึ้นเยอะเลยครับ
ส่วนประกอบสำคัญ
โซลูชัน Offline Feature Store นี้มีส่วนประกอบหลักๆ ที่ทำงานร่วมกันดังนี้:
- SageMaker Unified Studio domain: ทำหน้าที่เป็นศูนย์กลางในการกำกับดูแลและทำงานร่วมกัน เป็นชั้นควบคุมหลักสำหรับการจัดการโปรเจกต์, ผู้ใช้งาน และ Assets ต่างๆ ของ ML ช่วยให้การเข้าถึงข้อมูลและการทำงานร่วมกันเป็นไปอย่างปลอดภัยและมีประสิทธิภาพ
- S3 Tables ในรูปแบบ Apache Iceberg: เป็นฐานสำหรับการจัดเก็บและควบคุมเวอร์ชันของข้อมูลฟีเจอร์ ทำให้ข้อมูลมีความคงทน และสามารถสืบย้อนหลังได้
- SageMaker Catalog: เปรียบเสมือนสมุดทะเบียนกลางสำหรับเผยแพร่และค้นหาตารางฟีเจอร์ทั่วทั้งองค์กร ทำให้ทีมต่าง ๆ สามารถค้นหาและนำฟีเจอร์ที่มีอยู่ไปใช้ได้อย่างง่ายดาย
ขั้นตอนการทำงานร่วมกัน
Workflow ของการใช้งานโซลูชันนี้จะเกี่ยวข้องกับผู้ใช้งานหลายบทบาท:
- Admin (ผู้ดูแลระบบ): มีหน้าที่ตั้งค่าและกำหนดค่าสภาพแวดล้อม รวมถึงการจัดเตรียม SageMaker Unified Studio domain และนำเข้าชุดข้อมูล เช่น
airline_delay.csvและตารางairline_featuresไปยัง Project Catalog จากนั้นก็มอบหมายให้ Data Engineer เป็นเจ้าของโปรเจกต์ - Data Engineer (วิศวกรข้อมูล): จะเข้ามาในโปรเจกต์ ใช้เครื่องมือ Visual ETL หรือ Data Processing job เพื่อสร้าง Pipeline ของฟีเจอร์ และสร้างฟีเจอร์ลงในตาราง เช่น
airline_featuresใน Project Catalog หลังจากนั้นก็จะเพิ่ม Metadata เพื่อช่วยให้ค้นหาและกำกับดูแลได้ง่ายขึ้น เมื่อผ่านการตรวจสอบและอนุมัติแล้ว ก็จะเผยแพร่ตารางฟีเจอร์นี้ไปยัง SageMaker Catalog เพื่อให้ทั้งองค์กรเข้าถึงได้ - Data Scientist (นักวิทยาศาสตร์ข้อมูล): จะเปิด ML Project ขึ้นมา ใช้ AI powered search เพื่อค้นหาตารางฟีเจอร์ที่ต้องการใน Catalog และเมื่อพบตาราง
airlines_featuresที่เหมาะสมกับการพัฒนาโมเดลของตน ก็จะส่งคำขอสมัครรับข้อมูล หากไม่ตั้งค่าการอนุมัติอัตโนมัติ ผู้เผยแพร่ข้อมูลจะต้องตรวจสอบและอนุมัติคำขอ หลังจากอนุมัติแล้ว Data Scientist ก็จะเข้าถึงตารางฟีเจอร์ได้ทันทีผ่าน Project Catalog ทั้งจาก Data Explorer และ Jupyter Notebooks สำหรับการเทรนโมเดลและการทดลองต่าง ๆ
กระบวนการทำงานที่เป็นระบบนี้ช่วยให้เกิดการกำกับดูแลฟีเจอร์ที่สอดคล้องกัน ส่งเสริมการทำงานร่วมกัน และลดความซ้ำซ้อนในการทำ Feature Engineering โดยช่วยให้องค์กรนำฟีเจอร์ ML ที่เชื่อถือได้และมีเวอร์ชันไปใช้ซ้ำได้ทั่วทั้งองค์กร
ประโยชน์ที่จับต้องได้
การนำ Offline Feature Store ด้วย SageMaker Unified Studio และ SageMaker Catalog มาใช้งาน จะทำให้องค์กรของคุณได้รับประโยชน์ที่สำคัญหลายอย่าง:
- การกำกับดูแลฟีเจอร์ที่สอดคล้องกัน: ทุกคนใช้ฟีเจอร์ที่มีมาตรฐานเดียวกัน ลดความผิดพลาด
- เร่งการทดลอง ML: Data Scientists ไม่ต้องเสียเวลาสร้างฟีเจอร์เองบ่อยๆ สามารถโฟกัสไปที่การทดลองโมเดลได้เร็วขึ้น
- ลดภาระการดำเนินงาน: ลดงานซ้ำซ้อนและลดความจำเป็นในการบำรุงรักษา Pipeline ฟีเจอร์ที่กระจัดกระจาย
- การนำฟีเจอร์ ML ที่เชื่อถือได้กลับมาใช้ซ้ำทั่วทั้งองค์กร: ช่วยให้ลงทุนครั้งเดียวแต่ใช้งานได้หลายโปรเจกต์
โดยรวมแล้ว โซลูชันนี้ช่วยให้องค์กรสามารถจัดการฟีเจอร์ ML ได้อย่างมีประสิทธิภาพมากขึ้น ทำให้การพัฒนาโมเดลเร็วขึ้น แม่นยำขึ้น และทำงานร่วมกันได้ดีขึ้นมากครับ
อ่านต่อ: เรียนรู้ขั้นตอนการสร้าง Offline Feature Store อย่างละเอียดได้ที่ AWS Blog: Offline Feature Store with SageMaker