Indonesian BERT2GPT Summarization Model
Finetuned EncoderDecoder model using BERT-base and GPT2-small for Indonesian text summarization.
Finetuning Corpus
bert2gpt-indosum
model is based on cahya/bert2gpt-indonesian-summarization
cahya, finetuned using indosum dataset.
How to Load Finetuned Model
from transformers import BertTokenizer, EncoderDecoderModel, EncoderDecoderConfig
model_ckpt = 'ardavey/bert2gpt-indosum'
tokenizer = BertTokenizer.from_pretrained(model_ckpt)
tokenizer.bos_token = tokenizer.cls_token
tokenizer.eos_token = tokenizer.sep_token
config = EncoderDecoderConfig.from_pretrained(model_ckpt)
config.early_stopping = True
model = EncoderDecoderModel.from_pretrained(model_ckpt, config=config)
Code Example
from transformers import BertTokenizer, EncoderDecoderModel, EncoderDecoderConfig
model_ckpt = 'ardavey/bert2gpt-indosum'
tokenizer = BertTokenizer.from_pretrained(model_ckpt)
tokenizer.bos_token = tokenizer.cls_token
tokenizer.eos_token = tokenizer.sep_token
config = EncoderDecoderConfig.from_pretrained(model_ckpt)
config.early_stopping = True
model = EncoderDecoderModel.from_pretrained(model_ckpt, config=config)
# Source of the article below: https://soc.telkomuniversity.ac.id/optiguard-aplikasi-dan-alat-untuk-deteksi-dini-penyakit-kebutaan-ciptaan-mahasiswa-fakultas-informatika-tel-u
custom_text = """
Bandung, 5 Juli 2024 --- Kebutaan akan membawa dampak negatif bagi penderitanya. Pentingnya menjaga Kesehatan mata untuk mencegah kebutaan membuat sekelompok mahasiswa dari Fakultas Informatika Telkom University menciptakan inovasi untuk mengidentifikasi penyakit mata.
Inovasi ini diberi nama Optiguard yang dikembangkan melalui Program Kreativitas Mahasiswa Bidang Karsa Cipta (PKM-KC) dan berhasil mendapatkan pendanaan dari Kemendikbudristek. OptiGuard diciptakan sebagai upaya preventif mencegah kebutaan dengan mendeteksi dini penyakit mata, sehingga penyakit mata dapat ditangani sebelum semakin parah dan memperkecil peluang terjadinya kebutaan. Inovasi OptiGuard ini mengedepakan efisiensi, kecepatan, dan ketepatan dalam mendiagnosis penyakit mata.
OptiGuard merupakan hasil kolaborasi dari sekelompok mahasiswa program studi S1 Sains Data Telkom University yang memiliki peranannya masing-masing. Hendrik Mario Ignatius sebagai Koordinator dan Front End Developer, Izzulhaq Mahardika sebagai Adaptor designer dan Back End Developer, Nida Anggraeni sebagai Reseacher dan Public Relation, Nadia Nurhalija Zuaeni sebagai Content Creator dan Researcher, dan Tiara Sabrina sebagai AI Engineer dan UI/UX Designer. Pengembangan inovasi ini rutin dipantau dan didampingi oleh Dr. Gamma Kosala, S.Si.
"""
input_ids = tokenizer.encode(custom_text, return_tensors='pt', padding=True, truncation=True, max_length=512)
summary_ids = model.generate(input_ids,
min_length=40,
max_length=200,
num_beams=10,
repetition_penalty=2.0,
length_penalty=1.0,
no_repeat_ngram_size=3,
use_cache=True,
do_sample = False,
top_k = 50,
)
summary_text = tokenizer.decode(summary_ids[0], skip_special_tokens=True)
Apply Post Preprocessing
You could apply post preprocessing if the model might not have a strong grasp of specific terms, especially for words like "OptiGuard," which may not be common in the pre-trained data.
# capitalize the first letter of the summary and after each period
def capitalize_sentences(text):
sentences = text.split('. ')
capitalized_sentences = [sentence[0].upper() + sentence[1:] if sentence else sentence for sentence in sentences]
return '. '.join(capitalized_sentences)
# correct any wrong terms using the replacement_dict
replacement_dict = {
"optiglain": "OptiGuard",
"telkom university": "Telkom University",
}
for wrong_term, correct_term in replacement_dict.items():
summary_text = summary_text.replace(wrong_term, correct_term)
summary_text = capitalize_sentences(summary_text)
Output:
Summary:
Kebutaan akan membawa dampak negatif bagi penderitanya. Pentingnya menjaga kesehatan mata untuk mencegah kebutaan membuat sekelompok mahasiswa dari fakultas informatika Telkom University menciptakan inovasi untuk mengidentifikasi penyakit mata. Inovasi ini diberi nama OptiGuard yang dikembangkan melalui program kreativitas mahasiswa bidang karsa cipta ( pkm - kc ) dan berhasil mendapatkan pendanaan dari kemendikbudristek.
- Downloads last month
- 272