Quản lý các thử nghiệm của Data Scientist bằng Weights & Biases

Để đưa ra giải pháp tối ưu nhất, Data Scientist cần phải thực hiện rất nhiều thử nghiệm để tìm tham số hay mô hình dữ liệu phù hợp. Weights & Biases là một trong những công cụ quản lý thử nghiệm được đánh giá rất hiệu quả.

Data Scientist nói chung hay AI Researcher nói riêng đều từng gặp các trường hợp là chạy rất nhiều thử nghiệm để tìm các tham số hay mô hình dữ liệu. Data Scientist cũng có thể thử nghiệm với các giá trị lựa chọn khác như tìm hàm tối ưu (optimizer), điều chỉnh tỉ lệ học (learning rate), số lần cần train (epoch hoặc step), ... Mục đích của việc tạo ra các thử nghiệm này là để so sánh và phân tích, từ đó đưa ra giải pháp tối ưu cho bài toán cần giải quyết. Vì có quá nhiều thử nghiệm nên các Data Scientist sẽ rất khó để tìm ra kết quả phù hợp. Trong bài này, mình sẽ chia sẻ cách để lưu trữ và quản lý các thử nghiệm của mô hình một cách đơn giản, trực quan và thuận tiện.

Ngày nay có rất nhiều công cụ để quản lý các thử nghiệm như Weights & Biases, MlFlow, Neptune, Comet.ml, ... Mình sẽ đề cập đến Weights & Biases, một công cụ quản lý các thử nghiệm rất hiệu quả và đang là xu hướng hiện nay.

Tổng quan

Weights & Biases là một công cụ giúp các Data Scientist theo dõi mô hình, dữ liệu, thông tin hệ thống chỉ với vài dòng code. Weights & Bias hỗ trợ miễn phí cho các cá nhân hoặc tổ chức nghiên cứu. Công cụ này hỗ trợ rất nhiều nền tảng mà không cần chuyển đổi sang công cụ khác như TensorFlow, Keras, PyTorch, Sklearn, fastai, …

Các thông tin cần quản lý và theo dõi sẽ được chuyển tới một giao diện (UI) của Weights & Biases. Giao diện này sẽ hiển thị và phân tích thông tin dễ dàng, việc so sánh các mô hình cũng như các tham số của nhiều thử nghiệm cũng diễn ra một cách nhanh chóng và trực tiếp. Một tiện ích nữa là bạn có thể chia sẻ các thông tin này cho team member của bạn.

5 tool của Weights & Biases bao gồm:

  1. Workplace: Theo dõi các thử nghiệm trên các biểu đồ như evaluate function, loss function; thông tin về hệ thống như dung lượng bộ nhớ, thông tin xử lý GPU, ...
  2. Artifacts: Phiên bản dữ liệu, các phiên bản mô hình
  3. Table: Hiển thị các thông tin về các thử nghiệm và giá trị của các tham biến.
  4. Sweeps: Tối ưu hóa các tham số
  5. Report: Lưu trữ và chia sẻ các số liệu để có thể tái tạo mô hình

Triển khai

Để bắt đầu, bạn tạo một tài khoản miễn phí trên trang của Weights & Biases. Copy mã xác thực. Trước khi chạy thử nghiệm mô hình, bạn chạy các lệnh như sau:

!pip install wandb -q
!wandb login

Sau đó điền mã xác thực.

Khởi tạo:

wandb.init(project="decission_tree", entity="truonghoang")

Theo dõi đánh giá:

wandb.log({'accuracy': train_acc, 'loss': train_loss})

Theo dõi tham số:

wandb.config.dropout = 0.2

Cụ thể với từng nền tảng:

Với Sklearn:

wandb.sklearn.plot_classifier(clf, X_train, X_test, y_train, y_test, y_pred, y_probas, labels, model_name='SVC', feature_names=None)
wandb.sklearn.plot_feature_importances(clf, \['width', 'height, 'length'])

Với Keras:

from wandb.keras import WandbCallback
wandb.config = {learning_rate: 0.3, batch_size: 32, epochs: 100}
model.fit(X_train, y_train, validation_data=(X_test, y_test), callbacks=\[WandbCallback()])

Với Pytorch:

wandb.config = {learning_rate: 1e-2, batch_size: 32, epochs: 100}
wandb.watch(model)
wandb.log({"loss": loss.item()})

Các phần chính

Workplace

Ở đây bạn có thể thấy những kết quả, các lần chạy thử nghiệm mô hình trong dự án được liệt kê như ảnh bên dưới. Bạn có thể truy cập các thông tin chi tiết hơn khi chọn các xem chart, system và tự tạo panel section cho riêng mình.

Artifacts

Công cụ Artifacts được cung cấp để quản lý các phiên bản của tập dữ liệu hay các phiên bản của mô hình. Bạn cũng có thể theo dõi kết quả được thực hiện từng bước từ đầu đến cuối và thay đổi khi cần thiết.

Table

Tất cả các dữ liệu sẽ được hiển thị, bạn còn có thể thêm, lọc, sắp xếp dữ liệu và truy vấn thông tin.

Sweeps

Sweeps là công cụ có thể giúp tự động tối ưu hóa các tham số và khám phá mô hình dựa vào các tùy chỉnh và cấu hình (configs), từ đó bạn có thể lựa chọn chiến lược mà bạn cho rằng sẽ giúp mô hình tối ưu nhất. Từ một vài mô hình, chúng ta có thể xử lý chạy riêng hoặc chạy đồng thời các tham số theo nhánh (agent) một cách tối ưu và hiệu quả. Từ đó việc đánh giá sẽ trở nên trực quan hơn cũng như dễ đưa ra các tham số cần thiết cho mô hình tối ưu.

Mỗi đường cong đại diện cho mỗi lần quét

Report

Đơn giản là bạn tạo một báo cáo, những thứ bạn cần hoặc tạo báo cáo theo một mẫu định dạng có sẵn. Đồng thời có thể chia sẻ báo cáo, kế hoạch tương lai.

So sánh với Neptune

Neptune cũng là một trong nhưng công cụ ưa chuộng mà các Data Scientist hay dùng. Cũng tùy ưu - nhược điểm mà bạn sẽ chọn công cụ phù hợp để triển khai và quản lý các mô hình. Dưới đây là những ưu điểm của Weights & Bias so với Neptune:

Hy vọng bài này giúp bạn có cái nhìn tổng quát cũng như hiểu hơn về công cụ theo dõi và quản lý hiệu quả các thử nghiệm mô hình.

Tham khảo Wandb.ai

Atekco - Home for Authentic Technical Consultants