CoolFace
Modelpublic

SemViQA/tc-infoxlm-viwikifc

sourceHugging Facemitupdated 1y agoView on Hugging Face
0likes30downloads
Model Card

SemViQA-TC: Vietnamese Three-class Classification for Claim Verification

Model Description

The rise of misinformation, exacerbated by Large Language Models (LLMs) like GPT and Gemini, demands robust fact-checking solutions, especially for low-resource languages like Vietnamese. Existing methods struggle with semantic ambiguity, homonyms, and complex linguistic structures, often trading accuracy for efficiency. We introduce SemViQA, a novel Vietnamese fact-checking framework integrating Semantic-based Evidence Retrieval (SER) and Two-step Verdict Classification (TVC). Our approach balances precision and speed, achieving state-of-the-art results with 78.97\% strict accuracy on ISE-DSC01 and 80.82\% on ViWikiFC, securing 1st place in the UIT Data Science Challenge. Additionally, SemViQA Faster improves inference speed 7x while maintaining competitive accuracy. SemViQA sets a new benchmark for Vietnamese fact verification, advancing the fight against misinformation.

SemViQA-TC is one of the key components of the SemViQA system, designed for three-class classification in Vietnamese fact-checking. This model classifies a given claim into one of three categories: SUPPORTED, REFUTED, or NOT ENOUGH INFORMATION (NEI) based on retrieved evidence. To address these challenges, SemViQA integrates:

  • Semantic-based Evidence Retrieval (SER): Combines TF-IDF with a Question Answering Token Classifier (QATC) to enhance retrieval precision while reducing inference time.
  • Two-step Verdict Classification (TVC): Uses hierarchical classification optimized with Cross-Entropy and Focal Loss, improving claim verification across three categories:
  • Supported
  • Refuted
  • Not Enough Information (NEI) 🤷‍♂️

Model Information

SemViQA-TC serves as the first step in the two-step classification process of the SemViQA system. It initially categorizes claims into three classes: SUPPORTED, REFUTED, or NEI. For claims classified as SUPPORTED or REFUTED, a secondary binary classification model (SemViQA-BC) further refines the prediction. This hierarchical classification strategy enhances the accuracy of fact verification.

🏆 Achievements

  • 1st place in the UIT Data Science Challenge 🏅
  • State-of-the-art performance on:
  • ISE-DSC0178.97% strict accuracy
  • ViWikiFC80.82% strict accuracy
  • SemViQA Faster: 7x speed improvement over the standard model 🚀

These results establish SemViQA as a benchmark for Vietnamese fact verification, advancing efforts to combat misinformation and ensure information integrity.

Usage Example

Direct Model Usage

Python
# Install semviqa
!pip install semviqa

# Initalize a pipeline
import torch
import torch.nn.functional as F
from transformers import AutoTokenizer
from semviqa.tvc.model import ClaimModelForClassification

tokenizer = AutoTokenizer.from_pretrained("SemViQA/tc-infoxlm-viwikifc")
model = ClaimModelForClassification.from_pretrained("SemViQA/tc-infoxlm-viwikifc")
claim = "Chiến tranh với Campuchia đã kết thúc trước khi Việt Nam thống nhất."
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."

inputs = tokenizer(
    claim,
    evidence,
    truncation="only_second",
    add_special_tokens=True,
    max_length=256,
    padding='max_length',
    return_attention_mask=True,
    return_token_type_ids=False,
    return_tensors='pt',
)

labels = ["NEI", "SUPPORTED", "REFUTED"]

with torch.no_grad():
    outputs = model(**inputs)

logits = outputs["logits"]
probabilities = F.softmax(logits, dim=1).squeeze()

for i, (label, prob) in enumerate(zip(labels, probabilities.tolist()), start=1):
    print(f"{i}) {label} {prob:.4f}")
# 1) NEI 0.0001
# 2) SUPPORTED 0.0001
# 3) REFUTED 0.9998

Evaluation Results

SemViQA-TC is one of the key components of the two-step classification (TVC) approach in the SemViQA system. SemViQA-TC achieved impressive results on the test set, demonstrating accurate and efficient classification capabilities. The detailed evaluation of SemViQA-TC is presented in the table below.

<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>

Citation

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

bibtex
@misc{tran2025semviqasemanticquestionanswering,
      title={SemViQA: A Semantic Question Answering System for Vietnamese Information Fact-Checking}, 
      author={Dien X. Tran and Nam V. Nguyen 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 🔗 Source Code: GitHub - SemViQA

About

Built by Dien X. Tran ![LinkedIn](https://www.linkedin.com/in/xndien2004/) For more details, visit the project repository. ![GitHub stars](https://github.com/DAVID-NGUYEN-S16/SemViQA)