File size: 5,739 Bytes
cdd2f8b 5dfaf44 cdd2f8b 5dfaf44 cdd2f8b 5dfaf44 cdd2f8b 5dfaf44 cdd2f8b b16fa16 cdd2f8b b16fa16 cdd2f8b a3040b1 cdd2f8b f1aa805 cdd2f8b 5dfaf44 cdd2f8b 5dfaf44 cdd2f8b 5dfaf44 cdd2f8b 5dfaf44 cdd2f8b 5dfaf44 cdd2f8b 5dfaf44 cdd2f8b 5dfaf44 cdd2f8b 5dfaf44 cdd2f8b 65af2a9 5dfaf44 cdd2f8b 5dfaf44 cdd2f8b 5dfaf44 cdd2f8b 5dfaf44 cdd2f8b 5dfaf44 cdd2f8b 5dfaf44 cdd2f8b 5dfaf44 cdd2f8b 7b2890d |
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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
---
language:
- en
- zh
tags:
- GENIUS
- conditional text generation
- sketch-based text generation
- data augmentation
license: apache-2.0
datasets:
- c4
- beyond/chinese_clean_passages_80m
widget:
- text: "[MASK]酸菜鱼火锅[MASK]很美味,味道绝了[MASK]周末真开心[MASK]"
example_title: "草稿1"
- text: "自然语言处理[MASK]谷歌公司[MASK]通用人工智能[MASK]"
example_title: "草稿2"
- text: "[MASK]疫情[MASK]公园[MASK]散步[MASK]"
example_title: "草稿3"
inference:
parameters:
max_length: 100
num_beams: 3
do_sample: True
---
# GENIUS: generating text using sketches!
- **Paper: [GENIUS: Sketch-based Language Model Pre-training via Extreme and Selective Masking for Text Generation and Augmentation](https://arxiv.org/abs/2211.10330)**
- **GitHub: [GENIUS, Pre-training/Data Augmentation Tutorial](https://github.com/beyondguo/genius)**
**GENIUS中文版** 可以根据你给出的一个**草稿**进行填词造句扩写,草稿可以是:
- 关键词组合,例如“今天[MASK]篮球[MASK]学校[MASK]”
- 短语组合,例如“自然语言处理[MASK]谷歌[MASK]通用人工智能[MASK]”
- 短句子组合,例如“我昨天做了一个梦[MASK]又遇见了她[MASK]曾经那段时光让人怀恋[MASK]”
- 以上的混合
### How to use / 如何使用
```python
# genius-chinese
from transformers import BertTokenizer, BartForConditionalGeneration, Text2TextGenerationPipeline
checkpoint = 'beyond/genius-base-chinese'
tokenizer = BertTokenizer.from_pretrained(checkpoint)
genius_model = BartForConditionalGeneration.from_pretrained(checkpoint)
genius_generator = Text2TextGenerationPipeline(genius_model, tokenizer, device=0)
genius_generator
sketchs = [
"今天[MASK]篮球[MASK]学校[MASK]",
"自然语言处理[MASK]谷歌[MASK]通用人工智能[MASK]",
"我昨天做了一个梦[MASK]又遇见了她[MASK]曾经那段时光让人怀恋[MASK]",
"[MASK]疫情[MASK]公园[MASK]散步[MASK]",
"[MASK]酸菜鱼火锅[MASK]很美味,味道绝了[MASK]周末真开心[MASK]"
""
]
for sketch in sketchs:
print('input sketch:\n>>> ', sketch)
print('genius-chinese output:\n>>> ',genius_generator(sketch, max_length=100, do_sample=True, num_beams=3)[0]['generated_text'].replace(' ',''),'\n')
```
## Model variations / GENIUS其他版本
| Model | #params | Language | comment|
|------------------------|--------------------------------|-------|---------|
| [`genius-large`](https://huggingface.co/beyond/genius-large) | 406M | English | The version used in paper |
| [`genius-large-k2t`](https://huggingface.co/beyond/genius-large-k2t) | 406M | English | keywords-to-text |
| [`genius-base`](https://huggingface.co/beyond/genius-base) | 139M | English | smaller version |
| [`genius-base-ps`](https://huggingface.co/beyond/genius-base) | 139M | English | pre-trained both in paragraphs and short sentences |
| [`genius-base-chinese`](https://huggingface.co/beyond/genius-base-chinese) | 116M | 中文 | 在一千万纯净中文段落上预训练|
## Comparison / 效果对比
The following comes the comparison between [BART-base-chinese](https://huggingface.co/fnlp/bart-base-chinese) and our proposed [GENIUS-base-chinese](https://huggingface.co/beyond/genius-base-chinese).\
下面对比了[BART-base-chinese](https://huggingface.co/fnlp/bart-base-chinese)和我们提出的**GENIUS-base-chinese**在填词造句方面的表现:
```
input sketch:
>>> 今天[MASK]篮球[MASK]上海财经大学[MASK]
BART-chinese output:
>>> 今天的篮球是上海财经大学篮球
GENIUS-chinese output:
>>> 今天,我们邀请到了中国篮球联盟主席、上海财经大学校长孙建国先生作为主题发言。
input sketch:
>>> 自然语言处理[MASK]谷歌[MASK]通用人工智能[MASK]
BART-chinese output:
>>> 自然语言处理是谷歌的通用人工智能技术
GENIUS-chinese output:
>>> 自然语言处理是谷歌在通用人工智能领域的一个重要研究方向,其目的是为了促进人类智能的发展。
input sketch:
>>> 我昨天做了一个梦[MASK]又遇见了她[MASK]曾经那段时光让人怀恋[MASK]
BART-chinese output:
>>> 我昨天做了一个梦今天又遇见了她我曾经那段时光让人怀恋不已
GENIUS-chinese output:
>>> 我昨天做了一个梦,梦见了我的妈妈,又遇见了她,我知道她曾经那段时光让人怀恋,但是现在,我不知道该怎么回事了,我只是想告诉她,不要再回去了。
input sketch:
>>> [MASK]疫情[MASK]公园[MASK]漫步[MASK]
BART-chinese output:
>>> 在疫情防控公园内漫步徜徉
GENIUS-chinese output:
>>> 为了防止疫情扩散,公园内还设置了漫步区。
input sketch:
>>> [MASK]酸菜鱼火锅[MASK]很美味,味道绝了[MASK]周末真开心[MASK]
BART-chinese output:
>>> 这酸菜鱼火锅真的很美味,味道绝了这周末真开心啊
GENIUS-chinese output:
>>> 这个酸菜鱼火锅真的很美味,味道绝了,吃的时间也长了,周末真开心,吃完以后就回家了,很满意的一次,很喜欢的一个品牌。
```
可以看出,BART只能填补简单的一些词,无法对这些片段进行很连贯的连接,而GENIUS则可以扩写成连贯的句子甚至段落。
---
If you find our paper/code/demo useful, please cite our paper:
```
@article{guo2022genius,
title={GENIUS: Sketch-based Language Model Pre-training via Extreme and Selective Masking for Text Generation and Augmentation},
author={Guo, Biyang and Gong, Yeyun and Shen, Yelong and Han, Songqiao and Huang, Hailiang and Duan, Nan and Chen, Weizhu},
journal={arXiv preprint arXiv:2211.10330},
year={2022}
}
``` |