เมื่ออาทิตย์ที่ผ่านมา แอดได้มีโอกาสไปร่วมใน Live Data Talk กับแอดบอยด์ เพจ Bigdata RPG ครับ ซึ่งหัวข้อที่เราคุยกัน คือ เรื่องของ Cloud Computing กับงาน Data Science
สไลด์รอบนี้ใส่เนื้อหากันแบบจัดเต็มมากครับ ได้สาระ และยิงมุกไร้สาระสอดแทรกกันตลอดเวลา สนุกมากครับ
Live นี้เราคุยกันชิล ๆ (แต่มีสาระนะ) ซึ่งประเด็นที่เรายกมาคุยกันมีคร่าว ๆ ประมาณนี้ครับ
- Cloud Computing คืออะไร
- Cloud ดีกว่าการใช้ Server แบบเดิม (On-premise) ตรงไหน
- บริการของ Cloud ในสำหรับคนทำ Data Science / Machine Learning มีอะไรเด็ด ๆ บ้าง
เชิญชมวีดิโอตัวเต็มด้านล่างนี้ได้เลยคร้าบ ขอขอบคุณแอดบอยด์ที่อัพโหลดมาให้เราชมกันด้วยครับ
และถ้าท่านใดชอบอ่านมากกว่า แอดมีสรุปให้บางส่วนด้านล่างวีดิโอนี้ครับ (แต่เพื่อความครบ ยังแนะนำให้ดูวีดิโอนะ)
มารู้จักกับ Cloud Computing
Cloud Computing คืออะไร
สรุปแบบสั้น ๆ Cloud Computing คือ การที่บริษัทผู้ให้บริการ Cloud เช่น Google, Amazon, หรือ Microsoft นำ Data Center ของตัวเองมาแบ่งให้ลูกค้าทั่วไปมาเช่าใช้
แอดเพิร์ธ @ DataTH
การมาของ Cloud Computing ทำให้บริษัทจำนวนมากในปัจจุบัน เปลี่ยนจากการที่ต้องซื้อ Server ราคาแพง ๆ มาตั้งไว้เอง (หรือที่เราเรียกว่า On-Premise Server) มาเป็นการเช่าจากผู้ให้บริการ Cloud แทนครับ
ซึ่งข้อดีที่เห็นได้ชัดมาก คือ เงินไม่จมไปกับการลงทุนด้าน Hardware และมีความยืดหยุ่นในการปรับเปลี่ยนไปเช่า Server ขนาดที่เหมาะกับธุรกิจในขณะนั้น ๆ
ท่านใดที่อยากรู้จักกับ Cloud Computing มากขึ้นว่ามีข้อดียังไง และเราเอามาใช้ทำงาน Data Science อย่างไร อ่านต่อได้ที่บทความด้านล่างเลยนะครับ
ราคา ค่าใช้จ่ายของ Cloud เป็นอย่างไร
การคิดค่าใช้จ่ายของ Cloud จะแตกต่างกับการทำ On-Premise Servers อย่างสิ้นเชิงครับ
Cloud จะเก็บเงินแบบเป็นรายเดือน และจ่ายตามที่ใช้ ซึ่งเรามองว่าเป็นค่าใช้จ่ายในการทำงาน (Operation Expenditure – OpEx)
ส่วน On-Premise Servers จะเป็นการลงทุนก้อนใหญ่เพื่อซื้อ Server เข้ามาในช่วงแรก ซึ่งเราเรียกว่าเป็นค่าใช้จ่ายในการลงทุน (Capital Expenditure – CapEx) แล้วค่อย ๆ จ่าย OpEx เป็นพวกค่ารับฝากเซิร์ฟเวอร์, ค่าไฟ, ค่ารักษาความปลอดภัย (เช่น กล้องวงจรปิดใน Data Center) ฯลฯ
เพราะฉะนั้น เราจะเห็นได้ว่า Cloud ช่วยให้บริษัทเปิดใหม่ หรือ Startup ไม่ต้องลงทุนตอนเริ่มต้นมากเกินไปด้วยครับ ซึ่งเป็นสิ่งที่บริษัท Startup ต้องการ
ทีนี้เราก็รู้จักกับ Cloud Computing กันแล้วครับ ต่อไปเราจะมาถึง Highlight นั่นก็คือ..
บริการด้าน Data Science / Machine Learning บน Cloud
มีบริการอะไรให้ใช้บ้าง
มีเยอะมากครับ ตั้งแต่บริการที่ใช้ง่าย ๆ ไม่ต้องมีความรู้ Data Science เยอะก็ใช้งานได้ ไปจนถึงบริการที่เหมาะกับ Data Scientist ที่ต้องการสร้างโมเดลขึ้นมาใช้เองเลยครับ
โดยเราแบ่งบริการออกเป็น 3 ระดับได้ตามความสามารถด้าน Data Science ของผู้ใช้ ดังนี้ครับ
- Machine Learning API – บริการที่เราสามารถใช้โมเดลที่ Cloud เจ้าต่าง ๆ สร้างมาให้พร้อมใช้เรียบร้อยแล้ว แค่ส่งข้อมูลเข้าไป ก็จะได้รับคำตอบออกมาเลย บริการแบบนี้ไม่จำเป็นต้องใช้ความรู้ Data Science เลยครับ
- AutoML – บริการที่ให้เรานำโมเดลที่ Cloud เจ้าต่าง ๆ สร้างไว้แล้ว เอามาเทรนเพิ่มโดยใส่ข้อมูลที่เรามีอยู่เพิ่มเข้าไป เพื่อทำให้โมเดลเหมาะกับธุรกิจของเรามากขึ้น บริการแบบนี้เหมาะกับคนที่เข้าใจด้าน Data Science ในระดับหนึ่ง หรือคนที่ต้องการความเร็วในการสร้างโมเดล (และมีเงินจ่าย T_T)
- Machine Learning Platform – บริการที่เราสามารถมาสร้างโมเดลใหม่ตั้งแต่ต้น หรืออัพโหลดโมเดลที่เราสร้างไว้แล้วเข้าไป เพื่อให้บริการนี้นำไปสร้าง API (หรือที่เราเรียกว่าการ Deploy) ออกมาให้พร้อมใช้งาน บริการแบบนี้เหมาะกับคนที่เข้าใจด้าน Data Science ในระดับสูง และสามารถเขียนโปรแกรมสร้างโมเดลเองได้
หากต้องการเห็นตัวอย่างของ Machine Learning API และ AutoML สามารถดูในวีดิโอได้เลยนะครับผม จะมีตัวอย่าง Input และ Output ให้ดูกันครับ
สำหรับ Machine Learning Platform มีตัวอย่างหนึ่งที่น่าสนใจมากครับ นั่นคือ
Databricks: Machine Learning Platform บน Cloud
Databricks เป็น Machine Learning Platform ที่กำลังได้รับความนิยมมากขึ้นเรื่อย ๆ ในปัจจุบันครับ และรองรับบน Cloud เจ้าใหญ่ ๆ นั่นคือ AWS และ Azure (บน Azure นี่ใช้ง่ายมาก คลิกสองคลิกก็เปิดใช้งานได้แล้ว)
จุดขายหลักของ Databricks คือ การทำตัวเป็นสถานที่ที่ทุกคน ไม่ว่าจะเป็น Data Engineer, Data Scientists, ML Engineers, หรือ Data Analysts สามารถทำงานร่วมกันได้ครับ
จากรูปด้านบน จะเห็นว่า Databricks มีหลายระบบรวมกันอยู่ ไม่ว่าจะเป็น Apache Spark, Delta Lake, และ ML Flow ทำให้สามารถดึงข้อมูลมาทำ Machine Learning ได้สะดวกรวดเร็ว และครบจบใน Databricks เลยครับ
นอกจากนั้นยังมีการเชื่อมต่อกับระบบภายนอก เช่น Tableau, Qlik, PowerBI, และ Looker เพื่อให้นำข้อมูลออกไปวิเคราะห์ต่อได้ง่ายด้วยครับ
นอกจากนั้น ยังมีฟีเจอร์ Databricks Notebook ที่แอดชอบมาก ๆ เลยครับ มารู้จักฟีเจอร์นี้กัน
Databricks Notebook: Notebook สุดยืดหยุ่น ที่รองรับการเขียนแทบทุกภาษา
สำหรับใครที่เคยศึกษาด้าน Data Science มาก่อน น่าจะเคยได้ลองใช้ Jupyter Notebook หรือ Google Colabs กันมาบ้างครับ ซึ่งเป็นการเขียนโค้ดแยกเป็นกล่อง ๆ เพื่อให้วิเคราะห์ข้อมูลแยกส่วนได้ง่ายขึ้น
Databricks Notebook มีหน้าตาคล้ายกับ Jupyter Notebook เลยครับ แต่ฟีเจอร์เยอะกว่ามาก ซึ่งฟีเจอร์ที่เด่น ๆ คือ
ฟีเจอร์ในการรองรับหลายภาษา ไม่ว่าจะเป็นคนที่ถนัดเขียน SQL เพื่อดึงข้อมูล หรือเขียน Python เพื่อใช้ Spark ทำความสะอาดข้อมูล ก็สามารถทำงานร่วมกันได้บน Databricks Notebook เดียวกันครับ
นอกจากนั้น ยังพลอตกราฟจากข้อมูลได้ด้วย แปลว่าขอแค่รู้ SQL ก็ทำกราฟดูง่าย ๆ จากข้อมูลที่เราต้องการได้แล้วครับ
ฟีเจอร์ในการสร้าง Dashboard นอกจากการพลอตกราฟแล้ว ด้านซ้ายในรูปด้านบนก็จะเห็นได้ว่าเราสร้าง Dashboard ได้จากบน Notebook เลยครับ สะดวกมาก ๆ กับการให้ Data Analyst เข้ามาทำ Dashboard ให้กับคนที่ทำงานด้าน Business
ฟีเจอร์ในการทำงานร่วมกัน บน 1 Notebook สามารถทำงานพร้อมกันได้หลายคนครับ และสามารถส่ง Comment กันบนโค้ดแต่ละบลอคได้ด้วย ทำให้ทำงานเป็นทีมได้สะดวกขึ้นมาก ๆ ครับ
จะเห็นได้ว่าหลายฟีเจอร์จะชูเรื่องของการทำงานร่วมกัน หรือเป็น Unified Data Platform ตามเป้าหมายของ Databricks นั่นเองครับ
สรุป: Cloud Computing มีข้อดี – ข้อเสียอย่างไร
เราจะเห็นได้ว่า Cloud Computing มีประโยชน์กับงาน Data Science และ Machine Learning มากครับ
สรุปข้อดีของ Cloud ที่เราเห็นได้จากบทความนี้:
- ใช้เงินลงทุนน้อย
- สร้างระบบที่ต้องการได้รวดเร็ว
- หากมีคนใช้เยอะในอนาคต ก็สามารถทำให้รองรับคนเยอะได้ง่าย
- มีบริการที่ช่วยให้งาน Data Science / Machine Learning ในทีมสะดวกขึ้นมาก
ส่วนข้อเสียของ Cloud หลัก ๆ เลย คือ… Vendor Lock-in ซึ่งขออธิบายให้ฟังสักเล็กน้อยครับ
Vendor Lock-in เป็นการที่เราผูกกับผู้ให้บริการคนใดคนหนึ่งมากเกินไปจนทำให้ย้ายไปผู้ให้บริการคนใหม่ยาก เช่น ถ้าเราใช้บริการที่มีเฉพาะบน Cloud ใด Cloud หนึ่งมากเกินไป เราก็จะย้ายไป Cloud อื่นยาก เพราะไม่มีบริการนั้นบน Cloud อื่นนั่นเอง
ตัวอย่างที่ใกล้ตัวของ Vendor-lockin ก็เหมือนกับผู้ให้บริการโทรศัพท์มือถือ
เช่น ถ้าเราซื้อโทรศัพท์พร้อมโปรโมชั่นที่ติดสัญญา 12 เดือนกับผู้ให้บริการมือถือรายใดรายหนึ่ง และเผอิญว่าโทรศัพท์เครื่องนั้นใช้ได้เฉพาะสัญญาณของผู้ให้บริการมือถือรายนั้นด้วย เราก็จะไม่สามารถย้ายไปผู้ให้บริการมือถืออีกเจ้าได้สะดวกครับ
แอดเพิร์ธ @ DataTH
หวังว่าบทความนี้จะทำให้ทุกท่านเข้าใจเรื่องของ Cloud ขึ้นไม่มากก็น้อยครับผม :)
และถ้าท่านใดอ่านแล้วสนใจด้าน Cloud อยากเรียนการใช้ Cloud กับงาน Data แบบลงมือทำจริง
ขอแนะนำให้ลองมาเรียนคอร์ส Road to Data Engineer ด้วยกันครับ เป็นคอร์สที่ปูพื้นฐานให้ตั้งแต่เริ่มต้น (ไม่เคยทำงานด้านนี้มาก่อนก็เรียนได้) และได้ลองสร้าง Data Pipeline บน Cloud ตั้งแต่ต้นจนจบ
คอร์สนี้สอนโดย Certified Google Cloud Data Engineer (แอดนั่นเอง แฮ่) และมีแอดฝน ซึ่งเป็น Machine Learning Engineer คนไทยที่ได้รับ Certificate จาก Google Cloud มากที่สุดในปี 2019
ดูรายละเอียดได้ที่นี่เลยนะคร้าบ แล้วมาเรียนด้วยกัน :D
สำหรับท่านที่ใช้ Facebook: หากอยากเรียนรู้ด้าน Data Science / Data Engineering มากขึ้น อัพเดทข่าวสารใหม่ ๆ สามารถติดตามบทความใหม่ ๆ ได้ที่เพจ DataTH เลยนะครับผม
สุดท้ายนี้ ขอขอบคุณแอดบอยด์ Bigdata RPG ที่ชวนไปคุยด้วยนะคร้าบ สนุกมาก ๆ เลย