BLOGS

พาไปรู้จัก Vertex AI Workbench เครื่องมือสุดเจ๋งของ Data Science สาย Jupyter Notebook!

Thakorn.T • 17/04/2021
Google Cloud Solutions Specialist

สำหรับใครที่ทำงานสาย Data ไม่ว่าจะเป็น Data Scientist หรือ Data Engineer จะอยู่ใน industries ไหน ล้วนคุ้นเคยกับเครื่องมือในการ EDA สำหรับ explore data หรือพัฒนา machine learning model อย่าง Jupyter Notebook ที่ทำให้เราเล่นกับข้อมูลได้ด้วยภาษา R, Python, Spark, Beam หรือเรียกได้ว่าทุกอย่างที่เราต้องการ

Vertex AI คืออะไร?

ก่อนที่เราจะไปรู้จักกับ Vertex AI Workbench อยากพาทุกท่านไปรู้จักกับ Vertex AI กันก่อน ว่าที่มาที่ไปเป็นอย่างไร

Vertex AI คือ managed service ในเรื่องการทำ Machine Learning ตั้งแต่เริ่มต้นพัฒนา, training จนไปถึงการ deploy AI models ต่างๆ ที่อำนวยความสะดวกและง่ายในการทำ MLOps เป็นอย่างดี

ในการทำ MLOps เราอาจจะเริ่มต้นที่ Ingestion นำข้อมูลมา EDA เบื้องต้น หรือเตรียมสำหรับทำโมเดล ซึ่งก็จะมีกระบวนการติด tag หรือทำ Labeling และการทำ Feature Engineering จากนั้นจึง Training, Evaluating จนถึงการ Deploy Model เพื่อนำไปใช้ในงานสำหรับ Prediction ต่อ อาจจะเป็นในลักษณะ Batch Job หรือ Online Prediction ผ่านการเรียก APIs ก็ได้ทั้งนั้น

ในภาพรวมของ Vertex AI เรื่องของการสร้าง Machine Learning Model ต่างๆ Google อำนวยความสะดวกในการ Train มาให้โดยไม่ต้องเขียนโปรแกรมเลย เช่น การทำ Image/Video Object Detection, Image/Video Classification, NLP หรือข้อมูลเชิง Structured Data เป็น Table เพื่อไปทำ use case ทาง business อย่างการทำ Churn Prediction, Fraud Detection, Segmentation, Sales Forecasting โดยที่เราใช้งานผ่าน GUI ง่ายๆ ด้วย Vertex AI AutoML ที่มาพร้อมกับการ Deploy Model ให้เราด้วยเลย ซึ่งย่นระยะเวลาการพัฒนา Model ได้มากเลย เพราะเราไม่ต้องเขียน Python เลือก Model และ Tuning Hyperparameter

แต่หากว่า use case ที่เราใช้ไม่มีในหมวดของ AutoML เราก็สามารถ Custom Model ขึ้นมาได้ อาจจะเป็นการใช้ Library Scikit-Learn, XGBoost หรือทำ Deep Learning ด้วย Tensorflow เราสามารถใช้ Jupyter Notebook ของเราสั่งให้ Training บน Vertex AI Training เพื่อใช้ resource ที่มีประสิทธิภาพสูงในการประมวลผลโดยใช้ GPU หรือ TPU ของ Google ได้เลย

แนวทางสำหรับการทำ Model บน Google Cloud

การทำ model บน Google Cloud เราสามารถทำได้สองแนวทางคือ Low/No code และแบบมีการ coding

หากให้แนะนำวิธีง่ายและเร็วที่สุดในการทำ model เพื่อทันต่อการแข่งขันทางธุรกิจ ก็คือการใช้ AutoML  เพราะเราไม่จำเป็นต้องเขียน code เลยในการสร้าง model เราเพียงแค่เตรียม dataset แล้ว upload ขึ้นไปบน AutoML จากนั้น Google จะทำการ Train Model ให้และเลือก Model ที่ดีที่สุดมาพร้อม Tuning Hyperparameter ให้เราอีกด้วย รวมถึง Deploy Model ให้อยู่ในรูปแบบพร้อมใช้

อีกแนวทางคือมีการ code ซึ่ง Vertex AI ก็จะตอบในทุกๆ ส่วนของกระบวนการสร้าง model ของเรา ซึ่งตอนพัฒนา model หรือการทำ Feature Engineering นั้น ส่วนใหญ่เราจะใช้ Jupyter Notebook บน local ของเราใช่ไหม ซึ่ง resource หรือ CPU, GPU บนเครื่องของเราอาจมีจำกัด ซึ่งเราปิด gap ตรงนั้นด้วย Vertex AI Workbench

Vertex AI Workbench คืออะไร?

Vertex AI Workbench เป็นหนึ่งใน service ของ Vertex AI ซึ่งเป็น Jupyter Notebook ที่เป็น managed service ของ Google  เราไม่จำเป็นต้องดูแลในเรื่องของ infrastructure resources รวมถึงการ provisioning การติดตั้งต่างๆ เพราะ Google จัดการให้หมดแล้ว พูดง่ายๆ คือเรากำลังใช้ Jupyter Notebook ที่รันอยู่บน Google Cloud ไม่ต้องดูแล ไม่ต้องติดตั้งเอง แน่นอนว่าเราจะได้ benefit ในการเรียกใช้ service อื่นๆ บน Google Cloud ได้โดยที่ไม่ต้องกระโดดไปหลายหน้าหลาย console เลย เช่น เราสามารถ query ข้อมูลบน BigQuery หรือเรียก Cloud SDK ผ่านหน้า notebook ของเราได้เลย

Vertex AI Workbench จะ manage resource ต่างๆ ให้ เช่นการขยาย infrastructure บน notebook เราสามารถเพิ่มหรือลดขนาด CPU, Memory ได้ทันทีโดยไม่ต้อง stop/start instance ใหม่ หรือการมี Idle timeout and auto shutdown ที่ช่วย save cost ในด้าน infrastructure ต่างๆ ได้อีก รวมถึงความสามารถที่เรียกว่าถูกใจ Data Scientist คือ Execute Notebook

Notebook Executions on Vertex AI

จากภาพข้างต้นจะสังเกตเห็นว่าเราสามารถ execute notebook ของเราด้วย resource บน Google ได้ 2 แบบดังนี้

  1. One-time execution คือการ execute ครั้งเดียวจบ อาจเพื่อ train model ที่ขนาดใหญ่ใช้เวลานาน process รอบเดียวจบ
  2. Schedule-based recurring executions เป็นการตั้ง schedule อาจะทำเพื่อ re-train model หรือ process ข้อมูลที่เป็นรอบๆ ได้ โดยรอบที่เร็วที่สุดคือราย 1 ชั่วโมง

ความง่ายในการทำ one-time execute หรือ schedule นั้น ทำให้เราพัฒนา notebook ของเรารอบเดียวจบ และนำไปใช้งานได้เลย นอกจากการเขียน model ก็สามารถใช้ใน use case อื่นๆ ได้อีก อาจจะเป็น ad-hoc script ที่เราเขียนด้วย python สามารถแทรกเนื้อหาอื่นๆ ที่อยากอธิบายในโค้ดด้วย markup language เพื่อนำเสนอฝั่ง management ก็ได้ และเราก็ไม่ได้ต้อง pack code หรือ export ออกไปรันบน VM หรือ Container อื่นๆ ที่ต้อง deploy ใหม่หลาย hops ซึ่งนี่ถือว่าเป็น feature ที่เป็นประโยชน์กับทุกๆ คนที่พัฒนางานตัวเองด้วย Jupyter Notebook มากๆ เลย

[ Notebook ที่เราตั้ง schedule ไว้จะปรากฎอยู่ใน tab SCHEDULES  ]

[ Notebook ที่เราสั่ง execution ไม่ว่าจะ one-time หรือแบบ schedule
เมื่อทำงานจะปรากฎใน tab EXECUTIONS ซึ่งเมื่อ execute เสร็จสิ้นเราสามารถดู notebook results ได้ด้วย ]

Conclusion

โดยสรุป notebook นั้นถือเป็นพื้นฐานของงานด้าน Data Science เลย ซึ่งการใช้ notebook ที่ดีและมีประสิทธิภาพสูงบน Google Cloud ก็ช่วยทำให้เราออกแบบและพัฒนางานได้อย่างรวดเร็วและมีประสิทธิภาพ ไม่ใช่เพียงแค่ Vertex AI Workbench เท่านั้น แต่เครื่องมือใน Vertex AI ทุกตัว ล้วนช่วยงานพวกเราได้อย่างมากเลย

สำหรับใครที่สนใจในเรื่องของ Google Cloud Platform หรือ Service อื่นๆ
ด้าน Data Analytics, AI/Machine Learning อาทิ Vision AI, OCR, Text to Speech
Tangerine มีผู้เชี่ยวชาญคอยให้คำปรึกษา สามารถติดต่อได้ที่
อีเมล marketing@tangerine.co.th หรือโทร 094-999-4263 ได้ทันที

สอบถามข้อมูลเพิ่มเติม
Contact Form_TH Sources