MLOps: Theo dõi Thử nghiệm & Quản lý Phiên bản (Experiment Tracking & Versioning)

#exam-tip

Mục lục

1. Tổng quan

Việc theo dõi thử nghiệm (Experiment tracking) giúp các team ML tổ chức, so sánh và tái tạo các đợt chạy huấn luyện (training runs) một cách có hệ thống.

2. SageMaker Experiments #exam-tip

Mục đích: Theo dõi, tổ chức, và so sánh các thử nghiệm machine learning một cách có hệ thống.

Khái niệm Cốt lõi: Giúp trả lời câu hỏi “Bộ siêu tham số nào tạo ra mô hình tốt nhất?” bằng cách tổ chức lại toàn bộ các đợt chạy huấn luyện.

2.1 Cấu trúc Phân cấp (Hierarchy Structure)

Experiment
  └── Trial (Đợt chạy Huấn luyện 1)
      ├── Trial Component (Huấn luyện)
      ├── Trial Component (Xử lý)
      └── Trial Component (Đánh giá)
  └── Trial (Đợt chạy Huấn luyện 2)
      └── ...

2.2 Luồng Hoạt động của SageMaker Experiments

graph TB
    subgraph "Thiết lập Thử nghiệm"
        A[Tạo Thử nghiệm<br/>'fraud-detection-v2'] --> B[Định nghĩa Không gian Tìm kiếm<br/>Learning Rate: 0.001-0.1<br/>Batch Size: 32-256]
    end

    subgraph "Thực thi Trial - Chạy Nhiều lần"
        B --> C1[Trial 1: lr=0.001, batch=32]
        B --> C2[Trial 2: lr=0.01, batch=64]
        B --> C3[Trial 3: lr=0.1, batch=128]
        B --> C4[Trial N: ...]

        C1 --> D1[Training Job 1]
        C2 --> D2[Training Job 2]
        C3 --> D3[Training Job 3]
        C4 --> D4[Training Job N]

        D1 --> E1[Tự động Thu thập:<br/>- Siêu tham số<br/>- Metrics<br/>- Artifacts<br/>- Thời lượng]
        D2 --> E2[Tự động Thu thập:<br/>- Siêu tham số<br/>- Metrics<br/>- Artifacts<br/>- Thời lượng]
        D3 --> E3[Tự động Thu thập:<br/>- Siêu tham số<br/>- Metrics<br/>- Artifacts<br/>- Thời lượng]
        D4 --> E4[Tự động Thu thập:<br/>- Siêu tham số<br/>- Metrics<br/>- Artifacts<br/>- Thời lượng]
    end

    subgraph "Phân tích trong SageMaker Studio"
        E1 --> F[Giao diện Bảng Xếp hạng]
        E2 --> F
        E3 --> F
        E4 --> F

        F --> G[Sắp xếp theo Validation AUC<br/>Trial 2: AUC=0.94 ⭐<br/>Trial 3: AUC=0.91<br/>Trial 1: AUC=0.87<br/>Trial N: ...]

        G --> H[Các Công cụ Trực quan hóa]
        H --> I[Parallel Coordinates<br/>Xem tác động của siêu tham số]
        H --> J[Biểu đồ Chuỗi thời gian<br/>So sánh các đường cong huấn luyện]
        H --> K[Biểu đồ Phân tán<br/>Mối quan hệ LR và AUC]
    end

    subgraph "Chọn Mô hình Tốt nhất & Triển khai"
        G --> L[Chọn Trial 2<br/>Tốt nhất AUC=0.94]
        L --> M[Xem Toàn bộ Metadata:<br/>- Phiên bản Code: commit abc123<br/>- Dữ liệu: s3://bucket/train.csv<br/>- Instance: ml.p3.2xlarge<br/>- Thời lượng: 45 phút]

        M --> N[Đăng ký vào Model Registry]
        N --> O[Gói Mô hình v1.0<br/>Liên kết ngược về Trial 2]

        O --> P[Triển khai lên Production]
        P --> Q[Gia phả Hoàn chỉnh:<br/>Mô hình Production → Trial 2 → Dữ liệu Huấn luyện]
    end

    style C2 fill:#d4f4dd
    style E2 fill:#fff4e1
    style L fill:#e1ffe1
    style Q fill:#e1f5ff

2.3 Experiments vs TensorBoard vs Model Registry

graph LR
    subgraph "Trong khi Huấn luyện"
        A[Training Job] --> B[TensorBoard<br/>Trực quan hóa Thời gian thực]
        B --> C[Giám sát:<br/>- Các đường cong loss<br/>- Gradients<br/>- Trọng số<br/>Chi tiết cấp độ Step]

        A --> D[SageMaker Experiments<br/>Theo dõi Trial]
        D --> E[Thu thập:<br/>- Siêu tham số<br/>- Các metrics cuối cùng<br/>- Artifacts<br/>Tóm tắt cấp độ Trial]
    end

    subgraph "Sau khi Huấn luyện"
        E --> F[So sánh 100 Trials<br/>Bảng Xếp hạng]
        F --> G[Trial Tốt nhất<br/>AUC=0.94]

        G --> H[Model Registry<br/>Danh mục Production]
        H --> I[Đăng ký Mô hình v1.0<br/>Trạng thái: Đã phê duyệt]

        I --> J[Triển khai lên Endpoint]

        J --> K[Gia phả:<br/>Endpoint → Mô hình → Trial → Dữ liệu]
    end

    subgraph "Các Use Case"
        C --> L[Gỡ lỗi Huấn luyện:<br/>Triệt tiêu gradient?<br/>Overfitting?]

        F --> M[Phân tích Siêu tham số:<br/>LR nào tốt nhất?<br/>So sánh 50 trials]

        K --> N[Tuân thủ:<br/>Tái tạo mô hình<br/>Dấu vết Kiểm toán]
    end

    style B fill:#fff4e1
    style D fill:#e1f5ff
    style H fill:#e1ffe1

Định nghĩa:

  • Experiment (Thử nghiệm): Thùng chứa cấp cao dành cho các trials liên quan (ví dụ: “fraud-detection-model-v2”).
  • Trial (Lượt thử nghiệm): Một đợt chạy huấn luyện đơn lẻ với một bộ siêu tham số cụ thể (ví dụ: “learning-rate-0.01-run”).
  • Trial Component (Thành phần Trial): Từng bước riêng lẻ bên trong một trial (training job, processing job, transform job).

Những gì được Thu thập Tự động: #important

  • Siêu tham số (Hyperparameters): Tất cả các tham số dùng để train.
  • Metrics (Chỉ số đo lường): Các metrics của tập train/validation biến thiên theo thời gian (loss, accuracy, AUC).
  • Dữ liệu đầu vào (Input data): Đường dẫn S3 trỏ tới tập train/validation.
  • Artifacts đầu ra: Vị trí lưu mô hình, các checkpoints.
  • Mã nguồn (Code): Mã băm (hash) của Git commit, file script entry point.
  • Thông tin Instance: Loại instance, số lượng instance.
  • Thời lượng (Duration): Thời gian bắt đầu, kết thúc, tổng thời gian train.
  • Trạng thái: InProgress, Completed, Failed.

2.4 Cách thức Hoạt động

Theo dõi Tự động (Khuyên dùng): #exam-tip

# SageMaker Experiments - API Cốt lõi
with Run(experiment_name="fraud-detection", run_name="lr-0.01") as run:
    estimator.fit(inputs)  # Tự động thu thập metrics, hyperparameters

SageMaker tự động chụp lại: Siêu tham số, metrics, dữ liệu đầu vào, vị trí mô hình, phiên bản code, thời lượng.

Ghi log Thủ công (Ghi các Metrics tự chế - Custom Metrics):

run.log_metric(name="custom_f1_score", value=0.923)
run.log_parameter(name="feature_count", value=150)

2.5 Các Tính năng Chính

1. So sánh và Trực quan hóa (Comparison and Visualization) #exam-tip

SageMaker Studio cung cấp:

  • Leaderboard (Bảng xếp hạng): Xếp hạng toàn bộ trials dựa trên một metric (ví dụ: sort theo validation:auc).
  • Parallel coordinates plot: Xem tác động của các siêu tham số một cách trực quan.
  • Time series charts (Biểu đồ chuỗi thời gian): So sánh các đường cong huấn luyện của nhiều trials.
  • Scatter plots (Biểu đồ phân tán): Xem mối liên hệ giữa Siêu tham số vs Metric.

Use case: “Tốc độ học (learning rate) nào mang lại validation AUC ngon nhất?”

  • Lọc tất cả trials theo metric validation:auc.
  • Xếp giảm dần.
  • Nhìn ngay ra được bộ siêu tham số của trial vô địch.

2. Theo dõi Gia phả (Lineage Tracking)

Theo dõi toàn bộ luồng luân chuyển dữ liệu: #important

  • Dữ liệu đầu vào → Các job xử lý → Các job huấn luyện → Mô hình → Endpoints.
  • Truy xuất xuôi (Forward tracking): “Các endpoints nào đang xài tập dữ liệu này?”
  • Truy xuất ngược (Backward tracking): “Mô hình này được đẻ ra từ tập dữ liệu nào?”

Lợi ích về Tuân thủ (Compliance): Cung cấp dấu vết kiểm toán (audit trail) đáp ứng các yêu cầu luật định (GDPR, HIPAA).

3. Tìm kiếm và Lọc (Search and Filter)

Khả năng tìm kiếm:

  • Tìm trials theo giá trị của siêu tham số.
  • Lọc theo ngưỡng của metric (ví dụ: “AUC > 0.90”).
  • Tìm kiếm theo khoảng thời gian.
  • Lọc theo trạng thái (Completed, Failed).

Ví dụ về các truy vấn:

  • “Tất cả các trials có learning_rate < 0.01”
  • “Các trials của tuần trước có F1 > 0.85”
  • “Các trials bị Failed để đem đi gỡ lỗi”

4. Tích hợp với các Dịch vụ khác #exam-tip

Có thể chơi chung với:

  • SageMaker Training Jobs - Tự động tạo trial.
  • SageMaker Processing Jobs - Theo dõi khâu tiền xử lý dữ liệu.
  • SageMaker Autopilot - Thu thập toàn bộ các trials của AutoML.
  • SageMaker Pipelines - Gắn các lượt chạy pipeline vào trong experiments.
  • Model Registry - Nối trial xịn nhất sang model đã được đăng ký.

2.6 Các Use Cases #exam-tip

1. Phân tích việc Tinh chỉnh Siêu tham số (Hyperparameter Tuning Analysis)

  • Vấn đề: Mới chạy 50 cái HPO jobs xong, giờ muốn biết tham số nào là quan trọng.
  • Giải pháp: SageMaker Experiments theo dõi đủ cả 50 trials này.
  • Lợi ích: Trực quan hóa learning_rate vs accuracy, nhìn ra được các pattern (quy luật).

2. Làm việc nhóm (Team Collaboration)

  • Vấn đề: Nhiều Data Scientists cùng nhảy vào train mô hình, cần một chỗ để chia sẻ kết quả.
  • Giải pháp: Bắn tất cả các trials vào chung một experiment chia sẻ, cả team ai cũng thấy.
  • Lợi ích: Tránh làm trùng việc, lấy kết quả ngon nhất của người khác làm nền tảng đi tiếp.

3. Tái tạo Mô hình (Model Reproducibility)

  • Vấn đề: Có một cái mô hình build từ 3 tháng trước, giờ cần biết chính xác cấu hình (config) của nó.
  • Giải pháp: Experiments đã lưu lại toàn bộ code, dữ liệu, siêu tham số.
  • Lợi ích: Dựng lại y chang cái mô hình đó để debug hoặc phục vụ kiểm toán.

4. Lịch sử A/B Testing (A/B Testing History)

  • Vấn đề: Đang test thử nhiều phiên bản mô hình trên production.
  • Giải pháp: Link (nối) các biến thể production này về lại các experiment trials.
  • Lợi ích: Truy ngược từ cái mô hình trên production về tận cái đợt chạy huấn luyện sinh ra nó.

5. Kiểm toán và Tuân thủ (Audit and Compliance)

  • Vấn đề: Các cơ quan quản lý yêu cầu phải show ra được quy trình phát triển mô hình.
  • Giải pháp: Experiments cung cấp gia phả hoàn chỉnh (lineage) và audit trail.
  • Lợi ích: Vượt qua các đợt kiểm toán (audits), chứng minh được trách nhiệm giải trình.

2.7 Thực tiễn Tốt nhất (Best Practices) #exam-tip

Quy ước Đặt tên:

  • Experiment: {project}-{loại-mô-hình}-{phiên-bản} (ví dụ: “fraud-detection-xgboost-v2”).
  • Trial: {tóm-tắt-siêu-tham-số}-{ngày-tháng} (ví dụ: “lr-0.01-depth-5-2025-01-15”).

Ghi log Metric:

  • Hãy log cả validation metrics (chứ đừng chỉ log training metrics) để còn có cái mà so sánh.
  • Dùng tên nhất quán giữa các trials (ví dụ: lúc nào cũng ghi là “val_auc”).

Cách Tổ chức:

  • Mỗi loại mô hình / bài toán thì dùng chung 1 experiment.
  • Tạo experiment mới khi có những thay đổi lớn (thuật toán mới, features mới).
  • Giữ lại các trials của những mô hình đã lên production vĩnh viễn để phục vụ kiểm toán.

2.8 Experiments vs Model Registry #exam-tip

Khác biệt Cốt lõi:

Tiêu chí SageMaker Experiments Model Registry
Mục đích Theo dõi toàn bộ các đợt huấn luyện Lập danh mục các mô hình đã sẵn sàng cho production
Phạm vi Giai đoạn Phát triển (Development) Giai đoạn Triển khai (Deployment)
Nội dung Lưu TẤT CẢ trials (dù ngon hay dở) CHỈ lưu những mô hình đã được duyệt
Khi nào dùng Đang trong lúc thử nghiệm Sau khi mô hình đã chốt hạ
Metrics Các metrics của train/validation Metrics hiệu suất trên môi trường production
Phê duyệt Không có luồng phê duyệt nào Có luồng phê duyệt (Pending/Approved/Rejected)

Quy trình chuẩn (Workflow): #important

  1. Experiments: Chạy 100 trials, track lại tất cả các metrics.
  2. Chọn cái ngon nhất: Thấy Trial #47 có validation AUC cao nhất.
  3. Đăng ký (Register): Tạo ra một model package trong Model Registry, nguồn lấy từ Trial #47.
  4. Phê duyệt (Approve): Model Registry đánh dấu Approve (cho phép đưa lên production).
  5. Triển khai (Deploy): Bắn mô hình đã duyệt lên endpoint.
  6. Truy xuất ngược (Link back): Hoàn toàn có thể truy ngược từ mô hình trên production về lại Trial #47 bên trong Experiments.

Kịch bản Bài thi (Exam Scenario): #exam-tip

  • “Theo dõi nhiều đợt huấn luyện khác nhau?” → Chọn SageMaker Experiments.
  • “Tổ chức các mô hình production?” → Chọn Model Registry.
  • “So sánh các bộ siêu tham số khác nhau?” → Chọn SageMaker Experiments.
  • “Cần luồng phê duyệt (approval workflow) trước khi triển khai?” → Chọn Model Registry.

2.9 Định giá (Pricing) #exam-tip

SageMaker Experiments MIỄN PHÍ HOÀN TOÀN

  • Không tính thêm bất kỳ phụ phí nào ngoài tiền chạy máy training.
  • Chi phí lưu trữ metrics/metadata (cực kỳ nhỏ mọn, chỉ vài cắc bạc).
  • Lưu ý bài thi: Là một cách “ngon bổ rẻ” không tốn kém để nâng cấp workflow cho hệ thống ML.

2.10 Hạn chế (Limitations)

  • Metrics bị giới hạn tốc độ log tối thiểu là 5 giây 1 lần (để chống spam).
  • Giới hạn kích thước Artifact: Tối đa 5GB cho mỗi trial component.

3. TensorBoard #exam-tip

Mục đích: Trực quan hóa các training metrics, biểu đồ mô hình, và các thông tin gỡ lỗi (debugging) trong thời gian thực (real-time).

Khái niệm Cốt lõi: Một công cụ trực quan hóa mã nguồn mở (từ TensorFlow) cung cấp các dashboards tương tác, xịn xò để giám sát việc huấn luyện ML.

3.1 TensorBoard Cung cấp Những gì

Các Loại Trực quan hóa:

  • Scalars (Các đại lượng vô hướng): Các thông số loss, accuracy của tập train/val biến thiên theo thời gian (biểu đồ đường).
  • Histograms (Biểu đồ tần suất): Phân phối của weight và bias xuyên suốt quá trình train.
  • Graphs (Đồ thị): Trực quan hóa kiến trúc mô hình (model architecture).
  • Images (Hình ảnh): Xem các ảnh đầu vào và output của mô hình (dành cho mô hình thị giác máy tính - vision).
  • Distributions (Phân phối): Phân phối thống kê của các tensors.
  • Embeddings: Trực quan hóa 3D cho các embeddings (t-SNE, PCA).
  • Text/Audio: Nghe thử/xem thử các mẫu văn bản/âm thanh (dành cho mô hình NLP/audio).

Công dụng Phổ biến: #exam-tip

  1. Giám sát tiến trình training - Xem đường loss tụt dần trong thời gian thực.
  2. So sánh các đợt training - Chồng (overlay) nhiều experiment lên nhau để xem.
  3. Gỡ lỗi (Debug) - Truy tìm lỗi vanishing gradients (triệt tiêu gradient), exploding weights (bùng nổ trọng số).
  4. Kiểm định mô hình - Xem mô hình đang thực sự học hay đang bị overfitting.
  5. Phân tích siêu tham số - So sánh các cấu hình khác nhau.

3.2 TensorBoard đi chung với SageMaker #important

Các Phương pháp Tích hợp:

1. Qua Output của Training Job (Khuyên dùng) #exam-tip

# Bật TensorBoard trong estimator
tensorboard_output_config={
    'S3OutputPath': 's3://bucket/tensorboard-logs'
}

Bên trong file script training: Gắn thêm TensorBoard callback (tf.keras.callbacks.TensorBoard(log_dir='/opt/ml/output/tensorboard')).

Kết quả: Các file logs sẽ tự động được đẩy lên S3 trong lúc/sau khi train.

2. Tích hợp trực tiếp vào SageMaker Studio #exam-tip

  • Xem TensorBoard ngay trong Studio - Khỏi cần cài cắm gì thêm.
  • Khởi chạy từ giao diện Studio - Chuột phải vào training job → chọn “Open TensorBoard”.
  • Tự động đồng bộ với S3 - Studio sẽ tự bốc logs từ S3 về để hiển thị.
  • So sánh đa jobs (Multi-job comparison) - Kéo nhiều training jobs đặt cạnh nhau để so kè.

Các bước:

  1. Training job ghi TensorBoard logs ra S3.
  2. Mở SageMaker Studio.
  3. Tìm đến training job đó.
  4. Bấm “Open TensorBoard”.
  5. Studio bật cái giao diện của TensorBoard lên cho bạn xem.

3. Tích hợp cùng SageMaker Debugger #exam-tip

SageMaker Debugger + TensorBoard:

# TensorBoardOutputConfig - Tích hợp với Debugger
TensorBoardOutputConfig(s3_output_path='s3://bucket/debugger-tensorboard')

Debugger mang thêm gì cho TensorBoard:

  • Phân phối Tensor (Tensor distributions) - Weights, gradients, activations.
  • System metrics (Các chỉ số hệ thống) - Xem CPU, GPU, memory đang bú bao nhiêu.
  • Thông tin debugging (Debugging insights) - Báo động các hiện tượng vanishing gradients, overfitting.

3.3 Các Tính năng Cốt lõi cần nhớ cho Bài thi #exam-tip

1. Giám sát Thời gian thực (Real-time Monitoring)

  • Xem live (trực tiếp) - Thấy metrics được cập nhật liên tục mỗi vài giây.
  • Bắt lỗi sớm - Thấy đường loss bay lượn lung tung là ấn nút Stop ngay.
  • Không phải sửa code - Chơi ngon lành với các code TensorFlow/PyTorch có sẵn.

2. So sánh Đa lượt chạy (Multi-run Comparison) #important

  • Chồng các lượt chạy (Overlay) - Dễ dàng so sánh các mức learning rates qua biểu đồ.
  • Đường kẻ có màu (Color-coded lines) - Mỗi lượt chạy mang một màu đặc trưng.
  • Lọc theo lượt chạy (Filter by run) - Thích xem/ẩn experiment nào thì tùy.
  • Use case: “Learning rate nào giúp mô hình hội tụ (converge) nhanh nhất?”

3. Phân tích qua Biểu đồ Tần suất (Histogram Analysis)

  • Phân phối Trọng số (Weight distributions) - Xem các trọng số có đang được update tử tế không.
  • Dòng chảy Gradient (Gradient flow) - Chắc chắn rằng gradients không bị bốc hơi (vanishing) hay phình to (exploding).
  • Các patterns kích hoạt (Activation patterns) - Kiểm tra xem các neurons có đang bắn tín hiệu (firing) đúng chuẩn không.

4. Khả năng Hỗ trợ Framework

  • TensorFlow: Hỗ trợ tận răng (vì là gà nhà).
  • PyTorch: Hỗ trợ thông qua thư viện torch.utils.tensorboard.
  • MXNet: Hỗ trợ qua MXBoard.
  • XGBoost: Phải viết code log thủ công (custom logging).

3.4 TensorBoard vs SageMaker Experiments #exam-tip

Sự khác biệt Cốt lõi:

Tiêu chí TensorBoard SageMaker Experiments
Mục đích chính Trực quan hóa chi tiết quá trình training Theo dõi trials, tổ chức các experiments
Độ chi tiết Cấp độ Step (từng batch) Cấp độ Epoch/Trial (đã được tổng hợp - aggregated)
Tốt nhất cho Debug, giám sát thời gian thực So sánh các siêu tham số, tổ chức luồng chạy
Trực quan hóa Đồ thị siêu phong phú, histograms, embeddings Xài bảng biểu, leaderboards, các biểu đồ cơ bản
Lưu trữ File local, S3 Kho siêu dữ liệu (metadata store) của SageMaker
Tích hợp Phụ thuộc framework (TensorFlow, PyTorch) Bất chấp framework (chạy được với mọi thứ)
Dùng lúc nào Đang training (thời gian thực) Sau khi training xong (để phân tích)
Người dùng điển hình ML engineer đang cắm mặt debug mô hình Data scientist đang đi so sánh các trials

Khi nào dùng cái nào: #important

Dùng TensorBoard khi:

  • Cần trực quan hóa quá trình training với độ chi tiết siêu cao (đường cong loss, gradients).
  • Đang gỡ lỗi quá trình training (các lỗi như vanishing gradients, hội tụ kém).
  • Muốn giám sát thời gian thực trong lúc train.
  • Cần phân tích kiến trúc mô hình và các phân phối của tensor.
  • Đang làm việc với TensorFlow/PyTorch.

Dùng SageMaker Experiments khi:

  • Cần so sánh rất nhiều tổ hợp siêu tham số.
  • Phân loại, tổ chức các experiments cho cả team xem.
  • Cần hệ thống theo dõi trial một cách bài bản, có cấu trúc.
  • Muốn một danh mục các experiment có chức năng tìm kiếm (searchable).
  • Xây dựng dấu vết kiểm toán (audit trail) phục vụ việc tuân thủ pháp lý.

NÊN DÙNG CẢ HAI cùng lúc: #exam-tip

  • TensorBoard chuyên lo mảng gỡ lỗi sâu và giám sát real-time.
  • SageMaker Experiments chuyên lo mảng tổ chức cấp cao và so sánh các trials với nhau.
  • Quy trình chuẩn (Workflow):
    1. Lúc train thì bật cả 2 cái lên.
    2. Mắt chớp chớp nhìn TensorBoard trong lúc train (có biến là tóm ngay).
    3. Train xong, chuyển qua dùng Experiments để so sánh với các trials khác.
    4. Lọc ra được trial ngon nhất, đem đăng ký vô Model Registry.

3.5 Các Use Cases #exam-tip

1. Gỡ lỗi Huấn luyện (Debugging Training Issues)

  • Vấn đề: Đường loss chả thấy tụt, nghi là dính vanishing gradients.
  • Giải pháp: Mở cái histogram của TensorBoard lên thấy gradients lẹt đẹt gần mức 0.
  • Hành động: Tăng learning rate lên hoặc đổi activation function (hàm kích hoạt) khác.

2. So sánh Learning Rates

  • Vấn đề: Không biết learning rate nào (0.001, 0.01 hay 0.1) là ngon nhất?
  • Giải pháp: Chạy 3 cái training jobs, cho tất cả log vào TensorBoard.
  • Lợi ích: Trải 3 đường cong loss đè lên nhau, nhìn bằng mắt thường cũng thấy thằng 0.01 hội tụ nhanh nhất.

3. Giám sát Training Thời gian thực (Real-time Training Monitoring)

  • Vấn đề: Máy báo train mất 4 tiếng, muốn kiểm tra tiến độ giữa chừng.
  • Giải pháp: Bật TensorBoard ngay trong Studio trong lúc máy đang train.
  • Lợi ích: Thấy được loss hiện tại, để còn biết đường phán đoán xem máy có đang học hay đang phá.

4. Kiểm định Kiến trúc Mô hình (Model Architecture Validation)

  • Vấn đề: Mô hình rắc rối quá, muốn kiểm tra xem kiến trúc có viết đúng không.
  • Giải pháp: Vào mục Graph của TensorBoard để xem cấu trúc mô hình (model structure).
  • Lợi ích: Bắt được lỗi ngay trước khi ném tiền vô chạy một cái long training run.

5. Phát hiện Overfitting

  • Vấn đề: Nghi mô hình đang bị overfitting.
  • Giải pháp: TensorBoard báo cáo thấy đường training loss và validation loss đang rẽ ra 2 hướng khác nhau (diverging).
  • Hành động: Ốp thêm regularization (điều chuẩn) hoặc chơi bài early stopping (dừng sớm).

3.6 Thực tiễn Tốt nhất (Best Practices) #exam-tip

1. Luôn luôn Bật TensorBoard - Hao tốn thêm chả đáng bao nhiêu, hãy nhúng nó vào tất cả các training jobs:

tensorboard_output_config={'S3OutputPath': 's3://bucket/tensorboard-logs'}

2. Phân loại Logs theo Experiment - Sử dụng các đường dẫn S3 có cấu trúc (ví dụ: s3://bucket/tensorboard/fraud-detection/lr-0.01/).

3. Nhớ Log cả Training và Validation Metrics - Chia ra làm 2 scalars riêng biệt để dễ đối chiếu (train/val comparison).

4. Đặt tên Run cho Tử tế - Chuẩn mực: “lr-0.01-batch-128”, Kém sang: “run1”.

3.7 Hạn chế (Limitations) #exam-tip

  • Nghiêng về Framework cụ thể: Chơi thân nhất với TensorFlow, PyTorch/MXNet thì phải setup cực hơn một tí.
  • File khổng lồ: Ghi log quá chi tiết (ví dụ bật histograms) sẽ đẻ ra các file logs cực nặng.
  • Không phải là Database: Không cho phép query (truy vấn) xịn xò như thằng Experiments.
  • So sánh bằng chạy cơm: Phải tự tay tick chọn các runs muốn so sánh chứ nó không auto.

3.8 Định giá (Pricing)

Bản thân TensorBoard là HÀNG CHÙA (FREE) (mã nguồn mở)

  • Chỉ tốn phí: Lưu trữ file logs trên S3 (rất bèo bọt, tốn vài xu lẻ).
  • Studio integration (Tích hợp trong Studio): Không thu thêm đồng nào.
  • Data transfer (Chuyển đổi dữ liệu): Áp dụng bảng giá tải dữ liệu S3 tiêu chuẩn nếu bạn tải logs về máy tính cá nhân.

3.9 Kịch bản Bài thi (Exam Scenarios) #exam-tip

Kịch bản Giải pháp
“Trực quan hóa training loss trong thời gian thực?” Chọn TensorBoard (có tích hợp trong Studio)
“Debug lỗi vanishing gradients?” Chọn TensorBoard (mục histogram)
“So sánh 50 trials cấu hình siêu tham số?” Chọn SageMaker Experiments (tốt hơn với quy mô lớn)
“Xem kiến trúc (architecture) của mô hình?” Chọn TensorBoard (mục graph)
“Truy tìm tập dữ liệu nào đã sinh ra mô hình xịn nhất?” Chọn SageMaker Experiments (theo dõi lineage)
“Theo dõi quá trình training trực tiếp từ Studio?” Chọn TensorBoard trong Studio
“So tài 3 mức learning rate chồng lên nhau?” Chọn TensorBoard (chức năng multi-run comparison)

Điểm Khác biệt Cốt lõi cho Bài thi: #important

  • Nếu hỏi “Trực quan hóa/debug chi tiết lúc training” → Nhắm mắt chọn TensorBoard.
  • Nếu hỏi “Tổ chức/So sánh khối lượng lớn experiments” → Chọn SageMaker Experiments.
  • Nếu hỏi “Kết hợp cả hai” → Đó chính là best practice (thực tiễn tốt nhất) cho một workflow ML hoàn chỉnh.

4. Theo dõi Gia phả ML (ML Lineage Tracking) #important #exam-tip

Mục đích: Tự động theo dõi dòng chảy dữ liệu hoàn chỉnh từ dữ liệu thô (raw data) cho đến các mô hình đã lên thớt (deployed models), tạo ra một dấu vết kiểm toán (audit trail) phục vụ tuân thủ (compliance), gỡ lỗi (debugging), và tính tái tạo (reproducibility).

Khái niệm Cốt lõi: Nhằm trả lời các câu hỏi chí mạng:

  • Truy xuất xuôi (Forward tracking): “Các mô hình/endpoints nào đang xài tập dữ liệu này?” (impact analysis - phân tích tác động).
  • Truy xuất ngược (Backward tracking): “Cái mô hình đang chạy trên production kia được train từ tập dữ liệu nào?” (compliance, debugging).

Tại sao lại Quan trọng trong Bài thi:

  • Tuân thủ (Compliance): Các quy định của GDPR, HIPAA, bộ luật tài chính đều yêu cầu phải có audit trails.
  • Quản trị Mô hình (Model governance): Theo dõi nguồn gốc (provenance) của mô hình để trình lên cơ quan quản lý phê duyệt.
  • Gỡ lỗi (Debugging): Truy ngược từ lỗi trên production về tận tập dữ liệu huấn luyện.
  • Tính Tái tạo (Reproducibility): Dựng lại được mô hình với phiên bản dữ liệu/code chính xác tới từng byte.

4.1 Những gì được Thu thập Tự động #important

Các Thực thể Gia phả (Lineage Entities / Artifacts):

Loại Thực thể Mô tả Ví dụ
Data Sources (Nguồn dữ liệu) Các tập dữ liệu đầu vào S3 objects, Athena tables, các feature groups của Feature Store
Processing Jobs (Tác vụ Xử lý) Biến đổi dữ liệu SageMaker Processing, Glue jobs
Training Jobs (Tác vụ Huấn luyện) Huấn luyện mô hình SageMaker training jobs, Autopilot trials
Models (Mô hình) Các artifacts của mô hình Model packages nằm trong Model Registry
Transform Jobs Batch inference Các Batch Transform jobs
Endpoints Real-time inference SageMaker endpoints
Pipeline Executions Luồng chạy MLOps Các lượt chạy SageMaker Pipelines
Experiments/Trials Theo dõi experiment SageMaker Experiments trials

Theo dõi các Mối quan hệ (Relationships):

Dữ liệu Thô (S3)
    ↓ (đưa vào)
Processing Job
    ↓ (đẻ ra)
Dữ liệu Đã xử lý (S3)
    ↓ (đưa vào)
Training Job
    ↓ (đẻ ra)
Model Artifact (S3)
    ↓ (đăng ký thành)
Model Package (Nằm trong Registry)
    ↓ (triển khai lên)
Endpoint (Production)

4.2 Cách hoạt động của Lineage Tracking

Thu thập Tự động (Không cần đụng chạm vào code): #exam-tip

SageMaker sẽ tự động tạo ra lineage mỗi khi bạn xài các dịch vụ của SageMaker:

# Chẳng cần code kiếc gì đặc biệt - lineage sẽ tự động lưu hết
from sagemaker.sklearn import SKLearn

# 1. Training job (tự động track)
estimator = SKLearn(
    entry_point='train.py',
    role=role,
    instance_type='ml.m5.xlarge'
)

# Lineage tự động lưu:
# - Input data: s3://bucket/train.csv
# - Training job ARN
# - Output model: s3://bucket/model.tar.gz
estimator.fit({'training': 's3://bucket/train.csv'})

# 2. Đăng ký mô hình (tự động track)
from sagemaker.model import Model

model = estimator.create_model()
model_package = model.register(
    model_package_group_name='fraud-detection',
    approval_status='Approved'
)
# Lineage tự động móc link: Training Job → Model Package

# 3. Triển khai endpoint (tự động track)
predictor = model.deploy(
    initial_instance_count=1,
    instance_type='ml.m5.xlarge'
)
# Lineage tự động móc link: Model Package → Endpoint

Kết quả: Một chuỗi thức ăn (chain) hoàn chỉnh được tự động thiết lập:

s3://bucket/train.csv → Training Job → s3://bucket/model.tar.gz → Model Package → Endpoint

Đánh dấu Thủ công (Cho các Artifacts tự chế - Custom Artifacts): #exam-tip

Dành cho các workflow tùy biến (custom) nằm ngoài vùng phủ sóng của SageMaker:

from sagemaker.lineage import context, artifact, association

# Tạo custom artifact (ví dụ: một external data source)
input_artifact = artifact.Artifact.create(
    artifact_name='external-database-export',
    artifact_type='DataSet',
    source_uri='rds://my-database/table/export-2025-01-15.csv',
    properties={'rows': 1000000, 'features': 50}
)

# Tạo training context (ngữ cảnh)
training_context = context.Context.create(
    context_name='custom-training-job',
    context_type='Training',
    source_uri='arn:aws:custom-training:us-east-1:123456789012:job/abc'
)

# Móc nối (link) artifact vào context (để tạo association)
association.Association.create(
    source_arn=input_artifact.artifact_arn,
    destination_arn=training_context.context_arn,
    association_type='ContributedTo'
)

Use case: Khi bạn tự code cái tool training ngoài SageMaker, xài nguồn data ngoài, hoặc các công cụ hãng thứ ba (third-party tools).

4.3 Truy vấn Gia phả (Querying Lineage) #important #exam-tip

1. Truy xuất Xuôi (Impact Analysis - Đánh giá Tác động)

Câu hỏi: “Nếu tôi sửa cái tập dữ liệu này, những mô hình nào sẽ bị ăn hành?”

from sagemaker.lineage.query import LineageQuery

# Tìm tất cả các artifacts nằm ở phía hạ nguồn (downstream) của dataset
query = LineageQuery(sagemaker_session=session)

# Bắt đầu từ cái dataset
dataset_artifact_arn = 'arn:aws:sagemaker:region:account:artifact/dataset-v1'

# Chạy truy xuất xuôi (Cái gì đang xài dataset này?)
lineage = query.query(
    start_arns=[dataset_artifact_arn],
    direction='Descendants',  # Forward tracking
    include_edges=True
)

# Kết quả trả về: dataset → processing job → training job → model → endpoint
for vertex in lineage.vertices:
    print(f"{vertex.arn} ({vertex.lineage_type})")

Ví dụ đầu ra (Output example):

arn:aws:sagemaker:region:account:artifact/dataset-v1 (DataSet)
    ↓
arn:aws:sagemaker:region:account:processing-job/preprocess-123 (ProcessingJob)
    ↓
arn:aws:sagemaker:region:account:training-job/train-456 (TrainingJob)
    ↓
arn:aws:sagemaker:region:account:model-package/fraud-v1.0 (ModelPackage)
    ↓
arn:aws:sagemaker:region:account:endpoint/fraud-prod (Endpoint)

Use case: “Phải retrain lại tất cả đống mô hình kia nếu dataset thay đổi”.

2. Truy xuất Ngược (Backward Tracking - Compliance, Debugging) #exam-tip

Câu hỏi: “Mô hình production này được đẻ ra từ chính xác cái data nào thế?”

# Khởi hành từ cái production endpoint
endpoint_arn = 'arn:aws:sagemaker:region:account:endpoint/fraud-prod'

# Chạy truy xuất ngược (Cái gì đã tạo ra cái endpoint này?)
lineage = query.query(
    start_arns=[endpoint_arn],
    direction='Ascendants',  # Backward tracking
    include_edges=True
)

# Kết quả: endpoint → model → training job → dataset
for vertex in lineage.vertices:
    print(f"{vertex.arn} ({vertex.lineage_type})")
    # Có thể soi được các thông số (properties): creation_time, source_uri, v.v...

Ví dụ đầu ra (Output example):

arn:aws:sagemaker:region:account:endpoint/fraud-prod (Endpoint)
    ↑
arn:aws:sagemaker:region:account:model-package/fraud-v1.0 (ModelPackage)
    ↑
arn:aws:sagemaker:region:account:training-job/train-456 (TrainingJob)
    ↑
arn:aws:sagemaker:region:account:artifact/train-data-2025-01-01.csv (DataSet)

Use case: Khi bị đội thanh tra gõ đầu: “Mời xuất trình dữ liệu dùng để train cái mô hình này”.

3. SageMaker Studio Lineage Graph (Đồ thị Gia phả trên Studio) #exam-tip

Xem lineage trực quan bằng UI trên Studio:

  1. Mở SageMaker Studio.
  2. Tìm đến cái model hoặc endpoint.
  3. Bấm sang tab “Lineage”.
  4. Một đồ thị tương tác (Interactive graph) sẽ vẽ ra toàn bộ phả hệ:
    • Click vào từng node (nút) để xem chi tiết (hyperparameters, metrics, thời gian).
    • Truy xuôi/ngược bằng mắt cực kỳ dễ hiểu.
    • Xuất (Export) biểu đồ ra báo cáo.

Lưu ý bài thi: Studio đem lại trải nghiệm khám phá lineage không cần viết code (no-code), cực phù hợp cho các “tay mơ” hoặc sếp lớn không giỏi kỹ thuật.

4.4 Khả năng Tích hợp với các Dịch vụ khác #exam-tip

1. SageMaker Experiments

Hai đứa chơi với nhau kiểu gì:

  • Experiments chuyên quản trials (bạn đã thử nghiệm những trò gì).
  • Lineage chuyên quản đường đi của dữ liệu (dữ liệu nào đã được xài/đẻ ra).
  • Móc xích: Từng trial sẽ đóng vai trò là một lineage entity (thực thể gia phả).
# Cứ là Experiment trial thì auto có lineage
with Run(experiment_name='fraud-detection', run_name='trial-1') as run:
    estimator.fit(inputs)
    # Lineage sẽ tự động liên kết:
    # Trial → Training Job → Data → Model

Lợi ích: Có thể truy vấn “Trial nào xài dataset X?” hoặc “Trial vô địch kia đã ngậm dataset nào?”.

2. Model Registry #important

Lineage làm cầu nối giữa Registry và Training:

# Đăng ký mô hình
model_package = model.register(
    model_package_group_name='fraud-detection',
    approval_status='PendingManualApproval'
)

# Lineage đã auto thu thập luôn:
# Training Job → Model Package (Registry)

# Hôm sau vui vui, bạn có thể query xem training job nào đã đẻ ra cái model package này
lineage = query.query(
    start_arns=[model_package.model_package_arn],
    direction='Ascendants'
)
# Output trả về: Training job, input data, hyperparameters, code version

Lợi ích Tuân thủ: Việc kết hợp Model Registry approval + Lineage = 1 chiếc audit trail chuẩn chỉnh không tì vết.

3. SageMaker Pipelines #exam-tip

Các lượt chạy Pipeline cũng là lineage entities:

# Pipeline execution (Chạy pipeline)
from sagemaker.workflow.pipeline import Pipeline

pipeline = Pipeline(
    name='fraud-detection-pipeline',
    steps=[processing_step, training_step, register_step, deploy_step]
)

execution = pipeline.start()

# Lineage auto chụp lại TOÀN BỘ cái pipeline:
# - Pipeline execution ARN
# - Từng step nhỏ bên trong (processing, training, registration)
# - Các đầu vào/đầu ra (Inputs/outputs) ở mỗi step
# - Cái deployed endpoint cuối cùng được tạo ra

# Bạn có thể Query: "Lượt chạy pipeline nào đã đẻ ra cái endpoint này?"

Lợi ích: Chỉ với 1 phát truy vấn (lineage query), bạn đã vạch trần được đường đi nước bước của CẢ HỆ THỐNG MLOps workflow.

4. Feature Store #exam-tip

Các Feature groups cũng được xếp vào diện lineage entities:

# Đem feature group vào chạy training job
estimator.fit({
    'training': 'arn:aws:sagemaker:region:account:feature-group/customer-features'
})

# Lineage tự động lụm luôn:
# Feature Group → Training Job → Model

# Query: "Mô hình nào xài feature này?"
# Query: "Phiên bản feature group nào đã train cái mô hình này?"

Lợi ích Tuân thủ: Kiểm soát được các feature nào đã tác động lên quyết định của mô hình (quan trọng cho GDPR, độ công bằng - fairness).

4.5 Các Use Cases #exam-tip

1. Tuân thủ Quy định (GDPR, HIPAA, Finance) #important

Yêu cầu: “Hãy chứng minh dữ liệu của bệnh nhân A đã được dùng để train cái mô hình chẩn đoán này.”

Giải pháp:

# Thanh tra chỉ mặt điểm tên cái mô hình production
model_arn = 'arn:aws:sagemaker:region:account:model-package/diagnosis-v2.0'

# Chạy backward lineage query (truy xuất ngược)
lineage = query.query(start_arns=[model_arn], direction='Ascendants')

# Kết quả trả về:
# - Cả đường dẫn S3 chính xác của file training data (kèm timestamp)
# - Các processing jobs (đã thực hiện các kỹ thuật ẩn danh, che giấu dữ liệu chưa?)
# - Training job (kèm đủ bộ hyperparameters, code version bốc từ Git)
# - Các chỉ số Model evaluation metrics (Đánh giá mô hình)

Kết quả: Có trong tay 1 bản audit trail chuẩn không cần chỉnh, chứng minh mức độ tuân thủ (data governance compliance) tuyệt đối.

2. Gỡ lỗi Mô hình (Model Debugging - Khi bị rớt hiệu suất) #exam-tip

Vấn đề: “Cái mô hình production hôm qua chạy độ chính xác 95%, hôm nay rớt thảm hại còn 85%.”

Giải pháp:

# Truy xuất ngược về cội nguồn xem đứa nào phá
endpoint_arn = 'arn:aws:sagemaker:region:account:endpoint/production'

lineage = query.query(start_arns=[endpoint_arn], direction='Ascendants')

# Phát hiện ra:
# - Tuần trước vừa có 1 mô hình mới được deploy
# - Được train trên một cái updated dataset lạ hoắc (phải chăng là dính data drift?)
# - Tự nhiên lại chạy bộ hyperparameters khác hoàn toàn so với đời cũ
# - Nhờ lineage, hoàn toàn có thể lôi mô hình cũ ra so sánh đối chiếu

Hành động: Định vị được nguyên nhân gốc (root cause) (do dữ liệu rác, code cùi, hay do chỉnh hyperparameter bậy bạ).

3. Phân tích Tác động Dữ liệu (Data Impact Analysis) #important

Kịch bản: “Có khách hàng yêu cầu xóa toàn bộ dữ liệu của họ theo luật GDPR.”

Câu hỏi: “Những cái mô hình nào đã ăn phải dữ liệu của ông kẹ này?”

Giải pháp:

# Tìm ra Customer ID 12345 nằm trong file s3://bucket/train-2024-12.csv
dataset_arn = 'arn:aws:sagemaker:region:account:artifact/train-2024-12'

# Chạy forward lineage query (truy xuất xuôi)
lineage = query.query(start_arns=[dataset_arn], direction='Descendants')

# Khám phá ra:
# - Có 3 mô hình đã ngậm cục data này để train
# - 2 cái đang nằm tênh hênh trên production endpoints
# - 1 cái thì vừa được duyệt (approved) đang nằm chờ trong Model Registry

Hành động: Retrain/thay mới toàn bộ các mô hình bị dính líu kia để chấp hành án phạt (GDPR deletion).

4. Tái tạo Mô hình (Model Reproducibility) #exam-tip

Yêu cầu: “Đề nghị tạo lại một bản sao hoàn hảo 100% của cái mô hình từ 6 tháng trước để chạy A/B test.”

Giải pháp:

# Truy tìm tung tích mô hình cũ trong registry
old_model_arn = 'arn:aws:sagemaker:region:account:model-package/fraud-v1.0'

lineage = query.query(start_arns=[old_model_arn], direction='Ascendants')

# Lineage ói ra:
# - Đường dẫn S3 chính xác tuyệt đối: s3://bucket/train-2024-07-15.csv
# - Cấu hình hyperparameters của training job
# - Phiên bản Code (Git commit hash)
# - Loại máy (Instance type) đã xài
# - Các bước Processing đã áp dụng

# Bê ĐÚNG Y CHANG mâm cỗ (inputs) đó đi chạy lại → ta có 1 bản sao hoàn hảo

5. Hợp tác Nhóm & Bàn giao (Team Collaboration & Handoffs)

Kịch bản: “Data scientist A nghỉ đẻ, Data scientist B vào thế chỗ ẵm luôn cái model.”

Giải pháp:

# B xài query để đọc phả hệ dự án
lineage = query.query(
    start_arns=[model_arn],
    direction='Both'  # Chơi cả xuôi lẫn ngược
)

# Nắm trùm thông tin trong tích tắc:
# - Đã xài những data sources nào
# - Toàn bộ các bước processing
# - Đã xài thử những cấu hình training nào
# - Tình trạng các production deployments hiện tại
# - Các bộ phận phụ thuộc ở tuyến dưới (Downstream dependencies)

Lợi ích: Rút ngắn thời gian training nhân sự mới, tránh dẫm đạp làm sập production.

4.6 Tài liệu tham khảo Lineage API #hands-on

Các hàm (methods) nòng cốt:

from sagemaker.lineage.query import LineageQuery
from sagemaker.lineage import artifact, context, association

# 1. Truy vấn lineage (Query lineage)
query = LineageQuery(sagemaker_session=session)
lineage = query.query(
    start_arns=['arn:aws:sagemaker:...'],
    direction='Ascendants',  # Hoặc 'Descendants', 'Both'
    include_edges=True  # Lấy luôn cả các mối quan hệ (relationships)
)

# 2. Tạo artifact thủ công (Create custom artifact)
artifact.Artifact.create(
    artifact_name='my-dataset',
    artifact_type='DataSet',
    source_uri='s3://bucket/data.csv',
    properties={'version': '1.0', 'rows': 1000000}
)

# 3. Tạo context (để nhóm mọi thứ lại)
context.Context.create(
    context_name='my-training',
    context_type='Training',
    source_uri='arn:aws:sagemaker:region:account:training-job/abc'
)

# 4. Tạo association (Móc nối các artifacts lại với nhau)
association.Association.create(
    source_arn=artifact_arn,
    destination_arn=context_arn,
    association_type='ContributedTo'  # Hoặc 'Produced', 'DerivedFrom'
)

# 5. Lấy danh sách artifacts (List artifacts)
artifacts = artifact.Artifact.list(
    source_uri='s3://bucket/data.csv',
    sort_by='CreationTime',
    sort_order='Descending'
)

4.7 Thực tiễn Tốt nhất (Best Practices) #exam-tip

1. Bật Auto Lineage (Automatic Lineage) - Hãy dùng các dịch vụ “cây nhà lá vườn” của SageMaker (vừa được tự động tracking vừa không phải đụng tay vào code).

2. Gắn Chú thích cho Custom Artifacts (Annotate Custom Artifacts) - Ném thêm metadata vào artifacts để xài cho sướng:

artifact.Artifact.create(
    artifact_name='customer-data-v2',
    artifact_type='DataSet',
    source_uri='s3://bucket/data.csv',
    properties={'version': '2.0', 'rows': 1000000, 'pii_removed': 'true'}
)

3. Siêng năng Query Lineage - Trước khi deploy, sau khi có biến, lúc bị kiểm toán, khi cần đánh giá tác động.

4. Dính chặt vào Model Registry - Mô hình nào cũng phải được đăng ký (tự tạo ra lineage link), xài luôn cái luồng phê duyệt (approval workflow).

5. Lập Tài liệu cho External Artifacts - Đối với các data sources ngoại lai (không dính dáng tới SageMaker), phải cắn răng tạo artifacts bằng tay kèm theo source_uri.

4.8 Kịch bản Bài thi (Exam Scenarios) #important

Kịch bản Giải pháp
“Truy tìm nguồn data đã train production model?” Chạy truy xuất ngược (Backward lineage query) từ endpoint
“Tìm mọi mô hình đang ăn bám vào một dataset cụ thể?” Chạy truy xuất xuôi (Forward lineage query) từ dataset artifact
“Yêu cầu xóa dữ liệu để chấp hành luật GDPR?” Dùng Lineage để truy lùng các mô hình dính chưởng
“Tái sinh (Reproduce) lại con mô hình từ 6 tháng trước?” Dùng Backward lineage chép lại y chang data/code/hyperparameters
“Xin dấu vết kiểm toán (audit trail) nộp cho ban bệ?” Xài SageMaker Lineage (nó tự động chụp lại hết)
“Production model rớt rank thê thảm, tìm lý do?” Dùng Lineage bế model cũ ra so kè inputs với model hiện tại
“Chứng minh mô hình rất là fair (công bằng) với thanh tra?” Lineage + SageMaker Clarify (theo dõi các bias checks)
“Tôi sửa file dataset này thì bao nhiêu endpoints sập?” Chạy Forward lineage (phân tích tác động - impact analysis)
“Trực quan hóa (Visualize) nguyên cả bộ sậu ML workflow?” Mở cái SageMaker Studio Lineage Graph lên mà coi
“Theo dõi cả những cái external data sources tùy biến?” Chịu khó Tạo artifact thủ công (Manual artifact creation) + associations

4.9 Lineage vs Experiments vs Model Registry #exam-tip

Cả 3 anh em bù trừ cho nhau như thế nào:

Công cụ Mục đích Theo dõi cái quần đùi gì Dùng lúc nào
Lineage Đường đi & nguồn gốc (provenance) data Đầu vào → Xử lý → Đầu ra Tuân thủ (Compliance), debug, đánh giá tác động
Experiments Trụ trì Trials Siêu tham số, metrics, so sánh Tinh chỉnh siêu tham số, team collab
Model Registry Kho Production Các mô hình đã duyệt, version, lượt phê duyệt Deploy, quản trị, đánh version

Hợp tác cùng phát triển:

  1. Experiments: Ghi chép mọi đợt tập trận (dù thành công hay thất bại).
  2. Lineage: Soi kỹ đường đi của dữ liệu xuyên suốt cái trial xuất sắc nhất.
  3. Model Registry: Bế cái thành quả từ trial xịn nhất vào tủ kính cất (đã được duyệt).
  4. Luồng End-to-end hoàn hảo: Thử nghiệm (Experiment) → Trial Vô địch → Lineage → Đóng gói (Registry) → Lên sóng Production (Endpoint).

4.10 Hạn chế (Limitations)

  • Giới hạn số lượng truy vấn (Query limits): Trả về tối đa 100 thực thể cho mỗi lần search (nhưng được xài tính năng phân trang - pagination).
  • Custom artifacts: Phải tạo bằng cơm (không có tự động).
  • Phân mảnh theo khu vực (Cross-region): Thằng lineage nó kẹt cứng theo từng khu vực (region), không có trò nhảy region được.

4.11 Định giá (Pricing)

Tính năng theo dõi Lineage (Lineage tracking) là MIỄN PHÍ CỦA TRỜI CHO

  • Không lấy thêm 1 đồng xu rách nào cho cái trò tự động chụp lineage.
  • Dung lượng lưu trữ mớ lineage metadata đó đã nằm trọn vẹn trong biểu phí SageMaker rồi.
  • Tự tạo artifact thủ công (Manual artifact creation): Chùa (chỉ tốn cực kỳ ít chi phí lưu trữ).

Được lợi cái gì: Tiết kiệm hàng tá giờ làm tài liệu và debug bằng cơm.

4.12 Mẹo làm Bài thi (Exam Tips) #important

Các từ khóa (Key phrases) cứ thấy là tick ngay cho lineage:

  • ✅ “Theo dõi nguồn gốc dữ liệu (Track data provenance)”
  • ✅ “Dấu vết kiểm toán (Audit trail)”
  • ✅ “Yêu cầu tuân thủ (Compliance requirement)”
  • ✅ “Dataset nào đã được đút cho con mô hình này ăn? (Which data trained this model?)”
  • ✅ “Phân tích tác động (Impact analysis)”
  • ✅ “Tái sinh mô hình (Reproduce model)”
  • ✅ “GDPR, HIPAA, các quy định pháp luật (regulatory)”

Các dạng câu hỏi kinh điển:

  • “Chứng minh cái đống data này đã được xài” → Truy xuất ngược (Backward lineage query).
  • “Xác định các models chuẩn bị ăn hành” → Truy xuất xuôi (Forward lineage query).
  • “Các bác thanh tra đi kiểm toán (Regulatory audit)” → Chọi SageMaker Lineage ra đỡ (nhờ vụ tự động track).
  • “Tái sinh mô hình (Model reproducibility)” → Combo hủy diệt: Lineage + Experiments + Model Registry.