| --- |
| language: |
| - vi |
| license: mit |
| tags: |
| - summarization |
| - vietnamese |
| - news |
| - vit5 |
| - abstractive-summarization |
| datasets: |
| - 8Opt/vietnamese-summarization-dataset-0001 |
| metrics: |
| - rouge |
| pipeline_tag: summarization |
| widget: |
| - text: "Chính phủ Việt Nam đã ban hành quy định mới về thuế thu nhập cá nhân, áp dụng từ ngày 1 tháng 1 năm 2026. Theo đó, mức giảm trừ gia cảnh sẽ được tăng từ 11 triệu đồng lên 13 triệu đồng mỗi tháng. Đây là mức tăng cao nhất trong 5 năm qua, nhằm giảm gánh nặng thuế cho người lao động và kích thích tiêu dùng. Bộ Tài chính cho biết chính sách này sẽ có tác động tích cực đến khoảng 15 triệu người đóng thuế thu nhập cá nhân trên toàn quốc." |
| example_title: "Tin tức chính trị" |
| --- |
| |
| # ViT5 Vietnamese News Summarization (Abstractive) |
|
|
| Mô hình tóm tắt tin tức tiếng Việt tự động sử dụng kiến trúc **ViT5-base** (Vietnamese T5), được fine-tune cho bài toán **abstractive summarization** (tóm tắt trừu tượng). |
|
|
| ## 📊 Model Description |
|
|
| - **Base Model**: [VietAI/vit5-base](https://huggingface.co/VietAI/vit5-base) |
| - **Task**: Abstractive Text Summarization |
| - **Language**: Vietnamese (Tiếng Việt) |
| - **Parameters**: 220M |
| - **License**: MIT |
| - **Training Dataset**: [8Opt/vietnamese-summarization-dataset-0001](https://huggingface.co/datasets/8Opt/vietnamese-summarization-dataset-0001) |
|
|
| ## 🎯 Performance |
|
|
| Evaluated on 200 samples from VietNews test set: |
|
|
| | Metric | Score | |
| |--------|-------| |
| | **ROUGE-1** | 45.17% | |
| | **ROUGE-2** | 22.18% | |
| | **ROUGE-L** | 27.60% | |
| | **BERT F1** | 69.22% | |
| | **Inference Time** | 10.97s/sample (CPU) | |
| | **Compression Ratio** | 0.292 | |
|
|
| ### Comparison with Extractive Model |
|
|
| | Model | ROUGE-1 | ROUGE-2 | ROUGE-L | BERT F1 | Speed | |
| |-------|---------|---------|---------|---------|-------| |
| | **Abstractive** (this) | 45.17% | 22.18% | 27.60% | 69.22% | **10.97s** ⚡ | |
| | Extractive | 50.48% | 22.84% | 30.61% | 71.33% | 20.46s | |
|
|
| **Highlights:** |
| - ✅ **2x faster** than extractive model |
| - ✅ **Shorter summaries** (63.5 words vs 96.3 words) |
| - ✅ **More natural** paraphrasing instead of copying sentences |
| - ⚠️ Slightly lower ROUGE scores (expected for abstractive approach) |
|
|
| ## 💻 Usage |
|
|
| ### Installation |
|
|
| ```bash |
| pip install transformers torch |
| ``` |
|
|
| ### Basic Usage |
|
|
| ```python |
| from transformers import AutoTokenizer, AutoModelForSeq2SeqLM |
| |
| # Load model and tokenizer |
| model_name = "NishiKyen/vit5-vietnamese-news" |
| tokenizer = AutoTokenizer.from_pretrained(model_name) |
| model = AutoModelForSeq2SeqLM.from_pretrained(model_name) |
| |
| # Input text |
| text = """ |
| Chính phủ Việt Nam đã ban hành quy định mới về thuế thu nhập cá nhân, |
| áp dụng từ ngày 1 tháng 1 năm 2026. Theo đó, mức giảm trừ gia cảnh |
| sẽ được tăng từ 11 triệu đồng lên 13 triệu đồng mỗi tháng. |
| """ |
| |
| # Tokenize |
| inputs = tokenizer( |
| text, |
| max_length=1280, |
| truncation=True, |
| padding="max_length", |
| return_tensors="pt" |
| ) |
| |
| # Generate summary |
| outputs = model.generate( |
| inputs["input_ids"], |
| max_new_tokens=256, |
| num_beams=5, |
| repetition_penalty=2.5, |
| no_repeat_ngram_size=3, |
| early_stopping=True |
| ) |
| |
| # Decode |
| summary = tokenizer.decode(outputs[0], skip_special_tokens=True) |
| print(summary) |
| ``` |
|
|
| **Output:** |
| ``` |
| Chính phủ tăng mức giảm trừ gia cảnh lên 13 triệu đồng/tháng từ 1/1/2026, |
| ảnh hưởng đến 15 triệu người nộp thuế TNCN. |
| ``` |
|
|
| ### Advanced Usage with Dynamic Length |
|
|
| ```python |
| def summarize_news(text, max_input_length=1280): |
| """ |
| Tóm tắt tin tức với độ dài động |
| """ |
| # Estimate output length based on input |
| input_len = len(text.split()) |
| |
| if input_len <= 500: |
| max_new = 180 |
| elif input_len <= 1000: |
| max_new = 250 |
| else: |
| max_new = 256 |
| |
| # Tokenize |
| inputs = tokenizer( |
| text, |
| max_length=max_input_length, |
| truncation=True, |
| return_tensors="pt" |
| ) |
| |
| # Generate with optimal parameters |
| outputs = model.generate( |
| inputs["input_ids"], |
| max_new_tokens=max_new, |
| min_new_tokens=50, |
| num_beams=5, |
| length_penalty=1.0, |
| repetition_penalty=2.5, |
| no_repeat_ngram_size=3, |
| early_stopping=True |
| ) |
| |
| summary = tokenizer.decode(outputs[0], skip_special_tokens=True) |
| return summary |
| |
| # Usage |
| long_article = "..." # Your news article |
| summary = summarize_news(long_article) |
| ``` |
|
|
| ## 🏗️ Training Details |
|
|
| ### Hyperparameters |
|
|
| - **Epochs**: 3 |
| - **Batch Size**: 8 (effective: 8 with gradient accumulation) |
| - **Learning Rate**: 5e-5 |
| - **Max Input Length**: 1280 tokens |
| - **Max Output Length**: 256 tokens |
| - **Optimizer**: AdamW |
| - **Scheduler**: Linear warmup |
| - **FP16**: Enabled |
| - **Repetition Penalty**: 2.5 |
| - **No Repeat N-gram Size**: 3 |
|
|
| ### Training Configuration |
|
|
| ```python |
| training_args = { |
| "output_dir": "./models/vit5_abstractive", |
| "num_train_epochs": 3, |
| "per_device_train_batch_size": 8, |
| "learning_rate": 5e-5, |
| "warmup_steps": 500, |
| "weight_decay": 0.01, |
| "fp16": True, |
| "evaluation_strategy": "epoch", |
| "save_strategy": "epoch", |
| "load_best_model_at_end": True, |
| } |
| ``` |
|
|
| ## 📁 Model Architecture |
|
|
| ``` |
| ViT5-base (220M parameters) |
| ├── Encoder: 12 layers, 768 hidden, 12 heads |
| ├── Decoder: 12 layers, 768 hidden, 12 heads |
| └── Vocabulary: 32,000 SentencePiece tokens |
| ``` |
|
|
| ## 🎓 Citation |
|
|
| ```bibtex |
| @misc{vit5-vietnamese-news, |
| author = {Nguyen Trung Kien}, |
| title = {ViT5 Vietnamese News Summarization}, |
| year = {2025}, |
| publisher = {HuggingFace}, |
| howpublished = {\url{https://huggingface.co/NishiKyen/vit5-vietnamese-news}} |
| } |
| ``` |
|
|
| ## 📝 Notes |
|
|
| - Mô hình được fine-tune trên tóm tắt **abstractive** (paraphrase), khác với extractive (chọn câu gốc) |
| - Phù hợp cho tin tức tiếng Việt (chính trị, kinh tế, xã hội, v.v.) |
| - Output ngắn gọn hơn và tự nhiên hơn so với extractive model |
| - Inference time nhanh gấp 2 lần so với extractive variant |
|
|
| ## 🔗 Related Resources |
|
|
| - **GitHub Repository**: [vietnamese-news-summarization](https://github.com/NishiKyen/vietnamese-news-summarization) |
| - **Base Model**: [VietAI/vit5-base](https://huggingface.co/VietAI/vit5-base) |
| - **Dataset**: [8Opt/vietnamese-summarization-dataset](https://huggingface.co/datasets/8Opt/vietnamese-summarization-dataset-0001) |
| - **Extractive Variant**: *Coming soon* |
|
|
| ## 📧 Contact |
|
|
| - GitHub: [@NishiKyen](https://github.com/NishiKyen) |
| - Email: nguyentrungkine08102004@gmail.com |
|
|
| ## 📄 License |
|
|
| MIT License - See [LICENSE](LICENSE) file for details |
|
|