anugrahap commited on
Commit
3a6f9d7
·
1 Parent(s): de9f614

Upload 2 files

Browse files
Files changed (2) hide show
  1. app.py +48 -0
  2. requirements.txt +3 -0
app.py ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import re
2
+ import gradio as gr
3
+ from transformers import pipeline, AutoTokenizer, AutoModelForCausalLM
4
+
5
+ model_name = 'anugrahap/gpt2-indo-textgen'
6
+
7
+ tokenizer = AutoTokenizer.from_pretrained(model_name, padding_side='left')
8
+ model = AutoModelForCausalLM.from_pretrained(model_name, pad_token_id=tokenizer.eos_token_id)
9
+
10
+ generator = pipeline('text-generation', model=model, tokenizer=tokenizer)
11
+
12
+ def generate(text,min_length,max_length,temperature):
13
+ if min_length<=max_length:
14
+ result = generator(text, min_length=min_length, max_length=max_length, temperature=temperature, num_return_sequences=1)
15
+ return result[0]["generated_text"]
16
+ else:
17
+ return "Max Length must be greater or equals to Min Length!"
18
+
19
+ examples = [
20
+ ["Skripsi merupakan tugas akhir mahasiswa", 10, 30, 1.0],
21
+ ["Nama aku budi, aku adalah seorang", 20, 40, 2.0],
22
+ ["Indonesia adalah negara kepulauan", 30, 50, 5.0],
23
+ ]
24
+
25
+ title = "GPT-2 Indonesian Text Generation"
26
+ description = "This project is a part of thesis requirement of Anugrah Akbar Praramadhan"
27
+
28
+ article = """<p style='text-align: center'> Copyright Anugrah Akbar Praramadhan 2023 <br>
29
+ <p style='text-align: center'> Trained on Indo4B Benchmark Dataset of Indonesian language Wikipedia with a Causal Language Modeling (CLM) objective <br>
30
+ <p style='text-align: center'><a href='https://huggingface.co/anugrahap/gpt2-indo-textgen' target='_blank'>Link to Trained Model</a><br>
31
+ <p style='text-align: center'><a href='https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf' target='_blank'>Original Paper</a>
32
+ """
33
+
34
+ demo = gr.Interface(
35
+ fn=generate,
36
+ inputs=[gr.inputs.Textbox(lines=5, label="Input Text"),
37
+ gr.Slider(label="Min Length", minimum=10, maximum=50, value=10, step=5),
38
+ gr.Slider(label="Max Length", minimum=20, maximum=100, value=30, step=10),
39
+ gr.Number(label="Temperature/Randomness (ideally 1-10)", value=1.0)],
40
+ outputs=gr.outputs.Textbox(label="Generated Text"),
41
+ examples=examples,
42
+ title=title,
43
+ description=description,
44
+ article=article)
45
+
46
+
47
+ if __name__ == "__main__":
48
+ demo.launch()
requirements.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ gradio==3.16.1
2
+ torch==1.9.0
3
+ transformers==4.25.1