Hướng dẫn DeepChecks: Tự động hoá kiểm thử Machine Learning
Tìm hiểu cách thực hiện kiểm định dữ liệu và mô hình để đảm bảo hiệu năng machine learning vững chắc với hướng dẫn từng bước tự động hoá kiểm thử bằng DeepChecks.
Trong hướng dẫn này, chúng ta sẽ tìm hiểu về DeepChecks và cách sử dụng để thực hiện kiểm định dữ liệu và kiểm thử machine learning. Chúng ta cũng sẽ dùng GitHub Actions để tự động hoá kiểm thử mô hình và lưu kết quả dưới dạng artifacts.
Trong quá trình thực hiện, chúng ta sẽ tìm hiểu về kiểm thử machine learning và DeepChecks, chạy bộ kiểm tra tính toàn vẹn dữ liệu (data integrity suite) của DeepChecks, và tạo báo cáo tổng hợp. Chúng ta cũng sẽ tạo báo cáo kiểm thử machine learning bằng cách chạy bộ đánh giá mô hình, học cách chạy một bài kiểm tra đơn lẻ thay vì toàn bộ bộ kiểm tra, tự động hoá quy trình kiểm thử bằng GitHub Actions, và lưu báo cáo kiểm thử machine learning dưới dạng GitHub Artifact.
Hình do tác giả cung cấp
Kiểm thử Machine Learning là gì?
Kiểm thử machine learning là một quy trình quan trọng nhằm đánh giá và xác thực hiệu năng của các mô hình machine learning để đảm bảo tính công bằng, độ chính xác và khả năng chịu lỗi. Kiểm thử không chỉ là về độ chính xác và hiệu năng mô hình. Chúng ta cần xem xét sai lệch (bias) của mô hình, dương tính giả, âm tính giả, các chỉ số hiệu năng khác nhau, thông lượng của mô hình, và sự phù hợp của mô hình với các nguyên tắc đạo đức AI.
Quy trình kiểm thử bao gồm nhiều dạng đánh giá như kiểm định dữ liệu, cross-validation, F1-score, ma trận nhầm lẫn (confusion matrix), trôi dự đoán (prediction drift), trôi dữ liệu (data drift), và kiểm thử độ bền (robustness), mỗi loại được thiết kế để xác minh các khía cạnh khác nhau về hiệu năng và độ tin cậy của mô hình.
Chúng ta cũng chia bộ dữ liệu thành ba phần để có thể đánh giá mô hình trong quá trình huấn luyện và sau khi huấn luyện trên tập dữ liệu chưa từng thấy.
Kiểm thử machine learning là phần thiết yếu của các ứng dụng AI, và tự động hoá nó cùng với huấn luyện mô hình sẽ giúp chúng ta có các hệ thống AI đáng tin cậy phục vụ con người.
Nếu bạn mới bắt đầu với machine learning và muốn học những điều cơ bản, hãy tham gia Machine Learning Fundamentals với lộ trình kỹ năng Python. Khoá học này sẽ dạy bạn các nền tảng machine learning với Python, bắt đầu từ học có giám sát bằng thư viện scikit-learn.
Bắt đầu với DeepChecks
DeepChecks là một gói Python mã nguồn mở được thiết kế để hỗ trợ kiểm thử và kiểm định toàn diện cho mô hình và dữ liệu machine learning. Nó cung cấp nhiều kiểm tra dựng sẵn nhằm phát hiện các vấn đề liên quan đến hiệu năng mô hình, phân phối dữ liệu, tính toàn vẹn dữ liệu, và nhiều hơn nữa. DeepChecks bao gồm các chức năng kiểm định liên tục, đảm bảo mô hình duy trì độ tin cậy và hiệu quả khi được triển khai và sử dụng trong môi trường thực tế.
Chúng ta sẽ bắt đầu bằng cách cài đặt gói Python bằng lệnh pip.
Trong hướng dẫn này, chúng ta sử dụng Loan Data từ bộ dữ liệu của DataCamp. Bộ dữ liệu gồm 9578 dòng và thông tin về cấu trúc khoản vay, người vay, và liệu khoản vay có được hoàn trả đầy đủ hay không.
Tải tệp CSV bằng Pandas và hiển thị 5 dòng đầu.
import pandas as pd
loan_data = pd.read_csv("loan_data.csv")
loan_data.head()Được hỗ trợ bởi
Chuẩn bị dữ liệu
Tạo dataset DeepChecks bằng bộ dữ liệu khoản vay, tên cột nhãn, và tên thuộc tính phân loại.
from sklearn.model_selection import train_test_split
from deepchecks.tabular import Dataset
label_col ='not.fully.paid'
deep_loan_data = Dataset(loan_data, label=label_col, cat_features=["purpose"])Được hỗ trợ bởi
Chạy bộ kiểm tra tính toàn vẹn dữ liệu của DeepChecks
Chúng ta sẽ dùng bộ kiểm tra tính toàn vẹn cho dữ liệu dạng bảng. Bộ này sẽ tự động chạy tất cả các bài kiểm tra và tạo một báo cáo tương tác với kết quả.
Để làm điều này, chúng ta sẽ nhập bộ kiểm tra tính toàn vẹn dữ liệu, khởi tạo nó, sau đó chạy bộ kiểm tra với dữ liệu khoản vay của DeepChecks. Cuối cùng, chúng ta sẽ hiển thị kết quả.
from deepchecks.tabular.suites import data_integrity
integ_suite = data_integrity()
suite_result = integ_suite.run(deep_loan_data)
suite_result.show()Được hỗ trợ bởi
Lưu ý: Chúng ta đang dùng DataLab làm môi trường phát triển. Việc sử dụng ipywidgets đã bị vô hiệu hoá, khiến kết quả không thể hiển thị trực tiếp. Thay vào đó, chúng ta sẽ dùng hàm 'show_in_iframe' để hiển thị kết quả dưới dạng iframe. Kết quả sẽ giống nhau ở mọi cấp độ.
Chạy toàn bộ bộ kiểm tra trên một bộ dữ liệu lớn không hiệu quả vì sẽ mất nhiều thời gian để sinh kết quả. Thay vào đó, bạn có thể chạy một vài bài kiểm tra riêng lẻ phù hợp với dữ liệu của bạn và tự tạo báo cáo.
Để chạy một bài kiểm tra đơn, hãy nhập các kiểm tra cho dữ liệu dạng bảng, khởi tạo kiểm tra, và chạy nó với dữ liệu Khoản vay của DeepCheck. Sau đó, hiển thị các giá trị thay vì tạo báo cáo tương tác bằng hàm results.value.
from deepchecks.tabular.checks import IsSingleValue, DataDuplicates
result = IsSingleValue().run(deep_loan_data)
result.valueĐược hỗ trợ bởi
Như ta thấy, nó hiển thị số lượng giá trị duy nhất có trong mỗi cột.
{'credit.policy':2,'purpose':7,'int.rate':249,'installment':4788,'log.annual.inc':1987,'dti':2529,'fico':44,'days.with.cr.line':2687,'revol.bal':7869,'revol.util':1035,'inq.last.6mths':28,'delinq.2yrs':11,'pub.rec':6,'not.fully.paid':2}Được hỗ trợ bởi
Hãy thử kiểm tra các mẫu trùng lặp trong dữ liệu của chúng ta.
result = DataDuplicates().run(deep_loan_data)
result.valueĐược hỗ trợ bởi
Chúng ta có 0 bản ghi trùng lặp trong tập dữ liệu.
Trong phần này, chúng ta sẽ kết hợp nhiều mô hình và huấn luyện chúng trên bộ dữ liệu khoản vay đã xử lý. Sau đó, để tạo báo cáo kiểm thử mô hình, chúng ta sẽ chạy bộ đánh giá mô hình trên các tập huấn luyện và kiểm tra.
Xử lý dữ liệu và huấn luyện mô hình
Nhập các hàm thiết yếu từ thư viện Scikit-learn.
Chia bộ dữ liệu thành tập huấn luyện và kiểm tra.
Chuyển cột phân loại 'purpose' sang dạng số bằng bộ mã hoá nhãn.
Định nghĩa các mô hình LogisticRegression, RandomForestClassifier, và GaussianNB.
Kết hợp mô hình bằng voting classifier.
Huấn luyện mô hình tổ hợp trên tập huấn luyện.
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.ensemble import VotingClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.preprocessing import LabelEncoder
# Train test split
df_train, df_test = train_test_split(loan_data, stratify=loan_data[label_col], random_state=0)# Encode the 'purpose' column
label_encoder = LabelEncoder()
df_train['purpose']= label_encoder.fit_transform(df_train['purpose'])
df_test['purpose']= label_encoder.fit_transform(df_test['purpose'])# Define models
model_1 = LogisticRegression(random_state=1, max_iter=10000)
model_2 = RandomForestClassifier(n_estimators=50, random_state=1)
model_3 = GaussianNB()# Create the VotingClassifier
clf_model = VotingClassifier(
estimators=[('lr', model_1),('rf', model_2),('svc', model_3)],
voting='soft')# Train the model
clf_model.fit(df_train.drop(label_col, axis=1), df_train[label_col])Được hỗ trợ bởi
Chạy bộ đánh giá mô hình
Chúng ta sẽ chạy bộ đánh giá mô hình của DeepChecks để đánh giá hiệu năng mô hình.
Chuyển cả tập huấn luyện và kiểm tra thành dataset DeepCheck.
Khởi tạo đánh giá mô hình và chạy với các tập huấn luyện, kiểm tra, cùng mô hình.
Tương tự như kiểm định dữ liệu, bạn có thể chạy một bài kiểm thử machine learning đơn lẻ. Trong ví dụ này, chúng ta sẽ chạy kiểm tra trôi nhãn trên tập huấn luyện và kiểm tra để xem nhãn có thay đổi theo thời gian hay không.
from deepchecks.tabular.checks import LabelDrift
check = LabelDrift()
result = check.run(deep_train, deep_test)
result.valueĐược hỗ trợ bởi
Nếu bạn gặp khó khăn khi chạy các bộ kiểm định dữ liệu và đánh giá mô hình, vui lòng tham khảo không gian làm việc DataLab tại Machine Learning Testing with DeepChecks.
Nếu bạn quan tâm đến kiểm thử machine learning theo cách “thủ công”, hãy theo dõi hướng dẫn Machine Learning Experimentation để học cách cấu trúc, ghi log, và phân tích các thí nghiệm machine learning của bạn bằng Weights & Biases.
Tự động hoá kiểm thử Machine Learning bằng GitHub Actions và DeepChecks
Hãy tự động hoá giai đoạn kiểm định dữ liệu, huấn luyện mô hình, và đánh giá mô hình với GitHub Actions và lưu kết quả dưới dạng tệp zip.
Tự động hoá kiểm thử machine learning là phần không thể thiếu của đường ống MLOps. Tìm hiểu thêm bằng cách tham gia lộ trình kỹ năng MLOps Fundamentals. Trong chuỗi khoá học này, bạn sẽ học các nguyên tắc cơ bản để đưa mô hình machine learning vào sản xuất và giám sát chúng nhằm mang lại giá trị kinh doanh.
Thiết lập
Truy cập tài khoản GitHub và tạo một repository mới với đầy đủ thông tin cần thiết.
Clone repository về máy cục bộ.
Chuyển thư mục làm việc sang repository.
Tạo thư mục mới “data” và di chuyển tệp CSV dữ liệu khoản vay từ thư mục "Downloads" vào thư mục của repository.
Tạo kiểm định dữ liệu bằng Python và mở VSCode (môi trường phát triển tích hợp).
$ cd C:\Repository\GitHub\
$ git clone https://github.com/kingabzpro/Automating-Machine-Learning-Testing.git
$ cd .\Automating-Machine-Learning-Testing\
$ mkdir data
$ mv -v ".Downloads\loan_data.csv" ".\Automating-Machine-Learning-Testing\data"
$ code -r data_validation.pyĐược hỗ trợ bởi
Tệp kiểm định dữ liệu
Trong tệp kiểm định dữ liệu, bạn sẽ tải tệp CSV, chuyển đổi thành dataset DeepChecks, khởi tạo bộ kiểm tra tính toàn vẹn dữ liệu và chạy nó trên bộ dữ liệu khoản vay.
Tạo thư mục mới “results” và lưu kết quả dưới dạng tệp HTML.
import pandas as pd
from deepchecks.tabular import Dataset
from deepchecks.tabular.suites import data_integrity
# Load the loan data from a CSV file
loan_data = pd.read_csv("data/loan_data.csv")# Define the label column
label_col ="not.fully.paid"# Create a Deepchecks Dataset object with the loan data
deep_loan_data = Dataset(loan_data, label=label_col, cat_features=["purpose"])# Initialize the data integrity suite
integ_suite = data_integrity()# Run the data integrity suite on the dataset
suite_result = integ_suite.run(deep_loan_data)# Save the results of the data integrity suite as an HTML file
suite_result.save_as_html("results/data_validation.html")Được hỗ trợ bởi
Tệp kiểm thử mô hình
Tạo một tệp Python cho kiểm định dữ liệu bao gồm xử lý dữ liệu, xây dựng mô hình, huấn luyện và đánh giá. Tệp cũng cần bao gồm việc chuyển đổi dữ liệu thành dataset DeepChecks, chạy bộ đánh giá mô hình, và lưu dưới dạng tệp HTML trong thư mục "results".
import pandas as pd
from sklearn.ensemble import RandomForestClassifier, VotingClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn.preprocessing import LabelEncoder, StandardScaler
from deepchecks.tabular import Dataset
from deepchecks.tabular.suites import model_evaluation
# Load the loan data from a CSV file
loan_data = pd.read_csv("data/loan_data.csv")# Define the label column
label_col ="not.fully.paid"# Train test split
df_train, df_test = train_test_split(
loan_data, stratify=loan_data[label_col], random_state=0)# Encode the 'purpose' column
label_encoder = LabelEncoder()
df_train["purpose"]= label_encoder.fit_transform(df_train["purpose"])
df_test["purpose"]= label_encoder.transform(df_test["purpose"])# Standardize the features
scaler = StandardScaler()
df_train[df_train.columns.difference([label_col])]= scaler.fit_transform(df_train[df_train.columns.difference([label_col])])
df_test[df_test.columns.difference([label_col])]= scaler.transform(df_test[df_test.columns.difference([label_col])])# Define models
model_1 = LogisticRegression(random_state=1, max_iter=10000)
model_2 = RandomForestClassifier(n_estimators=50, random_state=1)
model_3 = GaussianNB()# Create the VotingClassifier
clf_model = VotingClassifier(
estimators=[("lr", model_1),("rf", model_2),("gnb", model_3)], voting="soft")# Train the model
clf_model.fit(df_train.drop(label_col, axis=1), df_train[label_col])# Calculate the accuracy score using the .score function
accuracy = clf_model.score(df_test.drop(label_col, axis=1), df_test[label_col])# Print the accuracy scoreprint(f"Accuracy: {accuracy:.2f}")# Create Deepchecks datasets
deep_train = Dataset(df_train, label=label_col, cat_features=["purpose"])
deep_test = Dataset(df_test, label=label_col, cat_features=["purpose"])# Run the evaluation suite
evaluation_suite = model_evaluation()
suite_result = evaluation_suite.run(deep_train, deep_test, clf_model)# Save the results as HTML
suite_result.save_as_html("results/model_validation.html")Được hỗ trợ bởi
Sử dụng GitHub Actions
Nếu bạn mới làm quen với GitHub Actions, vui lòng hoàn tất hướng dẫn "GitHub Actions and MakeFile: A Hands-on Introduction" trước khi bắt đầu quá trình tự động hoá. Hướng dẫn này sẽ cung cấp cái nhìn chi tiết về cách GitHub Actions hoạt động kèm ví dụ mã.
Để khởi tạo GitHub Actions, bạn cần stage và commit các thay đổi rồi đẩy (push) lên repository GitHub từ xa.
$ git add .
$ git commit -m "Data and Validation files"
$ git pushĐược hỗ trợ bởi
Truy cập repository GitHub, nhấp vào tab “Actions” và sau đó nhấp vào dòng chữ màu xanh “set up a workflow yourself”.
Chúng ta sẽ được chuyển hướng tới tệp workflow main.yml. Vui lòng sao chép và dán đoạn mã sau. Đoạn mã dưới đây sẽ thiết lập môi trường và cài đặt gói DeepChecks. Sau đó, nó sẽ tạo thư mục, chạy kiểm định dữ liệu và đánh giá mô hình, đồng thời lưu kết quả dưới dạng GitHub Artifact.
name: Model Training and Validation
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install deepchecks
- name: Create a folder
run: |
mkdir -p results
- name: Validate Data
run: |
python data_validation.py
- name: Validate Model Performance
run: |
python train_validation.py
- name: Archive Deepchecks Results
uses: actions/upload-artifact@v4
if: always()
with:
name: deepchecks results
path: results/*_validation.htmlĐược hỗ trợ bởi
Commit các thay đổi kèm thông điệp.
Khi commit thay đổi lên nhánh chính, quy trình làm việc sẽ được khởi chạy. Để xem nhật ký chạy, chuyển đến tab "Actions" và nhấp vào lượt chạy hiện tại gắn với thông điệp commit.
Khi lượt chạy workflow hoàn tất, vui lòng cuộn xuống và tải tệp zip trong phần “Artifacts”.
Mở tệp zip trên máy và xem kết quả kiểm định dữ liệu và mô hình.
Vui lòng tham khảo repository kingabzpro/Automating-Machine-Learning-Testing làm tài liệu hướng dẫn. Repository này chứa dữ liệu, mã Python, tệp workflow, và các tệp cần thiết khác để chạy kiểm thử tự động hoàn chỉnh.
Tự động hoá toàn bộ pipeline machine learning đòi hỏi kiến thức về nhiều quy trình và công cụ. Để tìm hiểu về các nội dung này, hãy cân nhắc tham gia khoá MLOps Deployment and Lifecycle. Khoá học này khám phá các khung MLOps hiện đại, tập trung vào vòng đời và triển khai mô hình machine learning.
Kết luận
Bằng cách tự động hoá quy trình kiểm thử, các nhà phát triển có thể nhanh chóng và hiệu quả xác thực độ chính xác và độ bền của mô hình trên các bộ dữ liệu lớn và phức tạp. Kiểm thử tự động giúp phát hiện sớm các vấn đề như không nhất quán dữ liệu, trôi dữ liệu, và thiên lệch mô hình — những vấn đề có thể không rõ ràng khi kiểm thử thủ công. Điều này giúp tiết kiệm thời gian và tăng cường khả năng đưa ra dự đoán công bằng, chính xác của mô hình.
Trong hướng dẫn này, chúng ta đã tìm hiểu về kiểm thử machine learning và cách sử dụng DeepChecks cho kiểm định dữ liệu và kiểm thử machine learning. Chúng ta cũng đã tự động hoá kiểm thử dữ liệu và mô hình, đồng thời lưu kết quả dưới dạng artifacts bằng GitHub Actions.
Nếu bạn thấy hướng dẫn hữu ích và quan tâm đến việc bắt đầu sự nghiệp trong lĩnh vực machine learning, hãy cân nhắc đăng ký lộ trình nghề nghiệp Machine Learning Scientist with Python. Hoàn thành tất cả khoá học trong 3 tháng để sở hữu những kỹ năng cần thiết cho vị trí nhà khoa học machine learning.
Là một nhà khoa học dữ liệu được chứng nhận, tôi đam mê tận dụng công nghệ tiên tiến để tạo ra các ứng dụng học máy đổi mới. Với nền tảng vững chắc về nhận dạng giọng nói, phân tích và báo cáo dữ liệu, MLOps, AI hội thoại và NLP, tôi đã rèn giũa kỹ năng phát triển các hệ thống thông minh có thể tạo ra tác động thực sự. Bên cạnh chuyên môn kỹ thuật, tôi cũng là một người truyền đạt tốt, có khả năng chắt lọc các khái niệm phức tạp thành ngôn ngữ rõ ràng, súc tích. Nhờ đó, tôi trở thành một blogger được nhiều người quan tâm trong lĩnh vực khoa học dữ liệu, chia sẻ góc nhìn và kinh nghiệm với cộng đồng các chuyên gia dữ liệu ngày càng lớn. Hiện tại, tôi tập trung vào sáng tạo và biên tập nội dung, làm việc với các mô hình ngôn ngữ lớn để phát triển nội dung mạnh mẽ và hấp dẫn, giúp doanh nghiệp và cá nhân tận dụng tối đa dữ liệu của mình.
Trong hướng dẫn này, chúng ta sẽ tìm hiểu về DeepChecks và cách sử dụng để thực hiện kiểm định dữ liệu và kiểm thử machine learning. Chúng ta cũng sẽ dùng GitHub Actions để tự động hoá kiểm thử mô hình và lưu kết quả dưới dạng artifacts.
Trong quá trình thực hiện, chúng ta sẽ tìm hiểu về kiểm thử machine learning và DeepChecks, chạy bộ kiểm tra tính toàn vẹn dữ liệu (data integrity suite) của DeepChecks, và tạo báo cáo tổng hợp. Chúng ta cũng sẽ tạo báo cáo kiểm thử machine learning bằng cách chạy bộ đánh giá mô hình, học cách chạy một bài kiểm tra đơn lẻ thay vì toàn bộ bộ kiểm tra, tự động hoá quy trình kiểm thử bằng GitHub Actions, và lưu báo cáo kiểm thử machine learning dưới dạng GitHub Artifact.
Hình do tác giả cung cấp
Kiểm thử Machine Learning là gì?
Kiểm thử machine learning là một quy trình quan trọng nhằm đánh giá và xác thực hiệu năng của các mô hình machine learning để đảm bảo tính công bằng, độ chính xác và khả năng chịu lỗi. Kiểm thử không chỉ là về độ chính xác và hiệu năng mô hình. Chúng ta cần xem xét sai lệch (bias) của mô hình, dương tính giả, âm tính giả, các chỉ số hiệu năng khác nhau, thông lượng của mô hình, và sự phù hợp của mô hình với các nguyên tắc đạo đức AI.
Quy trình kiểm thử bao gồm nhiều dạng đánh giá như kiểm định dữ liệu, cross-validation, F1-score, ma trận nhầm lẫn (confusion matrix), trôi dự đoán (prediction drift), trôi dữ liệu (data drift), và kiểm thử độ bền (robustness), mỗi loại được thiết kế để xác minh các khía cạnh khác nhau về hiệu năng và độ tin cậy của mô hình.
Chúng ta cũng chia bộ dữ liệu thành ba phần để có thể đánh giá mô hình trong quá trình huấn luyện và sau khi huấn luyện trên tập dữ liệu chưa từng thấy.
Kiểm thử machine learning là phần thiết yếu của các ứng dụng AI, và tự động hoá nó cùng với huấn luyện mô hình sẽ giúp chúng ta có các hệ thống AI đáng tin cậy phục vụ con người.
Nếu bạn mới bắt đầu với machine learning và muốn học những điều cơ bản, hãy tham gia Machine Learning Fundamentals với lộ trình kỹ năng Python. Khoá học này sẽ dạy bạn các nền tảng machine learning với Python, bắt đầu từ học có giám sát bằng thư viện scikit-learn.
Bắt đầu với DeepChecks
DeepChecks là một gói Python mã nguồn mở được thiết kế để hỗ trợ kiểm thử và kiểm định toàn diện cho mô hình và dữ liệu machine learning. Nó cung cấp nhiều kiểm tra dựng sẵn nhằm phát hiện các vấn đề liên quan đến hiệu năng mô hình, phân phối dữ liệu, tính toàn vẹn dữ liệu, và nhiều hơn nữa. DeepChecks bao gồm các chức năng kiểm định liên tục, đảm bảo mô hình duy trì độ tin cậy và hiệu quả khi được triển khai và sử dụng trong môi trường thực tế.
Chúng ta sẽ bắt đầu bằng cách cài đặt gói Python bằng lệnh
pip.Nạp dữ liệu
Trong hướng dẫn này, chúng ta sử dụng Loan Data từ bộ dữ liệu của DataCamp. Bộ dữ liệu gồm 9578 dòng và thông tin về cấu trúc khoản vay, người vay, và liệu khoản vay có được hoàn trả đầy đủ hay không.
Tải tệp CSV bằng Pandas và hiển thị 5 dòng đầu.
Chuẩn bị dữ liệu
Tạo dataset DeepChecks bằng bộ dữ liệu khoản vay, tên cột nhãn, và tên thuộc tính phân loại.
Chạy bộ kiểm tra tính toàn vẹn dữ liệu của DeepChecks
Chúng ta sẽ dùng bộ kiểm tra tính toàn vẹn cho dữ liệu dạng bảng. Bộ này sẽ tự động chạy tất cả các bài kiểm tra và tạo một báo cáo tương tác với kết quả.
Để làm điều này, chúng ta sẽ nhập bộ kiểm tra tính toàn vẹn dữ liệu, khởi tạo nó, sau đó chạy bộ kiểm tra với dữ liệu khoản vay của DeepChecks. Cuối cùng, chúng ta sẽ hiển thị kết quả.
Lưu ý: Chúng ta đang dùng DataLab làm môi trường phát triển. Việc sử dụng ipywidgets đã bị vô hiệu hoá, khiến kết quả không thể hiển thị trực tiếp. Thay vào đó, chúng ta sẽ dùng hàm 'show_in_iframe' để hiển thị kết quả dưới dạng iframe. Kết quả sẽ giống nhau ở mọi cấp độ.
Báo cáo tính toàn vẹn dữ liệu của chúng ta bao gồm kết quả các bài kiểm tra về:
Kết quả kiểm tra Tính toàn vẹn dữ liệu trong Jupyter Notebook.
Bạn thậm chí có thể lưu kết quả dưới dạng tệp HTML và chia sẻ với đồng nghiệp.
Chạy một bài kiểm tra đơn lẻ
Chạy toàn bộ bộ kiểm tra trên một bộ dữ liệu lớn không hiệu quả vì sẽ mất nhiều thời gian để sinh kết quả. Thay vào đó, bạn có thể chạy một vài bài kiểm tra riêng lẻ phù hợp với dữ liệu của bạn và tự tạo báo cáo.
Để chạy một bài kiểm tra đơn, hãy nhập các kiểm tra cho dữ liệu dạng bảng, khởi tạo kiểm tra, và chạy nó với dữ liệu Khoản vay của DeepCheck. Sau đó, hiển thị các giá trị thay vì tạo báo cáo tương tác bằng hàm
results.value.Như ta thấy, nó hiển thị số lượng giá trị duy nhất có trong mỗi cột.
Hãy thử kiểm tra các mẫu trùng lặp trong dữ liệu của chúng ta.
Chúng ta có 0 bản ghi trùng lặp trong tập dữ liệu.
Kiểm thử Machine Learning với DeepChecks
Trong phần này, chúng ta sẽ kết hợp nhiều mô hình và huấn luyện chúng trên bộ dữ liệu khoản vay đã xử lý. Sau đó, để tạo báo cáo kiểm thử mô hình, chúng ta sẽ chạy bộ đánh giá mô hình trên các tập huấn luyện và kiểm tra.
Xử lý dữ liệu và huấn luyện mô hình
Chạy bộ đánh giá mô hình
Chúng ta sẽ chạy bộ đánh giá mô hình của DeepChecks để đánh giá hiệu năng mô hình.
Báo cáo đánh giá mô hình của chúng ta bao gồm kết quả các bài kiểm tra về:
to_json().Chạy một bài kiểm tra đơn lẻ
Tương tự như kiểm định dữ liệu, bạn có thể chạy một bài kiểm thử machine learning đơn lẻ. Trong ví dụ này, chúng ta sẽ chạy kiểm tra trôi nhãn trên tập huấn luyện và kiểm tra để xem nhãn có thay đổi theo thời gian hay không.
Không phát hiện trôi trong dữ liệu.
Nếu bạn gặp khó khăn khi chạy các bộ kiểm định dữ liệu và đánh giá mô hình, vui lòng tham khảo không gian làm việc DataLab tại Machine Learning Testing with DeepChecks.
Nếu bạn quan tâm đến kiểm thử machine learning theo cách “thủ công”, hãy theo dõi hướng dẫn Machine Learning Experimentation để học cách cấu trúc, ghi log, và phân tích các thí nghiệm machine learning của bạn bằng Weights & Biases.
Tự động hoá kiểm thử Machine Learning bằng GitHub Actions và DeepChecks
Hãy tự động hoá giai đoạn kiểm định dữ liệu, huấn luyện mô hình, và đánh giá mô hình với GitHub Actions và lưu kết quả dưới dạng tệp zip.
Tự động hoá kiểm thử machine learning là phần không thể thiếu của đường ống MLOps. Tìm hiểu thêm bằng cách tham gia lộ trình kỹ năng MLOps Fundamentals. Trong chuỗi khoá học này, bạn sẽ học các nguyên tắc cơ bản để đưa mô hình machine learning vào sản xuất và giám sát chúng nhằm mang lại giá trị kinh doanh.
Thiết lập
Tệp kiểm định dữ liệu
Tệp kiểm thử mô hình
Sử dụng GitHub Actions
Nếu bạn mới làm quen với GitHub Actions, vui lòng hoàn tất hướng dẫn "GitHub Actions and MakeFile: A Hands-on Introduction" trước khi bắt đầu quá trình tự động hoá. Hướng dẫn này sẽ cung cấp cái nhìn chi tiết về cách GitHub Actions hoạt động kèm ví dụ mã.
main.yml. Vui lòng sao chép và dán đoạn mã sau. Đoạn mã dưới đây sẽ thiết lập môi trường và cài đặt gói DeepChecks. Sau đó, nó sẽ tạo thư mục, chạy kiểm định dữ liệu và đánh giá mô hình, đồng thời lưu kết quả dưới dạng GitHub Artifact.Khi commit thay đổi lên nhánh chính, quy trình làm việc sẽ được khởi chạy. Để xem nhật ký chạy, chuyển đến tab "Actions" và nhấp vào lượt chạy hiện tại gắn với thông điệp commit.
Vui lòng tham khảo repository kingabzpro/Automating-Machine-Learning-Testing làm tài liệu hướng dẫn. Repository này chứa dữ liệu, mã Python, tệp workflow, và các tệp cần thiết khác để chạy kiểm thử tự động hoàn chỉnh.
Tự động hoá toàn bộ pipeline machine learning đòi hỏi kiến thức về nhiều quy trình và công cụ. Để tìm hiểu về các nội dung này, hãy cân nhắc tham gia khoá MLOps Deployment and Lifecycle. Khoá học này khám phá các khung MLOps hiện đại, tập trung vào vòng đời và triển khai mô hình machine learning.
Kết luận
Bằng cách tự động hoá quy trình kiểm thử, các nhà phát triển có thể nhanh chóng và hiệu quả xác thực độ chính xác và độ bền của mô hình trên các bộ dữ liệu lớn và phức tạp. Kiểm thử tự động giúp phát hiện sớm các vấn đề như không nhất quán dữ liệu, trôi dữ liệu, và thiên lệch mô hình — những vấn đề có thể không rõ ràng khi kiểm thử thủ công. Điều này giúp tiết kiệm thời gian và tăng cường khả năng đưa ra dự đoán công bằng, chính xác của mô hình.
Trong hướng dẫn này, chúng ta đã tìm hiểu về kiểm thử machine learning và cách sử dụng DeepChecks cho kiểm định dữ liệu và kiểm thử machine learning. Chúng ta cũng đã tự động hoá kiểm thử dữ liệu và mô hình, đồng thời lưu kết quả dưới dạng artifacts bằng GitHub Actions.
Nếu bạn thấy hướng dẫn hữu ích và quan tâm đến việc bắt đầu sự nghiệp trong lĩnh vực machine learning, hãy cân nhắc đăng ký lộ trình nghề nghiệp Machine Learning Scientist with Python. Hoàn thành tất cả khoá học trong 3 tháng để sở hữu những kỹ năng cần thiết cho vị trí nhà khoa học machine learning.