Spaces:
Runtime error
Runtime error
Upload app.py
Browse files
app.py
ADDED
@@ -0,0 +1,100 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
#MT5 FINE TUNE
|
3 |
+
|
4 |
+
import gradio as gr
|
5 |
+
#import tensorflow as tf masih error
|
6 |
+
import torch #ganti ke pt
|
7 |
+
|
8 |
+
#import sentencepiece
|
9 |
+
from transformers import MT5Tokenizer, MT5ForConditionalGeneration
|
10 |
+
|
11 |
+
|
12 |
+
def run_model(input_text,
|
13 |
+
min_length,
|
14 |
+
max_length,
|
15 |
+
length_penalty):
|
16 |
+
|
17 |
+
#MBART Transformer
|
18 |
+
mt5_model = MT5ForConditionalGeneration.from_pretrained("csebuetnlp/mT5_multilingual_XLSum")
|
19 |
+
mt5_tokenizer = MT5Tokenizer.from_pretrained("csebuetnlp/mT5_multilingual_XLSum")
|
20 |
+
|
21 |
+
#encode input to vector
|
22 |
+
input_text = str(input_text)
|
23 |
+
input_text = ' '.join(input_text.split()) # hapus white space
|
24 |
+
input_tokenized = mt5_tokenizer.encode(input_text, return_tensors='pt')
|
25 |
+
|
26 |
+
#generate input
|
27 |
+
summary_ids = mt5_model.generate(input_tokenized,
|
28 |
+
length_penalty = length_penalty, #Atur ke nilai <1.0 untuk menghasilkan urutan yang lebih pendek, ke nilai > 1.0 untuk menghasilkan urutan yang lebih panjang)
|
29 |
+
min_length = min_length, #Panjang minimum urutan yang akan dihasilkan)
|
30 |
+
max_length = max_length, #Panjang maksimum urutan yang akan dihasilkan)"""
|
31 |
+
num_beams = 5,#pencarian
|
32 |
+
no_repeat_ngram_size = 2,#jika diatur ke int > 0, semua ngram dengan ukuran tersebut hanya dapat muncul sekali.
|
33 |
+
early_stopping = True)
|
34 |
+
|
35 |
+
#decode output to text
|
36 |
+
output = mt5_tokenizer.batch_decode(summary_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)
|
37 |
+
|
38 |
+
return output[0]
|
39 |
+
|
40 |
+
# end
|
41 |
+
|
42 |
+
#example
|
43 |
+
# source Wikipedia
|
44 |
+
contoh = [["Dota 2 adalah sebuah permainan arena pertarungan daring multipemain, dan merupakan sekuel dari Defense of the Ancients mod pada Warcraft 3: Reign of Chaos dan Warcraft 3: The Frozen Throne. DotA 2 dikembangkan oleh Valve Corporation, terbit juli 2013 dota 2 dapat dimainkan secara gratis pada sistem operasi Microsoft Windows, OS X and Linux. Dota 2 dapat dimainkan secara eksklusif melalui distributor resmi valve, Steam.Dota 2 dimainkan oleh 2 tim yang beranggota 5 orang pemain, setiap tim memiliki markas yang berada dipojok peta, setiap markas memiliki satu bangunan bernama 'Ancient', Di mana tim harus berusaha menghancurkan 'Ancient' tim lawan agar dapat memenangkan pertandingan. Setiap pemain hanya dapat mengontrol satu karakter Hero yang berfokus pada menaikan level, mengumpulkan gold, membeli item dan melawan tim lawan untuk menang.Pengembangan Dota 2 dimulai sejak tahun 2009. Ketika pengembang mod DotA, Icefrog, dipekerjakan oleh Valve sebagai lead designer. Dota 2 dipuji oleh kritikus karena gameplay-nya, kualitas pembuatan dan kesetiaan pada gameplay pendahulu (DotA mod Warcraft 3). tetapi Dota 2 juga menuai kritik sebagai game yang susah dipelajari dan para pemain yang tidak ramah.Sampai pertengahan 2017 Dota 2 menjadi game yang memiliki aktivitas pemain paling banyak di Steam, dengan pucak 800,000 pemain online bersamaan setiap hari", 100, 200, 2],
|
45 |
+
["Gangguan jiwa atau penyakit jiwa adalah pola psikologis atau perilaku yang pada umumnya terkait dengan stres atau kelainan jiwa yang tidak dianggap sebagai bagian dari perkembangan normal manusia.[1] Gangguan tersebut didefinisikan sebagai kombinasi afektif, perilaku, komponen kognitif atau persepsi yang berhubungan dengan fungsi tertentu pada daerah otak atau sistem saraf yang menjalankan fungsi sosial manusia. Penemuan dan pengetahuan tentang kondisi kesehatan jiwa telah berubah sepanjang perubahan waktu dan perubahan budaya, dan saat ini masih terdapat perbedaan tentang definisi, penilaan dan klasifikasi, meskipun kriteria pedoman standar telah digunakan secara luas. Lebih dari sepertiga orang di sebagian besar negara-negara melaporkan masalah pada satu waktu pada hidup mereka yang memenuhi kriteria salah satu atau beberapa tipe umum dari kelainan jiwa.", 100, 200, 1]]
|
46 |
+
|
47 |
+
#judul
|
48 |
+
title = "Text Sumarization id2id"
|
49 |
+
|
50 |
+
#deskripsi
|
51 |
+
description = "Demo for Text Sumarization id2id. Models are MBART(50 languages)"
|
52 |
+
|
53 |
+
#footer
|
54 |
+
article = "<p style='text-align: center'><a href='https://github.com/sultanbst123/Text_summarization-id2id' target='_blank'><u>Untuk penjelasan lihat di repo ku</u> π</a></p>"
|
55 |
+
|
56 |
+
#run gradio
|
57 |
+
gr.Interface(
|
58 |
+
fn=run_model,
|
59 |
+
#input text
|
60 |
+
inputs=[
|
61 |
+
gr.inputs.Textbox(
|
62 |
+
lines=7,
|
63 |
+
placeholder="Ketik disini...",
|
64 |
+
label="Text",
|
65 |
+
),
|
66 |
+
#fine tune
|
67 |
+
#min length
|
68 |
+
gr.inputs.Slider(
|
69 |
+
minimum=100,
|
70 |
+
maximum=1000,
|
71 |
+
step=50,
|
72 |
+
default=100,
|
73 |
+
label="Min Length(panjang minimal urutan)",
|
74 |
+
),
|
75 |
+
#max length
|
76 |
+
gr.inputs.Slider(
|
77 |
+
minimum=100,
|
78 |
+
maximum=2000,
|
79 |
+
step=100,
|
80 |
+
default=200,
|
81 |
+
label="Max Length(panjang maksimum urutan)",
|
82 |
+
),
|
83 |
+
#length_penalty
|
84 |
+
gr.inputs.Slider(
|
85 |
+
minimum=1,
|
86 |
+
maximum=3,
|
87 |
+
step=1,
|
88 |
+
default=1,
|
89 |
+
label="Length Penalty",
|
90 |
+
),
|
91 |
+
],
|
92 |
+
#output text
|
93 |
+
outputs=gr.outputs.Textbox(
|
94 |
+
label="Output text",
|
95 |
+
),
|
96 |
+
title=title,
|
97 |
+
description=description,
|
98 |
+
article=article,
|
99 |
+
examples=contoh,
|
100 |
+
theme = "dark-grass").launch(debug = True)
|