№ 53
AdverTest là nền tảng hỗ trợ đội ngũ phát triển mô hình perception kiểm tra khả năng hoạt động của mô hình trong các điều kiện bất lợi như: *Nhiễu ảnh và lỗi cảm biến. *Sương mù, mưa, tuyết, thay đổi ánh sáng. *Vật thể bị che khuất. *Camera hoặc LiDAR bị mất dữ liệu. *Adversarial digital attack. *Adversarial patch. *Black-box và transfer attack. Hệ thống cho phép người dùng chọn dữ liệu, model và nhóm tấn công; tự động tạo các biến thể kiểm thử; chạy suy luận; đo mức suy giảm; trực quan hóa lỗi; và chuyển các trường hợp nguy hiểm sang Reviewer để đưa ra quyết định cuối cùng.
Cảnh báo an toàn (Simulation Only): Hệ thống được thiết kế phục vụ mục đích kiểm thử, mô phỏng và thẩm định độ bền vững của mô hình AI trong môi trường cách ly an toàn. Mọi quyết định đưa mô hình vào triển khai thực tế bắt buộc phải qua quy trình ký duyệt của chuyên gia (Human-in-the-Loop).
Trong kỷ nguyên phát triển mạnh mẽ của xe tự hành (Autonomous Vehicles), robot công nghiệp, máy bay không người lái (UAV) và các hệ thống giám sát thông minh, các mô hình thị giác máy tính (Perception AI như 2D/3D Object Detection, Promptable Segmentation, LiDAR-Camera Fusion) đóng vai trò là cơ quan cảm biến và ra quyết định tối quan trọng.
Tuy nhiên, các mô hình Học sâu (Deep Learning) hiện đại tồn tại những "điểm mù" và lỗ hổng bảo mật nghiêm trọng:
Thực trạng tại các đội ngũ phát triển: Hầu hết các kỹ sư AI hiện nay chỉ kiểm thử mô hình trên tập dữ liệu kiểm chuẩn tĩnh (Clean Benchmark) với chỉ số $\text{mAP}$ hoặc $\text{mIoU}$. Đội ngũ thiếu một công cụ kiểm thử hệ thống, có khả năng tự động hóa, lặp lại được (reproducible) để đo lường mức độ suy giảm hiệu năng trước khi đưa mô hình vào môi trường vận hành thực tế.
Hệ thống AdverTest được xây dựng theo kiến trúc Plugin-driven Modular Architecture, tách biệt triệt để giữa lõi điều phối, các bộ sinh tấn công, bộ điều hợp mô hình và tầng giao diện hiển thị.
flowchart TB
subgraph UI_Layer["Tầng Giao Diện & Người Dùng (Next.js 14 + Tailwind CSS)"]
UI_Dash["Investigation Dashboard"]
UI_Comp["Diff & BBox/Mask Comparison Viewer"]
UI_Report["Heatmap & RobustScore Report"]
UI_Review["Review Queue & Audit Trail"]
end
subgraph API_Layer["Tầng Dịch Vụ & Điều Phối (FastAPI + Workers)"]
API_GW["FastAPI REST Endpoints"]
EST["Cost & Runtime Estimator"]
AUDIT["Immutable Audit Logger"]
QUEUE[("Job Queue: Celery / Async Worker")]
end
subgraph Core_Pipeline["Lõi Pipeline Điều Phối (src/core & src/pipeline)"]
ANON_GATE{"Cổng Ẩn Danh Bắt Buộc<br/>(SCRFD Face + YOLO Plate Blur)"}
CACHE[("Content-Addressed Prediction Cache<br/>hash(sample, attack, params, model)")]
RUNNER["TestRunner / AttackDatasetGenerator"]
RED_TEAM["Auto Red-Team Search<br/>(Optuna TPE / Bayesian Optimization)"]
end
subgraph Plugins["Hệ Sinh Thái Plugin Độc Lập"]
subgraph Attacks["Nhóm Tấn Công (A - F)"]
ATK_A["Nhóm A: 19 Common Corruptions"]
ATK_B["Nhóm B: Depth-aware Weather"]
ATK_C["Nhóm C: Occlusion & Sensor Drop"]
ATK_D["Nhóm D: Digital White-box (PGD/TOG/SAM)"]
ATK_E["Nhóm E: Physical Adversarial Patch"]
ATK_F["Nhóm F: Black-box & Transfer Matrix"]
end
subgraph Adapters["Bộ Điều Hợp Mô Hình (Model Adapters)"]
ADP_YOLO["YOLO11 / YOLOv8"]
ADP_FRCNN["Faster R-CNN / RT-DETR"]
ADP_SAM["SAM 2.1 (Segmentation)"]
ADP_3D["PointPillars / BEVFusion"]
end
subgraph Datasets["Nguồn Dữ Liệu"]
DS_KITTI["KITTI 2D/3D"]
DS_NUSC["nuScenes v1.0"]
DS_SYNTH["Synthetic Benchmarks"]
end
end
subgraph Eval_Layer["Tầng Đánh Giá & Thống Kê (src/evaluation)"]
EVAL_AP["mAP@[.50:.95] / AP50"]
EVAL_DEG["Degradation D(c,s) & rPC"]
EVAL_ASR["ASR (Object / Image / Targeted)"]
EVAL_SCORE["RobustScore (0 - 100)"]
EVAL_BOOT["Bootstrap 95% CI (1000 resamples)"]
end
UI_Dash <--> API_GW
UI_Comp <--> API_GW
UI_Report <--> API_GW
UI_Review <--> API_GW
API_GW --> EST
API_GW --> QUEUE
QUEUE --> RUNNER
DS_KITTI --> ANON_GATE
DS_NUSC --> ANON_GATE
DS_SYNTH --> ANON_GATE
ANON_GATE --> RUNNER
RUNNER <--> CACHE
RUNNER --> Attacks
RUNNER --> Adapters
RED_TEAM -.-> Attacks
RUNNER --> Eval_Layer
Eval_Layer --> UI_Report
Tất cả các module tấn công kế thừa từ lớp trừu tượng BaseAttack, giao tiếp thông qua ảnh chuẩn hóa numpy float32 $\in [0, 1]$:
┌────────────────────────────────────────────────────────┐
│ HỆ THỐNG TẤN CÔNG │
└────────────────────────────────────────────────────────┘
┌───────────────────────────┼───────────────────────────┐
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Nhóm A: │ │ Nhóm B: │ │ Nhóm C: │
│ Common Corrupt │ │ Vật lý & Weather│ │ Che khuất/Sensor│
├─────────────────┤ ├─────────────────┤ ├─────────────────┤
│ • 19 biến thể │ │ • Tán xạ Fog │ │ • CutOut/Erasing│
│ • 5 mức độ │ │ • Vệt mưa/tuyết │ │ • Che vật thể │
│ • Noise/Blur... │ │ • LiDAR Fog/Snow│ │ • Camera/LiDAR- │
└─────────────────┘ └─────────────────┘ │ beam dropout │
└─────────────────┘
┌───────────────────────────┼───────────────────────────┐
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Nhóm D: │ │ Nhóm E: │ │ Nhóm F: │
│ Digital Whitebox│ │ Vật lý Patch │ │ Black-box & Trf │
├─────────────────┤ ├─────────────────┤ ├─────────────────┤
│ • FGSM, PGD │ │ • DPatch, Thys │ │ • Square Attack │
│ • MI-FGSM, C&W │ │ • EOT Augment │ │ • Transfer 3x3 │
│ • TOG / DAG │ │ • Loss TV + NPS │ │ Matrix │
└─────────────────┘ └─────────────────┘ └─────────────────┘
Hệ thống thiết lập cơ chế Gradient Bridge độc lập:
input_gradient(sample, target_loss) trả về gradient dạng numpy array.Person hoặc Car (chuẩn nuScenes) nhằm triệt tiêu False Positive.TestRunner sẽ từ chối thực thi với mã lỗi AnonymizationRequiredError (HTTP 409).| Chỉ số | Công thức toán học | Ý nghĩa nghiệp vụ |
|---|---|---|
| Clean / Corrupted AP | $\text{AP}_{\text{clean}}, \text{AP}(c, s)$ | Điểm chuẩn COCO $\text{mAP}@[.50:.95]$ gốc và sau khi bị suy biến. |
| Degradation | $D(c, s) = \frac{\text{AP}{\text{clean}} - \text{AP}(c, s)}{\text{AP}{\text{clean}}} \times 100%$ | Tỷ lệ % hiệu năng bị đánh tụt tại loại tấn công $c$, mức độ $s$. |
| Mean Performance under Corruption | $\text{mPC} = \frac{1}{|C| |S|} \sum_{c, s} \text{AP}(c, s)$ | Năng lực trung bình của mô hình dưới môi trường nhiễu. |
| Relative Performance | $\text{rPC} = \frac{\text{mPC}}{\text{AP}_{\text{clean}}} \times 100%$ | Tỷ lệ năng lực cốt lõi được bảo toàn sau suy biến. |
| Resilience Rate | $\text{RR}(c) = \frac{\frac{1}{|S|}\sum_s \text{AP}(c, s)}{\text{AP}_{\text{clean}}}$ | Khả năng chống chịu riêng biệt theo từng dòng nhiễu cụ thể. |
| Robustness Accuracy Curve | $\text{RA}(s) = \frac{\frac{1}{|C|}\sum_c \text{AP}(c, s)}{\text{AP}_{\text{clean}}}$ | Đường cong suy giảm tổng thể khi độ nhiễu tăng từ cấp độ $1 \to 5$. |
| Attack Success Rate (ASR) | $\text{ASR}{\text{obj}} = \frac{N{\text{dropped_or_misclassified}}}{N_{\text{clean_correct}}}$ | Tỷ lệ vật thể nhận diện đúng ở ảnh sạch nhưng bị mất hoặc sai nhãn sau tấn công. |
| RobustScore | $\text{RobustScore} = 100 \times \sum_k w_k \cdot \text{clip}\left(\frac{\text{mPC}k}{\text{AP}{\text{clean}}}, 0, 1\right)$ | Điểm số tổng hợp thang 100 đại diện cho chỉ số an toàn của mô hình. |
[!IMPORTANT] Kiểm định Thống Kê Chặt Chẽ (Bootstrap CI 95%): Mọi chỉ số AP đều được tính toán kèm Khoảng tin cậy 95% qua 1000 lượt tái lấy mẫu (Bootstrap). Không so sánh 2 phiên bản mô hình nếu khoảng tin cậy của chúng chồng lấn nhau.
5 Sanity Checks bắt buộc (theo Carlini et al.):
- $\varepsilon = 0 \implies \text{AP} = \text{AP}_{\text{clean}}$ (sai lệch $< 0.1$ điểm).
- $\text{AP}(c,s)$ phải giảm đơn điệu theo độ nghiêm trọng $s$ và cường độ $\varepsilon$.
- PGD luôn tạo ra mức suy giảm lớn hơn hoặc bằng FGSM ở cùng mức $\varepsilon$.
- Nhiễu ngẫu nhiên cùng chuẩn $\varepsilon$ phải yếu hơn PGD (nếu không $\implies$ attack không hội tụ).
- Tăng số bước lặp $T$ của PGD không bao giờ làm tăng AP của mô hình.
Giao diện người dùng Next.js 14 cung cấp quy trình điều tra 5 bước chuẩn mực:
TÍNH KHẢ THI DỰ ÁN
┌────────────────────────────────┬────────────────────────────────┐
▼ ▼ ▼
┌─────────────────────────┐ ┌─────────────────────────┐ ┌─────────────────────────┐
│ KỸ THUẬT & CÔNG NGHỆ │ │ DỮ LIỆU & PHÁP LÝ │ │ CHI PHÍ & VẬN HÀNH │
├─────────────────────────┤ ├─────────────────────────┤ ├─────────────────────────┤
│ • Công nghệ chuẩn hóa │ │ • Dữ liệu KITTI/nuScenes│ │ • Tối ưu GPU bằng Cache │
│ PyTorch, FastAPI, Next│ │ có sẵn, phân tầng rõ │ │ • Quét 2 tầng & Optuna │
│ • Plugin Registry mở │ │ • Cổng ẩn danh SCRFD │ │ • Chạy tốt trên 1 GPU │
│ không lo xung đột code│ │ đáp ứng chuẩn GDPR │ │ • Tích hợp thẳng CI/CD │
└─────────────────────────┘ └─────────────────────────┘ └─────────────────────────┘
torchattacks, OpenCV, Kornia, Ultralytics và FastAPI kết hợp Next.js 14. Toàn bộ các thuật toán cốt lõi đều là các tiêu chuẩn đã được bình duyệt trong cộng đồng nghiên cứu quốc tế (ICLR, CVPR, NeurIPS).Plugin Registry Auto-discovery), các thành viên trong nhóm có thể phát triển song song các thuật toán tấn công hoặc thêm adapter mô hình mới trong các file độc lập mà không bao giờ gặp xung đột mã nguồn.blob_detector) giúp chạy trọn vẹn toàn bộ quy trình, API và giao diện ngay trên máy tính cá nhân/CPU mà không bắt buộc phải nạp mô hình lớn hay cần GPU đắt đỏ trong quá trình phát triển. LỘ TRÌNH PHÁT TRIỂN (ROADMAP)
[ Giai đoạn 1: Nền tảng & Đóng vòng ] ──► [ Giai đoạn 2: Đa phương thức & Physical ] ──► [ Giai đoạn 3: Tiêu chuẩn Hóa & Auto-Heal ]
───────────────────────────────────── ────────────────────────────────────────── ─────────────────────────────────────────
• Hoàn thiện bộ quét A-F • Hỗ trợ Autonomous Driving Foundation • Xây dựng chuẩn chứng nhận an toàn AI
• Tích hợp Adversarial Training Models (UniAD, VAD, World Models) tương thích ISO 26262 / ISO 21448 (SOTIF)
• Đóng gói Docker Compose & Cloud • Mở rộng Video & Temporal Consistency • Cơ chế Auto-Heal (Active Learning tự
Helm Charts • Kiểm thử Physical Patch ngoài đời thực sinh dữ liệu bù đắp lỗ hổng tự động)
| Tiêu chí | Hiện trạng thông thường | Giải pháp đột phá của AdverTest |
|---|---|---|
| Phương pháp kiểm thử | Đánh giá thủ công trên tập validation tĩnh ($m\text{AP}$ sạch). | Quét tự động đa chiều: 19 corruptions, thời tiết chiều sâu, che khuất, tấn công gradient, patch vật lý. |
| Chi phí tính toán | Duyệt lưới toàn bộ gây nghẽn và quá tải GPU. | Tiết kiệm $\ge 5\times$ GPU nhờ Content-Addressed Cache, Quét 2 tầng và Optuna Red-Team Search. |
| Độ tin cậy số liệu | Điểm số đơn lẻ, dễ bị nhiễu thống kê. | Báo cáo kèm Khoảng tin cậy Bootstrap 95% và 5 cổng Sanity Checks bắt buộc. |
| Bảo vệ quyền riêng tư | Nguy cơ rò rỉ khuôn mặt và biển số xe cá nhân. | Cổng ẩn danh bắt buộc (SCRFD + YOLO Blur), chặn cứng pipeline nếu chưa ẩn danh. |
| Quy trình vận hành | Tách rời giữa đo lường và khắc phục lỗi. | Đóng vòng hoàn chỉnh: Kiểm thử $\to$ Heatmap trực quan $\to$ Reviewer ký duyệt $\to$ Tái huấn luyện phòng thủ. |