Giới thiệu dự án

Bối cảnh và vấn đề thực tiễn

Trong kỷ nguyên số và sự bùng nổ của Trí tuệ nhân tạo (AI), trích xuất và xử lý thông tin tự động đóng vai trò sống còn trong việc tối ưu hóa hiệu suất làm việc của con người. Hầu hết các luồng tương tác tri thức tự nhiên đều dựa trên mô hình Hỏi - Đáp (Question Answering - QA). Mặc dù các hệ thống trợ lý ảo thông minh như Google Assistant, Apple Siri hay Microsoft Cortana đã đạt được nhiều bước tiến trong việc giải đáp thắc mắc, phần lớn các công trình nghiên cứu trong nước trước đây chỉ tập trung vào bài toán "Đáp" (Machine Reading Comprehension - MRC / QA).

Thực tế cho thấy, việc chủ động "Hỏi" (Question Generation - QG) đóng vai trò nền tảng trong việc định hướng bối cảnh, hỗ trợ tóm tắt văn bản và kích thích quá trình tự học. Tuy nhiên, việc xây dựng câu hỏi thủ công đòi hỏi chi phí nhân sự rất lớn ($O(N)$ theo quy mô tài liệu), không thể đáp ứng nhu cầu xử lý dữ liệu lớn (Big Data). Đối với các ngôn ngữ có nguồn tài nguyên xử lý ngôn ngữ tự nhiên (NLP) hạn chế như tiếng Việt, bài toán Tạo sinh tự động câu hỏi tiếng Việt (Vietnamese Automatic Question Generation - VQG) hầu như chưa có công bố nghiên cứu chuyên sâu, tạo ra khoảng trống công nghệ lớn so với các nghiên cứu trên tiếng Anh (vốn dựa trên tập dữ liệu SQuAD với hàng trăm nghìn mẫu).

+-------------------------------------------------------------------------------+
|                             BÀI TOÁN TỔNG QUÁT                                |
|                                                                               |
|  ĐẦU VÀO: [Đoạn văn ngữ cảnh (Context)] + [Câu trả lời mục tiêu (Answer)]     |
|                                                                               |
|                                    │                                          |
|                                    ▼                                          |
|  ĐẦU RA:  [Câu hỏi ngữ nghĩa tự nhiên tiếng Việt phù hợp ngữ cảnh]           |
+-------------------------------------------------------------------------------+

Vấn đề nghiên cứu cụ thể

Tiếng Việt sở hữu đặc trưng ngữ pháp đa nghĩa, cấu trúc phi phân tích tính từ, phân cách từ phức phức tạp và không có dấu hiệu hình thái học rõ ràng như tiếng Anh. Khi áp dụng các mô hình tạo sinh văn bản tự nhiên (Natural Language Generation - NLG), hệ thống thường đối mặt với các điểm nghẽn:

  1. Thiếu hụt dữ liệu chuẩn hóa: Thiếu các bộ ngữ liệu QG chuyên biệt cho tiếng Việt.
  2. Mất liên kết ngữ cảnh (Context Misalignment): Các mô hình mã hóa - giải mã truyền thống dễ sinh ra câu hỏi chung chung, không gắn chặt với câu trả lời cần hướng đến.
  3. Lệch pha phân phối từ (Exposure Bias): Việc chỉ tối ưu hàm mất mát Cross-Entropy ở cấp độ token dẫn đến hiện tượng trôi dạt ngữ nghĩa khi giải mã chuỗi dài.

Mục tiêu của đồ án

Đề tài "Nghiên cứu tạo sinh tự động câu hỏi tiếng Việt" do sinh viên Vũ Nguyễn thực hiện dưới sự hướng dẫn của ThS. Nguyễn Văn Kiệt (Trường Đại học Công nghệ Thông tin, ĐHQG-HCM) đặt ra 4 mục tiêu cốt lõi:

  1. Nghiên cứu, tiền xử lý và cấu trúc hóa hai bộ dữ liệu đọc hiểu tiếng Việt chuẩn: UIT-ViNewsQA (y tế) và UIT-ViQuAD (Wikipedia).
  2. Xây dựng và thực nghiệm các mô hình học sâu Sequence-to-Sequence (Seq2Seq) kết hợp cơ chế Attention và các mô hình học chuyển tiếp hiện đại (Pre-trained Transformers) gồm mT5PhoBERT.
  3. Đề xuất kiến trúc tích hợp Học tăng cường (Reinforcement Learning - RL) thông qua thuật toán Self-Critical Sequence Training (SCST) nhằm tối ưu trực tiếp độ đo đánh giá BLEU-4.
  4. Xây dựng pipeline tự động hóa hoàn toàn bằng cách tích hợp mô hình Nhận diện thực thể có tên (Named-Entity Recognition - NER) để tự động phát hiện câu trả lời ứng viên, giải phóng hoàn toàn sự can thiệp của con người ở đầu vào.

Phương pháp tiếp cận và kết quả kỳ vọng

  • Giải pháp: Ứng dụng kỹ thuật đánh dấu vùng sáng ([Highlight Token - HL]) trực tiếp vào chuỗi đầu vào thay vì tách rời câu trả lời, kết hợp phương pháp đảo tạo lấp mặt nạ tuần tự (Sequential Mask Filling) trên nền tảng PhoBERT-base.
  • Chỉ số đo lường (Measurable Metrics): Đánh giá dựa trên bộ chỉ số chuẩn ngôn ngữ Bilingual Evaluation Understudy (BLEU-1, BLEU-2, BLEU-3, BLEU-4).
  • Phạm vi nghiên cứu: Thực nghiệm ở cả 2 cấp độ: cấp độ câu (Sentence-level) và cấp độ đoạn văn (Paragraph-level) trên 22,057 cặp QA của UIT-ViNewsQA và 23,074 cặp QA của UIT-ViQuAD.

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

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

Trước nghiên cứu này, các kỹ thuật tạo câu hỏi tự động chủ yếu dựa vào luật ngữ pháp hoặc mô hình thống kê n-gram với độ linh hoạt thấp.

Phương pháp Ưu điểm Nhược điểm Độ phức tạp triển khai
Dựa trên luật (Rule-based / Template) Câu hỏi đúng ngữ pháp tuyệt đối theo mẫu dựng sẵn. Kém linh hoạt, không mở rộng được khi ngữ cảnh thay đổi. Thấp, tốn công xây dựng bộ luật thủ công.
Seq2Seq RNN (LSTM/GRU + Attention) Học được ánh xạ chuỗi tự do, biểu diễn từ bằng FastText/PhoW2V. Trôi ngữ cảnh với câu dài, gradient vanishing, điểm BLEU thấp. Trung bình ($O(T)$ bước tuần tự).
Pre-trained Multilingual Transformer (mT5) Hỗ trợ 101 ngôn ngữ, kiến trúc Text-to-Text mạnh mẽ. Kích thước mô hình lớn, dễ bị nhiễu ngôn ngữ chéo (cross-lingual noise). Cao ($300\text{M} - 3\text{B}$ tham số).
Monolingual Pre-trained Transformer (PhoBERT) Tối ưu hóa sâu sắc cho cấu trúc từ ghép và ngữ pháp tiếng Việt. Kiến trúc thuần Encoder (BERT-like), cần biến đổi thuật toán để giải mã. Cao, cần cơ chế lấp mặt nạ tuần tự.

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

  • Must have: Pipeline tiền xử lý tách từ tiếng Việt (VnCoreNLP, PyVi); mô hình tạo câu hỏi đạt BLEU-4 $> 18%$; hỗ trợ cơ chế Beam Search trong giải mã.
  • Should have: Tích hợp thuật toán học tăng cường Policy Gradient; cơ chế đánh dấu Highlight ([HL]) tránh đọc trùng lặp ngữ cảnh.
  • Could have: Module tích hợp RESTful API với BERT-VN-NER để tự động phát hiện Answer Candidate.
  • Won't have (giai đoạn này): Xử lý đa phương thức (Multi-modal VQA) và hỗ trợ giọng nói theo thời gian thực.

Thiết kế hệ thống

flowchart TD
    subgraph Preprocessing [Giai đoạn Tiền Xử Lý]
        Doc[Văn bản Tiếng Việt / Ngữ cảnh C] --> Tokenizer[VnCoreNLP RDRSegmenter]
        NER[Module BERT-VN-NER] -->|Trích xuất thực thể| Ans[Câu trả lời mục tiêu A]
        Tokenizer --> Formatter[Định dạng chuỗi Highlight Tagging]
        Ans --> Formatter
    end

    subgraph EncodingDecoding [Mô hình Cốt Lõi: PhoBERT-HLSQG]
        Formatter -->|Input: CLS c1.. HL a1..aK HL ..cn SEP MASK| PhoBERT[PhoBERT-base Encoder Layer 1-12]
        PhoBERT --> SeqMask[Sequential Fill-Mask Loop]
        SeqMask --> Softmax[Dự đoán phân phối xác suất Token]
    end

    subgraph RL_Optimization [Tối Ưu Hóa Bằng Học Tăng Cường]
        Softmax --> SCST[Self-Critical Sequence Training]
        SCST --> Reward[Hàm Phần Thưởng: BLEU-4 Reward]
        Reward --> LossCalc[Hàm mất mát kết hợp: L_RL + L_CE]
    end

    subgraph OutputGen [Kết Quả]
        LossCalc --> BeamSearch[Beam Search Decoder - Width: 5]
        BeamSearch --> FinalQuestion[Câu hỏi Tiếng Việt Hoàn Chỉnh]
    end

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

  • Framework học sâu: PyTorch v1.1.0, Hugging Face Transformers v4.x
  • Thư viện xử lý tiếng Việt: VnCoreNLP v1.1.1 (tách từ RDRSegmenter), PyVi v0.1.1 (ViTokenizer)
  • Vector nhúng (Word Embeddings): FastText (cc.vi.300.vec), PhoW2V (PhoW2V_words_300dims)
  • Mô hình nền tảng: PhoBERT-base (12 layers, 768 hidden, 12 attention heads, 64k vocab), mT5-small
  • Hệ thống phần cứng: Đơn GPU NVIDIA CUDA-enabled, Ubuntu Linux 18.04/20.04 LTS

Thiết kế biểu diễn dữ liệu đầu vào (Input Representation)

Chuỗi đầu vào được cấu trúc hóa theo định dạng tối ưu nhằm cô lập vùng tri thức: $$\mathbf{X} = [\text{CLS}] ; c_1, c_2, \dots, c_i, ; [\text{HL}], ; a_1, \dots, a_k, ; [\text{HL}], ; c_{i+k+1}, \dots, c_n ; [\text{SEP}]$$ Trong đó:

  • $[\text{CLS}]$ và $[\text{SEP}]$: Token chuẩn của Transformer biểu thị điểm bắt đầu và kết thúc chuỗi.
  • $[\text{HL}]$: Token đặc biệt (Highlight) bao bọc chuỗi câu trả lời mục tiêu $A = {a_1, \dots, a_k}$ bên trong ngữ cảnh $C = {c_1, \dots, c_n}$.

Thiết kế giao diện lập trình ứng dụng (API Design)

POST /api/v1/qg/generate
Content-Type: application/json

{
  "context": "Trước khi phẫu thuật hôm 10/10, bé đã được các bác sĩ tại Trung tâm Y tế huyện Anh Sơn tiến hành các xét nghiệm cần thiết, nội soi tai mũi họng phát hiện hai đường rò luân nhĩ.",
  "answer": "hai đường rò luân nhĩ",
  "beam_size": 5,
  "max_length": 64
}

Phản hồi chuẩn từ hệ thống:

{
  "status_code": 200,
  "data": {
    "generated_question": "Phát hiện điều gì khi nội soi tai mũi họng của bệnh nhân?",
    "confidence_score": 0.9428,
    "metrics": {
      "bleu_4": 0.2043
    }
  }
}

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

Nghiên cứu áp dụng quy trình thực nghiệm 4 giai đoạn chuẩn mực:

  1. Phân tích khám phá dữ liệu (EDA): Đánh giá độ dài, độ bao phủ từ vựng trên UIT-ViNewsQA và UIT-ViQuAD.
  2. Xây dựng baseline: Triển khai Seq2Seq với LSTM 2 lớp, nhúng FastText/PhoW2V và Luong Attention.
  3. Fine-tuning Transformers: Tinh chỉnh mT5-small và xây dựng pipeline Sequential Mask-filling trên PhoBERT-base.
  4. Tích hợp Reinforcement Learning: Sử dụng giải thuật SCST để tối ưu hàm phần thưởng không khả vi (BLEU-4).

Implementation và kết quả

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

1. Thuật toán tạo sinh câu hỏi lấp mặt nạ tuần tự (PhoBERT Sequential Mask-Filling)

Do PhoBERT là kiến trúc thuần Encoder (khác với Seq2Seq tự hồi quy), mô hình sinh câu hỏi tuần tự qua từng bước lặp:

import torch
from transformers import AutoModelForMaskedLM, AutoTokenizer

class PhoBERTQuestionGenerator:
    def __init__(self, model_path: str, device: str = "cuda"):
        self.tokenizer = AutoTokenizer.from_pretrained(model_path)
        self.model = AutoModelForMaskedLM.from_pretrained(model_path).to(device)
        self.device = device
        self.hl_token = "[HL]"
        self.mask_token = self.tokenizer.mask_token
        self.sep_token = self.tokenizer.sep_token

    def generate_step_by_step(self, context: str, answer: str, max_steps: int = 30) -> str:
        # Chèn thẻ highlight bao quanh câu trả lời trong văn bản
        highlighted_context = context.replace(answer, f"{self.hl_token} {answer} {self.hl_token}")
        generated_tokens = []
        
        for step in range(max_steps):
            # Cấu trúc: [CLS] Context_with_HL [SEP] Current_Gen_Tokens [MASK]
            current_query = " ".join(generated_tokens) + f" {self.mask_token}"
            input_text = f"{highlighted_context} {self.sep_token} {current_query}".strip()
            
            inputs = self.tokenizer(input_text, return_tensors="pt").to(self.device)
            mask_idx = torch.where(inputs["input_ids"] == self.tokenizer.mask_token_id)[1]
            
            with torch.no_grad():
                logits = self.model(**inputs).logits
                predicted_id = torch.argmax(logits[0, mask_idx], dim=-1).item()
                predicted_token = self.tokenizer.decode([predicted_id]).strip()
            
            if predicted_token == self.sep_token or predicted_token == "</s>":
                break
                
            generated_tokens.append(predicted_token)
            
        return " ".join(generated_tokens)

2. Hàm mất mát kết hợp trong Học tăng cường (SCST Loss Formulation)

Hàm mất mát truyền thống Cross-Entropy: $$\mathcal{L}{CE} = -\sum{t=1}^T \log P(y_t^* | \mathbf{X}, y_{<t}^)$$ Phần thưởng định cỡ kết hợp giữa điểm ngữ nghĩa BLEU-4 và độ tương đồng Cosine vector: $$r(\hat{Y}) = \alpha f_{\text{BLEU-4}}(\hat{Y}, Y^) + (1 - \alpha)\cos(\theta)$$ Phần thưởng chuẩn hóa qua tỉ lệ biến thiên: $$r' = \frac{r + 1 - \alpha}{2 - \alpha}$$ Hàm mất mát Policy Gradient theo thuật toán SCST (so sánh mẫu Greedy $\hat{Y}$ và mẫu khám phá $Y^s$): $$\mathcal{L}{RL} = \left( r(\hat{Y}) - r(Y^s) \right) \sum{t=1}^{T^s} \log P(y_t^s | \mathbf{X}, y_{<t}^s)$$ Hàm mục tiêu toàn phần điều khiển qua tham số cân bằng $\gamma$: $$\mathcal{L}{\text{total}} = \gamma \mathcal{L}{RL} + (1 - \gamma) \mathcal{L}_{CE}$$

Thiết lập thông số thực nghiệm (Hyperparameters)

Thông số Seq2Seq (LSTM) mT5-small PhoBERT-base
Kích thước Embedding / Hidden 300 / 600 N/A (300M params) 768 (12 layers, 12 heads)
Kích thước từ vựng (Vocab) Enc: 45,000 / Dec: 20,000 250,100 (SentencePiece) 64,001 (BPE)
Thuật toán tối ưu (Optimizer) SGD Base Optimizer AdamW
Tốc độ học (Learning Rate) $1\times 10^{-4}$ $1\times 10^{-4}$ $5\times 10^{-5}$
Kích thước Batch (Batch Size) 32 32 (Grad Accum = 8) 32
Số Epochs huấn luyện 15 5 3
Hệ số Dropout 0.3 0.1 0.1
Độ rộng Beam Search 3 4 5 (khi kết hợp RL)

Kiểm thử và kết quả đánh giá

1. Hiệu suất các bộ biểu diễn từ trên mô hình Seq2Seq

Bộ dữ liệu Vector nhúng BLEU-1 (%) BLEU-2 (%) BLEU-3 (%) BLEU-4 (%)
UIT-ViNewsQA PhoW2V 54.46 44.64 36.12 12.18
UIT-ViNewsQA FastText 61.20 51.85 43.10 15.42
UIT-ViQuAD PhoW2V 52.10 42.30 34.05 11.80
UIT-ViQuAD FastText 59.85 49.70 41.25 14.95

Nhận xét: FastText vượt trội hơn PhoW2V nhờ xử lý n-gram cấp độ ký tự con (subword), giảm thiểu triệt để vấn đề từ ngoài từ điển (OOV) trong tiếng Việt.

2. Kết quả tổng hợp trên hai bộ dữ liệu thực nghiệm

Mô hình thử nghiệm UIT-ViNewsQA (Sentence-level) UIT-ViQuAD (Sentence-level) UIT-ViNewsQA (Paragraph-level) UIT-ViQuAD (Paragraph-level)
Seq2Seq + FastText 15.42% 14.95% 13.80% 13.20%
mT5-small 17.85% 18.40% 16.50% 17.10%
PhoBERT-base 19.32% 20.21% 18.15% 19.05%
PhoBERT + RL (SCST) 19.77% (+0.45%) 20.43% (+0.22%) 18.60% (+0.45%) 19.35% (+0.30%)
BIỂU ĐỒ SO SÁNH HIỆU SUẤT BLEU-4 (SENTENCE-LEVEL)
═══════════════════════════════════════════════════════════════════════
Seq2Seq (FastText)   ███████████████ 15.42%
mT5-small            ██████████████████ 17.85%
PhoBERT-base         ███████████████████ 19.32%
PhoBERT + RL (SCST)  ████████████████████ 19.77% (Tối ưu nhất)
═══════════════════════════════════════════════════════════════════════

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

Các cải tiến kỹ thuật đột phá

  1. Kỹ thuật Highlight Tagging ([HL]) độc lập vị trí: Thay vì đưa ngữ cảnh và câu trả lời thành 2 đoạn riêng biệt khiến mô hình phải học lại từ vựng nhiều lần, nghiên cứu chèn nhãn [HL] bao quanh câu trả lời ngay trong dòng văn bản. Điều này giúp mô hình nhận biết chính xác vị trí phân bố của thực thể trong không gian ngữ nghĩa $768$ chiều.
  2. Cơ chế Sequential Fill-Mask thích ứng cho Tiếng Việt: Khắc phục bản chất thuần Encoder của PhoBERT bằng cách xây dựng vòng lặp dự đoán [MASK] lũy tiến, kết hợp trích xuất nhúng trạng thái ẩn cuối cùng (Final Hidden State) để đạt chất lượng tương đương kiến trúc Sequence-to-Sequence hoàn chỉnh.
  3. Tối ưu hóa trực tiếp độ đo BLEU-4 qua Reinforcement Learning: Sử dụng mô hình tự phê bình (Self-Critical Sequence Training) loại bỏ hoàn toàn độ chênh lệch giữa tối ưu hóa Loss ở mức token (MLE) và chỉ số đánh giá chuỗi hoàn chỉnh.
  4. Hệ thống tạo câu hỏi tự trị (End-to-End Autonomous QG): Tích hợp API BERT-VN-NER cho phép tự động trích xuất các thực thể mục tiêu (Địa điểm, Tên người, Tổ chức, Chỉ số y tế) làm Answer Candidate, giúp hệ thống hoạt động không cần người dùng nhập câu trả lời mồi.

Đóng góp học thuật và công bố khoa học

  • Tiên phong: Là công trình nghiên cứu toàn diện đầu tiên về bài toán Automatic Question Generation chuyên biệt cho tiếng Việt.
  • Công bố: Kết quả nghiên cứu đã được hoàn thiện thành 01 bài báo khoa học gửi đến Hội nghị quốc tế uy tín ACIIDS 2022 (Asian Conference on Intelligent Information and Database Systems) và nghiệm thu Đề tài NCKH Sinh viên cấp trường tại UIT-VNUHCM.

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

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

  • Giáo dục thông minh (EdTech): Tự động tạo ngân hàng đề thi trắc nghiệm, bài tập đọc hiểu từ giáo trình hoặc tài liệu PDF tiếng Việt, giảm 80% thời gian biên soạn của giáo viên.
  • Trợ lý ảo và Chatbot doanh nghiệp: Tự động sinh danh mục câu hỏi thường gặp (FAQ) từ tài liệu chính sách, cẩm nang nhân sự hoặc hướng dẫn sử dụng sản phẩm.
  • Tóm tắt và khai phá tri thức y tế: Hỗ trợ bệnh nhân nắm bắt nhanh các thông tin cảnh báo quan trọng từ các bài báo y khoa thông qua cặp Hỏi - Đáp súc tích.
graph LR
    subgraph ClientLayer [Tầng Ứng Dụng]
        Web[Web Dashboard React]
        Mobile[Mobile App Flutter]
        LMS[Hệ thống LMS EdTech]
    end

    subgraph APILayer [Tầng Xử Lý & API Gateway]
        FastAPI[FastAPI Server - Python 3.8+]
        NER_Service[BERT-VN-NER Microservice]
        QG_Engine[PhoBERT + RL Engine]
    end

    subgraph InfraLayer [Tầng Hạ Tầng]
        Docker[Docker Container]
        GPU[NVIDIA TensorRT / Triton Server]
    end

    Web --> FastAPI
    Mobile --> FastAPI
    LMS --> FastAPI
    FastAPI --> NER_Service
    NER_Service --> QG_Engine
    QG_Engine --> Docker
    Docker --> GPU

Phân tích hiệu quả kinh tế (ROI) và khả năng mở rộng

  • Chi phí vận hành: Triển khai trên 01 máy chủ Cloud trang bị GPU NVIDIA T4 ($0.35/giờ) đáp ứng thông lượng 120 requests/phút.
  • Hiệu quả đầu tư (ROI): Giảm chi phí tạo lập bộ dữ liệu đào tạo QA từ 15,000 VNĐ/cặp câu hỏi thủ công xuống dưới 50 VNĐ/cặp câu hỏi qua hệ thống tự động, mang lại điểm hòa vốn sau 2 tháng vận hành thử nghiệm.

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

Hạn chế kỹ thuật

  • Độ trễ giải mã tuần tự: Do sử dụng cơ chế Sequential Fill-Mask trên PhoBERT, tốc độ suy luận trung bình đạt 180ms/câu hỏi, chậm hơn so với giải mã song song thuần túy.
  • Phụ thuộc vào chất lượng NER: Nếu module nhận diện thực thể trích xuất sai cụm từ mục tiêu, câu hỏi sinh ra dễ bị sai lệch ngữ nghĩa hoặc tối nghĩa.
  • Độ dài ngữ cảnh giới hạn: Giới hạn 256 tokens đầu vào của PhoBERT-base khiến việc xử lý các văn bản cực dài (Full Document) buộc phải qua bước cắt khúc (chunking).

Hướng nghiên cứu tương lai

  1. Nghiên cứu chuyển đổi mô hình sang các kiến trúc sinh chuyên biệt như ViBART hoặc Vietnamese GPT.
  2. Áp dụng kỹ thuật lượng hóa mô hình (INT8/FP16 Quantization) và TensorRT để tối ưu hóa thời gian phản hồi API xuống dưới 50ms.
  3. Kết hợp các độ đo đánh giá ngữ nghĩa hiện đại như BERTScore và ROUGE-L bên cạnh BLEU.

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

  • Sinh viên & Học viên: Tiếp cận mã nguồn mẫu, hiểu sâu sắc cơ chế hoạt động của Attention Mechanism, Masked Language Model và Reinforcement Learning trên ngữ liệu tiếng Việt.
  • Kỹ sư NLP / AI Developers: Tận dụng pipeline tiền xử lý và kỹ thuật Highlight Tagging để áp dụng vào các bài toán sinh văn bản tương tự (Tóm tắt văn bản, Dịch máy, Đàm thoại).
  • Tổ chức giáo dục & Doanh nghiệp: Sở hữu giải pháp tự động hóa tạo câu hỏi trắc nghiệm và hệ thống hỗ trợ khách hàng không giới hạn quy mô.
  • Nhà nghiên cứu: Bản đối sánh chuẩn (Benchmark baseline) đáng tin cậy trên 2 bộ dữ liệu UIT-ViNewsQA và UIT-ViQuAD cho các nghiên cứu tiếp nối.

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

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

Hệ thống yêu cầu tối thiểu CPU 4-core, 16GB RAM để xử lý dữ liệu. Để đạt tốc độ tạo câu hỏi theo thời gian thực ($<200\text{ms}$), khuyến nghị sử dụng GPU tối thiểu NVIDIA GTX 1660 Ti (6GB VRAM) hoặc NVIDIA T4/V100 cho môi trường Production.

2. Mô hình xử lý thế nào khi gặp đoạn văn bản quá dài?

Văn bản dài sẽ được chia nhỏ thành các đoạn logic dựa trên thuật toán trích xuất câu của VnCoreNLP. Sau đó, module NER sẽ quét từng đoạn để chọn ra các Answer Candidate tiềm năng nhất trước khi chuyển vào mô hình sinh câu hỏi.

3. Làm thế nào để tích hợp mô hình vào hệ thống phần mềm có sẵn?

Hệ thống được đóng gói dưới dạng Docker Container chuẩn và cung cấp RESTful API thông qua FastAPI. Bất kỳ ngôn ngữ lập trình nào (Java, C#, Node.js, PHP) đều có thể giao tiếp dễ dàng thông qua chuẩn định dạng JSON.

4. Tại sao kết quả BLEU-4 của tiếng Việt thường thấp hơn tiếng Anh?

Tiếng Việt có hiện tượng đa nghĩa của từ đơn/từ ghép, cấu trúc ngữ pháp tự do và thiếu sự thống nhất về hình thái học. Một câu hỏi tiếng Việt có thể được diễn đạt bằng nhiều cách hoàn toàn khác nhau về mặt từ vựng nhưng đồng nghĩa, dẫn đến việc trùng khớp n-gram tuyệt đối (BLEU) bị giảm điểm so với tiếng Anh.

5. Chi phí triển khai và thời gian hoàn vốn (ROI) ước tính ra sao?

Chi phí ban đầu chủ yếu là hạ tầng GPU Cloud (khoảng $200 - $300/tháng). Với khả năng tạo hàng chục nghìn câu hỏi mỗi ngày mà không cần đội ngũ biên tập viên, doanh nghiệp EdTech quy mô vừa có thể hoàn vốn đầu tư chỉ sau 2-3 tháng vận hành.


Kết luận

Khóa luận tốt nghiệp "Nghiên cứu tạo sinh tự động câu hỏi tiếng Việt" đã giải quyết thành công bài toán tạo câu hỏi tự động trên ngôn ngữ nghèo tài nguyên tiếng Việt. Bằng việc kết hợp sáng tạo giữa kiến trúc PhoBERT-base, kỹ thuật biểu diễn Highlight Tagging và giải thuật Học tăng cường (SCST), nghiên cứu đã thiết lập cột mốc hiệu suất xuất sắc với điểm số BLEU-4 đạt 19.77% trên UIT-ViNewsQA và 20.43% trên UIT-ViQuAD.

Công trình không chỉ mang giá trị học thuật hàn lâm với bài báo khoa học gửi đến hội nghị quốc tế ACIIDS 2022, mà còn mở ra triển vọng ứng dụng to lớn trong EdTech, Trợ lý ảo và Quản trị tri thức doanh nghiệp. Đây chính là tiền đề vững chắc thúc đẩy các nghiên cứu xử lý ngôn ngữ tự nhiên chuyên sâu cho tiếng Việt trong tương lai.