Downloads · 30 days
47
5% of all-time downloads
ardavey/bert2gpt-indosum
bert2gpt-indosum is a summarization model from ardavey. Use it when you need a shorter version of a longer text. The card lists the license as mit.
Finetuned EncoderDecoder model using BERT-base and GPT2-small for Indonesian text summarization.
Downloads · 30 days
47
5% of all-time downloads
All-time downloads
938
Public
Parameters
263M
1.1 GB on disk
Likes
2
Public
Click a slice to open those files.
.safetensors1.1 GB · 100%
From the Hugging Face model README
Finetuned EncoderDecoder model using BERT-base and GPT2-small for Indonesian text summarization.
bert2gpt-indosum model is based on cahya/bert2gpt-indonesian-summarization cahya, finetuned using indosum dataset.
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)
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)
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.