A Toolkit for Quality-Controlled Vietnamese Paraphrase Generation & Evaluation
English | Tiếng Việt | 简体中文 | 日本語 | Français
VietQuill is a unified framework for controllable Vietnamese paraphrase generation and quality estimation, supporting both research and production applications.
It centralizes datasets, generation methods, augmentation techniques, and evaluation metrics into a consistent interface, enabling researchers and practitioners to develop, benchmark, and deploy paraphrase systems with minimal effort. VietQuill aims to serve as a common foundation for the Vietnamese paraphrase generation ecosystem, promoting reproducible research, standardized evaluation, and the development of high-quality paraphrase technologies for education, information retrieval, question answering, conversational AI, and other natural language processing applications.
We are committed to advancing Vietnamese paraphrase generation by making state-of-the-art methods accessible, customizable, and easy to integrate into real-world workflows.
Installation
Create and activate a virtual environment with venv and project manager.
python -m venv .\venv
Install VietQuill in your virtual environment.
pip install vietquill
Quickstart
Paraphrase Generate
Using AutoModelForControllableParaphraseGeneration for fine-grained control over lexical, semantic, and syntactic attributes.
from vietquill import AutoModelForControllableParaphraseGeneration
model = AutoModelForControllableParaphraseGeneration()
result = model.paraphrase("Hôm nay trời đẹp quá, mình muốn đi dạo công viên.")
print(result)
# >>> ['Hôm nay trời đẹp, tôi muốn đi dạo công viên.']
Generate multiple paraphrase candidates using the num_candidates parameter.
from vietquill import AutoModelForControllableParaphraseGeneration
model = AutoModelForControllableParaphraseGeneration()
result = model.paraphrase("Thủ đô của nước Pháp là thành phố nào?", num_candidates=3)
print(result)
# >>> ['Nước Pháp có thủ đô là thành phố nào?', 'Nước Pháp có thủ đô là thành phố tên gì?', 'Nước Pháp có thủ đô là thành phố tên là gì?']
If you have multiple sentences and want to leverage the power of GPU acceleration, you should use paraphrases for batch generation:
from vietquill import AutoModelForControllableParaphraseGeneration
model = AutoModelForControllableParaphraseGeneration()
sentences = [
"Hôm nay trời đẹp quá, mình muốn đi dạo công viên.",
"Thủ đô của nước Pháp là thành phố nào?",
# ... many sentences here ...
]
# Generate paraphrases in batch
results = model.paraphrases(sentences)
print(results)
# >>> [['Hôm nay trời đẹp, tôi muốn đi dạo công viên.'], ['Nước Pháp có thủ đô là thành phố nào?']]
Using lexical, syntactic, semantic for tunning paraphrase quality and diversity.
from vietquill import AutoModelForControllableParaphraseGeneration
model = AutoModelForControllableParaphraseGeneration()
sentence = "Tôi rất thích ăn phở vào buổi sáng và uống một cốc cà phê nóng."
# Generate with specific control levels
paraphrase = model.paraphrase(sentence, lexical=90, syntactic=70, semantic=70, num_candidates=2)
print(paraphrase)
# >>> ['Bữa sáng tôi ăn phở, uống một cốc cà phê nóng.', 'Bữa sáng tôi ăn phở và một cốc cà phê nóng.']
Alternatively, you can use predefined style presets using the ParaphraseStyle enum (or pass the style name as a string):
from vietquill import AutoModelForControllableParaphraseGeneration, ParaphraseStyle
model = AutoModelForControllableParaphraseGeneration()
sentence = "Mỗi ngày, có bao nhiêu người Việt Nam sử dụng mạng xã hội?"
# Generate with CONSERVATIVE
paraphrase = model.paraphrase(sentence, style=ParaphraseStyle.CONSERVATIVE)
print(paraphrase)
# >>> ['Mỗi ngày có bao nhiêu người Việt Nam sử dụng mạng xã hội?']
# Generate with BALANCED
paraphrase = model.paraphrase(sentence, style=ParaphraseStyle.BALANCED)
print(paraphrase)
# >>> ['Số lượng người Việt Nam sử dụng mạng xã hội mỗi ngày là bao nhiêu?']
# Generate with DIVERSE
paraphrase = model.paraphrase(sentence, style=ParaphraseStyle.DIVERSE)
print(paraphrase)
# >>> ['Có bao nhiêu người Việt Nam sử dụng mạng xã hội mỗi ngày?']
Paraphrase Evaluate
Evaluate the quality of generated paraphrases using various metrics and estimators.
from vietquill.evaluation import BLEUMetric, LexicalEstimator
original = "Hôm nay trời đẹp quá."
paraphrase = "Hôm nay trời đẹp ghê."
metric = BLEUMetric()
result = metric.score(original, paraphrase)
print(result)
# >>> 0.668740304976422
from vietquill.evaluation import LexicalEstimator
original = "Hôm nay trời đẹp quá."
paraphrase = "Hôm nay trời đẹp ghê."
lex_est = LexicalEstimator()
result = lex_est.estimate(original, paraphrase)
print(result)
# >>> {'lexical_score': 66.67}
from vietquill import AutoModelForParaphraseQualityEstimation
original = "Hôm nay trời đẹp quá, mình muốn đi dạo công viên."
paraphrase = "Thời tiết hôm nay thật tuyệt, tôi muốn tản bộ trong công viên."
estimator = AutoModelForParaphraseQualityEstimation()
result = estimator.estimate(original, paraphrase)
print(result)
# >>> {'lexical_score': 24.48, 'syntactic_score': 78.26, 'semantic_score': 64.2}
Model list
| Model | Architecture | Size | Status |
|---|---|---|---|
ngwgsang/vietquill-vit5-base-tsubaki |
T5-base (~440M parameters) | 4.19 GB* | Available |
ngwgsang/vietquill-velectra-estimator-tsubaki |
vELECTRA-base (~220M parameters) | 1.64 GB* | Available |
ngwgsang/vietquill-vit5-base-nelke |
T5-base (~440M parameters) | — | Coming Soon |
ngwgsang/vietquill-velectra-estimator-nelke |
vELECTRA-base (~220M parameters) | — | Coming Soon |
- Each Hub repository bundles both sentence and question variants in a single model package.
Why should I use VietQuill?
VietQuill is designed to be the most comprehensive and effective toolkit for Vietnamese paraphrase generation and evaluation. Here is why you should choose it:
- Seamless Integration: Designed with a clean and intuitive API, allowing VietQuill to be easily integrated into existing NLP workflows, research pipelines, and production systems.
- State-of-the-Art Paraphrase Generation: Built upon strong Vietnamese language models and quality-controlled generation techniques to deliver high-quality, diverse, and semantically faithful paraphrases.
Star History
Acknowledgements
We sincerely thank the Vietnamese NLP community for their continuous support and valuable contributions. We also gratefully acknowledge the support of the University of Information Technology (UIT), Vietnam National University Ho Chi Minh City (VNU-HCM), which has made the development of VietQuill possible.
This research is funded by University of Information Technology - Vietnam National University Ho Chi Minh City under grant number D4-2025-05.
Citation
VietQuill builds upon our previous research projects, ViQP and ViSP, extending them into a unified toolkit for Vietnamese paraphrase generation and quality estimation. If VietQuill contributes to your research or software, please cite it using the following reference.
@inproceedings{nguyen2023viqp,
title={Viqp: Dataset for vietnamese question paraphrasing},
author={Nguyen, Sang Quang and Vo, Thuc Dinh and Nguyen, Duc PA and Tran, Dang T and Van Nguyen, Kiet},
booktitle={2023 International Conference on Multimedia Analysis and Pattern Recognition (MAPR)},
pages={1--6},
year={2023},
organization={IEEE}
}
@inproceedings{nguyen2025visp,
title = "A Large-Scale Benchmark for {V}ietnamese Sentence Paraphrases",
author = "Nguyen, Sang Quang and
Nguyen, Kiet Van",
editor = "Chiruzzo, Luis and
Ritter, Alan and
Wang, Lu",
booktitle = "Findings of the Association for Computational Linguistics: NAACL 2025",
month = apr,
year = "2025",
address = "Albuquerque, New Mexico",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2025.findings-naacl.59/",
doi = "10.18653/v1/2025.findings-naacl.59",
pages = "1045--1060",
ISBN = "979-8-89176-195-7",
abstract = "This paper presents ViSP, a high-quality Vietnamese dataset for sentence paraphrasing, consisting of 1.2M original{--}paraphrase pairs collected from various domains. The dataset was constructed using a hybrid approach that combines automatic paraphrase generation with manual evaluation to ensure high quality. We conducted experiments using methods such as back-translation, EDA, and baseline models like BART and T5, as well as large language models (LLMs), including GPT-4o, Gemini-1.5, Aya, Qwen-2.5, and Meta-Llama-3.1 variants. To the best of our knowledge, this is the first large-scale study on Vietnamese paraphrasing. We hope that our dataset and findings will serve as a valuable foundation for future research and applications in Vietnamese paraphrase tasks. The dataset is available for research purposes at \url{https://github.com/ngwgsang/ViSP}."
}
@inproceedings{nguyen2026vietquill,
author={Nguyen, Sang Quang and Van Nguyen, Kiet},
booktitle={2026 International Conference on Multimedia Analysis and Pattern Recognition (MAPR)},
title={VietQuill: Quality-Controlled Paraphrase Generation for Vietnamese Language},
year={2026},
volume={},
number={},
pages={61-66},
keywords={Modeling;Computational linguistics;Syntactics;Conferences;Manuals;Printing;Training;Estimation;Measurement;Equations;Paraphrase Generation;Controllable Generation;Quality-Aware Modeling;Vietnamese NLP;Low-Resource NLP},
doi={10.1109/MAPR72750.2026.11685721}
}
Metadata
Release files for vietquill 1.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vietquill-1.1.1.tar.gz | 23.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vietquill-1.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 48.3 kB
Release files / vietquill-1.1.1.tar.gz
| Download URL | vietquill-1.1.1.tar.gz |
|---|---|
| Size | 23.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d55f2105a37fcd821a1c05bcbff3eb3ee021dc3d8237c8ce141a2a8d527f18e8
|
|
BLAKE2b-256 checksum How to use checksums |
02947f0c865a231702452f95f7f216c10cfdca6a9894fc6f830f0c2f31663d18
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.11
|
Release files / vietquill-1.1.1-py3-none-any.whl
| Download URL | vietquill-1.1.1-py3-none-any.whl |
|---|---|
| Size | 24.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0b4ac8d5b62a1f2c3359c4108d391a92101c949cf7bf0819bcf3906e4d02bea3
|
|
BLAKE2b-256 checksum How to use checksums |
83349d16947938c417e5fdf4ac1914e07702257218ac511e452ac0030a55a4c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.11
|