Model Development

Quá trình phát triển một mô hình đi từ việc lựa chọn một mô hình ML phù hợp cho đến huấn luyện để giải quyết vấn đề.

Model selection

Lựa chọn thuật toán ML và kiến trúc tốt nhất cho bài toán thường sẽ có các bước sau

  • Thiết lập một baseline đơn giản Ví dụ với bài toán hệ thống đề xuất video, baseline có thể là đề xuất những video nổi tiếng nhất.
  • Thử nghiệm với các mô hình đơn giản Sau khi đã có được baseline, chúng ta nên thử nghiệm các mô hình ML có thể cho ra kết quả train nhanh chóng như logistic regression.
  • Thử nghiệm với các mô hình phức tạp hơn nếu các mô hình đơn giản không thể đưa ra kết quả tốt, chúng ta có thể sử dụng đến các mô hình phức tạp hơn như mạng neuron.
  • Sử dụng ensemble models để cải thiện chất lượng của dự đoán có thể cân nhắc đến dùng ensemble models với các phương pháp bagging, boosting, stacking.

Có nhiều lựa chọn mô hình có thể sử dụng và cần biết được ưu nhược điểm của chúng. Một vài mô hình điển hình như Logistic regression, Linear regression, Decision trees, Gradient boosted decision trees and random forests, Support vector machines, Naive Bayes, Factorization Machines (FM), Neural networks (chi tiết về ưu nhược điểm sẽ có ở các bài tiếp theo). Khi lựa chọn một mô hình ML cần xem xét đến nhiều khía cạch của mô hình. Ví dụ:

  • Số lượng dữ liệu mà mô hình cần để huấn luyện
  • Tốc độ huấn luyện
  • Bộ siêu tham số để train và tune.
  • Khả năng tính toán của phần cứng hiện tại (mô hình có cần GPU không,..)
  • Khả năng diễn giải kết quả. Một mô hình phức tạp có thể cho ra kết quả tốt nhưng kết quả đó khó để diễn giải vì sao có được.

Không có một mô hình nào có thể giải quyết mọi vấn đề. Chúng ta cần có hiểu biết về các mô hình ML khác nhau cũng như ưu nhược điểm của chúng để có thể chọn ra mô hình phù hợp. Các phần sau này sẽ bao gồm nhiều ví dụ về việc lựa chọn mô hình.

Model training

Trong quá trình training mô hình sẽ có nhiều thứ cần được xét tới:

  • Tạo dataset
  • Lựa chọn hàm loss
  • Training từ đầu hay là fine-tuning
  • Distributed training
Tạo dataset

Có 5 bước cho quá trình tạo data. alt text

Lựa chọn hàm loss

Hàm loss là phép đo độ chính xác của model. Hàm loss cho phép hàm tối ưu cập nhập tham số cho model trong suốt quá trình training để đưa loss về nhỏ nhất. Cần phải hiểu và lựa chọn hàm loss từ các hàm loss phổ biến và thỉnh thoảng bạn sẽ cần chỉnh sửa hàm loss cho phù hợp với vấn đề.

Training từ đầu hay là fine-tune

Fine-tune là việc tiếp tục huấn luyện mô hình dựa trên mô hình có sẵn khác so với training mô hình từ đầu. Suy nghĩ để lựa chọn phương pháp phù hợp.

Distributed training

Model có thể phát triển lớn hơn theo thời gian và dữ liệu cũng sẽ càng nhiều hơn. Distributed training là phương pháp tạo ra nhiều worker để training đồng thời model để tăng tốc quá trình training. Có 2 cách làm đó là data parallelism và model parallelism

Evaluation

Bước tiếp theo trong quá trình phát triển mô hình đó là evaluation, sử dụng một metric nào đó để đánh giá performance của model. Có 2 phương pháp evaluation đó là offline và online.

Offline evaluation

Phương pháp này sẽ đánh giá model trong quá trình phát triển. Dưới đây là các metric thường được sử dụng cho các task khác nhau.

Task Offline metrics
Classification Precision, recall, F1, accuracy, ROC-AUC, confusion matrix
Regression MSE, MAE, RMSE
Ranking Precision@k, recall@k, MRR, mAP, nDCG
Image generation FID, Inception score
NLP BLEU, METEOR, ROUGE, CIDEr, SPICE
Online evaluation

Đây là quá trình đánh giá model performance trên môi trường production. Các phép đo này có liên quan chặt chẽ đến đến mục tiêu business. Dưới đây là các metric cho các vấn đề khác nhau

Problem Online metrics
Ad click prediction Click-through rate, revenue lift, etc.
Harmful content detection Prevalence, valid appeals, etc.
Video recommendation Click-through rate, total watch time, number of completed videos, etc.
Friend recommendation Number of requests sent per day, number of requests accepted per day, etc.