Spaces:
Runtime error
Runtime error
Upload app.py
Browse files
app.py
ADDED
@@ -0,0 +1,115 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import clueai
|
2 |
+
import streamlit as st
|
3 |
+
def introduction():
|
4 |
+
st.markdown('''
|
5 |
+
# 全中文任务支持零样本学习模型
|
6 |
+
|
7 |
+
[PromptCLUE](https://github.com/clue-ai/PromptCLUE):支持最多中文任务的开源预训练模型
|
8 |
+
|
9 |
+
这个模型是基于1000亿token中文语料上预训练,并且在数百种任务上进行Prompt任务式训练。针对理解类任务,如分类、情感分析、抽取等,可以自定义标签体系;针对多种生成任务,可以进行采样自由生成。
|
10 |
+
|
11 |
+
## 模型描述
|
12 |
+
|
13 |
+
支持几十个不同类型的任务,具有较好的零样本学习能力和少样本学习能力。针对理解类任务,如分类、情感分析、抽取等,可以自定义标签体系;针对生成任务,可以进行采样自由生成。千亿中文token上大规模预训练,累计学习1.5万亿中文token,亿级中文任务数据上完成训练,训练任务超过150+。比base版平均任务提升7个点+;具有更好的理解、生成和抽取能力,并且支持文本改写、纠错、知识图谱问答。 实现了中文上的三大统一:统一模型框架,统一任务形式,统一应用方式。
|
14 |
+
|
15 |
+
- 统一模型框架:采用Text-to-Text的生成式预训练模型进行统一建模。
|
16 |
+
- 统一任务形式:Prompt统一不同的NLP任务间的差异,转化为统一的text-to-text数据形式。
|
17 |
+
- 统一应用方式:对目标任务形成拿来即用的模型,下游应用时都可转化为统一的prompt自适应方式,进行zero-shot/few-shot测试。
|
18 |
+
|
19 |
+
### 模型局限性及可能的偏差
|
20 |
+
|
21 |
+
我们的模型基于大规模NLP数据集(如[pCLUE](https://github.com/CLUEbenchmark/pCLUE)),各领域综合表现素质较高,但在某些垂直领域可能表现稍弱;
|
22 |
+
|
23 |
+
## 训练数据介绍
|
24 |
+
|
25 |
+
pCLUE:基于提示的大规模预训练数据集,用于多任务学习和零样本学习
|
26 |
+
|
27 |
+
### 目前已经有包含9个数据集:
|
28 |
+
|
29 |
+
```
|
30 |
+
1.单分类tnews
|
31 |
+
2.单分类iflytek
|
32 |
+
3.自然语言推理ocnli
|
33 |
+
4.语义匹配afqmc
|
34 |
+
5.指代消解-cluewsc2020
|
35 |
+
6.关键词识别-csl
|
36 |
+
7.阅读理解-自由式c3
|
37 |
+
8.阅读理解-抽取式cmrc2018
|
38 |
+
9.阅读理解-成语填空chid
|
39 |
+
```
|
40 |
+
|
41 |
+
### 字段说明及评价标准:
|
42 |
+
|
43 |
+
```
|
44 |
+
input:模型的输入
|
45 |
+
target:模型的输出
|
46 |
+
type:任务类型,阅读理解(mrc),分类(classify),生成(generate),自然语言推理(nli)
|
47 |
+
评价标准:阅读理解(em),分类(acc),生成(em),自然语言推理(acc)
|
48 |
+
answer_choices:选项(只有分类、推理类任务有)
|
49 |
+
```
|
50 |
+
|
51 |
+
## 数据评估及结果
|
52 |
+
|
53 |
+
效果对比--16类中文任务
|
54 |
+
|
55 |
+
| 任务类型 | PromptCLUE-base | PromptCLUE-large |
|
56 |
+
| :----------------------------: | :-------------: | :--------------: |
|
57 |
+
| **分数** Score | 63.47 | 70.55(+7.08) |
|
58 |
+
| 参数 Parameters | 220M | 770M |
|
59 |
+
| **理解任务**(acc,10类) | | |
|
60 |
+
| 分类 classify | 89.56 | 92.89 |
|
61 |
+
| 情感分析 emotion_analysis | 80.55 | 85.64 |
|
62 |
+
| 相似度计算 similar | 70.94 | 78.47 |
|
63 |
+
| 自然语言推理 nli | 78.00 | 86.67 |
|
64 |
+
| 指代消解 anaphora_resolution | 30.00 | 64.00 |
|
65 |
+
| 阅读理解 reading_comprehension | 71.69 | 84.78 |
|
66 |
+
| 关键词提取 keywords_extraction | 41.44 | 47.78 |
|
67 |
+
| 信息抽取 ner | 63.02 | 70.09 |
|
68 |
+
| 知识图谱问答 knowledge_graph | - | 53.11 |
|
69 |
+
| 中心词提取 Keyword_extraction | 66.50 | 71.50 |
|
70 |
+
| **生成任务**(rouge,6类) | | |
|
71 |
+
| 翻译(英中、中英) nmt | 55.92 | 59.67 |
|
72 |
+
| 摘要 summary | 31.71 | 34.48 |
|
73 |
+
| 问答 qa | 21.18 | 27.05 |
|
74 |
+
| 生成(文章、问题生成) | 35.86 | 39.87 |
|
75 |
+
| 改写 paraphrase | - | 57.68 |
|
76 |
+
| 纠错 correct | - | 93.35 |
|
77 |
+
|
78 |
+
|
79 |
+
''')
|
80 |
+
if __name__ == '__main__':
|
81 |
+
cl = clueai.Client('wTzinq_UcR-eYoS0iZuEc101001011')
|
82 |
+
st.markdown("# Hi! 🖐️🖐️🖐️\n"
|
83 |
+
"# 这是一个文本摘要在线生成工具\n"
|
84 |
+
"不知道如何使用\n?"
|
85 |
+
"很简单:只需要将文本复制到**文本框**中,再点击**生成**就可以了"
|
86 |
+
""
|
87 |
+
"")
|
88 |
+
phrase = '对于美方提出两国元首在巴厘岛举行会晤等涉华言论,在今天(10日)举行的中国外交部例行记者会上,发言人赵立坚表示,中美两国元首通过多种方式保持经常性联系。中方重视美方提出两国元首在巴厘岛举行会晤的建议,目前双方正就此保持沟通。中方对美政策立场是一贯���明确的,我们致力于同美方实现相互尊重、和平共处、合作共赢,同时坚定捍卫自身主权安全发展利益。'
|
89 |
+
st.markdown(f" **示例文本:**\n >{phrase} ")
|
90 |
+
st.markdown(f" **示例输出:**\n >外交部:中方重视美方提议两国元首巴厘岛会晤 ")
|
91 |
+
st.markdown("😊😊 \n **已经了解了?接下来开始文本你的文本摘要之旅吧!**")
|
92 |
+
text = st.text_area("在此输入",height=50)
|
93 |
+
# generate a prediction for a prompt
|
94 |
+
butt = st.button("生成")
|
95 |
+
if butt and text != "":
|
96 |
+
prompt = f'''
|
97 |
+
概括文章中心思想:{text}
|
98 |
+
摘要:?
|
99 |
+
'''
|
100 |
+
# print the predicted text
|
101 |
+
prediction = cl.generate(
|
102 |
+
model_name='clueai-large',
|
103 |
+
prompt=prompt)
|
104 |
+
st.markdown(f"**生成摘要:**\n > {prediction.generations[0].text}")
|
105 |
+
st.balloons()
|
106 |
+
st.write("\n")
|
107 |
+
st.write("\n")
|
108 |
+
st.write("\n")
|
109 |
+
st.write("\n")
|
110 |
+
click=1
|
111 |
+
c=st.button("模型介绍")
|
112 |
+
if c:
|
113 |
+
introduction()
|
114 |
+
|
115 |
+
|