File size: 2,677 Bytes
4d40495
 
 
d7735ce
 
4d40495
d7735ce
4d40495
 
 
 
 
 
 
 
 
d7735ce
 
2f9c492
 
d7735ce
 
 
 
 
9288678
d7735ce
 
 
131353d
f2f33b6
d7735ce
 
131353d
2f9c492
131353d
38359c7
d7735ce
4d40495
 
6163af6
4d40495
 
131353d
 
 
 
b8b622c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import gradio as gr
from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline

pretrained_model = "datificate/gpt2-small-spanish"
tokenizer = AutoTokenizer.from_pretrained(pretrained_model, use_fast=True)
sonnets_tuned_model = 'hackathon-pln-es/gpt2-small-spanish-disco-poetry'
sonnets_pipe = pipeline('text2text-generation', model=sonnets_tuned_model, tokenizer=tokenizer)

def make_new_sonnet(prompt, max_lenght):
    ouputs = sonnets_pipe(prompt, max_length=max_lenght, 
                  num_beams=5, 
                  early_stopping=True, 
                  repetition_penalty=20.0, 
                  num_return_sequences=1)
    return ouputs[0]['generated_text']


description = """
<p>Este experimento pretende poner a prueba la capacidad de un modelo de inteligencia artificial para encontrar patrones en la hechicería del lenguaje poético en español.
Algo fascinante de lo que Borges habla en una conferencia de su Arte Poética: <i>'Uso la palabra «modelo» porque las metáforas que voy a citar, aunque parezcan muy distintas a la imaginación, para un lógico serían casi idénticas. Así que podríamos hablar de ellas como ecuaciones.'</i>
"""
article = """
<p>
<h3>¿Por qué sonetos?</h3>
Este experimento se basa en un modelo gpt-2 entrenado con un corpus exclusivo de sonetos del siglo 15 al 20 en español.
La elección de los sonetos obedece a una razón fundamental: su estilo y métrica específica, buscando entre otras, tener consistencia en la experimentación.
</p>
<p style='text-align: center'> 👉 Don't miss this other cool space based on different styles of poetry in spanish: <a href='https://huggingface.co/spaces/hackathon-pln-es/poem-generation-es' target='_blank'>poem-generation-es</a> 👈 </p>
"""
examples = [
    ['al despertar el dinosaurio todavía estaba ahí', 30 ],
    ['La inmensidad de tu imaginación', 140],
    ['con ansias de amores inflamada', 140]
]

iface = gr.Interface(fn=make_new_sonnet,
                      title= "Generador de poesía basada en sonetos en español",
                      description = description,
                      inputs=[
                              gr.inputs.Textbox(lines=2, placeholder="Escrbe algo para comenzar", label='Escribe algo para comenzar'),
                              gr.inputs.Slider(minimum = 20, maximum = 200, default = 140, step = 5, label='Salida máxima de caracteres')],
                      outputs=[
                               gr.outputs.Textbox(label="Tu poema"),
                              ],
                      article= article,
                      examples = examples
                     )
iface.launch(enable_queue=True)