Views
No views yet
Trainer API, optimizing the model to generate concise and meaningful summaries of Khmer text.google/mt5-smallkimleang123/khmer-text-datasettransformerstransformers, torch, and datasets installed:pip install transformers torch datasets1from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
2
3model_name = "songhieng/khmer-mt5-summarization"
4tokenizer = AutoTokenizer.from_pretrained(model_name)
5model = AutoModelForSeq2SeqLM.from_pretrained(model_name)1def summarize_khmer(text, max_length=150):
2 input_text = f"summarize: {text}"
3 inputs = tokenizer(input_text, return_tensors="pt", truncation=True, max_length=512)
4 summary_ids = model.generate(**inputs, max_length=max_length, num_beams=5, length_penalty=2.0, early_stopping=True)
5 summary = tokenizer.decode(summary_ids[0], skip_special_tokens=True)
6 return summary
7
8khmer_text = "កម្ពុជាមានប្រជាជនប្រមាណ ១៦ លាននាក់ ហើយវាគឺជាប្រទេសនៅតំបន់អាស៊ីអាគ្នេយ៍។"
9summary = summarize_khmer(khmer_text)
10print("🔹 Khmer Summary:", summary)1from transformers import pipeline
2
3summarizer = pipeline("summarization", model="songhieng/khmer-mt5-summarization")
4khmer_text = "កម្ពុជាមានប្រជាជនប្រមាណ ១៦ លាននាក់ ហើយវាគឺជាប្រទេសនៅតំបន់អាស៊ីអាគ្នេយ៍។"
5summary = summarizer(khmer_text, max_length=150, min_length=30, do_sample=False)
6print("🔹 Khmer Summary:", summary[0]['summary_text'])1from fastapi import FastAPI
2
3app = FastAPI()
4
5@app.post("/summarize/")
6def summarize(text: str):
7 inputs = tokenizer(f"summarize: {text}", return_tensors="pt", truncation=True, max_length=512)
8 summary_ids = model.generate(**inputs, max_length=150, num_beams=5, length_penalty=2.0, early_stopping=True)
9 summary = tokenizer.decode(summary_ids[0], skip_special_tokens=True)
10 return {"summary": summary}
11
12# Run with: uvicorn filename:app --reload1from datasets import load_metric
2
3rouge = load_metric("rouge")
4
5def compute_metrics(pred):
6 labels_ids = pred.label_ids
7 pred_ids = pred.predictions
8 decoded_preds = tokenizer.batch_decode(pred_ids, skip_special_tokens=True)
9 decoded_labels = tokenizer.batch_decode(labels_ids, skip_special_tokens=True)
10 return rouge.compute(predictions=decoded_preds, references=decoded_labels)
11
12trainer.evaluate()1model.push_to_hub("songhieng/khmer-mt5-summarization")
2tokenizer.push_to_hub("songhieng/khmer-mt5-summarization")1model = AutoModelForSeq2SeqLM.from_pretrained("songhieng/khmer-mt5-summarization")
2tokenizer = AutoTokenizer.from_pretrained("songhieng/khmer-mt5-summarization")| Feature | Details |
|---|---|
| Base Model | google/mt5-small |
| Task | Summarization |
| Language | Khmer (ខ្មែរ) |
| Dataset | kimleang123/khmer-text-dataset |
| Framework | Hugging Face Transformers |
| Evaluation Metric | ROUGE Score |
| Deployment | Hugging Face Model Hub, API (FastAPI), Python Code |