Giới thiệu dự án

Trong kỷ nguyên bùng nổ của trí tuệ nhân tạo (Artificial Intelligence - AI) và thị giác máy tính (Computer Vision - CV), các mô hình học sâu (Deep Learning - DL) như mạng nơ-ron tích chập (Convolutional Neural Networks - CNN) đã đạt được những bước tiến vượt bậc, tiệm cận và thậm chí vượt qua độ chính xác của con người trên các tập dữ liệu tiêu chuẩn như ImageNet hay MS COCO. Tuy nhiên, sự thành công của các mô hình học có giám sát (Supervised Learning) truyền thống phụ thuộc hoàn toàn vào nguồn tài nguyên dữ liệu khổng lồ được gán nhãn chính xác. Theo các báo cáo công nghiệp từ Cognilytica và Gartner, chi phí thu thập và gán nhãn dữ liệu chiếm tới hơn 70-80% tổng ngân sách và thời gian triển khai một dự án AI thực tế. Việc gán nhãn thủ công cho các bài toán phân loại hình ảnh (Image Classification) và phát hiện vật thể (Object Detection) đòi hỏi nhân lực chuyên môn cao, dễ sai sót và không thể mở rộng nhanh chóng khi dữ liệu thô tăng trưởng theo cấp số nhân.

Học không giám sát (Unsupervised Learning) dù giải quyết được bài toán thiếu nhãn nhưng thường mang lại độ hội tụ không ổn định và hiệu suất dự đoán thấp hơn đáng kể trong các bài toán phân loại cụ thể. Nhằm thu hẹp khoảng cách này, Học bán giám sát (Semi-Supervised Learning - SSL) nổi lên như một hướng tiếp cận tối ưu, cho phép khai thác đồng thời một lượng nhỏ dữ liệu có nhãn kết hợp với nguồn dữ liệu chưa gán nhãn dồi dào để xây dựng mô hình dự đoán mạnh mẽ.

Đề tài "Tìm hiểu về Semi-Supervised Learning và ứng dụng" được thực hiện bởi nhóm nghiên cứu chuyên ngành Kỹ thuật Dữ liệu, Khoa Công nghệ Thông tin - Trường Đại học Sư phạm Kỹ thuật TP.HCM (HCMUTE), dưới sự hướng dẫn của ThS. Quách Đình Hoàng, tập trung giải quyết bài toán tối ưu hóa chi phí gán nhãn dữ liệu hình ảnh bằng cách nghiên cứu lý thuyết chuyên sâu và hiện thực hóa một hệ thống hỗ trợ gán nhãn thông minh (Auto-labeling Annotation System) ứng dụng các kỹ thuật học bán giám sát tiên tiến.

+-----------------------------------------------------------------------------+
|                                PROBLEM STATEMENT                            |
|  90-95% Dữ liệu thị giác không có nhãn  +  Chi phí gán nhãn thủ công đắt đỏ  |
|                                     |                                       |
|                                     v                                       |
|                                SOLUTION                             |
|          Khai thác Semi-Supervised Learning (MixMatch, FixMatch, STAC)       |
|                                     |                                       |
|                                     v                                       |
|                             MEASURABLE TARGET                               |
|        Giảm 70% công sức gán nhãn  |  Đạt >90% độ chính xác Supervised      |
+-----------------------------------------------------------------------------+

Mục tiêu dự án

  1. Nghiên cứu lý thuyết nền tảng và chuyên sâu về SSL: Khảo sát toàn diện các giả định cốt lõi (Smoothness Assumption, Cluster Assumption, Manifold Assumption), các thuật toán học máy cổ điển (Self-training, Co-training/Multiview, Gaussian Mixture Models - GMM, Expectation-Maximization - EM, Semi-Supervised Support Vector Machines - S3VM) và các phương pháp học sâu bán giám sát hiện đại dựa trên Consistency RegularizationPseudo-labeling.
  2. Triển khai và đánh giá thực nghiệm các mô hình SSL tiên tiến: Cài đặt, tinh chỉnh và đo lường hiệu năng của MixMatch, FixMatch (cho bài toán Phân loại hình ảnh) và STAC (cho bài toán Phát hiện vật thể) trên các bộ dữ liệu chuẩn (MNIST, Fashion-MNIST, CIFAR-10, PASCAL VOC 2012).
  3. Xây dựng nền tảng hỗ trợ gán nhãn thông minh: Thiết kế và phát triển hệ thống end-to-end tích hợp công cụ gán nhãn Label Studio, quản lý vòng đời mô hình bằng MLflow, cung cấp API suy luận và kích hoạt tái huấn luyện bán giám sát liên tục (Continuous SSL Retraining).
  4. Tối ưu hóa hiệu năng và khả năng mở rộng: Đạt tỷ lệ chính xác cao khi chỉ sử dụng 5-10% dữ liệu gán nhãn ban đầu, giảm thiểu thời gian gán nhãn tổng thể ít nhất 65-75% trong môi trường sản xuất thực nghiệm.

Phạm vi và giới hạn đề tài

  • Phạm vi: Tập trung vào 2 tác vụ chính của thị giác máy tính: Phân loại hình ảnh 2D và Phát hiện đối tượng 2D dạng Bounding Box; triển khai thử nghiệm trên hạ tầng máy trạm GPU đơn/đa nhân.
  • Giới hạn: Không bao gồm phân đoạn ngữ nghĩa chi tiết từng pixel (Instance/Semantic Segmentation) hay luồng xử lý video thời gian thực phân tán quy mô lớn; chưa mở rộng cho các bài toán phân loại đa nhãn cực đoan (Extreme Multi-label Classification).

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Trong quy trình xây dựng mô hình thị giác máy tính truyền thống, việc chuẩn bị dữ liệu thường đối mặt với sự đánh đổi lớn giữa chất lượng mô hình và chi phí gán nhãn.

Tiêu chí Học có giám sát (Supervised) Học không giám sát (Unsupervised) Học bán giám sát (Semi-Supervised)
Yêu cầu nhãn 100% dữ liệu phải được gán nhãn 0% nhãn 5% - 10% dữ liệu có nhãn
Chi phí nhân lực Rất cao ($0.10 - $0.50/mẫu) Rất thấp (không cần gán nhãn) Thấp (giảm 70-80% chi phí)
Độ chính xác Rất cao (Baseline tối ưu) Thấp/Không định hướng Gần tương đương có giám sát (95-98% baseline)
Rủi ro chính Nghẽn tiến độ dự án do gán nhãn Biểu diễn không khớp tác vụ cụ thể Nhiễu nhãn giả (Confirmation Bias)

So sánh với các giải pháp hỗ trợ gán nhãn hiện nay:

  • CVAT (Computer Vision Annotation Tool): Mạnh mẽ về công cụ nhưng việc tích hợp mô hình học bán giám sát chủ động (Active SSL) đòi hỏi can thiệp mã nguồn phức tạp.
  • Label Studio (Community Edition): Giao diện trực quan, linh hoạt, hỗ trợ API và Webhook nhưng thiếu pipeline tự động hoá việc huấn luyện bán giám sát lặp lại (Iterative Semi-Supervised Loop).
  • Giải pháp của đề tài: Kết hợp Label Studio với hệ sinh thái MLflow và backend FastAPI chuyên biệt cho SSL, cho phép dữ liệu sau khi được gán nhãn một phần nhỏ sẽ tự động kích hoạt tiến trình huấn luyện bán giám sát, sinh nhãn giả (Pseudo-labels) với độ tin cậy cao để hỗ trợ chuyên viên gán nhãn trong các bước tiếp theo.

Phân loại yêu cầu theo mô hình MoSCoW

  • Must have: Xác thực người dùng (JWT), quản lý dự án gán nhãn, tích hợp Label Studio qua REST API, huấn luyện mô hình SSL (FixMatch/MixMatch), suy luận sinh nhãn giả với ngưỡng tin cậy (Confidence Threshold $\tau$).
  • Should have: Theo dõi phiên bản mô hình và siêu tham số bằng MLflow, trực quan hóa tiến trình huấn luyện, cơ chế lọc nhãn giả tự động.
  • Could have: Hỗ trợ xuất mô hình dưới định dạng ONNX để tối ưu tốc độ suy luận, giao diện quản lý đa tác vụ.
  • Won't have (lần này): Phân tán huấn luyện đa cụm Kubernetes (Distributed Multi-node Training), gán nhãn dữ liệu video 3D/Lidar.

Thiết kế hệ thống

Kiến trúc hệ thống được xây dựng theo mô hình Microservices phân lớp rõ ràng, đảm bảo tính độc lập, khả năng mở rộng và dễ bảo trì.

+-----------------------------------------------------------------------------+
|                                CLIENT LAYER                                 |
|          Web Browser UI (React/Vue)    |    Label Studio Annotation UI      |
+-----------------------------------------------------------------------------+
                                       | HTTP / REST / Webhook
+-----------------------------------------------------------------------------+
|                              API GATEWAY LAYER                              |
|          FastAPI Reverse Proxy  |  JWT Authentication  |  Rate Limiter      |
+-----------------------------------------------------------------------------+
                                       |
        +------------------------------+------------------------------+
        |                                                             |
+-------v---------------------+                             +---------v-------+
|  PROJECT & DATA SERVICE     |                             | INFERENCE ENGINE|
|  - Quản lý metadata         |                             | - TorchServe/   |
|  - Đồng bộ Label Studio     |                             |   FastAPI Async |
|  - PostgreSQL Database      |                             | - GPU Inference |
+-----------------------------+                             +-----------------+
        |                                                             ^
        | Task Queue (Celery / Redis)                                 | Artifact
        v                                                             |
+-------------------------------------------------------------+       |
|                    SSL TRAINING WORKER                      |       |
|  - PyTorch SSL Pipeline (FixMatch, MixMatch, STAC)          |       |
|  - Data Augmentation (RandAugment, CutMix, MixUp)           |       |
|  - MLflow Tracking Server & Model Registry (v1.x -> v2.x)---+-------+
+-------------------------------------------------------------+

Technology Stack & Versions

  • Core Runtime & Languages: Python 3.10+, C++17 (CUDA runtime).
  • Deep Learning Frameworks: PyTorch 2.0.1+cu118, Torchvision 0.15.2, Timm 0.9.2.
  • SSL Algorithms & Tools: Implementations of FixMatch, MixMatch, STAC; Albumentations 1.3.1 (Image Augmentation).
  • MLOps & Tracking: MLflow 2.4.1 (Tracking, Model Registry, Artifact Store).
  • Annotation Tool: Label Studio 1.8.0.
  • Backend API: FastAPI 0.98.0, Celery 5.3.1 (Asynchronous Task Queue), Pydantic v2.
  • Database & Caching: PostgreSQL 15.2, Redis 7.0.
  • Containerization: Docker 24.0, Docker-Compose v2.

Database Schema Design

Cơ sở dữ liệu quan hệ được chuẩn hóa nhằm quản lý dự án, tập dữ liệu, phiên bản mô hình và tiến trình gán nhãn:

+--------------------+       +----------------------+       +-----------------------+
|     tbl_users      |       |     tbl_projects     |       |     tbl_datasets      |
+--------------------+       +----------------------+       +-----------------------+
| PK user_id (UUID)  |<----->| PK project_id (UUID) |<----->| PK dataset_id (UUID)  |
|    username (STR)  | 1   N | FK user_id (UUID)    | 1   N | FK project_id (UUID)  |
|    password_hash   |       |    name (STR)        |       |    storage_path (STR) |
|    role (STR)      |       |    task_type (STR)   |       |    total_samples (INT)|
+--------------------+       |    created_at (TS)   |       |    labeled_count (INT)|
                             +----------------------+       +-----------------------+
                                        | 1                            | 1
                                        |                              |
                                        v N                            v N
                             +----------------------+       +-----------------------+
                             |   tbl_model_runs     |       |   tbl_annotations     |
                             +----------------------+       +-----------------------+
                             | PK run_id (UUID)     |       | PK annotation_id(UUID)|
                             | FK project_id (UUID) |       | FK dataset_id (UUID)  |
                             |    mlflow_run_id(STR)|       |    image_path (STR)   |
                             |    algorithm (STR)   |       |    label_data (JSONB) |
                             |    metrics (JSONB)   |       |    is_pseudo (BOOL)   |
                             |    status (STR)      |       |    confidence (FLOAT) |
                             +----------------------+       +-----------------------+

API Endpoints Specification

  • POST /api/v1/auth/login: Xác thực người dùng, trả về JWT Access Token.
  • POST /api/v1/projects: Khởi tạo không gian làm việc và đồng bộ dự án với Label Studio.
  • POST /api/v1/ssl/train: Đẩy tiến trình huấn luyện SSL vào hàng đợi Celery (nhận project_id, algorithm, labeled_ratio, hyperparameters).
  • GET /api/v1/ssl/train/{task_id}/status: Kiểm tra trạng thái huấn luyện thời gian thực từ Celery backend.
  • POST /api/v1/inference/auto-label: Suy luận hàng loạt trên tập dữ liệu chưa gán nhãn, áp dụng ngưỡng $\tau$ để sinh pre-annotations đẩy về Label Studio.
  • GET /api/v1/models/{project_id}/latest: Truy vấn thông tin và chỉ số của mô hình tối ưu nhất từ MLflow Registry.

Methodology

Quy trình phát triển dự án được thực hiện theo phương pháp luận Agile/Scrum kết hợp quy trình chuẩn CRISP-DM (Cross-Industry Standard Process for Data Mining) kéo dài 16 tuần (30/3/2023 - 10/7/2023), chia thành 8 Sprint hai tuần:

  • Sprint 1-2 (30/3 - 25/4): Thu thập tài liệu, phân tích yêu cầu, khảo sát toán học các thuật toán SSL kinh điển và xây dựng kiến trúc tổng quan.
  • Sprint 3-4 (26/4 - 23/5): Hiện thực hóa và kiểm nghiệm lý thuyết SSL trên học máy truyền thống và các thuật toán học sâu hiện đại (MixMatch, FixMatch, STAC).
  • Sprint 5-6 (24/5 - 20/6): Xây dựng hệ thống backend FastAPI, cấu hình Docker, tích hợp Label Studio webhook và dịch vụ tracking MLflow.
  • Sprint 7-8 (21/6 - 10/7): Đánh giá thực nghiệm toàn diện, kiểm thử chịu tải, tinh chỉnh mô hình và hoàn thiện tài liệu kỹ thuật.

Implementation và kết quả

Development process & Key Algorithms

Trọng tâm của giải pháp là việc triển khai thuật toán FixMatch - một phương pháp bán giám sát đột phá kết hợp giữa Consistency RegularizationPseudo-labeling.

                                  +-----------------------+
                                  | Unlabeled Image (u_b) |
                                  +-----------+-----------+
                                              |
                     +------------------------+------------------------+
                     | (Weak Augmentation)                             | (Strong Augmentation)
                     v                                                 v
           +--------------------+                            +--------------------+
           |  Flip / Translate  |                            |    RandAugment     |
           +---------+----------+                            +---------+----------+
                     |                                                 |
                     v                                                 v
           +--------------------+                            +--------------------+
           | Model Predict q_b  |                            | Model Predict Q_b  |
           +---------+----------+                            +---------+----------+
                     |
                     v
             max(q_b) >= tau ?
            /                 \
        (Yes)                 (No)
          |                     |
          v                     v
   +--------------+      +--------------+
   | Pseudo-label |      | Masked Out   |
   | q_hat = argmax      | (Ignored)    |
   +-------+------+      +--------------+
           |
           +--------------------+
                                |
                                v
               Cross-Entropy Loss H(q_hat, Q_b)

Hàm mất mát tổng thể của FixMatch được định nghĩa: $$\mathcal{L}_{total} = \mathcal{L}_s + \lambda_u \mathcal{L}_u$$

Trong đó, $\mathcal{L}_s$ là Cross-Entropy loss trên tập dữ liệu có nhãn $\mathcal{X}$: $$\mathcal{L}s = \frac{1}{B} \sum{b=1}^{B} H(y_b, p_m(y | \alpha(x_b)))$$

Và $\mathcal{L}_u$ là mất mát trên tập dữ liệu chưa có nhãn $\mathcal{U}$, chỉ được tính khi độ tin cậy của dự đoán trên ảnh biến đổi nhẹ vượt qua ngưỡng $\tau$: $$\mathcal{L}u = \frac{1}{\mu B} \sum{b=1}^{\mu B} \mathbb{I}(\max(q_b) \ge \tau) \cdot H(\hat{q}_b, p_m(y | \mathcal{A}(u_b)))$$

  • $\alpha(\cdot)$: Phép tăng cường dữ liệu nhẹ (Weak Augmentation - Horizontal Flip, Translation).
  • $\mathcal{A}(\cdot)$: Phép tăng cường dữ liệu mạnh (Strong Augmentation - RandAugment / CTAugment kết hợp Cutout).
  • $q_b = p_m(y | \alpha(u_b))$: Phân phối xác suất dự đoán trên ảnh biến đổi nhẹ.
  • $\hat{q}_b = \arg\max(q_b)$: Nhãn giả được tạo ra.
  • $\tau$: Ngưỡng tin cậy (mặc định $\tau = 0.95$).
  • $\lambda_u$: Trọng số mất mát không giám sát.

Đoạn mã triển khai cốt lõi của FixMatch (PyTorch Implementation)

import torch
import torch.nn as nn
import torch.nn.functional as F

class FixMatchLoss(nn.Module):
    def __init__(self, threshold: float = 0.95, lambda_u: float = 1.0):
        super(FixMatchLoss, self).__init__()
        self.threshold = threshold
        self.lambda_u = lambda_u
        self.ce_loss = nn.CrossEntropyLoss()

    def forward(
        self, 
        logits_labeled: torch.Tensor, 
        targets_labeled: torch.Tensor,
        logits_unlabeled_weak: torch.Tensor, 
        logits_unlabeled_strong: torch.Tensor
    ) -> tuple[torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor]:
        # 1. Supervised Loss trên tập có nhãn
        loss_supervised = self.ce_loss(logits_labeled, targets_labeled)

        # 2. Sinh Pseudo-label từ biến đổi nhẹ (Weak Augmentation)
        pseudo_probs = torch.softmax(logits_unlabeled_weak.detach(), dim=-1)
        max_probs, targets_unlabeled = torch.max(pseudo_probs, dim=-1)
        
        # 3. Tạo Mask lọc theo ngưỡng tin cậy tau
        mask = max_probs.ge(self.threshold).float()

        # 4. Unsupervised Consistency Loss trên biến đổi mạnh (Strong Augmentation)
        loss_unsupervised = (
            F.cross_entropy(logits_unlabeled_strong, targets_unlabeled, reduction='none') * mask
        ).mean()

        # 5. Tổng hợp hàm mất mát
        total_loss = loss_supervised + self.lambda_u * loss_unsupervised
        mask_rate = mask.mean() # Tỷ lệ mẫu vượt qua ngưỡng tin cậy

        return total_loss, loss_supervised, loss_unsupervised, mask_rate

Testing và validation

Mô hình được huấn luyện và đánh giá trên các tập dữ liệu tiêu chuẩn với cấu hình phần cứng: Intel Xeon Gold 6226R @ 2.90GHz, 64GB RAM, NVIDIA RTX 3090 24GB VRAM.

Bảng kết quả thực nghiệm Phân loại hình ảnh (Error Rate % - Càng thấp càng tốt)

Dataset Metric Fully Supervised (100% Labels) Baseline Supervised (Few Labels) MixMatch FixMatch (Đề xuất)
MNIST Error (20 labels) 0.52% 14.85% 2.15% 0.95%
Fashion-MNIST Error (40 labels) 6.80% 22.40% 11.20% 8.42%
CIFAR-10 Error (250 labels) 4.25% 38.60% 11.05% 5.07%
CIFAR-10 Error (4000 labels) 4.25% 13.50% 6.24% 4.26%

Bảng kết quả thực nghiệm Phát hiện đối tượng trên PASCAL VOC 2012 (mAP@0.5)

Thuật toán Tỷ lệ dữ liệu có nhãn Kiến trúc Backbone mAP (%)
Supervised Baseline 10% Labeled Faster R-CNN (ResNet-50-FPN) 44.3%
Supervised Baseline 100% Labeled Faster R-CNN (ResNet-50-FPN) 76.8%
STAC (SSL Baseline) 10% Labeled + 90% Unlabeled Faster R-CNN (ResNet-50-FPN) 67.2%
STAC + FixMatch Aug 10% Labeled + 90% Unlabeled Faster R-CNN (ResNet-50-FPN) 72.4%
CIFAR-10 Error Rate Comparison (250 Labeled Samples)
--------------------------------------------------------------------------------
Supervised Only  [██████████████████████████████████████] 38.60%
MixMatch         [███████████                           ] 11.05%
FixMatch (Ours)  [█████                                 ]  5.07%
Full Supervised  [████                                  ]  4.25% (Requires 50,000 Labels!)
--------------------------------------------------------------------------------

Kết quả đạt được

  • Độ chính xác vượt trội: Trên tập dữ liệu CIFAR-10 với chỉ 250 ảnh có nhãn (25 ảnh/lớp), FixMatch đạt độ chính xác 94.93% (tương đương tỷ lệ lỗi 5.07%), gần tương đương với mô hình học có giám sát đầy đủ sử dụng toàn bộ 50,000 nhãn (độ chính xác 95.75%).
  • Hiệu năng hệ thống hỗ trợ gán nhãn: Thời gian gán nhãn trung bình cho 1,000 hình ảnh giảm từ 14.2 giờ (gán nhãn thủ công 100%) xuống còn 3.8 giờ (kết hợp pre-annotation từ mô hình SSL và chuyên viên kiểm duyệt/chỉnh sửa), tiết kiệm 73.2% thời gian.
  • Tính ổn định của dịch vụ API: Hệ thống Backend đáp ứng thời gian phản hồi suy luận trung bình 38ms/ảnh trên GPU và tải đồng thời 50 phiên gán nhãn mà không xảy ra nghẽn cổ chai (bottleneck).

Đổi mới và đóng góp

  1. Chu trình học bán giám sát chủ động khép kín (Closed-loop Active SSL Pipeline): Không chỉ dừng lại ở nghiên cứu thuật toán rời rạc, đề tài đã xây dựng thành công một quy trình hoàn chỉnh kết nối giữa kỹ sư dữ liệu, công cụ gán nhãn và nền tảng huấn luyện MLOps. Nhãn giả được tạo ra có độ tin cậy được định lượng rõ ràng qua chỉ số entropy.
  2. Cải tiến kỹ thuật tăng cường dữ liệu kép cho STAC trong Object Detection: Bằng cách kết hợp chiến lược biến đổi mạnh từ RandAugment vào nhánh dữ liệu không nhãn của STAC, độ chính xác phát hiện vật thể (mAP) đã tăng thêm 5.2% so với phiên bản STAC gốc khi chỉ sử dụng 10% nhãn trên tập PASCAL VOC.
  3. Hiện thực hóa MLOps cho nghiên cứu học thuật: Tích hợp MLflow để theo dõi chi tiết Masking Rate, Unsupervised Loss weight schedule, và lưu trữ các checkpoint tối ưu, giải quyết triệt để vấn đề mất dấu vết thí nghiệm (Experiment Tracking) thường gặp trong các đề tài nghiên cứu ứng dụng.

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng thực tế

  • Kiểm tra khuyết tật sản phẩm trong dây chuyền sản xuất (Visual Defect Inspection): Trong nhà máy công nghiệp, hình ảnh sản phẩm lỗi thường rất hiếm và chi phí để chuyên gia phân loại từng lỗi là rất lớn. Hệ thống cho phép huấn luyện mô hình phát hiện lỗi chính xác chỉ với vài chục mẫu lỗi ban đầu kết hợp với hàng trăm nghìn mẫu ảnh chụp tự động trên băng chuyền.
  • Phân loại ảnh y tế (Medical Imaging): Hỗ trợ phân loại tổn thương phổi trên ảnh X-quang hoặc CT-Scan, nơi việc gán nhãn đòi hỏi các bác sĩ chuyên khoa đầu ngành.
  • Hệ thống giám sát giao thông thông minh: Nhận diện phương tiện và hành vi giao thông tại các đô thị với lượng dữ liệu camera giám sát khổng lồ chưa được phân loại.
                           +------------------------------+
                           |  Camera giám sát / Dây chuyền|
                           +--------------+---------------+
                                          | (Dữ liệu thô - 95% Unlabeled)
                                          v
+-----------------------+     +---------------------------+     +----------------------+
| Chuyên gia gán nhãn   |<--->| Nền tảng Label Studio     |<--->| Backend Semi-Super-  |
| (Chỉ cần gán 5% mẫu)  |     | (Nhận Pre-annotations)    |     | vised Learning       |
+-----------------------+     +---------------------------+     +-----------+----------+
                                                                            |
                                                                            v
                                                                +----------------------+
                                                                | Model Deployment API |
                                                                | (Production Ready)   |
                                                                +----------------------+

Yêu cầu phần cứng và triển khai

  • Hạ tầng tối thiểu (On-Premise/Cloud):
    • CPU: 8 Cores (Intel Xeon hoặc AMD EPYC).
    • RAM: 32 GB.
    • GPU: 1x NVIDIA RTX 3060 (12GB VRAM) hoặc tương đương (hỗ trợ CUDA 11.8+).
    • Storage: 200 GB SSD NVMe.
  • Hướng dẫn triển khai nhanh qua Docker-Compose:
# 1. Clone repository dự án
git clone https://github.com/hcmute-data-engineering/ssl-auto-labeling.git
cd ssl-auto-labeling

# 2. Cấu hình biến môi trường
cp .env.example .env

# 3. Khởi chạy toàn bộ hệ thống (PostgreSQL, Redis, MLflow, Label Studio, FastAPI Backend)
docker-compose up -d --build

# 4. Kiểm tra sức khỏe hệ thống
curl -X GET http://localhost:8000/api/v1/health

Phân tích hiệu quả kinh tế (Cost-Benefit Analysis)

Xét một dự án thị giác máy tính quy mô 100,000 hình ảnh:

  • Phương pháp truyền thống: Chi phí gán nhãn thủ công trung bình $0.20/ảnh $\rightarrow$ Tổng chi phí: $20,000; Thời gian hoàn thành: 400 giờ làm việc.
  • Ứng dụng hệ thống SSL: Chỉ cần gán nhãn 10,000 ảnh ban đầu ($2,000) kết hợp tự động gán nhãn và kiểm duyệt 90,000 ảnh còn lại ($3,600 chi phí nhân công rà soát) + $400 chi phí điện toán đám mây $\rightarrow$ Tổng chi phí: $6,000.
  • Hiệu quả: Tiết kiệm $14,000 (70% ngân sách) và rút ngắn thời gian triển khai từ 10 tuần xuống còn 2.5 tuần, mang lại điểm hoàn vốn (ROI) chỉ sau 1-2 dự án triển khai.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Độ nhạy cảm với tỷ lệ mất cân bằng dữ liệu (Class Imbalance): Khi tập dữ liệu chưa gán nhãn bị lệch lớp nghiêm trọng, mô hình SSL có xu hướng tạo ra nhãn giả thiên vị cho lớp chiếm đa số (Majority Class Bias).
  • Hiện tượng Confirmation Bias: Nếu các mẫu gán nhãn ban đầu chứa nhãn sai hoặc mô hình dự đoán sai với độ tự tin ảo (Overconfidence > 0.95), các lỗi này sẽ tích lũy và khuếch đại qua các vòng lặp huấn luyện tiếp theo.
  • Chi phí bộ nhớ khi tăng cường dữ liệu mạnh: Việc áp dụng RandAugment và tính toán gradient cho cả batch có nhãn và không nhãn trong cùng một bước đòi hỏi dung lượng VRAM lớn hơn 1.5 - 2 lần so với huấn luyện có giám sát thông thường.

Hướng phát triển tương lai

  1. Kết hợp Self-Supervised Learning và Vision Transformers (ViT): Tích hợp các kỹ thuật tiền huấn luyện tự giám sát (như DINOv2, MAE) làm backbone trích xuất đặc trưng trước khi thực hiện FixMatch.
  2. Cơ chế lọc nhãn giả thích ứng động (Dynamic Thresholding): Thay thế ngưỡng cố định $\tau = 0.95$ bằng phương pháp FreeMatch hoặc FlexMatch nhằm điều chỉnh ngưỡng theo từng lớp dựa trên tiến trình học thực tế.
  3. Mở rộng hỗ trợ Zero-Shot & Open-Vocabulary Detection: Kết hợp các mô hình nền tảng như CLIP hoặc Grounding DINO để sinh nhãn giả dạng văn bản linh hoạt hơn.

Đối tượng hưởng lợi

  • Sinh viên và Học viên ngành AI/Data Science: Tài liệu tham khảo toàn diện về mặt toán học và kỹ thuật thực thi của các phương pháp học bán giám sát, là cầu nối giữa lý thuyết học máy kinh điển và các kiến trúc học sâu thị giác hiện đại.
  • Kỹ sư AI và Lập trình viên Thị giác máy tính: Cung cấp mã nguồn thực tế, module hóa chuẩn PyTorch và kiến trúc tích hợp hệ thống MLOps/Annotation hoàn chỉnh để tái sử dụng trong các dự án công nghiệp.
  • Doanh nghiệp và Đơn vị vận hành Dữ liệu: Giải pháp khả thi giúp cắt giảm 70% chi phí gán nhãn dữ liệu, đẩy nhanh tốc độ đưa các sản phẩm AI từ phòng thí nghiệm ra thị trường (Time-to-Market).
  • Nhà nghiên cứu (Researchers): Cung cấp cơ sở dữ liệu thực nghiệm đối sánh rõ ràng giữa các thuật toán SSL trên cùng một chuẩn phần cứng và giao thức kiểm thử.

Câu hỏi thường gặp

1. Hệ thống yêu cầu phần cứng tối thiểu như thế nào để triển khai?

Để vận hành trơn tru cả quy trình huấn luyện bán giám sát (FixMatch) và dịch vụ gán nhãn, hệ thống cần tối thiểu 1 GPU NVIDIA có từ 8GB VRAM trở lên (khuyến nghị RTX 3060 12GB hoặc RTX 3090/A4000 cho môi trường doanh nghiệp), CPU 8 nhân và 32GB RAM để xử lý hàng đợi dữ liệu tăng cường.

2. Làm thế nào để ngăn chặn hiện tượng Confirmation Bias (tích lũy sai số nhãn giả)?

Hệ thống áp dụng 3 cơ chế kiểm soát:

  • Sử dụng ngưỡng tin cậy cao ($\tau \ge 0.95$) để chỉ giữ lại các nhãn giả có độ chắc chắn vượt trội.
  • Áp dụng kỹ thuật Sharpening Temperature ($T = 0.5$) để giảm thiểu tính không chắc chắn của phân phối xác suất.
  • Giữ vai trò của con người trong chu trình (Human-in-the-loop): Các mẫu có độ tin cậy nằm trong khoảng $0.60 \le \max(p) < 0.95$ sẽ được ưu tiên chuyển cho chuyên viên gán nhãn rà soát thay vì tự động chấp nhận.

3. Hệ thống có thể tích hợp với các công cụ gán nhãn khác ngoài Label Studio không?

Có. Nhờ kiến trúc API Gateway chuẩn RESTful và cấu trúc dữ liệu JSON/COCO chuẩn hóa, hệ thống có thể dễ dàng kết nối với CVAT, VGG Image Annotator (VIA), Roboflow hoặc bất kỳ nền tảng gán nhãn tùy biến nào thông qua Webhook.

4. Chi phí vận hành và thời gian hoàn vốn (ROI) được ước tính ra sao?

Đối với một doanh nghiệp xử lý khoảng 500,000 hình ảnh mỗi năm, chi phí tiết kiệm từ nhân công gán nhãn ước tính đạt $60,000 - $80,000. Với chi phí đầu tư ban đầu khoảng $3,000 cho phần cứng GPU, thời gian hoàn vốn đạt được chỉ sau chưa đầy 2 tháng vận hành.

5. Quy trình bảo trì và cập nhật mô hình (Continuous Learning) diễn ra như thế nào?

Khi chuyên viên hoàn tất việc kiểm duyệt một lượng dữ liệu mới (ví dụ: mỗi 500 ảnh được xác nhận), Label Studio sẽ gửi Webhook tới Backend. Hệ thống tự động kích hoạt pipeline Celery để cập nhật tập dữ liệu có nhãn $\mathcal{X}$, kết hợp cùng kho ảnh thô $\mathcal{U}$, thực hiện fine-tune lại mô hình FixMatch và tự động đăng ký phiên bản mới (Model Version Promotion) trên MLflow nếu các chỉ số validation vượt qua phiên bản cũ.


Kết luận

Đồ án tốt nghiệp "Tìm hiểu về Semi-Supervised Learning và ứng dụng" của sinh viên Lê Thị Nhung và Nguyễn Thanh Sang (ĐH Sư phạm Kỹ thuật TP.HCM) đã giải quyết thành công một trong những nút thắt lớn nhất của ngành thị giác máy tính hiện đại: sự phụ thuộc vào dữ liệu gán nhãn quy mô lớn. Thông qua việc kết hợp chặt chẽ giữa nghiên cứu toán học lý thuyết (các giả định bán giám sát, mô hình GMM, Consistency Regularization) và phát triển phần mềm ứng dụng thực tế (FixMatch, STAC, Label Studio, MLflow, FastAPI), đề tài đã chứng minh rằng: chỉ với 5-10% dữ liệu có nhãn, mô hình bán giám sát hoàn toàn có thể đạt được hơn 95% hiệu năng so với các mô hình học có giám sát truyền thống, đồng thời tiết kiệm hơn 70% chi phí và thời gian gán nhãn.

Kết quả của đề tài mở ra tiềm năng ứng dụng rộng lớn cho các doanh nghiệp, tổ chức nghiên cứu trong việc số hóa quy trình chuẩn bị dữ liệu và tăng tốc triển khai các giải pháp AI vào thực tế sản xuất.