Spaces:
Sleeping
Sleeping
Update komentar app.py
Browse files
app.py
CHANGED
@@ -2,40 +2,47 @@ import torch
|
|
2 |
from transformers import (PegasusForConditionalGeneration, PegasusTokenizer, pipeline)
|
3 |
import gradio as gr
|
4 |
|
5 |
-
#
|
6 |
model = PegasusForConditionalGeneration.from_pretrained("fatihfauzan26/PEGASUS_liputan6")
|
7 |
tokenizer = PegasusTokenizer.from_pretrained("google/pegasus-cnn_dailymail")
|
8 |
|
9 |
-
#
|
10 |
summarizer = pipeline("summarization", model=model, tokenizer=tokenizer)
|
11 |
|
|
|
12 |
def summarize_article(article):
|
13 |
-
#
|
14 |
input_ids = tokenizer.encode(article, return_tensors='pt')
|
|
|
|
|
15 |
summary_ids = model.generate(input_ids,
|
16 |
-
min_length=30,
|
17 |
-
max_length=128,
|
18 |
-
num_beams=8,
|
19 |
-
repetition_penalty=2.0,
|
20 |
-
length_penalty=0.8,
|
21 |
-
early_stopping=True,
|
22 |
-
no_repeat_ngram_size=2,
|
23 |
-
use_cache=True,
|
24 |
-
do_sample=True,
|
25 |
-
temperature=1.2,
|
26 |
-
top_k=50,
|
27 |
-
top_p=0.95)
|
28 |
|
29 |
-
#
|
30 |
summary_text = tokenizer.decode(summary_ids[0], skip_special_tokens=True)
|
|
|
|
|
31 |
return summary_text
|
32 |
|
33 |
-
# Gradio
|
34 |
-
iface = gr.Interface(
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
|
|
|
|
39 |
|
40 |
-
#
|
41 |
iface.launch()
|
|
|
2 |
from transformers import (PegasusForConditionalGeneration, PegasusTokenizer, pipeline)
|
3 |
import gradio as gr
|
4 |
|
5 |
+
# Memuat model dan tokenizer untuk PEGASUS dari Hugging Face Model Hub
|
6 |
model = PegasusForConditionalGeneration.from_pretrained("fatihfauzan26/PEGASUS_liputan6")
|
7 |
tokenizer = PegasusTokenizer.from_pretrained("google/pegasus-cnn_dailymail")
|
8 |
|
9 |
+
# Inisialisasi pipeline untuk tugas ringkasan menggunakan model dan tokenizer yang dimuat
|
10 |
summarizer = pipeline("summarization", model=model, tokenizer=tokenizer)
|
11 |
|
12 |
+
# Fungsi untuk meringkas artikel
|
13 |
def summarize_article(article):
|
14 |
+
# Mengubah artikel menjadi token yang bisa diproses oleh model (konversi teks ke representasi numerik)
|
15 |
input_ids = tokenizer.encode(article, return_tensors='pt')
|
16 |
+
|
17 |
+
# Menghasilkan ringkasan dari artikel dengan berbagai pengaturan model untuk kualitas output
|
18 |
summary_ids = model.generate(input_ids,
|
19 |
+
min_length=30, # Panjang minimal ringkasan
|
20 |
+
max_length=128, # Panjang maksimal ringkasan
|
21 |
+
num_beams=8, # Beam search untuk meningkatkan hasil ringkasan
|
22 |
+
repetition_penalty=2.0, # Penalti untuk pengulangan kata
|
23 |
+
length_penalty=0.8, # Penalti terkait panjang hasil
|
24 |
+
early_stopping=True, # Menghentikan proses jika hasil cukup bagus
|
25 |
+
no_repeat_ngram_size=2, # Menghindari pengulangan frasa yang sama
|
26 |
+
use_cache=True, # Menggunakan cache untuk efisiensi
|
27 |
+
do_sample=True, # Mengambil sampel untuk variasi
|
28 |
+
temperature=1.2, # Mengontrol randomness dari hasil
|
29 |
+
top_k=50, # Mempertimbangkan 50 kemungkinan token teratas
|
30 |
+
top_p=0.95) # Mengambil token yang memiliki probabilitas kumulatif 95%
|
31 |
|
32 |
+
# Mengubah token output menjadi teks ringkasan (decode dari token ke teks)
|
33 |
summary_text = tokenizer.decode(summary_ids[0], skip_special_tokens=True)
|
34 |
+
|
35 |
+
# Mengembalikan teks ringkasan
|
36 |
return summary_text
|
37 |
|
38 |
+
# Membuat antarmuka Gradio
|
39 |
+
iface = gr.Interface(
|
40 |
+
fn=summarize_article, # Fungsi yang dijalankan saat pengguna memberikan input
|
41 |
+
inputs=gr.Textbox(lines=10, label="Enter the article you want to summarize"), # Input berupa kotak teks
|
42 |
+
outputs=gr.Textbox(label="Summary"), # Output berupa kotak teks untuk menampilkan ringkasan
|
43 |
+
title="Summarization App using PEGASUS", # Judul aplikasi
|
44 |
+
description="Paste an article and click 'Submit' to get a summarized version using PEGASUS model." # Deskripsi aplikasi
|
45 |
+
)
|
46 |
|
47 |
+
# Meluncurkan aplikasi Gradio sehingga bisa diakses di browser
|
48 |
iface.launch()
|