File size: 1,823 Bytes
f3f6a96
 
 
 
 
 
406c76e
f3f6a96
 
 
 
 
 
 
 
 
 
 
0f3e1af
f3f6a96
 
 
 
 
 
0f3e1af
f3f6a96
99c1bfa
 
f3f6a96
 
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
import gradio as gr
from transformers import T5Tokenizer,AutoModelForCausalLM

tokenizer = T5Tokenizer.from_pretrained("rinna/japanese-gpt2-small")
model3 = AutoModelForCausalLM.from_pretrained("./models")
model3.to("cpu")
descriptions = "文書を入力すると、その後に、サザンオールスターズ風の歌詞を生成します"

def getarate_sentences3(seed_sentence):
    x = tokenizer.encode(seed_sentence, return_tensors="pt", add_special_tokens=False)  # 入力
    x = x.cpu()  # CPU対応
    y = model3.generate(x, # 入力
                       min_length=50,  # 文章の最小長
                       max_length=100,  # 文章の最大長
                       do_sample=True,   # 次の単語を確率で選ぶ
                       top_k=50, # Top-Kサンプリング
                       top_p=0.95,  # Top-pサンプリング
                       temperature=1.2,  # 確率分布の調整
                       num_return_sequences=1,  # 生成する文章の数
                       pad_token_id=tokenizer.pad_token_id,  # パディングのトークンID
                       bos_token_id=tokenizer.bos_token_id,  # テキスト先頭のトークンID
                       eos_token_id=tokenizer.eos_token_id,  # テキスト終端のトークンID
                       bad_word_ids=[[tokenizer.unk_token_id]]  # 生成が許可されないトークンID
                       )  
    generated_sentences = tokenizer.batch_decode(y, skip_special_tokens=True)  # 特殊トークンをスキップして文章に変換
    return generated_sentences[0]

demo = gr.Interface(fn=getarate_sentences3, inputs=gr.Textbox(lines=3, placeholder="文章を入力してください"), outputs="text", title="Southern All Stars style lyrics", description=descriptions)


demo.launch()