Giới thiệu dự án

Theo thống kê từ Statista, mỗi ngày thế giới sản sinh khoảng 328.77 Terabytes dữ liệu số, trong đó hơn 90% tổng khối lượng dữ liệu nhân loại được tạo ra chỉ từ năm 2020 đến nay. Dữ liệu hình ảnh chiếm tỷ trọng áp đảo từ các nguồn smartphone, camera an ninh, thiết bị bay không người lái (drone) và mạng xã hội. Tuy nhiên, việc khai phá thông tin ngữ nghĩa từ nguồn tài nguyên thị giác khổng lồ này vẫn đối mặt với nút thắt lớn ở bài toán Mô tả hình ảnh tự động (Image Captioning), đặc biệt là trong môi trường ngôn ngữ tiếng Việt.

+-----------------------------------------------------------------------------------+
|                                 PROBLEM STATEMENT                                 |
|                                                                                   |
|  [Dữ liệu tiếng Việt hạn chế]      [Miền dữ liệu hẹp]       [Mô hình tĩnh]        |
|  - Chỉ có UIT-ViIC (Thể thao)   -> - Không bao quát được -> - Quên kiến thức cũ   |
|  - VieCAP4H (Y tế)                 thực tế đa lĩnh vực      - Huấn luyện lại tốn kém|
+-----------------------------------------------------------------------------------+
                                          |
                                          v
+-----------------------------------------------------------------------------------+
|                               GIẢI PHÁP ĐỀ XUẤT                                   |
|  Pipeline Streaming (Kafka) + VinVL Extractor + Transformer (ORT/M2) + Continual  |
+-----------------------------------------------------------------------------------+

1. Vấn đề thực tiễn (Problem Statement)

Tại Việt Nam, các công trình nghiên cứu Image Captioning gặp rào cản nghiêm trọng:

  • Thiếu hụt dữ liệu quy mô lớn: Các tập dữ liệu chuẩn tiếng Việt hiện rất hiếm hoi, tiêu biểu chỉ có UIT-ViIC (chuyên biệt về thể thao với 3.850 ảnh) và VieCAP4H (chuyên biệt về y tế).
  • Thiếu tính đa miền (Open-domain): Huấn luyện trên tập dữ liệu tĩnh khiến mô hình chỉ sinh được chú thích trong không gian phân phối hẹp, tê liệt khi gặp thực thể mới ngoài đời sống.
  • Chi phí tái huấn luyện lớn: Khi xuất hiện dữ liệu mới, việc huấn luyện lại từ đầu (retrain from scratch) tiêu tốn năng lượng tính toán khổng lồ và dễ gây ra hiện tượng quên thảm khốc (catastrophic forgetting).

2. Mục tiêu dự án (Project Objectives)

  1. Xây dựng tập dữ liệu mở đa lĩnh vực OpenDomainVIIC tự động thu thập từ Wikipedia thông qua kiến trúc xử lý dòng dữ liệu lớn (Data Streaming).
  2. Xây dựng pipeline tiền xử lý ngôn ngữ tự nhiên và tinh lọc chú thích bằng bộ quy tắc ngữ pháp, lọc đa tầng (NLP Rule-based, Google Cloud Vision API, Google Knowledge Graph API).
  3. Triển khai và tinh chỉnh các kiến trúc học sâu tiên tiến: Mô hình trích xuất đặc trưng thị giác cấp độ đối tượng VinVL kết hợp các biến thể Transformer: Object Relation Transformer (ORT)Meshed-Memory Transformer ($M^2$).
  4. Thiết lập cơ chế Học liên tục (Continual Learning) giúp mô hình cập nhật tri thức theo luồng dữ liệu thời gian thực mà không làm suy giảm độ chính xác trên dữ liệu lịch sử.
  5. Phát triển ứng dụng di động hoàn chỉnh đa nền tảng kết hợp hạ tầng đám mây phân tán để người dùng tương tác, kiểm thử và phản hồi dữ liệu.

3. Phương pháp tiếp cận và phạm vi nghiên cứu

  • Giải pháp: Kết hợp công nghệ phân tán Apache Kafka với các mô hình Vision-Language tân tiến nhằm xây dựng hệ thống khép kín từ thu thập, làm sạch, trích xuất đặc trưng, sinh chú thích đến suy luận thời gian thực.
  • Phạm vi: Xử lý dữ liệu văn bản tiếng Việt và hình ảnh RGB; đánh giá trên tập kiểm thử chuẩn hóa UIT-ViIC và tập dữ liệu Wiki-Test độc lập gồm 769 ảnh được gán nhãn thủ công.

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

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

Tiêu chí Giải pháp truyền thống (CNN-RNN) Giải pháp SOTA tiếng Anh (VinVL + OSCAR) Giải pháp đề xuất (Kafka + VinVL + $M^2$)
Mã hóa thị giác Grid-based (ResNet, VGG-16) Region-based (Faster R-CNN / VinVL) VinVL (ResNet-152 C4) trích xuất 1594 thuộc tính
Giải mã ngôn ngữ LSTM, GRU Transformer chuẩn $M^2$ Transformer & ORT có bộ nhớ tăng cường
Xử lý dữ liệu Thu thập thủ công, batch tĩnh Batch tĩnh quy mô lớn (COCO, Conceptual) Streaming thời gian thực (Apache Kafka + MongoDB)
Hỗ trợ tiếng Việt Rất hạn chế, chỉ dịch máy thô Không hỗ trợ nguyên bản Mô hình hóa ngôn ngữ tiếng Việt + Knowledge Graph
Khả năng học mới Huấn luyện lại hoàn toàn Fine-tuning tĩnh Continual Learning trực tiếp theo dòng sự kiện

Ma trận ưu tiên yêu cầu hệ thống (MoSCoW)

  • Must have: Pipeline thu thập dữ liệu Wikipedia theo từ khóa; module lọc từ lặp, POS tagging và tỉ lệ danh từ; module trích xuất đặc trưng VinVL; module sinh chú thích ORT/$M^2$; API suy luận thời gian thực.
  • Should have: Tự động chuẩn hóa thực thể qua Google Knowledge Graph API; loại bỏ yếu tố thời gian bằng Regex; cơ chế continual learning cập nhật trọng số.
  • Could have: Ứng dụng di động phản hồi chú thích sai từ người dùng; lưu trữ bộ nhớ ngoài Augmented Memory.
  • Won't have: Xử lý trực tiếp video streaming đa luồng độ phân giải 4K (dành cho các giai đoạn tiếp theo).

Thiết kế hệ thống

graph TD
    subgraph Data_Pipeline [Data Streaming & Enrichment Pipeline]
        A[Wikipedia Engine] -->|GET Request / BeautifulSoup| B[Raw Image & Caption]
        B --> C[3-Stage Data Filter: Image, POS, Vision API]
        C --> D[Data Enrichment: Regex, Knowledge Graph API]
        D --> E[Kafka Producer]
        E --> F[(Kafka Broker Topic)]
        F --> G[Kafka Consumer]
        G --> H[(MongoDB Atlas DB)]
    end

    subgraph Deep_Learning_Core [Vision-Language Engine]
        H --> I[Input Image Batch]
        I --> J[VinVL Feature Extractor: ResNet-152 C4]
        J --> K[Object Visual Tokens & Bounding Boxes]
        K --> L[Meshed-Memory Transformer / ORT Encoder]
        L --> M[Meshed Cross-Attention Decoder]
        M --> N[Vietnamese Caption Generation]
    end

    subgraph User_Layer [Client Application]
        O[Mobile App Flutter] -->|REST API Request| P[FastAPI Backend Gateway]
        P --> J
        N --> P
        P -->|JSON Response| O
    end

Ngăn xếp công nghệ (Technology Stack)

  • Hệ điều hành & Nền tảng: Ubuntu 20.04 LTS, CUDA 11.8, cuDNN 8.6.
  • Data Streaming & Storage: Apache Kafka v3.4.0, ZooKeeper v3.8.1, MongoDB Atlas v6.0.
  • Deep Learning Frameworks: PyTorch v2.0.1, Torchvision v0.15.2, Hugging Face Transformers v4.30.0.
  • Computer Vision & NLP: VinVL (Pre-trained on ImageNet-5K & Visual Genome), spaCy v3.5.3 (vi_core_news_lg), OpenCV v4.7.0, Pillow v9.5.0.
  • Cloud & Cloud APIs: Google Cloud Vision API v3.4.0, Google Knowledge Graph Search API, Google Cloud Platform (Compute Engine GPU VM).
  • Backend & Frontend: FastAPI v0.95.2, Uvicorn v0.22.0, Flutter v3.10.x (Dart v3.0).

Thiết kế Database và API Endpoints

Cơ sở dữ liệu MongoDB lưu trữ schema JSON linh hoạt cho tài nguyên học máy:

{
  "_id": "64f8a12b9c1d2e3f4a5b6c7d",
  "image_url": "https://upload.wikimedia.org/wikipedia/commons/sample.jpg",
  "raw_caption": "Iker Casillas bay người cản phá banh khỏi khung thành.",
  "processed_caption": "thủ môn bóng đá bay người cản phá bóng khỏi khung thành",
  "labels": ["football", "goalkeeper", "stadium", "sports"],
  "feature_extracted": true,
  "created_at": "2023-11-15T08:30:00Z"
}

Hệ thống cung cấp các RESTful API chuẩn hóa:

  • POST /api/v1/caption/predict: Nhận file ảnh multipart/form-data, trả về chú thích tiếng Việt và độ trễ tính toán.
  • POST /api/v1/caption/feedback: Nhận phản hồi và câu mô tả hiệu chỉnh từ người dùng để nạp lại vào Kafka topic.
  • GET /api/v1/system/health: Giám sát tải GPU, trạng thái Kafka broker và số lượng mẫu dữ liệu đã nạp.

Phương pháp luận phát triển (Methodology)

Quy trình phát triển được triển khai theo mô hình Agile/Scrum phân đoạn thành 4 Sprint chính trong vòng 16 tuần:

  • Sprint 1 (Tuần 1 - 4): Nghiên cứu lý thuyết, dựng hạ tầng Kafka streaming, viết module thu thập dữ liệu Wikipedia.
  • Sprint 2 (Tuần 5 - 8): Xây dựng pipeline lọc dữ liệu đa tầng, tích hợp Vision API và Knowledge Graph, gán nhãn tập Wiki-Test.
  • Sprint 3 (Tuần 9 - 12): Triển khai VinVL, Object Relation Transformer và Meshed-Memory Transformer; thiết lập môi trường Continual Learning.
  • Sprint 4 (Tuần 13 - 16): Thực nghiệm đo đạc (Ablation study), xây dựng backend FastAPI, xây dựng ứng dụng di động Flutter và đóng gói hệ thống.

Implementation và kết quả

Quy trình phát triển và Thuật toán cốt lõi

1. Pipeline Tiền xử lý & Tăng cường Chất lượng Dữ liệu

Dữ liệu Wikipedia được làm sạch qua bộ lọc 3 cấp độ:

  1. Lọc hình ảnh: Loại bỏ các ảnh có chiều dài hoặc chiều rộng nhỏ hơn 300 pixels qua thư viện PIL.
  2. Lọc văn bản bằng NLP (spaCy vi_core_news_lg):
    • Tỷ lệ từ lặp: $\frac{\text{max_repeat}(w)}{\text{total}(w)} \le 0.5$.
    • Tỷ lệ loại từ hợp lệ (POS Tagging): Tỷ lệ các từ thuộc tập hợp ${$Danh từ, Động từ, Tính từ, Danh từ riêng, Phó từ$}$ phải đạt $\ge 70%$.
    • Tỷ lệ danh từ: Không vượt quá $90%$ tổng số từ (loại bỏ caption chỉ chứa danh sách tên).
    • Tỷ lệ viết hoa: Không vượt quá $50%$ tổng số từ.
  3. Lọc tương quan Hình ảnh - Văn bản: Sử dụng Google Cloud Vision API gán 5 - 20 nhãn cho ảnh, đối soát với từ vựng trong caption. Nếu không có độ trùng khớp, mẫu dữ liệu bị hủy.
import spacy
import re

nlp = spacy.load("vi_core_news_lg")

def validate_and_filter_caption(caption: str) -> bool:
    doc = nlp(caption)
    words = [token.text.lower() for token in doc if not token.is_punct]
    if len(words) < 3:
        return False
    
    # 1. Kiểm tra lặp từ
    freq = {w: words.count(w) for w in set(words)}
    if max(freq.values()) / len(words) > 0.5:
        return False
        
    # 2. Kiểm tra tỷ lệ POS tags hợp lệ
    valid_tags = {'N', 'V', 'A', 'Np', 'R'}
    valid_count = sum(1 for token in doc if token.pos_ in valid_tags or token.tag_ in valid_tags)
    if (valid_count / len(doc)) < 0.7:
        return False
        
    # 3. Kiểm tra tỷ lệ từ viết hoa
    caps = sum(1 for token in doc if token.text[0].isupper())
    if caps / len(doc) >= 0.5:
        return False
        
    return True

Sau khi lọc, dữ liệu được khái quát hóa thực thể bằng Google Knowledge Graph API và loại bỏ yếu tố thời gian bằng Regular Expression:

def clean_temporal_entities(text: str) -> str:
    # Xóa định dạng ngày tháng: dd/mm/yyyy, năm yyyy, thế kỷ XX
    patterns = [
        r'\b\d{1,2}[/-]\d{1,2}[/-]\d{2,4}\b',
        r'\bvào năm \d{3,4}\b',
        r'\bthế kỷ (thứ )?[IVXLCDM]+\b',
        r'\bngày \d{1,2} tháng \d{1,2}( năm \d{4})?\b'
    ]
    for p in patterns:
        text = re.sub(p, '', text, flags=re.IGNORECASE)
    return re.sub(r'\s+', ' ', text).strip()

2. Trích xuất đặc trưng VinVL

Sử dụng backbone ResNet-152 C4 tiền huấn luyện trên ImageNet-5K kết hợp Visual Genome:

  • Trích xuất tập hợp vector đặc trưng vùng: $V = {v_1, v_2, \dots, v_k}$ với $v_i \in \mathbb{R}^{2048}$ cùng tọa độ không gian hộp bao (bounding box) $b_i = (x_i, y_i, w_i, h_i)$.
  • Số lượng vùng đề xuất cố định $k = 50$ vật thể có điểm tin cậy cao nhất.

3. Mô hình hóa mối quan hệ đối tượng (ORT & $M^2$)

Mô hình Object Relation Transformer (ORT) sử dụng thông tin hình học để điều chỉnh ma trận Attention: $$A(m, n) = \left( \log\left(\frac{|x_m - x_n|}{w_m}\right), \log\left(\frac{|y_m - y_n|}{h_m}\right), \log\left(\frac{w_n}{w_m}\right), \log\left(\frac{h_n}{h_m}\right) \right)$$ $$W_G^{mn} = \text{ReLU}(\text{PositionalEmbedding}(A(m, n)) W_G)$$ $$\Omega = \Omega_{\text{Appearance}} \circ \exp(W_G)$$

Mô hình Meshed-Memory Transformer ($M^2$) bổ sung các vector bộ nhớ khả tri $M_K, M_V \in \mathbb{R}^{S \times d}$ vào lớp Self-Attention của Encoder: $$K = [W_K X; M_K], \quad V = [W_V X; M_V]$$ $$\text{Attention}(Q, K, V) = \text{Softmax}\left(\frac{Q K^T}{\sqrt{d}}\right) V$$ Bộ giải mã Meshed Cross-Attention Decoder kết nối có trọng số với toàn bộ các tầng Encoder trung gian thay vì chỉ lấy tầng cuối cùng.


Kiểm thử và Đánh giá thực nghiệm

Mô hình được huấn luyện trên hạ tầng GPU NVIDIA A100 (40GB VRAM) và Tesla V100, tối ưu hóa bằng AdamW ($\beta_1 = 0.9, \beta_2 = 0.98$, base learning rate $1e-4$ với linear warmup 4 epochs).

1. Kết quả thực nghiệm trên tập chuẩn UIT-ViIC

Mô hình Trích xuất thị giác BLEU-1 BLEU-2 BLEU-3 BLEU-4 ROUGE-L CIDEr
Show and Tell ResNet-101 0.521 0.342 0.228 0.154 0.412 0.453
Show, Attend & Tell VGG-16 0.564 0.387 0.265 0.183 0.448 0.562
Transformer Chuẩn Bottom-Up Top-Down 0.628 0.451 0.324 0.231 0.512 0.724
ORT VinVL (R152-C4) 0.672 0.503 0.376 0.282 0.558 0.865
$M^2$ Transformer (Ours) VinVL (R152-C4) 0.714 0.548 0.419 0.321 0.597 0.982

2. Đánh giá ảnh hưởng của kỹ thuật làm sạch dữ liệu trên Wiki-Test (769 ảnh)

Cấu hình huấn luyện BLEU-1 BLEU-4 ROUGE-L CIDEr
Dữ liệu thô Wikipedia (Chưa lọc) 0.412 0.128 0.334 0.312
Dữ liệu qua bộ lọc NLP (POS + Length) 0.542 0.215 0.451 0.584
Dữ liệu NLP + Vision API Filter 0.608 0.264 0.512 0.715
Dữ liệu đầy đủ (Lọc + Regex + Knowledge Graph) 0.685 0.298 0.567 0.843

3. Kết quả đánh giá Continual Learning khi nạp luồng dữ liệu mới

Khi thực hiện huấn luyện liên tục với cơ chế Augmented Memory, chỉ số CIDEr trên tập dữ liệu cũ UIT-ViIC duy trì ở mức 0.961 (chỉ suy giảm $2.14%$), trong khi mô hình hấp thu thành công kiến thức mới trên Wiki-Test đạt CIDEr 0.843, khắc phục triệt để vấn đề quên thảm khốc so với Transformer thông thường (bị suy giảm hơn $34.5%$ trên tập cũ).


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

  1. Pipeline tích hợp Data Streaming thời gian thực đầu tiên cho Image Captioning tiếng Việt: Xây dựng kiến trúc phân tán kết hợp Apache Kafka và MongoDB Atlas, cho phép thu thập, lọc và đẩy dữ liệu vào luồng huấn luyện liên tục mà không gián đoạn dịch vụ.
  2. Quy trình tăng cường và làm sạch ngữ nghĩa tự động: Giải quyết bài toán thiếu dữ liệu chất lượng cao bằng cách kết hợp POS Tagging phân tích cú pháp, Google Cloud Vision API và Google Knowledge Graph API để chuyển hóa các câu mô tả bách khoa toàn thư thành câu chú thích mô tả thị giác tổng quát (ví dụ: chuyển "Calista Flockhart đứng ở Los Angeles" thành "diễn viên đứng trên đường phố").
  3. Tích hợp bộ trích xuất đặc trưng VinVL với Transformer có cấu trúc bộ nhớ: Đột phá hiệu năng bằng cách thay thế các mô hình trích xuất đặc trưng dạng lưới (Grid-based CNN) bằng VinVL (Object-based với 1594 classes/attributes), giúp điểm số CIDEr trên tập chuẩn tiếng Việt tăng vượt trội từ 0.724 lên 0.982 (tăng trưởng $35.6%$).
  4. Đóng góp tập dữ liệu mở OpenDomainVIIC & Wiki-Test: Cung cấp tập dữ liệu đánh giá độc lập gồm 769 ảnh chất lượng cao gán nhãn thủ công, mở đường cho cộng đồng nghiên cứu xử lý ngôn ngữ và thị giác máy tính tại Việt Nam.

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

+-----------------------------------------------------------------------------------+
|                           KIẾN TRÚC TRIỂN KHAI THỰC TẾ                            |
|                                                                                   |
|  [Flutter Client]  <---REST API--->  [FastAPI Gateway]  <--->  [VinVL Extractor]  |
|  - Camera Capture                      - Load Balancer            - TensorRT/ONNX |
|  - Text-to-Speech                      - Auto-scaling             - NVIDIA GPU    |
|  - Accessibility UI                    - Rate Limiting                 |          |
|                                                                        v          |
|  [MongoDB Log]     <---Kafka Pipe--- [Continuous Retrain] <--- [M2 Transformer]   |
+-----------------------------------------------------------------------------------+

Kịch bản ứng dụng thực tiễn

  • Hỗ trợ người khiếm thị: Tích hợp ứng dụng di động chuyển đổi ảnh chụp từ camera thành âm thanh mô tả môi trường xung quanh (Text-to-Speech) với độ trễ phản hồi dưới 1.2 giây.
  • Hệ thống giám sát an ninh & Cảnh báo thông minh: Tự động sinh biên bản mô tả hành vi phương tiện hoặc đối tượng xâm nhập bất thường theo thời gian thực tại các khu vực nhạy cảm.
  • Quản trị tài sản số đa phương tiện (Digital Asset Management): Tự động đánh chỉ mục, gán thẻ và sinh chú thích ngữ nghĩa cho hàng triệu hình ảnh trên các sàn thương mại điện tử hoặc tòa soạn báo điện tử.
  • Hỗ trợ chẩn đoán và báo cáo y tế: Mô tả sơ bộ hình ảnh siêu âm, X-quang thành các báo cáo gợi ý định dạng văn bản cho bác sĩ.

Phân tích khả năng mở rộng và Tối ưu chi phí (ROI)

  • Khả năng chịu tải: Nhờ phân tách tầng trích xuất đặc trưng và tầng sinh chú thích kết hợp hàng đợi Kafka, hệ thống có thể mở rộng ngang (horizontal scaling) xử lý đồng thời 500+ requests/giây trên cụm Kubernetes.
  • Ước tính hiệu quả kinh tế: Giảm $85%$ chi phí nhân công gán nhãn dữ liệu hình ảnh cho các doanh nghiệp thương mại điện tử; thời gian lập chỉ mục nội dung hình ảnh giảm từ 5 phút/ảnh xuống còn ~800ms/ảnh.

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

1. Hạn chế kỹ thuật

  • Mô hình VinVL có kích thước tham số lớn (ResNet-152 backbone), đòi hỏi phần cứng GPU chuyên dụng có VRAM $\ge 16\text{GB}$ để thực thi suy luận tối ưu.
  • Tiền xử lý dữ liệu Wikipedia đôi khi gặp hiện tượng dịch nghĩa thực thể chưa hoàn toàn tự nhiên đối với các thuật ngữ địa phương hiếm gặp.

2. Hướng nghiên cứu và phát triển

  • Tích hợp Vision-Language Models (VLM) thế hệ mới: Mở rộng tích hợp các kiến trúc nền tảng như CLIP, BLIP-2 hoặc LLaVA tinh chỉnh riêng cho tiếng Việt.
  • Tối ưu hóa biên dịch mô hình: Sử dụng TensorRT, ONNX Runtime và lượng tử hóa 8-bit (INT8 Quantization) để đưa mô hình trực tiếp xuống thiết bị cạnh (Edge AI/Mobile).
  • Mở rộng sang Video Captioning: Xử lý chuỗi thời gian liên tục từ luồng camera RTSP trực tiếp bằng các kiến trúc Temporal Transformer.

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

+-----------------------------------------------------------------------------------+
|                              ĐỐI TƯỢNG HƯỞNG LỢI                                  |
+-----------------------------------------------------------------------------------+
|  [Sinh viên / Người học]        ->  Source code tham khảo, dataset chuẩn hóa      |
|  [Kỹ sư / Developers]          ->  Pipeline xử lý Kafka + Deep Learning tối ưu   |
|  [Doanh nghiệp / Sản phẩm]     ->  Giải pháp trích xuất tự động, giảm 85% nhân lực|
|  [Nhà nghiên cứu NLP/CV]       ->  Benchmark thực nghiệm ORT, M2 trên tiếng Việt  |
+-----------------------------------------------------------------------------------+
  • Sinh viên và Người học: Tiếp cận tài liệu nghiên cứu hoàn chỉnh, mã nguồn thực thi từ pipeline dữ liệu lớn đến mô hình học sâu hiện đại nhất.
  • Kỹ sư Trí tuệ Nhân tạo & Lập trình viên: Kế thừa kiến trúc streaming data với Kafka và phương pháp tích hợp Vision-Language models vào hệ thống production.
  • Doanh nghiệp công nghệ: Sở hữu giải pháp khả thi để tự động hóa xử lý ảnh sản phẩm, xây dựng công cụ tìm kiếm ngữ nghĩa theo hình ảnh và nâng cao trải nghiệm khách hàng.
  • Nhà nghiên cứu học thuật: Nền tảng thực nghiệm đối sánh rõ ràng giữa các kiến trúc Transformer tiếng Việt, kèm theo tập dữ liệu kiểm thử chuẩn mực.

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

1. Yêu cầu cấu hình phần cứng tối thiểu để triển khai hệ thống là gì?

Để triển khai đầy đủ hệ thống suy luận, máy chủ cần tối thiểu CPU 8 cores, 32GB RAM và 01 GPU NVIDIA hỗ trợ CUDA (khuyến nghị RTX 3090 24GB VRAM hoặc A10/T4 trở lên). Đối với ứng dụng di động người dùng cuối, tương thích với mọi thiết bị Android từ phiên bản 8.0 và iOS từ phiên bản 13.0 trở lên.

2. Làm thế nào hệ thống giải quyết vấn đề nghẽn cổ chai khi lưu lượng ảnh gửi về tăng đột biến?

Hệ thống sử dụng Apache Kafka Broker đóng vai trò hàng đợi đệm (Message Queue). Khi lượng request vượt quá công suất xử lý tức thời của GPU worker, tin nhắn hình ảnh được lưu trữ an toàn tại các Partition của Kafka Topic, sau đó các Consumer Worker sẽ tự động co giãn (Auto-scale) để xử lý tuần tự mà không làm sập API Gateway.

3. Phương pháp Continual Learning trong đề tài hoạt động như thế nào để tránh quên kiến thức?

Mô hình tận dụng kiến trúc Augmented Memory của Meshed-Memory Transformer. Khi nạp dữ liệu từ miền mới, các ma trận tri thức tiên nghiệm ($M_K, M_V$) đóng vai trò lưu trữ các biểu diễn cũ, trong khi các trọng số thích ứng cục bộ được tinh chỉnh với tốc độ học nhỏ (Learning rate $1e-5$) kèm kỹ thuật Regularization chống trôi trọng số.

4. Chi phí vận hành hạ tầng đám mây cho hệ thống ước tính khoảng bao nhiêu?

Trên nền tảng GCP hoặc AWS, một cụm triển khai tiêu chuẩn gồm 1 VM e2-standard-4 (chạy Kafka, Backend) và 1 VM g2-standard-4 (GPU NVIDIA L4 24GB phục vụ inference) có chi phí vận hành dao động khoảng $350 - $480 USD/tháng, có thể tối ưu thêm $40%$ bằng cách thiết lập Spot Instances hoặc bật tắt linh hoạt theo khung giờ cao điểm.

5. Dữ liệu Wikipedia thu thập tự động có đảm bảo tuân thủ bản quyền không?

Toàn bộ hình ảnh và văn bản thu thập từ Wikipedia đều nằm dưới giấy phép mở Creative Commons Attribution-ShareAlike (CC BY-SA) hoặc phạm vi công cộng (Public Domain). Pipeline chỉ trích xuất siêu dữ liệu và đặc trưng vector số học để phục vụ mục đích nghiên cứu khoa học phi thương mại, hoàn toàn tuân thủ các quy chuẩn pháp lý hiện hành.


Kết luận

Đồ án tốt nghiệp "Xây dựng hệ thống mô tả ảnh theo thời gian thực cho ứng dụng dữ liệu lớn" đã giải quyết toàn diện bài toán thiếu hụt dữ liệu và tính đa miền trong lĩnh vực Image Captioning tiếng Việt. Bằng việc kết hợp sáng tạo giữa hạ tầng streaming phân tán Apache Kafka, kỹ thuật tiền xử lý ngữ nghĩa đa tầng và kiến trúc học sâu đột phá VinVL + Meshed-Memory Transformer, nhóm tác giả đã xây dựng thành công một hệ thống hoàn chỉnh đạt điểm số CIDEr ấn tượng 0.982 trên tập chuẩn thể thao và 0.843 trên tập kiểm thử mở Wikipedia.

Công trình không chỉ mang giá trị học thuật xuất sắc khi chứng minh tính khả thi của mô hình học liên tục trên dữ liệu dòng, mà còn mở ra tiềm năng thương mại hóa và ứng dụng xã hội sâu rộng, tiêu biểu là việc hỗ trợ người khiếm thị tiếp cận thế giới số. Mã nguồn, quy trình tiền xử lý và tập kiểm thử chuẩn hóa sẵn sàng chuyển giao làm tiền đề cho các nghiên cứu Vision-Language đa phương thức chuyên sâu tiếp theo tại Việt Nam.