Thử nghiệm (Experimentation) là hoạt động cốt lõi trong quá trình phát triển học máy (ML), nơi các nhà khoa học dữ liệu có thể nhanh chóng thử nghiệm nhiều ý tưởng khác nhau để chuẩn bị dữ liệu và xây dựng mô hình ML. Quá trình thử nghiệm bắt đầu khi use case (trường hợp sử dụng) ML đã được xác định rõ ràng, tức là các câu hỏi sau đã được trả lời:
Bài toán (task) là gì?
Làm thế nào để đo lường tác động kinh doanh?
Chỉ số đánh giá (evaluation metric) là gì?
Dữ liệu liên quan là gì?
Yêu cầu huấn luyện và triển khai (serving) là gì?
Mục tiêu của quá trình thử nghiệm là tạo ra một mô hình nguyên mẫu (prototype) hiệu quả cho trường hợp sử dụng ML đang xét. Ngoài việc thử nghiệm, các nhà khoa học dữ liệu cần chuẩn hóa quy trình huấn luyện ML bằng cách triển khai một pipeline (luồng xử lý) end-to-end để có thể vận hành và chạy trong môi trường chạy thật.
Hình trên minh họa quy trình phát triển ML. Trong giai đoạn thử nghiệm, các nhà khoa học dữ liệu thường thực hiện các bước sau:
Khám phá, lựa chọn và phân tích dữ liệu.
Tiền xử lý dữ liệu và kỹ thuật đặc trưng (feature engineering) bằng các công cụ xử lý dữ liệu tương tác.
Tạo mẫu mô hình (model prototyping) và kiểm định.
Việc lặp lại các bước này có thể dẫn đến việc tinh chỉnh định nghĩa bài toán.
Ví dụ, nhóm nghiên cứu có thể thay đổi từ bài toán hồi quy (regression) sang phân loại (classification), hoặc lựa chọn một chỉ số đánh giá khác.
Nguồn dữ liệu phát triển
Dữ liệu chính để phát triển thường được lấy từ kho lưu trữ dataset và đặc trưng (feature repository), nơi chứa các dữ liệu đã được xử lý, quản lý ở cấp độ entity-feature hoặc toàn bộ dataset.
Yếu tố then chốt cho thành công
Theo dõi thí nghiệm (experiment tracking)
Khả năng tái tạo (reproducibility)
Tính hợp tác (collaboration)
Ví dụ, khi bắt đầu một use case ML, nhà khoa học dữ liệu có thể tiết kiệm thời gian nếu tìm được các thí nghiệm trước đây có use case tương tự và tái tạo kết quả từ những thí nghiệm đó. Họ cũng cần so sánh các thí nghiệm khác nhau hoặc nhiều lần chạy của cùng một thí nghiệm để hiểu các yếu tố ảnh hưởng đến hành vi dự đoán và hiệu suất của mô hình.
Theo dõi cấu hình thí nghiệm
Để tái tạo thí nghiệm, nhóm cần lưu lại các thông tin sau:
- Con trỏ đến phiên bản mã nguồn huấn luyện trong hệ thống kiểm soát phiên bản (version control).
- Kiến trúc mô hình và các module pretrained đã sử dụng.
- Siêu tham số (hyperparameters), bao gồm các thử nghiệm tự động tuning và lựa chọn mô hình.
- Thông tin về cách chia dữ liệu (training/validation/testing).
- Chỉ số đánh giá mô hình và quy trình kiểm định.
Kết quả của thử nghiệm
Nếu không cần huấn luyện lại định kỳ, mô hình cuối cùng sẽ được đưa vào model registry (kho đăng ký mô hình), sẵn sàng để kiểm duyệt và triển khai lên môi trường phục vụ. Tất cả metadata và artifacts liên quan cũng được lưu trữ trong metadata tracking repository.
Tuy nhiên, phần lớn trường hợp, mô hình ML cần được huấn luyện lại định kỳ khi có dữ liệu mới hoặc thay đổi mã nguồn. Khi đó, đầu ra của quá trình phát triển không phải là mô hình để triển khai, mà là pipeline huấn luyện liên tục (continuous training pipeline).
Dù sử dụng công cụ code-first, low-code hay no-code, các artifacts phát triển (mã nguồn, cấu hình) phải được quản lý phiên bản (ví dụ: dùng Git) để áp dụng các phương pháp kỹ thuật phần mềm như:
- Review mã
- Phân tích mã (Code analysis)
- Kiểm thử tự động (automation test)
và xây dựng workflow **CI/CD** để triển khai pipeline.
Tích hợp dữ liệu mới
Các thử nghiệm thường tạo ra dataset và đặc trưng mới. Nếu chúng có thể tái sử dụng cho các use case ML hoặc phân tích khác, chúng sẽ được tích hợp vào feature/dataset repository thông qua pipeline kỹ thuật dữ liệu. Do đó, một đầu ra phổ biến của giai đoạn thử nghiệm là yêu cầu xây dựng các pipeline xử lý dữ liệu upstream (upstream data engineering pipelines).
---
Giải thích thuật ngữ:
- Serving environment: Môi trường triển khai phục vụ dự đoán.
- Entity-feature level: Quản lý đặc trưng theo từng thực thể (ví dụ: đặc trưng của người dùng).
- Continuous Training (CT): Huấn luyện liên tục (khi có dữ liệu mới).
- Upstream pipeline: Các quy trình xử lý dữ liệu ở giai đoạn đầu.