คู่มือเปลี่ยนอาชีพ: Machine Learning Engineer คือใคร ต้องเรียนพื้นฐานอะไรบ้าง

machine learning engineer guide

อาชีพ Machine Learning Engineer หรือ “วิศวกร Machine Learning ” อาจจะเป็นอาชีพที่ทุกคนไม่คุ้นเคย และได้ยินไม่บ่อยนัก แต่ก็เป็นอาชีพที่ได้รับความสนใจมากขึ้น เพราะเป็นลูกครึ่งระหว่าง นักวิทยาศาสตร์ข้อมูล (Data Scientist) และ วิศวกรซอฟแวร์ (Software Engineer) เป็นคนกลางสำคัญที่ช่วยให้เกิดเป็น Product ที่มีส่วนผสมในการบรรจุนวัตกรรมของงานดาต้าลงในซอร์ฟแวร์ได้จริงๆ

ในบทความนี้ เราจะมาทำความรู้จักกับอาชีพ Machine Learning Engineer ให้มากขึ้น รวมถึงสกิลที่ต้องเรียนรู้สำหรับอาชีพนี้ และแนะนำคอร์สที่น่าสนใจ เพื่อคนที่สนใจอาชีพด้านนี้จะได้ไปเริ่มศึกษากันได้เลยค่า

มาทำความรู้จักอาชีพ  วิศวกร Machine Learning  กันเลย

Machine Learning Engineer คือใคร อาชีพนี้ทำอะไรบ้าง

Machine Learning Engineer
Machine Learning Engineer ผู้ทำให้โมเดลใช้งานได้จริง [ขอขอบคุณรูปจาก Illustration by Freepik Storyset]

ML Engineer หรือ Machine Learning Engineers เป็นโปรแกรมเมอร์ที่ศึกษาค้นคว้า สร้างและออกแบบระบบ AI ที่รองรับโมเดล Machine Learning และโมเดลอื่นๆที่สามารถรันด้วยตัวเองได้โดยอัตโนมัติ

มักจะเป็นตำแหน่งที่ทำงานในทีม Data Science ขนาดใหญ่ และทำงานร่วมกับตำแหน่งด้านดาต้าอื่นๆ พูดง่ายๆให้เข้าใจ หน้าที่หลักๆของ ML Engineer ก็คือการนำโมเดลมาทดสอบ เพิ่มประสิทธิภาพ (optimize) และสร้าง API เพื่อให้นำไปใช้งานได้จริงๆ

เพื่อนๆหลายคนอาจจะสงสัย มีโมเดลแล้ว ก็จบเลยไม่ได้หรอ ความจริงแล้วการที่เรามีโมเดลแล้วก็ยังไม่ได้แปลว่าจะนำออกไปใช้งานได้เลย เพราะต้องนำไปใช้ในเว็บ แอป หรือระบบต่างๆ แล้วที่นี้เราจะนำออกมาใช้งานได้อย่างไร คำตอบก็คือ ML Engineer นั่นเอง ที่จะสร้าง ดูแล และตรวจสอบ นำโมเดลขึ้นระบบให้เราใช้งานในโปรดักได้

ยกตัวอย่างให้เห็นภาพ ML Engineer จะออกแบบระบบที่สามารถสร้างโมเดลขึ้นมาใหม่ได้โดยอัตโนมัติ ทุกครั้งที่มีการเปลี่ยนแปลง สร้างโมเดลขึ้นมาใหม่ ก็จะใช้ผลที่ดีขึ้น และต่อยอดให้ดีขึ้นในการรันครั้งถัดไป เรียกได้ว่าเป็นการเรียนรู้ของระบบ

ตัวอย่างงานของ Machine Learning Engineer

ตัวอย่างหนึ่งที่รู้จักกันดีก็คือ Recommendation อัลกอริทึมของ Netflix Amazon และบริการอื่นๆที่คอยแนะนำให้กับลูกค้า (Customer Facing) ทุกๆครั้งที่ลูกค้าดูหนัง หรือทำการค้นหาสินค้า ระบบจะทำการเพิ่มข้อมูลลงในอัลกอริทึม และยิ่งลูกค้าอยู่บนบริการนานๆ ข้อมูลก็จะเพิ่มขึ้นมาเรื่อยๆ ทำให้อัลกอริทึมของเราทำงานได้ดี มีความแม่นยำสูง สามารถแนะนำลูกค้าได้โดนใจ โดยที่ไม่ต้องคนมาบอก

อีกตัวอย่างหนึ่งคือ Virtual Assistants อย่าง Siri ของแอปเปิล Alexa ของอเมซอน ซึ่งใช้โมเดล Machine Learning อย่าง NLP (Natural Language Processing) และเก็บข้อมูลเพื่อประมวลผลว่าคนๆนั้นกะลังพูดว่าอะไร มีความหมายว่าอย่างไรเป็นต้น โดยเน้นการทำให้โมเดลเข้าใจความหมายของภาษา และแปลออกมาได้อย่างแม่นยำมากที่สุด

นอกจากนี้ยังรวมถึงการพัฒนารถยนต์ไร้คนขับ โดยทำการค้นคว้า ออกแบบ และนำโมเดลขึ้นระบบ (Deploy) เน้นเทคโนโลยี Computer Vision และ Deep Learning เพื่อทำให้เครื่องสามารถรับรู้ได้ว่าสิ่งต่างๆ รอบตัวเป็นอย่างไร และเครื่องไปบนถนนได้อัตโนมัติอย่างปลอดภัย

Machine Learning Engineer vs Data Scientist

Machine Learning Engineer Collaboration
Machine Learning Engineer Team [ขอขอบคุณรูปจาก Illustration by Freepik Storyset]

เมื่อเพื่อนๆพอจะมองเห็นภาพกันแล้ว เราลองมาดูความแตกต่างของ อาชีพที่มีความเกี่ยวข้องกับข้อมูลกันอีกครั้ง ทั้ง Machine Learning Engineer, Data Scientist และ Data Analyst โดยที่เราสามารถดูได้จากผลลัพธ์หรือ Output ที่ทั้งสามทำออกมา

  • Data Analyst (นักวิเคราะห์ข้อมูล) ทำหน้าที่วิเคราะห์ข้อมูลเพื่อที่จะแบ่งปันเรื่องราว ข้อมูลเชิงลึก (Insight) ที่สามารถนำไปใช้ในการประกอบการตัดสินใจได้ และมีผู้ที่สามารถนำไปใช้และส่งผลต่อการตัดสินใจเขิงธุรกิจ
  • ML Engineer (วิศวกร ML) ทำหน้าที่ออกแบบ และสร้างระบบที่สามารถรันได้โดยอัตโนมัติ โดยมีข้อมูลและโมเดล Machine Learning เป็นส่วนประกอบเพื่อให้ใช้คนในการกำกับดูแลน้อยที่สุด เป็นเหตุผลว่าทำไมสกิลด้านวิศวกรซอร์ฟแวร์ถึงมีความสำคัญมากสำหรับ ML Engineer
  • Data Scientist (นักวิทยาศาสตร์ข้อมูล) ทำหน้าที่สร้างโมเดล Machine Learning ที่แก้ปัญหาหาแนวโน้มหรือการทำนายอนาคต โดยเน้นการออกแบบและสร้างโมเดลจากความรู้ด้านสถิติ เพื่อให้ความแม่นยำสูง

พอจะเห็นภาพชัดเจนกันบ้างหรือยังคะว่า ML Engineer ทำอะไรบ้างในทีม เราลองมาดูต่อกันค่ะว่าเราต้องมีความรู้ด้านไหนบ้างถึงจะพอทำงานแนวนี้ได้

อยากเป็น Machine Learning Engineer ต้องมีความรู้พื้นฐานด้านไหน

ในเมื่อหน้าที่หลักของ ML Engineer คือการรวมทักษะด้านข้อมูลเข้ากับพื้นฐานการออกแบบ สร้างโมเดล Machine Learning และการเตรียมระบบให้พร้อม ก็ควรจะมีความรู้จากสองฝั่ง ทั้ง Data Science และ Software Engineer ทั้งนี้ก็ขึ้นอยู่กับความรับผิดชอบ และหน้าที่ ที่แตกต่างกันไปตามองค์กร พื้นฐานที่สำคัญมีดังนี้

พื้นฐานวิทยาการคอมพิวเตอร์ และการเขียนโปรแกรม

พื้นฐานวิทยาการคอมพิวเตอร์ (Computer Science) สำคัญที่ ML Engineer ควรรู้มี:

  • โครงสร้างข้อมูล (Data Structures) – โครงสร้างข้อมูลแบบสแตก (Stacks) โครงสร้างข้อมูลแบบคิว (Queues) โครงสร้างข้อมูลแบบอาเรย์หลายมิติ (Arrays) โครงสร้างข้อมูลต้นไม้ โครงสร้างข้อมูลแบบกราฟ
  • อัลกอริทึม (Algorithms) – การค้นหา (Search) การจัดลำดับ (Sorting) การหาค่าเหมาะสมที่สุด (Optimization) และกำหนดการพลวัต (Dynamic Programming) เป็นต้น
  • ความสามารถในการคำนวณและความซับซ้อน (Computability & Complexity) – ปัญหาของการแก้ปัญหา P vs. NP, กลุ่มปัญหา NP-complete, big-O notation และอัลกอริทึมการประมาณ
  • สถาปัตยกรรมคอมพิวเตอร์ (Computer Architecture) – หน่วยความจำ แคช แบนด์วิธหรือความเร็วในการรับส่งข้อมูล ภาวะติดตาย (Deadlocks) การประมวลผลแบบกระจาย และอื่นๆ

ML Engineer ต้องมีความรู้พื้นฐานเหล่านี้ในการในไปใช้ ต่อยอด และปรับเปลี่ยนไปตามปัญหาที่เกิดขึ้น เมื่อทำการเขียนโปรแกรม

ความน่าจะเป็น และสถิติ

Probability
Probability [ขอขอบคุณรูปจาก Unsplash]
  • ทฤษฎีของความน่าจะเป็น (Probability) – ความน่าจะเป็นแบบมีเงื่อนไข (Conditional Probability) กฎของเบส์ (Bayes Rule) Likelihood รวมถึง Independence และเทคนิคที่ได้จากทฤษฎีเหล่านั้น เช่น ทฤษฎีความน่าจะเป็นแบบเบย์ กระบวนการตัดสินใจของมาร์คอฟ (Markov Decision Process) แบบจำลองมาร์คอฟแบบซ่อนเร้น (HMM) ซึ่งเป็นหัวใจสำคัญในอัลกอริทึม ML ทั้งหลายที่สามารถจัดการกับความไม่แน่นอนในโลกนี้ได้
  • สถิติ (Statistics) – สามารถนำค่าตัวชี้วัดค่าต่างๆ เช่น ค่าเฉลี่ย มัธยฐาน ค่าความแปรปรวน Distributions เช่น การแจกแจงเอกรูป (Uniform) การแจกแจงแบบปกติ (Normal) การแจกแจงแบบทวินาม (Binomial) การแจกแจงแบบปัวส์ซอง (Poisson) และ วิธีการการวิเคราะห์ เช่น ANOVA และ การทดสอบสมมติฐาน มาใช้ในการสร้าง ตรวจสอบโมเดลจากข้อมูลโมเดล ML เนื่องจากหลายๆโมเดลเป็นผลมาจากการต่อเติมมาจากกระบวนการสร้างโมเดลสถิติ

การออกแบบโมเดลและ ประเมินผล

  • การออกแบบโมเดล (Data Modelling) – โดยเริ่มจากการประเมินว่าชุดข้อมูลที่มีอยู่นั้นมีโครงสร้างอย่างไรเพื่อที่จะหาแบบแผนที่น่าสนใจ เช่น การดูสหสัมพันธ์ (Correlations) การแบ่งกลุ่มข้อมูล (Clusters) และ เวกเตอร์ลักษณะเฉพาะ (Eigenvectors) เป็นต้น นอกจากนี้ยัง ต้องคิดคำนวณว่าเราสามารถทำอะไรกับข้อมูลที่มีอยู่ได้ เช่น การแบ่งแยกประเภท (Classification) การถดถอย (Regression) และ การตรวจจับข้อมูลผิดปกติ (Anomaly Detection) เป็นต้น
  • การประเมินผล (Evaluation) – ข้อสำคัญหลังจากการสร้างโมเดลคือ เราต้องประเมินให้ได้ว่าโมเดลที่เราสร้างใช้งานได้ดีขนาดไหน โดยเลือก ความแม่นยำ (Accuracy) หรือตัววัด Error ให้เหมาะสมกับปัญหาที่เราสร้างโมเดลขึ้นมาจัดการ เช่น ใช้ log-loss สำหรับปัญหา Classification ใช้ sum-of-squared-errors สำหรับปัญหา Regression และเรียนรู้วิธีการประเมินผลเพิ่มเติมเพื่อให้โมเดลดีขึ้นไปอีกจาก การแบ่งชุดข้อมูลเทรนกับเทส Cross-validation แบบต่างๆเป็นต้น

ML โมเดล และ ไลบรารี่

Machine Learning
Machine Learning [ขอขอบคุณรูปจาก Unsplash]
  • Machine Learning และไลบรารี่ – การเลือกใช้ไลบรารี่ แพคเกจ และ API อย่าง scikit-learn, Theano, Spark MLlib, H2O หรือ TensorFlow ในการสร้าง ML โมเดล รวมถึงการเลือกใช้โมเดลที่เหมาะสมด้วย เช่น ต้นไม้ตัดสินใจ (Decision Tree) การจำแนกข้อมูลด้วยวิธีเพื่อนบ้านใกล้เคียง (Nearest Neighbor) โครงข่ายประสาทเทียม (NN) ซัพพอร์ตเวกเตอร์แมชชีน (SVM) และ โมเดลEnsemble เป็นต้น
  • การพัฒนาโมเดล – วิธีการพัฒนาโมเดลให้เหมาะกับข้อมูลที่มี การวิเคราะห์การถดถอย (Linear Regression) การลดฟังก์ชันค่าใช้จ่าย (Gradient Descent) ขั้นตอนวิธีเชิงพันธุกรรม (Genetic Algorithms) เทคนิคBagging เทคนิคBoosting หรือวิธีการอื่นๆ และเข้าใจว่า hyperparameters แต่ละตัวมีผลต่อการพัฒนาโมเดลอย่างไร
  • ข้อดีข้อเสียของโมเดล – เข้าใจถึงข้อดี และข้อเสียของแต่ละโมเดล และค่าต่างๆ โดยดูจากประเมินจาก Bias และ Variance โดยที่โมเดลในฝันของเราคือ การมี Bias น้อยๆและ Variance ต่ำ Overfitting และ Underfitting โดยที่ดูว่าโมเดลเราใช้งานจริงได้มากน้อยแค่ไหน

วิศวกรซอร์ฟแวร์ และการออกแบบระบบ

  • เนื่องจากผลงานสุดท้ายที่ออกมานั้นเป็นระบบ หรือซอร์ฟแวร์ ที่เป็นส่วนประกอบเล็กๆส่วนหนึ่งของทั้ง Product และบริการ เลยต้องเข้าใจว่าส่วนประกอบหลายส่วนเหล่านั้นทำงานด้วยกันอย่างไร เชื่อมต่อกันยังไง ใช้พวก ไลบรารี่อย่าง REST APIs หรือคำสั่ง database และสร้างพื้นที่ร่วม (Interfaces) สำหรับให้ส่วนประกอบของเราและส่วนอื่นๆใช้งานด้วยกันได้
  • การออกแบบที่ดีจะทำให้เราไม่เจอปัญกาคอขวดในภายหน้า และทำให้อัลกอริทึมสเกลได้ดี สามารถรองรับปริมาณข้อมูลที่ไหลเข้ามาเพิ่มได้ วิธีการทางวิศวกรซอฟแวร์อย่างการวิเคราะห์ความต้องการระบบ (Requirements Analysis) การออกแบบระบบ (System Design) การแบ่งโปรแกรมย่อยๆโดยให้ Interface เหมือนเดิม (Modularity) การคุมเวอร์ชั่น (Version Control) การทดสอบ (Testing) และการทำเอกสารประกอบ (Documentation) ต้องให้ความสำคัญกับ ผลิตภาพ (Productivity) การทำงานร่วม (Collaboration) คุณภาพ (Quality) และ การดูแลรักษาระบบให้คงที่ (Maintainability)

เงินเดือนพื้นฐานของ ML engineer ประมาณกี่บาท

ML Engineer Salary
Machine Learning Engineer ได้เงินเท่าไหร่  [ขอขอบคุณรูปจาก Illustration by Freepik Storyset]

มาคุยกันถึงเรื่องเงินเดือนของอาชีพ วิศวกร ML กันบ้างนะคะ

จากข้อมูลเงินเดือน วิศวกร ML ในไทยจากการประกาศงานในเว็บไซต์นั้น สรุปผลมาว่าเงินเดือนสำหรับ วิศวกร ML ในไทยที่เป็น Entry Level อยู่ที่ 30,000 – 40,000 บาท ต่อเดือน

สำหรับคนที่มีประสบการณ์ 1 -5 ปี ทางทีมงาน DataTH ได้ไปลองค้นคว้าจากเว็บประกาศหางานในไทยมา เงินเดือนของ วิศวกร ML อยู่ที่ประมาณ 85,000 บาท ขึ้นไปอยู่กับ industry และประสบการณ์

ส่วนในตลาดต่างประเทศ ข้อมูลจากเว็บไซต์ Payscale ซึ่งรวบรวมเงินเดือนของอาชีพ วิศวกร ML จากตลาดงานในอเมริกา สรุปผลมาว่าเงินเดือนสำหรับ วิศวกร ML ที่มีประสบการณ์ 0-1 ปีจะอยู่ที่ $93,000 ต่อปี (3 ล้านบาท) และสำคัญผู้ที่มีประสบการณ์ 5 ปีขึ้นไป จะอยู่ที่ $138,000 ต่อปี (4.5 ล้านบาท)

แนะนำคอร์สสำหรับ ML engineer

เรารวบรวมคอร์สที่น่าสนใจสำหรับ ML engineer มาให้ด้านล่างนี้ สามารถเลือกเรียนด้านที่ต้องการได้อย่างจุใจกันเลยค่ะ

ทางทีม DataTH เลือกมาคอร์สของทั้ง Coursera และ Udemy

ซึ่ง Udemy มีจัดโปรโมชั่นบ่อยมาก จะเหลือประมาณ 300 – 500 บาทต่อคอร์ส แต่ละคอร์สมีจำนวนชั่วโมงเยอะมาก เรียนกันเต็มอิ่มเลยทีเดียว

ส่วน Coursera เราลงเรียนฟรีแบบไม่เอา Certificate (เรียกว่าการ Audit) ได้ครับ แต่ถ้าคอร์สไหนดี ผมแนะนำให้สมัครรายเดือนครับ พันกว่าบาทเอง บางทีเป็นคอร์สจาก Google ได้ Certificate ไปสมัครงานได้สบาย คุ้มมาก

ชื่อคอร์สรายละเอียดลิงค์

ML Pipelines on Google Cloud

  • สำหรับคนที่มีพื้นฐานด้าน ML และการ Deploy มาก่อน
  • เน้นเรียนเรื่องการสร้าง Data pipeline บน Google Cloud ผ่าน tensorflow, pytorch, scikit learn, และ xgboost
ดูคอร์สนี้

MLOps (Machine Learning Operations) Fundamentals

  • เหมาะสำหรับคนที่อยากจะเริ่ม MLOps แนะนำเรื่องมือ วิธีการ Deploy ประเมิน ดูแลระบบ ควบคุม และสร้างระบบ ML บน Google Cloud
  • มีแบบฝึกหัดให้ลงมือจริง เช่น ด้าน CI/CD
ดูคอร์สนี้

Production Machine Learning Systems

  • สำหรับคนที่มีพื้นฐานด้าน SQL Python และ TensorFlow มาก่อน
  • เน้นการสร้างระบบ ML ในสภาวะที่นำโค้ดไปใช้งานจริง (Production Environments)
ดูคอร์สนี้

MLOps Fundamentals: CI/CD/CT Pipelines of ML with Azure Demo

  • ได้เรื่องตั้งแต่พื้นฐานของ MLOps ประโยชน์ และการนำไปใช้
  • เครื่องมือของ MLOps และได้ทำ CI/CD MLOps pipeline แบบครบวงจร
ดูคอร์สนี้

Testing and Monitoring Machine Learning Model Deployments

  • เรียนรู้เรื่องวิธีการทดสอบระบบ ML หลากหลายวิธี
  • วิธีการทำ Shadow Deployments
ดูคอร์สนี้

Data Science/MachineLearning Project Deployment Mastery

  • ML แบบครบวงจร ตั้งแต่โมเดลพื้นฐาน ไปจนถึงแบบแอดวานซ์ และทำการ Deploy
  • เรียนรู้วิธีจัดการข้อมูลในเคสที่ไม่บาลานซ์ ทำ EDA และลงมือทำโปรเจคจริง
ดูคอร์สนี้

Machine Learning Engineering for Production (MLOps) Specialization

  • เน้นการออกแบบระบบ ML ตั้งแต่ต้นจนจบ
  • วิธีการสร้าง Data pipelines และได้เห็น Data lifecycle
ดูคอร์สนี้

มาเรียนรู้จาก ML engineer ตัวจริงว่าต้องทำอะไรบ้าง

หลังจากที่เรารู้จักอาชีพ ML engineer กันไปแล้ว ถ้าสนใจงานด้านนี้จริง ๆ และอยากเห็นภาพมากขึ้นว่าคนที่ทำอาชีพนี้ในบริษัทจริงเค้าทำอะไรบ้าง ทางทีม DataTH เคยสัมภาษณ์คนไทยที่ทำด้าน ML engineer ไว้ด้านล่างนี้แล้วค่ะ สามารถคลิกอ่านได้เลย

หวังว่าบทความนี้จะช่วยให้เพื่อน ๆ รู้จักกับอาชีพ ML engineer เพิ่มขึ้นนะคะ และหากบทความนี้มีประโยชน์ อยากรบกวนช่วยแชร์ให้คนอื่น ๆ ได้มาอ่านบทความนี้ด้วยค่า

บทความนี้เราตั้งใจเขียนมาก และหวังว่าจะมีคนที่ได้ประโยชน์จากบทความนี้เพิ่มขึ้นไปเรื่อย ๆ :)

ถ้าชอบเนื้อหาแนวนี้ ติดตามบทความดี ๆ ด้าน Data และวีดิโอสนุก ๆ ดูชิล ๆ แล้วได้ความรู้กันได้ที่ Facebook Page: DataTH และ Youtube Channel: Data Science ชิลชิล ครับ แล้วเจอกันนะคะ

ทีมงาน DataTH เราทำงานกันเต็มที่ เพื่อสร้างคอนเท้นท์ดี ๆ มีสาระประโยชน์ ให้กับทางผู้อ่านเข้าถึงได้ฟรี บนเว็บไซต์ และบน Youtube Channel สินค้าและบริการที่ทีมงานแนะนำทั้งหมด มาจากความเห็นของทีมงาน เราแนะนำเฉพาะของดีที่เราเห็นว่ามีประโยชน์จริงเท่านั้นครับ

หากคุณชอบเนื้อหาแบบนี้ และอยากสนับสนุนให้ทีมงานมีแรงสร้างคอนเท้นท์ดี ๆ เพิ่ม ในอนาคต สามารถซื้อสินค้าหรือบริการผ่านลิงค์บนบทความของเราได้ สำหรับบางลิงค์ ทางทีมงานจะได้รับส่วนแบ่งเล็กน้อย ซึ่งจะไม่เป็นการเพิ่มภาระค่าใช้จ่ายให้กับทางผู้อ่านครับ ขอบคุณมากเลยนะครับที่ให้ความสนับสนุนทีมงาน DataTH มาโดยตลอด

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

บทความที่เกี่ยวข้อง