Machine Learning trong môi trường sản xuất (khóa học CMU)
(mlip-cmu.github.io)- Khóa học 17-445/17-645/17-745 Machine Learning in Production / AI Engineering Spring 2025 của CMU bao quát quá trình biến mô hình ML thành sản phẩm phần mềm có thể triển khai và vận hành thực tế
- Trọng tâm là sự hiểu biết chung để nhà khoa học dữ liệu và kỹ sư phần mềm có thể làm việc cùng nhau, kết nối yêu cầu, thiết kế, triển khai, vận hành và đảm bảo chất lượng trên giả định rằng mô hình có thể mắc lỗi
- Bài giảng bao quát rộng các chủ đề như chuẩn bị cho dự đoán sai, MLOps, A/B testing và canary release, phát hiện chất lượng dữ liệu, concept drift và feedback loop, kiểm thử và gỡ lỗi, tính công bằng, quyền riêng tư và an toàn
- Sinh viên sẽ xây dựng, triển khai, đánh giá và bảo trì dịch vụ gợi ý phim ở quy mô 1 triệu người dùng trong dự án nhóm, đồng thời thực hành với Kafka, Jenkins, Prometheus, Grafana, Docker, v.v.
- Khóa học kỳ vọng người học có kinh nghiệm ML cơ bản và khả năng lập trình, nhưng không bắt buộc có kinh nghiệm kỹ thuật phần mềm; tài liệu bài giảng, bài tập và giáo trình được công khai, có thể dùng để tự học và làm tài liệu giảng dạy
Mục tiêu khóa học và đối tượng
- Machine Learning in Production / AI Engineering là khóa học bàn về những gì diễn ra sau bước tạo dự đoán bằng mô hình ML hoặc prompt
- Chuyển mô hình thành sản phẩm và triển khai vào môi trường thực tế
- Tạo dựng niềm tin vào chất lượng
- Vận hành và bảo trì ở quy mô lớn
- Khóa Spring 2025 được thiết kế cho sinh viên đã có một mức kinh nghiệm nhất định về khoa học dữ liệu
- Ví dụ: đã học khóa ML, có kinh nghiệm dùng
sklearn - Kỳ vọng có khả năng lập trình Python cơ bản và sử dụng Unix shell
- Không yêu cầu nền tảng kỹ thuật phần mềm như kiểm thử, yêu cầu, kiến trúc, quy trình hay kinh nghiệm làm việc nhóm
- Ví dụ: đã học khóa ML, có kinh nghiệm dùng
- Trong tương lai, khóa học này dự kiến được mở ít nhất vào mỗi học kỳ mùa xuân hằng năm, và có thể mở thêm trong một số học kỳ mùa thu
- Không có kế hoạch mở vào học kỳ mùa hè
Tài liệu công khai và tài nguyên tham khảo
- Toàn bộ tài liệu, bao gồm slide và bài tập, được công khai theo giấy phép Creative Commons cho nhà nghiên cứu, nhà giáo dục và độc giả quan tâm
- CMU MLIP GitHub
- Tài liệu công khai Spring 2025 nằm trong course GitHub repository
- Một giáo trình trực tuyến với các chương tương ứng gần như toàn bộ bài giảng cũng được công khai
- Machine Learning in Production textbook
- Giáo trình này dự kiến được MIT Press xuất bản, và bản trực tuyến được cung cấp theo giấy phép Creative Commons
- Cũng có bài báo trình bày mục đích và thiết kế ban đầu của khóa học
- Bản ghi hình bài giảng Summer 2020 có trên course page, nhưng tính đến hiện tại thì tài liệu này hơi cũ
- Cũng có annotated bibliography để tìm các nghiên cứu liên quan
Các câu hỏi được đề cập trong hệ thống ML sản xuất
-
Thiết kế để ứng phó với dự đoán sai
- Bàn về việc hệ thống nên hoạt động ra sao ngay cả trong tình huống mô hình có thể sai
- Bàn về cách duy trì an toàn và bảo mật dù có thể xảy ra sai sót
- Xem xét cả giao diện người dùng hoạt động trong môi trường thực tế và thiết kế tổng thể hệ thống
-
Triển khai và cập nhật production
- Bàn về cách triển khai và cập nhật mô hình một cách ổn định
- Bàn về cách kiểm thử toàn bộ ML pipeline
- Tự động hóa và mở rộng quá trình triển khai bằng công cụ MLOps
- Bàn về các thử nghiệm production như A/B testing và canary release
- Bàn về phát hiện vấn đề chất lượng dữ liệu, concept drift và feedback loop
-
Hệ thống ML có khả năng mở rộng
- Bàn về thiết kế hệ thống xử lý dữ liệu huấn luyện quy mô lớn, dữ liệu telemetry và yêu cầu từ người dùng
- So sánh các lựa chọn như stream processing, batch processing, lambda architecture và data lake
-
Kiểm thử và gỡ lỗi
- Bàn về cách đánh giá chất lượng dự đoán của mô hình trong production
- Kiểm thử không chỉ mô hình mà cả hệ thống dựa trên ML
- Áp dụng các bài học từ kiểm thử phần mềm, sinh test case tự động, mô phỏng và tích hợp liên tục vào kiểm thử ML production
-
Các thuộc tính chất lượng ngoài độ chính xác
- Bàn về độ trễ huấn luyện/suy luận, chi phí vận hành, khả năng mở rộng, khả năng giải thích, tính công bằng, quyền riêng tư, độ vững chắc và an toàn
- Cũng cân nhắc nhu cầu hoạt động offline và tần suất cập nhật mô hình
- Xác định các yêu cầu chất lượng quan trọng trong môi trường production của doanh nghiệp, đồng thời điều chỉnh xung đột và trade-off
Case study và dự án nhóm
- Các case study trong khóa học bao gồm nhiều sản phẩm dựa trên ML
- Tự động chuyển lời nói thành văn bản
- Phát hiện phân tán trẻ em mất tích dựa trên webcam
- Dịch tức thời bằng thực tế tăng cường
- Dịch vụ y tế và sức khỏe như phát hiện ung thư, phát hiện té ngã, chẩn đoán COVID
- Tự động bố cục slide PowerPoint
- Đánh giá tuyển sinh đại học bán tự động
- Quản lý tồn kho
- Playlist thông minh và gợi ý phim
- Phát hiện gian lận quảng cáo
- Robot giao hàng và tính năng lái xe thông minh
- Dự án nhóm mở rộng là xây dựng, triển khai, đánh giá và bảo trì dịch vụ gợi ý phim
- Giả định một môi trường “production” tương đối thực tế
- Quy mô người dùng là 1 triệu người
Kết quả học tập và công cụ thực hành
- Sau khóa học, sinh viên cần có khả năng phân tích trade-off giữa nhiều thuộc tính chất lượng trong thiết kế hệ thống production có chứa thành phần ML
- Ngoài độ chính xác, còn bàn về chi phí vận hành, độ trễ, khả năng cập nhật và khả năng giải thích
- Có thể triển khai hệ thống vững chắc ở chất lượng production trên giả định rằng thành phần ML có khả năng mắc lỗi
- Có thể thiết kế hạ tầng dữ liệu có khả năng chịu lỗi và mở rộng cho huấn luyện mô hình, serving, versioning và thử nghiệm
- Đảm bảo chất lượng toàn bộ ML pipeline bằng tự động hóa kiểm thử và các kỹ thuật đảm bảo chất lượng
- Chất lượng dữ liệu
- Data drift
- Feedback loop
- Chất lượng mô hình
- Có thể xây dựng hệ thống có thể kiểm thử, giám sát trong production và pipeline triển khai vững chắc
- Cân nhắc các yêu cầu cấp hệ thống như an toàn, bảo mật, quyền riêng tư, tính công bằng và tính dễ dùng
- Các công cụ sẽ làm quen gồm Apache Kafka, Jenkins, Prometheus, Grafana, Docker và nhiều công cụ MLOps
Vận hành khóa học và lịch trình
- Mã khóa học là 17-445/17-645/17-745, và đây là khóa 12 units
- Nội dung khóa học giống nhau ở mọi mã, nhưng 17-745 ở cấp PhD thay thế hai bài tập bằng research project bắt buộc
- Bài giảng Spring 2025 được tổ chức trực tiếp
- Bài giảng: thứ Hai và thứ Tư 2:00–3:20pm, PH 100
- Lab: tổ chức vào nhiều khung giờ và địa điểm vào thứ Sáu, đồng thời có cả lab chỉ dành cho học từ xa
- Nội dung bài giảng nhìn chung đã ổn định trong vài năm gần đây, nhưng các chủ đề và công cụ cụ thể tiếp tục được cập nhật theo nghiên cứu và công cụ mới
- Lịch trình sơ bộ có thể thay đổi, và có thể được điều chỉnh trong học kỳ để phản ánh các chủ đề được yêu cầu hoặc hỗ trợ học tập
- Dòng chủ đề bài giảng đi từ chuyển đổi từ mô hình sang hệ thống dựa trên AI, thu thập yêu cầu, chuẩn bị cho sai sót, chất lượng mô hình, cộng tác, kiểm thử mô hình dựa trên hành vi, kiến trúc và thiết kế, triển khai mô hình, thử nghiệm production, chất lượng dữ liệu, tự động hóa pipeline, mở rộng, lập kế hoạch vận hành, versioning/xuất xứ/khả năng tái lập, nợ kỹ thuật, đạo đức/tính công bằng, khả năng giải thích, an toàn, bảo mật/quyền riêng tư, v.v.
Chính sách đánh giá và bài tập
- Việc nộp bài, chấm điểm, thảo luận, câu hỏi, thông báo và tài liệu hỗ trợ sử dụng Canvas và Gradescope
- Slide được đăng trên trang khóa học, còn Slack được dùng để trao đổi liên quan đến bài tập về nhà và dự án
- GitHub được dùng để điều phối công việc nhóm
- Tỷ trọng điểm như sau
- Bài tập cá nhân 35%
- Dự án nhóm 30%
- Thi giữa kỳ 15%
- Tham gia 5%
- Lab 10%
- Quiz đọc tài liệu 5%
- Không có thi cuối kỳ
- Việc chấm điểm cung cấp đặc tả rõ ràng và tiêu chí phân bổ điểm, mỗi phần được chấm đậu/rớt
- Không có điểm thành phần
- Một số bài tập có một lượng nhỏ điểm thưởng
- Ngưỡng xếp loại được đặt tương đối cao
- A+ là trên 99%
- A là trên 96%
- A- là trên 94%
- B+ là trên 91%
- B là trên 86%
- B- là trên 82%
- C là trên 75%
- D là trên 60%
Kiến thức tiên quyết và chuẩn bị học
- Không có môn tiên quyết chính thức, nhưng để học tốt, người học được kỳ vọng có kinh nghiệm ML cơ bản và khả năng lập trình cơ bản
- Với nền tảng ML, nên có hiểu biết cơ bản về trích xuất đặc trưng, xây dựng và đánh giá mô hình, cũng như các kỹ thuật học hoạt động khi nào và như thế nào
- Kinh nghiệm với Python và Jupyter notebook sẽ hữu ích
- Dự án thực tế, tự học hoặc khóa học trực tuyến cũng có thể là đủ
- Có thể kiểm tra kiến thức nền bằng prerequisite knowledge check ẩn danh, không tính điểm
- Lập trình cần mức thành thạo cơ bản
- Sử dụng trôi chảy cơ bản một ngôn ngữ như Python
- Khả năng cài đặt và học thư viện của ngôn ngữ đó
- Khả năng kết nối
sshvào máy Unix và thực hiện các tác vụ dòng lệnh cơ bản - Khả năng cài đặt và học công cụ mới như Docker
- Không chỉ định ngôn ngữ lập trình cụ thể, nhưng hầu như mọi nhóm chủ yếu dùng Python
- Các công cụ bắt buộc như Git, Docker, Grafana, Jenkins sẽ được giới thiệu và cung cấp ví dụ trong lab, và sinh viên được kỳ vọng tự đọc tài liệu cùng tutorial để làm quen
- Cần có khả năng tự học cách dùng cơ bản các thư viện như Flask để viết web service
- Kinh nghiệm kỹ thuật phần mềm không phải điều kiện tiên quyết
- Các chủ đề như requirements engineering, thiết kế phần mềm, kiểm thử phần mềm, hệ thống phân tán, triển khai liên tục và quản lý đội nhóm sẽ được đề cập trong khóa học
Tham gia lớp, lab và đọc tài liệu
- Bài giảng được tổ chức trực tiếp, và tham gia lớp là một phần quan trọng của trải nghiệm học tập
- Bản ghi hình bài giảng được cung cấp trên Canvas theo best effort
- Không có lựa chọn học từ xa đồng bộ
- Lab không được ghi hình
- Slack cũng được dùng cho hoạt động trong lớp, vì vậy cần có khả năng truy cập trong giờ học từ laptop, tablet hoặc điện thoại
- Lab thường giới thiệu công cụ và yêu cầu một hoặc nhiều sản phẩm đầu ra rõ ràng
- Bài lab được thiết kế khoảng 1 giờ
- Sản phẩm đầu ra được chấm đậu/rớt khi cho TA xem trong giờ lab của tuần đó
- Có thể bao gồm mã, demo chạy được và trả lời câu hỏi miệng
- Lab được thiết kế như bước thực hành đầu tiên ít áp lực
- Nếu chưa đạt kỳ vọng, sinh viên có thể tiếp tục sửa trong giờ lab
- Không nhận nộp sau khi lab kết thúc nếu không có lý do rõ ràng hoặc không dùng token
- Tài liệu đọc sử dụng nhiều cuốn Building Intelligent Systems: A Guide to Machine Learning Engineering của Goeff Hulten
- Giáo trình riêng Machine Learning in Production gắn chặt với từng bài giảng, nhưng được hướng dẫn là tài liệu đọc bổ trợ chứ không phải chương đọc bắt buộc
- Hầu hết các buổi học đều có bài đọc, và quiz đọc tài liệu trên Canvas phải được nộp trước giờ học
- Quiz gồm 1 câu hỏi mở liên quan đến bài đọc
- Đánh giá đậu/rớt dựa trên mức độ tham gia nghiêm túc
Làm việc nhóm và linh hoạt khi nộp bài
- Làm việc nhóm là yếu tố bắt buộc của khóa học
- Dự án nhóm được thực hiện bởi các nhóm 3–5 người
- Nhóm do giảng viên phân công
- Mỗi nhóm có một TA mentor được phân công
- Bài tập nhóm áp dụng đánh giá đồng đẳng theo tiêu chí team citizenship
- Đánh giá vai trò thành viên tích cực và hợp tác trong nhóm
- Mentor của nhóm debrief với nhóm sau mỗi milestone và thảo luận chiến lược cải thiện làm việc nhóm
- Mỗi sinh viên nhận 8 token cá nhân có thể dùng trong học kỳ
- 1 token cho phép nộp trễ bài tập cá nhân 1 ngày
- 3 token cho phép cải thiện hoặc làm lại bài tập cá nhân và nộp lại cùng một đoạn phản tư ngắn
- 1 token cho phép nộp trễ hoặc nộp lại quiz đọc tài liệu
- 1 token cho phép hoàn thành trễ hoặc làm lại lab
- Token cá nhân còn lại được tính là 1 ngày tham gia vào cuối học kỳ
- Mỗi nhóm cũng nhận riêng 8 token nhóm
- Có thể dùng 1 token cho mỗi ngày gia hạn deadline milestone
- Dùng 3 token khi nộp lại milestone kèm phản tư
- Token cá nhân và token nhóm không thể thay thế cho nhau
- Khi không còn token, nộp trễ bài cá nhân hoặc nhóm sẽ bị trừ 15% cho mỗi ngày đã bắt đầu
Công cụ AI, hợp tác và tham gia nghiên cứu
- Do tính chất khóa học, không hạn chế việc sử dụng công cụ AI tạo nội dung
- Có thể dùng các công cụ như ChatGPT, Bard, Co-Pilot, Stable Diffusion
- Cũng có thể tái sử dụng mã bên ngoài như StackOverflow hoặc tutorial
- Sinh viên hoàn toàn chịu trách nhiệm về tính chính xác của bài nộp
- Công cụ tạo nội dung có thể tạo ra câu trả lời nghe hợp lý nhưng sai, và các câu trả lời đó sẽ không được điểm
- Sinh viên cũng chịu trách nhiệm tuân thủ các giấy phép áp dụng
- Áp dụng chính sách liêm chính học thuật thông thường
- Không được sao chép lời giải của sinh viên khác hoặc lấy lời giải được viết chung
- Không được xem lời giải của sinh viên khác, cung cấp lời giải của mình hoặc đặt lời giải ở nơi sinh viên khác có thể xem
- Cũng không được đưa lời giải lên GitHub công khai
- Trong lab có thể hợp tác với sinh viên khác, nhưng không được hợp tác trong quiz đọc tài liệu, bài tập về nhà và bài thi
- Mức xử phạt tối thiểu cho gian lận là 0 điểm cho toàn bộ bài tập tương ứng, và có thể bị kỷ luật bổ sung theo quy trình của trường
- Khóa học cũng thực hiện nghiên cứu học thuật phân tích bài tập của sinh viên
- Việc không tham gia không ảnh hưởng đến điểm số hoặc quá trình học tập tại CMU
- Dữ liệu nghiên cứu không bao gồm điểm số của sinh viên
- Phân tích được thực hiện sau khi khóa học kết thúc và điểm cuối cùng đã được nộp, dưới dạng đã khử định danh và tổng hợp
Chưa có bình luận nào.