Machine Learning ในสภาพแวดล้อมการใช้งานจริง (คอร์ส CMU)
(mlip-cmu.github.io)- คอร์ส 17-445/17-645/17-745 Machine Learning in Production / AI Engineering ภาค Spring 2025 ของ CMU ครอบคลุมกระบวนการทำให้โมเดล ML กลายเป็นผลิตภัณฑ์ซอฟต์แวร์ที่นำไป deploy และดำเนินงานจริงได้
- แกนหลักคือ ความเข้าใจร่วมกัน ที่ช่วยให้นักวิทยาศาสตร์ข้อมูลและวิศวกรซอฟต์แวร์ทำงานร่วมกันได้ โดยเชื่อมโยง requirements, design, deployment, operations และ quality assurance ภายใต้สมมติฐานว่าโมเดลอาจผิดพลาดได้
- เนื้อหาครอบคลุมอย่างกว้างขวาง ทั้งการเตรียมรับมือการทำนายที่ผิดพลาด, MLOps, A/B testing และ canary release, การตรวจจับคุณภาพข้อมูล·concept drift·feedback loop, testing·debugging, fairness·privacy·safety
- นักศึกษาจะสร้าง·deploy·ประเมิน·บำรุงรักษา บริการแนะนำภาพยนตร์ระดับผู้ใช้ 1 ล้านคน เป็น group project และได้ฝึกใช้ Kafka, Jenkins, Prometheus, Grafana, Docker เป็นต้น
- คาดหวังว่ามีประสบการณ์ ML พื้นฐานและความสามารถด้าน programming แต่ ไม่จำเป็นต้องมีประสบการณ์ software engineering; เอกสารบรรยาย·งานมอบหมาย·ตำราเรียนเปิดสาธารณะ สามารถใช้สำหรับเรียนด้วยตนเองและเป็นสื่อการสอนได้
เป้าหมายและกลุ่มเป้าหมายของคอร์ส
- Machine Learning in Production / AI Engineering เป็นคอร์สที่ครอบคลุมขั้นตอนหลังจากการสร้างการทำนายด้วยโมเดล ML หรือ prompt
- แปลงโมเดลให้เป็นผลิตภัณฑ์และ deploy สู่สภาพแวดล้อมจริง
- สร้างความเชื่อมั่นด้านคุณภาพ
- ดำเนินงานและบำรุงรักษาในระดับ scale
- คอร์ส Spring 2025 ออกแบบมาสำหรับนักศึกษาที่มีประสบการณ์ด้าน data science ในระดับหนึ่ง
- เช่น เคยเรียนคอร์ส ML, มีประสบการณ์ใช้
sklearn - คาดหวังว่ามีพื้นฐานการเขียนโปรแกรม Python และการใช้ Unix shell
- ไม่ต้องมี พื้นฐาน software engineering เช่น testing, requirements, architecture, process หรือประสบการณ์ทำงานเป็นทีม
- เช่น เคยเรียนคอร์ส ML, มีประสบการณ์ใช้
- ในอนาคตคอร์สนี้มีกำหนดเปิดอย่างน้อยทุกภาคฤดูใบไม้ผลิ และอาจเปิดในบางภาคฤดูใบไม้ร่วงด้วย
- ยังไม่มีแผนเปิดในภาคฤดูร้อน
เอกสารสาธารณะและแหล่งอ้างอิง
- เปิดเผยเอกสารทั้งหมด รวมถึง slides และ assignments ภายใต้ Creative Commons license สำหรับนักวิจัย·ผู้สอน·ผู้อ่านที่สนใจ
- CMU MLIP GitHub
- เอกสารสาธารณะของ Spring 2025 อยู่ใน course GitHub repository
- มีตำราออนไลน์ที่มีบทครอบคลุมเกือบทั้งหมดของการบรรยาย
- Machine Learning in Production textbook
- ตำรานี้มีกำหนดตีพิมพ์โดย MIT Press และเผยแพร่ทางออนไลน์ภายใต้ Creative Commons license
- มีบทความวิชาการที่กล่าวถึงเจตนาและการออกแบบช่วงแรกของคอร์สด้วย
- วิดีโอบันทึกการบรรยาย Summer 2020 อยู่ใน course page แต่เมื่อเทียบกับปัจจุบันถือว่าเอกสารค่อนข้างเก่าแล้ว
- มี annotated bibliography สำหรับค้นหางานวิจัยที่เกี่ยวข้องด้วย
คำถามที่ครอบคลุมในระบบ ML สำหรับ production
-
การออกแบบเพื่อรับมือการทำนายที่ผิดพลาด
- ครอบคลุมว่าระบบควรทำงานอย่างไรแม้ในสถานการณ์ที่โมเดลอาจผิดพลาด
- ครอบคลุมวิธีรักษา safety และ security แม้มีความผิดพลาดที่เป็นไปได้
- พิจารณาทั้ง user interface ที่ทำงานในสภาพแวดล้อมจริงและการออกแบบระบบโดยรวม
-
การ deploy และ update ใน production
- ครอบคลุมวิธี deploy และ update โมเดลอย่างเสถียร
- ครอบคลุมวิธี test pipeline ML ทั้งหมด
- ใช้เครื่องมือ MLOps เพื่อทำให้กระบวนการ deploy เป็นอัตโนมัติและ scale ได้
- ครอบคลุมการทดลองใน production เช่น A/B testing และ canary release
- ครอบคลุมการตรวจจับปัญหาคุณภาพข้อมูล, concept drift และ feedback loop
-
ระบบ ML ที่ scale ได้
- ครอบคลุมการออกแบบระบบที่รองรับ training data ขนาดใหญ่, telemetry data และ user requests
- เปรียบเทียบตัวเลือกต่าง ๆ เช่น stream processing, batch processing, lambda architecture และ data lake
-
Testing และ debugging
- ครอบคลุมวิธีประเมินคุณภาพการทำนายของโมเดลใน production
- test ไม่ใช่แค่โมเดล แต่รวมถึงทั้งระบบที่ขับเคลื่อนด้วย ML
- นำบทเรียนจาก software testing, การสร้าง test case อัตโนมัติ, simulation และ continuous integration มาประยุกต์ใช้กับ testing สำหรับ ML production
-
คุณลักษณะด้านคุณภาพนอกเหนือจากความแม่นยำ
- ครอบคลุม latency ใน training·inference, operating cost, scalability, explainability, fairness, privacy, robustness และ safety
- พิจารณาด้วยว่าจำเป็นต้องทำงาน offline หรือไม่ และต้อง update โมเดลบ่อยเพียงใด
- ระบุ requirements ด้านคุณภาพที่สำคัญในสภาพแวดล้อม production ทางธุรกิจ และจัดการความขัดแย้งกับ trade-off
กรณีศึกษาและ group project
- กรณีศึกษา ที่ใช้ในคอร์สครอบคลุมผลิตภัณฑ์ที่ขับเคลื่อนด้วย ML หลากหลายแบบ
- การถอดเสียงพูดอัตโนมัติ
- การตรวจจับเด็กหายแบบกระจายด้วยเว็บแคม
- การแปลทันทีด้วย augmented reality
- บริการการแพทย์·สุขภาพ เช่น การตรวจจับมะเร็ง, การตรวจจับการล้ม, การวินิจฉัย COVID
- การจัดเลย์เอาต์สไลด์ PowerPoint อัตโนมัติ
- การประเมินการรับเข้ามหาวิทยาลัยแบบกึ่งอัตโนมัติ
- การจัดการสินค้าคงคลัง
- smart playlist และการแนะนำภาพยนตร์
- การตรวจจับ fraud โฆษณา
- หุ่นยนต์ส่งของและฟังก์ชันขับขี่อัจฉริยะ
- group project แบบขยายคือการสร้าง·deploy·ประเมิน·บำรุงรักษา บริการแนะนำภาพยนตร์
- สมมติสภาพแวดล้อม “production” ที่ค่อนข้างสมจริง
- ขนาดผู้ใช้อยู่ที่ 1 ล้านคน
ผลลัพธ์การเรียนรู้และเครื่องมือฝึกปฏิบัติ
- หลังจบคอร์ส นักศึกษาควรสามารถวิเคราะห์ trade-off ของคุณลักษณะด้านคุณภาพหลายด้านในการออกแบบระบบ production ที่มีคอมโพเนนต์ ML
- ครอบคลุมนอกจาก accuracy แล้ว ยังรวมถึง operating cost, latency, updateability และ explainability
- ควรสามารถ implement ระบบที่แข็งแกร่งระดับ production quality ภายใต้สมมติฐานว่า component ML มี โอกาสผิดพลาด
- ควรสามารถออกแบบ data infrastructure ที่มี fault tolerance และ scalability สำหรับ model training, serving, versioning และ experiments
- สร้างคุณภาพของ ML pipeline ทั้งหมดด้วย test automation และเทคนิค quality assurance
- คุณภาพข้อมูล
- data drift
- feedback loop
- คุณภาพโมเดล
- ควรสามารถสร้างระบบที่ test·monitor ได้ใน production และ deployment pipeline ที่แข็งแกร่ง
- พิจารณา requirements ระดับระบบ เช่น safety, security, privacy, fairness และ usability
- เครื่องมือที่จะได้คุ้นเคย ได้แก่ Apache Kafka, Jenkins, Prometheus, Grafana, Docker และเครื่องมือ MLOps หลายชนิด
การดำเนินคอร์สและตารางเรียน
- รหัสคอร์สคือ 17-445/17-645/17-745 และเป็นคอร์ส 12 units
- เนื้อหาคอร์สเหมือนกันในทุกรหัส แต่ระดับ PhD คือ 17-745 จะเปลี่ยนการบ้านสองชิ้นเป็น research project ที่เป็นภาคบังคับ
- การบรรยาย Spring 2025 จัดแบบเรียนในห้อง
- Lecture: จันทร์·พุธ 2:00–3:20pm, PH 100
- Lab: จัดวันศุกร์หลายช่วงเวลาและหลายสถานที่ รวมถึงมี lab แบบ remote-only ด้วย
- เนื้อหาคอร์สโดยรวมค่อนข้างคงที่ในช่วงไม่กี่ปีที่ผ่านมา แต่หัวข้อและเครื่องมือเฉพาะจะได้รับการ update ต่อเนื่องให้สอดคล้องกับงานวิจัยและเครื่องมือใหม่
- ตารางเบื้องต้นอาจเปลี่ยนแปลงได้ และอาจปรับระหว่างภาคเรียนเพื่อสะท้อนหัวข้อที่ร้องขอหรือการสนับสนุนการเรียนรู้
- ลำดับหัวข้อการบรรยายไล่จากการเปลี่ยนจากโมเดลไปสู่ระบบที่ขับเคลื่อนด้วย AI, requirements elicitation, การเตรียมรับมือความผิดพลาด, คุณภาพโมเดล, collaboration, model testing ตามพฤติกรรม, architecture และ design, model deployment, production experiments, data quality, pipeline automation, scaling, operations planning, versioning·provenance·reproducibility, technical debt, ethics·fairness, explainability, safety, security·privacy เป็นต้น
การประเมินผลและนโยบายงานมอบหมาย
- ใช้ Canvas และ Gradescope สำหรับการส่งงาน, grading, discussion, questions, announcements และเอกสารประกอบ
- slides จะโพสต์บนหน้าคอร์ส และใช้ Slack สำหรับการสื่อสารเกี่ยวกับ homework และ project
- GitHub ใช้สำหรับประสานงาน group work
- สัดส่วนคะแนนมีดังนี้
- งานเดี่ยว 35%
- group project 30%
- midterm exam 15%
- participation 5%
- lab 10%
- reading quiz 5%
- ไม่มี final exam
- การ grading จะมี specification และเกณฑ์คะแนนที่ชัดเจน โดยแต่ละส่วนให้คะแนนแบบ pass/fail
- ไม่มี partial credit
- บาง assignment มี bonus points จำนวนเล็กน้อย
- grade boundaries ตั้งไว้ค่อนข้างสูง
- A+ คือมากกว่า 99%
- A คือมากกว่า 96%
- A- คือมากกว่า 94%
- B+ คือมากกว่า 91%
- B คือมากกว่า 86%
- B- คือมากกว่า 82%
- C คือมากกว่า 75%
- D คือมากกว่า 60%
ความรู้พื้นฐานและการเตรียมตัวก่อนเรียน
- ไม่มีวิชาบังคับก่อนอย่างเป็นทางการ แต่คาดหวังว่ามี ประสบการณ์ ML พื้นฐาน และความสามารถด้าน programming พื้นฐานเพื่อให้เรียนได้สำเร็จ
- สำหรับพื้นฐาน ML แนะนำให้มีความเข้าใจพื้นฐานเกี่ยวกับ feature extraction, model building และ evaluation, รวมถึงเทคนิคการ training ว่าทำงานเมื่อใดและอย่างไร
- ประสบการณ์ Python และ Jupyter notebook จะช่วยได้
- project ภาคปฏิบัติ, การเรียนด้วยตนเอง, online course ก็อาจเพียงพอ
- สามารถตรวจสอบพื้นฐานได้ด้วย prerequisite knowledge check แบบ anonymous และไม่มีคะแนน
- การเขียนโปรแกรมต้องมีทักษะพื้นฐาน
- ความคล่องพื้นฐานในภาษาอย่าง Python
- ความสามารถในการติดตั้งและเรียนรู้ libraries ของภาษานั้น
- ความสามารถในการ
sshเข้า Unix machine และทำงาน command line พื้นฐาน - ความสามารถในการติดตั้งและเรียนรู้เครื่องมือใหม่อย่าง Docker
- ไม่กำหนดภาษา programming เฉพาะ แต่แทบทุกทีมใช้ Python เป็นหลัก
- เครื่องมือที่จำเป็นอย่าง Git, Docker, Grafana, Jenkins จะมีการแนะนำและตัวอย่างใน lab และคาดหวังว่านักศึกษาจะอ่านเอกสารกับ tutorial เพื่อเรียนรู้ด้วยตนเอง
- ควรสามารถเรียนรู้การใช้งานพื้นฐานของการเขียน web service ด้วย libraries เช่น Flask ได้ด้วยตนเอง
- ประสบการณ์ software engineering ไม่ใช่ prerequisite
- หัวข้ออย่าง requirements engineering, software design, software testing, distributed systems, continuous deployment และ team management จะครอบคลุมในคอร์ส
การมีส่วนร่วมในชั้นเรียน, lab และ reading
- การบรรยายจัดแบบพบหน้า และการมีส่วนร่วมในชั้นเรียนเป็นส่วนสำคัญของประสบการณ์การเรียนรู้
- บันทึกการบรรยายจะจัดให้ใน Canvas แบบ best effort
- ไม่มีตัวเลือกเรียนทางไกลแบบ synchronous
- lab จะไม่มีการบันทึกวิดีโอ
- Slack ใช้สำหรับกิจกรรมในชั้นเรียนด้วย ดังนั้นระหว่างเรียนต้องสามารถเข้าถึงได้จาก laptop, tablet หรือ phone
- โดยปกติ lab จะแนะนำเครื่องมือและกำหนด output ที่ชัดเจนอย่างน้อยหนึ่งอย่าง
- งาน lab ออกแบบให้ใช้เวลาประมาณ 1 ชั่วโมง
- output จะให้ TA ดูในช่วงเวลา lab ของสัปดาห์นั้น และให้คะแนนแบบ pass/fail
- อาจรวมถึง code, demo การรัน, และการตอบคำถามปากเปล่า
- lab ออกแบบให้เป็นการลงมือทำครั้งแรกที่มีภาระต่ำ
- หากยังไม่ถึงความคาดหวัง สามารถแก้ต่อในช่วงเวลา lab ได้
- จะไม่รับการส่งหลังจบ lab หากไม่มีเหตุผลที่ระบุไว้ชัดเจนหรือไม่ได้ใช้ token
- ใช้หนังสือ Building Intelligent Systems: A Guide to Machine Learning Engineering ของ Goeff Hulten เป็น reading material จำนวนมาก
- ตำราเอง Machine Learning in Production เชื่อมโยงกับแต่ละ lecture อย่างใกล้ชิด แต่ไม่ได้กำหนดเป็นบทอ่านบังคับ แนะนำเป็น supplementary reading
- แทบทุกคาบมี reading assignment และต้องส่ง reading quiz ใน Canvas ก่อนเข้าเรียน
- quiz ประกอบด้วยคำถามปลายเปิด 1 ข้อที่เกี่ยวข้องกับ reading
- ประเมินแบบ pass/fail จากการมีส่วนร่วมอย่างจริงจัง
Teamwork และความยืดหยุ่นในการส่งงาน
- Teamwork เป็นองค์ประกอบจำเป็นของคอร์ส
- group project ทำเป็นทีม 3–5 คน
- ทีมจะถูกจัดโดยผู้สอน
- แต่ละทีมจะมี TA mentor ประจำทีม
- งานทีมใช้ peer evaluation ตามเกณฑ์ team citizenship
- ประเมินบทบาทของสมาชิกทีมที่กระตือรือร้นและให้ความร่วมมือ
- team mentor จะ debrief กับทีมหลังแต่ละ milestone และหารือกลยุทธ์ปรับปรุง teamwork
- นักศึกษาแต่ละคนจะได้รับ personal tokens 8 อัน สำหรับใช้ระหว่างภาคเรียน
- token 1 อันใช้ส่งการบ้านเดี่ยวล่าช้าได้ 1 วัน
- token 3 อันใช้ปรับปรุงหรือทำการบ้านเดี่ยวใหม่ แล้วส่งซ้ำพร้อม reflection สั้น ๆ ได้
- token 1 อันใช้ส่ง reading quiz ล่าช้าหรือส่งซ้ำได้
- token 1 อันใช้ทำ lab ล่าช้าหรือทำใหม่ได้
- personal tokens ที่เหลือจะนับเป็น participation 1 วันเมื่อสิ้นภาคเรียน
- แต่ละทีมจะได้รับ team tokens 8 อัน แยกต่างหาก
- ใช้ขยาย deadline ของ milestone ได้ 1 อันต่อ 1 วัน
- ใช้ 3 อันเมื่อ resubmit milestone พร้อม reflection
- personal tokens และ team tokens ใช้แทนกันไม่ได้
- เมื่อไม่มี token การส่งงานเดี่ยว·งานทีมล่าช้าจะถูกหัก 15% ต่อวันหรือส่วนของวันที่เริ่มเลยกำหนด
เครื่องมือ AI, collaboration และการเข้าร่วมวิจัย
- ด้วยลักษณะของคอร์ส จึงไม่จำกัดการใช้เครื่องมือ generative AI
- ใช้เครื่องมืออย่าง ChatGPT, Bard, Co-Pilot, Stable Diffusion ได้
- ใช้ code ภายนอกซ้ำได้ เช่น StackOverflow หรือ tutorial
- นักศึกษาต้องรับผิดชอบความถูกต้องของสิ่งที่ส่งทั้งหมด
- เครื่องมือสร้างเนื้อหาอาจให้คำตอบที่ดูน่าเชื่อแต่ผิด และคำตอบเช่นนั้นจะไม่ได้คะแนน
- นักศึกษาต้องรับผิดชอบการปฏิบัติตาม license ที่เกี่ยวข้องด้วย
- ใช้นโยบาย academic integrity โดยทั่วไป
- ห้ามคัดลอกคำตอบของนักศึกษาคนอื่น หรือใช้คำตอบที่เขียนร่วมกันมาเป็นของตน
- ห้ามดูคำตอบของนักศึกษาคนอื่น ให้คำตอบของตนเอง หรือวางไว้ในที่ที่นักศึกษาคนอื่นมองเห็นได้
- ไม่อนุญาตให้อัปโหลดคำตอบขึ้น public GitHub ด้วย
- ใน lab สามารถร่วมมือกับนักศึกษาคนอื่นได้ แต่ reading quiz·homework·exam ไม่สามารถร่วมมือกันได้
- โทษขั้นต่ำของการทุจริตคือ 0 คะแนนสำหรับ assignment ทั้งชิ้น และอาจมีบทลงโทษเพิ่มเติมตามกระบวนการของมหาวิทยาลัย
- ในคอร์สจะมีการทำงานวิจัยเชิงวิชาการที่วิเคราะห์งานของนักศึกษาด้วย
- การไม่เข้าร่วมไม่มีผลต่อคะแนนหรือประวัติการเรียนที่ CMU
- research data จะไม่มีคะแนนของนักศึกษารวมอยู่
- การวิเคราะห์จะทำหลังสิ้นสุดคอร์สและส่ง final grades แล้ว ในรูปแบบที่ de-identified และ aggregated
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
เนื้อหานี้ใช้งานได้จริงอย่างแน่นอน Kafka, Docker, Kubernetes, Jenkins ล้วนเป็นเครื่องมือมาตรฐานในอุตสาหกรรม และการโฟกัสที่ MLOps ก็ให้ความรู้สึกใหม่ดี
ชอบที่คอร์สนี้ไม่ได้หยุดแค่การสร้างโมเดล แต่พูดถึงช่องว่างระหว่างแมชชีนเลิร์นนิงกับระบบปฏิบัติการจริง อีกทั้งยังครอบคลุมเรื่อง explainability, fairness และ monitoring ด้วย อย่างไรก็ตาม เมื่อดูแล็บแล้ว ดูเหมือนมีหลายส่วนที่วิศวกรซอฟต์แวร์ระดับกลางหรือมือใหม่ที่มีแรงจูงใจก็สามารถเรียนรู้จากบทเรียนสอนได้ Git, Flask, container orchestration มีประโยชน์ แต่สำหรับคนที่เคยเจอสภาพแวดล้อม production มาแล้วก็ถือว่าค่อนข้างพื้นฐาน ประเด็นที่ลึกกว่าอย่างการเพิ่มประสิทธิภาพเครือข่ายสำหรับ distributed training หรือการปฏิบัติการ inference ขนาดใหญ่ดูเหมือนจะถูกกล่าวถึงน้อยกว่า และสงสัยว่าจะไปโผล่ในโปรเจกต์กลุ่มหรือไม่ Jenkins ใช้กันแพร่หลายก็จริง แต่สำหรับ CI/CD น่าจะดีกว่าถ้าแนะนำเครื่องมือที่ทันสมัยกว่าอย่าง GitHub Actions หรือ ArgoCD ด้วย Kubernetes ก็จำเป็น แต่ถ้าครอบคลุมเครื่องมือทางเลือกหรือเครื่องมือเสริมสำหรับ edge deployment หรือ serverless systems ด้วย ก็น่าจะมองไปข้างหน้ามากขึ้น
ถ้าในเชิงแนวคิด Jenkins กับเฟรมเวิร์ก CI/CD อื่น ๆ ไม่ได้ต่างกันมาก ก็เลือกตัวที่นิยมมาสักตัวแล้วใช้ไป ซึ่งก็ดูเหมือนเขาทำแบบนั้นจริง
เมื่อ 20 ปีก่อน เราเรียนด้วยการสร้างฐานข้อมูลด้วย Java และตอนนั้นก็ใช้ “เครื่องมือที่ดูเหมือนสักวันหนึ่งจะถูกเลิกใช้” เช่นกัน ก็แค่จุดเริ่มต้นใหม่เปลี่ยนไปเท่านั้น
ลองกวาดตาดูแล็บแล้วน่าสนใจดี แม้ผมจะเป็น full-stack developer ที่ไม่มีประสบการณ์ LLM มากนัก แต่ครึ่งหนึ่งอย่าง Git, Flask, Kafka, Kubernetes ก็คุ้นอยู่แล้ว และอีกครึ่งหนึ่งก็ดูเหมือนโค้ดทั่วไป
คณิตศาสตร์ซับซ้อนที่เคยนึกถึงเวลาได้ยินว่าแมชชีนเลิร์นนิงแทบไม่มีเลย ถ้าอย่างนั้นก็สงสัยว่า MLOps เป็นสายงานที่นักพัฒนาทั่วไปที่ไม่มีปริญญาเอกก็เข้าถึงได้จริง ๆ ไม่ยากใช่ไหม
เช่น ถ้าต้องสร้างข้อมูลสังเคราะห์จำนวนมากด้วย simulation คุณอาจสนใจปัญหาอย่าง batch processing, encoding format, data ingestion มากกว่าการสร้าง dataset ที่ปราศจาก bias เอง หรือถ้าต้องเก็บและ sample ข้อมูลผ่าน crowdsourcing สิ่งที่สำคัญกว่าทฤษฎี reservoir sampling มักจะเป็นการ implement ให้ประมวลผลออนไลน์ได้เร็ว และใช้ต้นทุนกับ compute อย่างมีประสิทธิภาพ
ในบริษัทส่วนใหญ่ machine learning engineer คือวิศวกรที่เข้าใจซอฟต์แวร์และแมชชีนเลิร์นนิงบางส่วน ถ้าโชคดีก็เก่งทั้งสองอย่าง แต่ถ้าแย่ก็ไม่เก่งสักอย่าง
คอร์สนี้แทบไม่พูดถึง คุณภาพข้อมูล เลย และดูเหมือนจะไปโผล่เอาบทที่ 16 อยากรู้ว่าผู้เขียนมีประสบการณ์ในอุตสาหกรรมมากแค่ไหน
ในโลกจริง คุณจะใช้เวลา 90% ไปกับคุณภาพข้อมูลและการทำความสะอาดข้อมูล
ตัวอย่างเช่น งานแมชชีนเลิร์นนิงของผมแทบทั้งหมดอยู่ในบริบทของ engineering simulation regression และการพัฒนา surrogate model ดังนั้นคุณภาพข้อมูลหรือการทำความสะอาดข้อมูลแทบไม่เป็นปัญหา งานส่วนใหญ่อยู่ที่การสร้าง dataset และการเลือก ฝึก และ deploy โมเดล งานแต่ละแบบไม่เหมือนกัน
ถ้าเตรียมไว้ก่อนที่ data pipeline จะถูกทำให้แข็งตัวในขั้นตอนการสร้างจากต้นทาง การแปลง และ preprocessing ก็จะลดเรื่องปวดหัวในภายหลังได้มาก
สงสัยว่ามีที่ไหนให้คนที่ไม่ใช่นักศึกษาเรียนตามไปด้วยได้บ้างไหม
สงสัยว่าใคร ๆ ก็ลงทะเบียนได้หรือไม่ หรือว่าต้องสอบเข้าหนึ่งในโปรแกรมวิทยาการคอมพิวเตอร์ชั้นนำของประเทศก่อน
ดูดีเลย คอร์ส LLM Systems ก็เหมือนกัน
มีใครรู้จักเอกสารหรือคอร์สเกี่ยวกับการสร้าง โครงสร้างพื้นฐานคลัสเตอร์สำหรับแมชชีนเลิร์นนิง บ้างไหม โดยเฉพาะสนใจการขยาย storage infrastructure, networking และแนวทาง scheduling
สำหรับ storage ถ้าเป็นการเก็บโมเดลหรือข้อมูล ก็ใช้ object storage อย่าง S3 หรือ shared network file system อย่าง EFS, Lustre ได้ ส่วน networking สำหรับ GPU ขนาดใหญ่ ผมไม่ค่อยรู้แหล่งข้อมูลที่ชี้ชัด สำหรับ scheduling ตอนนี้แทบถือว่าเป็นปัญหาที่แก้ได้แล้ว อะไรก็ทำงานได้ คุณจะสร้าง coordinator เองเพื่อรันงานตามรอบโดยอิงจาก Docker image ก็ได้ และถ้าเสริมระบบ metadata กับ trigger ที่อิง message queue ก็ทำได้ค่อนข้างเร็ว หรือใช้ Airflow หรือ AWS Batch สำหรับงานขนาดใหญ่ก็ได้ สิ่งที่อาจตกหล่นคือ model serving โดยเฉพาะในระบบ recommendation ซึ่งยาก ไวต่อ latency และเปราะบางต่อ latency spike กับ traffic spike แม้แต่โค้ด Python ที่เขียนดี ก็อาจชนขีดจำกัดได้ค่อนข้างเร็ว
ดีใจที่คอร์สนี้ถูกนำขึ้นมา Christian เป็นคนที่ยอดเยี่ยมและงานของเขาก็ดี ผมรู้จักภาพแรก ๆ ของคอร์สนี้และหนังสืออยู่พอสมควร จึง แนะนำอย่างยิ่ง ได้
ผมทำงานกับ แพลตฟอร์มและระบบแมชชีนเลิร์นนิง หลายขนาดมา 9.5 ปีแล้ว เนื้อหาดูดี
ผมอาจประเมินความยากของคอร์สต่ำไป แต่ฟังดูเหมือนคอร์สเบื้องต้น ก่อนถึง เครื่องมืออธิบายโมเดล ส่วนใหญ่ดูค่อนข้างตรงไปตรงมา
ถึงอย่างนั้น ผมก็คิดว่าดีที่ใช้เครื่องมือมาตรฐานอุตสาหกรรมกับ use case ส่วนใหญ่