M2M100_418M Fine-tuned for Hre - Vietnamese Translation
Khái quát Mô hình (Model Description)
Đây là mô hình dịch máy (Machine Translation) được tinh chỉnh (fine-tuned) từ kiến trúc gốc facebook/m2m100_418M của Meta. Mô hình được huấn luyện đặc biệt để dịch qua lại giữa tiếng Hrê (một ngôn ngữ thiểu số thuộc ngữ hệ Nam Á tại Việt Nam) và tiếng Việt.
Do tiếng Hrê là một ngôn ngữ cực hiếm (extremely low-resource) và chưa có mã định danh chuẩn trên Hugging Face, dự án này sử dụng mã en (tiếng Anh) làm đại diện (placeholder) cho tiếng Hrê trong hệ thống Tokenizer của M2M100.
Dữ liệu Huấn luyện (Training Data)
Mô hình được huấn luyện trên một tập dữ liệu song ngữ nhỏ gọn nhưng đã được tăng cường (Data Augmentation) để tối ưu hóa không gian vector:
- Tập câu cấu trúc: 335 câu song ngữ hoàn chỉnh.
- Tập từ vựng & cụm từ: 2.684 mẫu từ điển.
- Tổng quy mô huấn luyện: ~3.000 mẫu. Quá trình tiền xử lý đã áp dụng kỹ thuật nhân bản (oversampling) tập câu cấu trúc lên nhiều lần trước khi trộn với từ vựng để cân bằng giữa việc học ngữ pháp và mở rộng vốn từ.
Kết quả Đánh giá (Evaluation Results)
Mô hình được đánh giá trên tập Test độc lập sử dụng thuật toán Beam Search (num_beams=5).
- BLEU Score: ~18.0
- Mức điểm này cho thấy mô hình đã vượt qua ngưỡng dịch từng từ (word-by-word) và có khả năng nắm bắt được cấu trúc ngữ pháp cơ bản của tiếng Hrê.
Siêu tham số Huấn luyện (Training Hyperparameters)
- Learning Rate: 3e-5
- Scheduler: Cosine with Warmup (warmup_ratio=0.1)
- Train Batch Size: 8
- Eval Batch Size: 8
- Num Epochs: 5
- Optimizer: AdamW
- Label Smoothing: 0.0 (Tắt để tránh xung đột với cấu trúc giải mã của M2M100)
- Gradient Checkpointing: True
Hướng dẫn Sử dụng (How to use)
Dưới đây là đoạn mã Python sử dụng thư viện transformers để chạy mô hình:
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
import torch
# 1. Tải mô hình và tokenizer
model_name = "tên_user_của_bạn/tên_mô_hình" # <-- Thay bằng tên repo của bạn
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
# 2. Thiết lập mã ngôn ngữ (BẮT BUỘC)
tokenizer.src_lang = "en" # Đại diện cho tiếng Hrê
tokenizer.tgt_lang = "vi" # Tiếng Việt
# 3. Dịch thử một câu
src_text = "Nhập câu tiếng Hrê của bạn vào đây"
inputs = tokenizer(src_text, return_tensors="pt")
# 4. Sử dụng Beam Search để cho ra kết quả tốt nhất
with torch.no_grad():
outputs = model.generate(
**inputs,
max_length=128,
num_beams=5,
length_penalty=1.2
)
translation = tokenizer.decode(outputs[0], skip_special_tokens=True)
print("Bản dịch tiếng Việt:", translation)