transformers safetensors qatc question-answering SemViQA fact-checking information-retrieval vi arxiv:2405.07615 arxiv:2503.00955 license:mit endpoints_compatible region:us
---
language:
- vi
library_name: transformers
license: mit
pipeline_tag: question-answering
tags:
- SemViQA
- question-answering
- fact-checking
- information-retrieval
---

# SemViQA-QATC: Vietnamese Question Answering Token Classifier

## Model Description

**SemViQA-QATC** is a component of the **SemViQA** system, fine-tuned from Vi-MRC to perform **Extractive Question Answering (QA)** and **evidence extraction** for fact-checking in Vietnamese.

### **Model Information**  
- **Developed by:** [SemViQA Research Team](https://huggingface.co/SemViQA)  
- **Fine-tuned model:** [InfoXLM](https://huggingface.co/microsoft/infoxlm-large)
- **Supported Language:** Vietnamese  
- **Task:** Extractive QA, Evidence Extraction  
- **Dataset:** [ViWikiFC](https://arxiv.org/abs/2405.07615)
   
QATCForQuestionAnswering utilizes XLM-RoBERTa as a pre-trained language model. We further enhance it by incorporating a Token Classification mechanism, allowing the model to not only predict answer spans but also classify tokens as part of the rationale selection process. During training, we introduce Rationale Regularization Loss, which consists of sparsity and continuity constraints to encourage more precise and interpretable token-level predictions. This loss function ensures that the model effectively learns to identify relevant rationale tokens while maintaining coherence in token selection.

## Usage Example

Direct Model Usage
```python
# Install semviqa
!pip install semviqa

# Initalize a pipeline
from transformers import AutoTokenizer
from semviqa.ser.qatc_model import QATCForQuestionAnswering
import torch

tokenizer = AutoTokenizer.from_pretrained("SemViQA/qatc-infoxlm-viwikifc")
model = QATCForQuestionAnswering.from_pretrained("SemViQA/qatc-infoxlm-viwikifc")
claim = "Chiến tranh với Campuchia đã kết thúc trước khi Việt Nam thống nhất."
context = "Sau khi thống nhất, Việt Nam tiếp tục gặp khó khăn do sự sụp đổ và tan rã của đồng minh Liên Xô cùng Khối phía Đông, các lệnh cấm vận của Hoa Kỳ, chiến tranh với Campuchia, biên giới giáp Trung Quốc và hậu quả của chính sách bao cấp sau nhiều năm áp dụng. Năm 1986, Đảng Cộng sản ban hành cải cách đổi mới, tạo điều kiện hình thành kinh tế thị trường và hội nhập sâu rộng. Cải cách đổi mới kết hợp cùng quy mô dân số lớn đưa Việt Nam trở thành một trong những nước đang phát triển có tốc độ tăng trưởng thuộc nhóm nhanh nhất thế giới, được coi là Hổ mới châu Á dù cho vẫn gặp phải những thách thức như tham nhũng, tội phạm gia tăng, ô nhiễm môi trường và phúc lợi xã hội chưa đầy đủ. Ngoài ra, giới bất đồng chính kiến, chính phủ một số nước phương Tây và các tổ chức theo dõi nhân quyền có quan điểm chỉ trích hồ sơ nhân quyền của Việt Nam liên quan đến các vấn đề tôn giáo, kiểm duyệt truyền thông, hạn chế hoạt động ủng hộ nhân quyền cùng các quyền tự do dân sự."

inputs = tokenizer(claim, context, return_tensors="pt", truncation=True, max_length=512)

with torch.no_grad():
    outputs = model(**inputs)
 
start_logits = outputs.start_logits
end_logits = outputs.end_logits
 
start_idx = torch.argmax(start_logits)
end_idx = torch.argmax(end_logits)
 
tokens = inputs["input_ids"][0][start_idx : end_idx + 1]
evidence = tokenizer.decode(tokens, skip_special_tokens=True)
print(evidence)
# evidence: Sau khi thống nhất, Việt Nam tiếp tục gặp khó khăn do sự sụp đổ và tan rã của đồng minh Liên Xô cùng Khối phía Đông, các lệnh cấm vận của Hoa Kỳ, chiến tranh với Campuchia, biên giới giáp Trung Quốc và hậu quả của chính sách bao cấp sau nhiều năm áp dụng.
```

Using TF-IDF and QATC Combination with Confidence Threshold
```python
import torch
from transformers import AutoTokenizer
from semviqa.ser.qatc_model import QATCForQuestionAnswering
from semviqa.ser.ser_eval import extract_evidence_tfidf_qatc

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

tokenizer = AutoTokenizer.from_pretrained("SemViQA/qatc-infoxlm-viwikifc")
model = QATCForQuestionAnswering.from_pretrained("SemViQA/qatc-infoxlm-viwikifc")

claim = "Chiến tranh với Campuchia đã kết thúc trước khi Việt Nam thống nhất."
context = "Sau khi thống nhất, Việt Nam tiếp tục gặp khó khăn do sự sụp đổ và tan rã của đồng minh Liên Xô cùng Khối phía Đông, các lệnh cấm vận của Hoa Kỳ, chiến tranh với Campuchia, biên giới giáp Trung Quốc và hậu quả của chính sách bao cấp sau nhiều năm áp dụng. Năm 1986, Đảng Cộng sản ban hành cải cách đổi mới, tạo điều kiện hình thành kinh tế thị trường và hội nhập sâu rộng. Cải cách đổi mới kết hợp cùng quy mô dân số lớn đưa Việt Nam trở thành một trong những nước đang phát triển có tốc độ tăng trưởng thuộc nhóm nhanh nhất thế giới, được coi là Hổ mới châu Á dù cho vẫn gặp phải những thách thức như tham nhũng, tội phạm gia tăng, ô nhiễm môi trường và phúc lợi xã hội chưa đầy đủ. Ngoài ra, giới bất đồng chính kiến, chính phủ một số nước phương Tây và các tổ chức theo dõi nhân quyền có quan điểm chỉ trích hồ sơ nhân quyền của Việt Nam liên quan đến các vấn đề tôn giáo, kiểm duyệt truyền thông, hạn chế hoạt động ủng hộ nhân quyền cùng các quyền tự do dân sự."

evidence = extract_evidence_tfidf_qatc(
    claim, context, model, tokenizer, device, confidence_threshold=0.5, length_ratio_threshold=0.6
)

print(evidence)
# evidence: sau khi thống nhất việt nam tiếp tục gặp khó khăn do sự sụp đổ và tan rã của đồng minh liên xô cùng khối phía đông các lệnh cấm vận của hoa kỳ chiến tranh với campuchia biên giới giáp trung quốc và hậu quả của chính sách bao cấp sau nhiều năm áp dụng
```

## **Evaluation Results**

<table> 
  <thead>
    <tr>
      <th colspan="2">Method</th>
      <th colspan="4">ViWikiFC</th>
    </tr>
    <tr>
      <th>ER</th>
      <th>VC</th>
      <th>Strict Acc</th>
      <th>VC Acc</th>
      <th>ER Acc</th>
      <th>Time (s)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td rowspan="3">TF-IDF</td>
      <td>InfoXLM<sub>large</sub></td>
      <td>75.56</td>
      <td>82.21</td>
      <td>90.15</td>
      <td>131</td>
    </tr>
    <tr>
      <td>XLM-R<sub>large</sub></td>
      <td>76.47</td>
      <td>82.78</td>
      <td>90.15</td>
      <td>134</td>
    </tr>
    <tr>
      <td>Ernie-M<sub>large</sub></td>
      <td>75.56</td>
      <td>81.83</td>
      <td>90.15</td>
      <td>144</td>
    </tr>
    <tr>
      <td rowspan="3">BM25</td>
      <td>InfoXLM<sub>large</sub></td>
      <td>70.44</td>
      <td>79.01</td>
      <td>83.50</td>
      <td>130</td>
    </tr>
    <tr>
      <td>XLM-R<sub>large</sub></td>
      <td>70.97</td>
      <td>78.91</td>
      <td>83.50</td>
      <td>132</td>
    </tr>
    <tr>
      <td>Ernie-M<sub>large</sub></td>
      <td>70.21</td>
      <td>78.29</td>
      <td>83.50</td>
      <td>141</td>
    </tr>
    <tr>
      <td rowspan="3">SBert</td>
      <td>InfoXLM<sub>large</sub></td>
      <td>74.99</td>
      <td>81.59</td>
      <td>89.72</td>
      <td>195</td>
    </tr>
    <tr>
      <td>XLM-R<sub>large</sub></td>
      <td>75.80</td>
      <td>82.35</td>
      <td>89.72</td>
      <td>194</td>
    </tr>
    <tr>
      <td>Ernie-M<sub>large</sub></td>
      <td>75.13</td>
      <td>81.44</td>
      <td>89.72</td>
      <td>203</td>
    </tr>
    <tr>
      <th colspan="1">QA-based approaches</th>
      <th colspan="1">VC</th>
      <th colspan="4"></th>
    </tr>
    <tr>
      <td rowspan="3">ViMRC<sub>large</sub></td>
      <td>InfoXLM<sub>large</sub></td>
      <td>77.28</td>
      <td>81.97</td>
      <td>92.49</td>
      <td>3778</td>
    </tr>
    <tr>
      <td>XLM-R<sub>large</sub></td>
      <td>78.29</td>
      <td>82.83</td>
      <td>92.49</td>
      <td>3824</td>
    </tr>
    <tr>
      <td>Ernie-M<sub>large</sub></td>
      <td>77.38</td>
      <td>81.92</td>
      <td>92.49</td>
      <td>3785</td>
    </tr>
    <tr>
      <td rowspan="3">InfoXLM<sub>large</sub></td>
      <td>InfoXLM<sub>large</sub></td>
      <td>78.14</td>
      <td>82.07</td>
      <td>93.45</td>
      <td>4092</td>
    </tr>
    <tr>
      <td>XLM-R<sub>large</sub></td>
      <td>79.20</td>
      <td>83.07</td>
      <td>93.45</td>
      <td>4096</td>
    </tr>
    <tr>
      <td>Ernie-M<sub>large</sub></td>
      <td>78.24</td>
      <td>82.21</td>
      <td>93.45</td>
      <td>4102</td>
    </tr>
    <tr>
      <th colspan="2">LLM</th> 
      <th colspan="4"></th>
    </tr>
    <tr>
      <td colspan="2">Qwen2.5-1.5B-Instruct</td>
      <td>51.03</td>
      <td>65.18</td>
      <td>78.96</td>
      <td>7665</td>
    </tr>
    <tr>
      <td colspan="2">Qwen2.5-3B-Instruct</td>
      <td>44.38</td>
      <td>62.31</td>
      <td>71.35</td>
      <td>12123</td>
    </tr>
    <tr>
      <th colspan="1">LLM</th>
      <th colspan="1">VC</th>
      <th colspan="4"></th>
    </tr>
    <tr>
      <td rowspan="3">Qwen2.5-1.5B-Instruct</td>
      <td>InfoXLM<sub>large</sub></td>
      <td>66.14</td>
      <td>76.47</td>
      <td>78.96</td>
      <td>7788</td>
    </tr>
    <tr>
      <td>XLM-R<sub>large</sub></td>
      <td>67.67</td>
      <td>78.10</td>
      <td>78.96</td>
      <td>7789</td>
    </tr>
    <tr>
      <td>Ernie-M<sub>large</sub></td>
      <td>66.52</td>
      <td>76.52</td>
      <td>78.96</td>
      <td>7794</td>
    </tr>
    <tr>
      <td rowspan="3">Qwen2.5-3B-Instruct</td>
      <td>InfoXLM<sub>large</sub></td>
      <td>59.88</td>
      <td>72.50</td>
      <td>71.35</td>
      <td>12246</td>
    </tr>
    <tr>
      <td>XLM-R<sub>large</sub></td>
      <td>60.74</td>
      <td>73.08</td>
      <td>71.35</td>
      <td>12246</td>
    </tr>
    <tr>
      <td>Ernie-M<sub>large</sub></td>
      <td>60.02</td>
      <td>72.21</td>
      <td>71.35</td>
      <td>12251</td>
    </tr>
    <tr>
      <th colspan="1">SER Faster (ours)</th>
      <th colspan="1">TVC (ours)</th>
      <th colspan="4"></th>
    </tr>
    <tr>
      <td>TF-IDF + ViMRC<sub>large</sub></td>
      <td>Ernie-M<sub>large</sub></td>
      <td style="color:blue">79.44</td>
      <td style="color:blue">82.93</td>
      <td style="color:blue">94.60</td>
      <td style="color:blue">410</td>
    </tr>
    <tr>
      <td>TF-IDF + InfoXLM<sub>large</sub></td>
      <td>Ernie-M<sub>large</sub></td>
      <td style="color:blue">79.77</td>
      <td style="color:blue">83.07</td>
      <td style="color:blue">95.03</td>
      <td style="color:blue">487</td>
    </tr>
    <tr>
      <th colspan="1">SER (ours)</th>
      <th colspan="1">TVC (ours)</th>
      <th colspan="4"></th>
    </tr>
    <tr>
      <td rowspan="3">TF-IDF + ViMRC<sub>large</sub></td>
      <td>InfoXLM<sub>large</sub></td>
      <td>80.25</td>
      <td>83.84</td>
      <td>94.69</td>
      <td>2731</td>
    </tr>
    <tr>
      <td>XLM-R<sub>large</sub></td>
      <td>80.34</td>
      <td>83.64</td>
      <td>94.69</td>
      <td>2733</td>
    </tr>
    <tr>
      <td>Ernie-M<sub>large</sub></td>
      <td>79.53</td>
      <td>82.97</td>
      <td>94.69</td>
      <td>2733</td>
    </tr>
    <tr>
      <td rowspan="3">TF-IDF + InfoXLM<sub>large</sub></td>
      <td>InfoXLM<sub>large</sub></td>
      <td>80.68</td>
      <td><strong>83.98</strong></td>
      <td><strong>95.31</strong></td>
      <td>3860</td>
    </tr>
    <tr>
      <td>XLM-R<sub>large</sub></td>
      <td><strong>80.82</strong></td>
      <td>83.88</td>
      <td><strong>95.31</strong></td>
      <td>3843</td>
    </tr>
    <tr>
      <td>Ernie-M<sub>large</sub></td>
      <td>80.06</td>
      <td>83.17</td>
      <td><strong>95.31</strong></td>
      <td>3891</td>
    </tr>
  </tbody>
</table>

**SemViQA-QATC** plays a crucial role in the **SemViQA** system by enhancing accuracy in evidence extraction. When integrated into a pipeline, this model helps determine whether a claim is supported or refuted based on retrieved evidence.

## **Citation**

If you use **SemViQA-QATC** in your research, please cite:

```bibtex
@misc{nguyen2025semviqasemanticquestionanswering,
      title={SemViQA: A Semantic Question Answering System for Vietnamese Information Fact-Checking},
      author={Nam V. Nguyen and Dien X. Tran and Thanh T. Tran and Anh T. Hoang and Tai V. Duong and Di T. Le and Phuc-Lu Le},
      year={2025},
      eprint={2503.00955},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2503.00955},
}
```

🔗 **Paper Link:** [SemViQA on arXiv](https://arxiv.org/abs/2503.00955)  
🔗 **Source Code:** [GitHub - SemViQA](https://github.com/DAVID-NGUYEN-S16/SemViQA)  

## About

*Built by Dien X. Tran*
[![LinkedIn](https://img.shields.io/badge/LinkedIn-Profile-blue?logo=linkedin)](https://www.linkedin.com/in/xndien2004/)
For more details, visit the project repository.
[![GitHub stars](https://img.shields.io/github/stars/DAVID-NGUYEN-S16/SemViQA?style=social)](https://github.com/DAVID-NGUYEN-S16/SemViQA)