File size: 3,630 Bytes
260992b
 
 
145c8a7
 
 
 
 
 
 
 
f0eb52a
 
 
 
 
 
 
145c8a7
 
 
 
1f5f1b1
 
 
 
145c8a7
1f5f1b1
 
 
145c8a7
 
 
 
 
1f5f1b1
145c8a7
1f5f1b1
145c8a7
 
 
 
8790908
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
801e6ad
7bb1e39
 
8790908
 
8e20523
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import gradio as gr




import torch
from transformers import AutoTokenizer
from transformers import T5Tokenizer, T5ForConditionalGeneration

# tokenizer = T5Tokenizer.from_pretrained("ClueAI/PromptCLUE-base")
# model = T5ForConditionalGeneration.from_pretrained("ClueAI/PromptCLUE-base")
# tokenizer = T5Tokenizer.from_pretrained("ClueAI/PromptCLUE-base-v1-5")
# model = T5ForConditionalGeneration.from_pretrained("ClueAI/PromptCLUE-base-v1-5")



tokenizer = T5Tokenizer.from_pretrained("ClueAI/ChatYuan-large-v1")
model = T5ForConditionalGeneration.from_pretrained("ClueAI/ChatYuan-large-v1")

device = torch.device('cpu')
model.to(device)

def preprocess(text):
  text = text.replace("\n", "\\n").replace("\t", "\\t")
  return text
 
def postprocess(text):
  return text.replace("\\n", "\n").replace("\\t", "\t")
 
def answer(text, sample=True, top_p=1, temperature=0.7):
  '''sample:是否抽样。生成任务,可以设置为True;
  top_p:0-1之间,生成的内容越多样'''
  text = preprocess(text)
  encoding = tokenizer(text=[text], truncation=True, padding=True, max_length=768, return_tensors="pt").to(device) 
  if not sample:
    out = model.generate(**encoding, return_dict_in_generate=True, output_scores=False, max_new_tokens=512, num_beams=1, length_penalty=0.6)
  else:
    out = model.generate(**encoding, return_dict_in_generate=True, output_scores=False, max_new_tokens=512, do_sample=True, top_p=top_p, temperature=temperature, no_repeat_ngram_size=3)
  out_text = tokenizer.batch_decode(out["sequences"], skip_special_tokens=True)
  return postprocess(out_text[0])


#iface = gr.Interface(fn=answer, inputs="text", outputs="text")
examples = [
    ["""摘要这段话: 
     现在乌军的迫击炮都可以开始轰击库皮扬斯克的俄军目标了,双方相距只有几公里。
    最重要的是该地区俄军背后就是奥斯科尔河-北顿涅茨河。而为了确保第聂伯河上赫尔松城的后勤保障,俄军已经把舟桥部队主力调到赫尔松去了,现在是远水解不了近渴。
    乌军很有可能暂时不会直接攻击伊久姆城区,现在还是要先拿下库皮扬斯克和奥斯科尔河上的两座桥梁。
    切断俄军从别尔哥罗德向库皮扬斯克的物资输送,切断库皮扬斯克-伊久姆公路,断其粮道。
    现在要看俄军有没有预备队。库皮扬斯克没援军的话大概率守不住。但是现在打了三天,俄军还没有援军抵达战场。
    现在,俄军最主要任务是守住库皮扬斯克,同时要确保库皮扬斯克-伊久姆高速公路的安全。
    """],
    ["""翻译这段话到英文:
     在北京冬奥会自由式滑雪女子坡面障碍技巧决赛中,中国选手谷爱凌夺得银牌。祝贺谷爱凌!今天上午,自由式滑雪女子坡面障碍技巧决赛举行。决赛分三轮进行,取选手最佳成绩排名决出奖牌。第一跳,中国选手谷爱凌获得69.90分。在12位选手中排名第三。完成动作后,谷爱凌又扮了个鬼脸,甚是可爱。第二轮中,谷爱凌在道具区第三个障碍处失误,落地时摔倒。获得16.98分。网友:摔倒了也没关系,继续加油!在第二跳失误摔倒的情况下,谷爱凌顶住压力,第三跳稳稳发挥,流畅落地!获得86.23分!此轮比赛,共12位选手参赛,谷爱凌第10位出场。网友:看比赛时我比谷爱凌紧张,加油!
     """],
]

iface = gr.Interface(
    fn=answer,
    inputs=gr.Textbox(lines=5, label="Input Text"),
    outputs=gr.Textbox(label="Generated Text"),
    examples=examples
)
iface.launch()