Gpt2 Chinese Poem
模型简介
该模型用于生成中国古诗,基于GPT2架构,通过80万首古诗训练而成。
模型特点
古诗生成
能够生成符合中国古诗风格和韵律的文本。
扩展词汇表
处理词汇表外的词,添加了古诗语料中出现次数大于或等于100的汉字。
多框架支持
支持通过UER-py和TencentPretrain进行预训练和扩展。
模型能力
文本生成
古诗创作
使用案例
文学创作
古诗生成
根据给定的开头生成完整的古诗。
生成符合古诗风格和韵律的文本。
教育
古诗学习
用于学习和理解古诗的创作风格和韵律。
🚀 中文古诗GPT2模型
本模型用于生成中文古诗,基于预训练技术,能有效助力古诗创作,为古诗爱好者和相关研究人员提供便利。
🚀 快速开始
本模型可直接通过文本生成管道使用,以下是不同参数设置下的使用示例。
✨ 主要特性
- 多工具预训练支持:该模型可通过 UER-py 进行预训练,此工具在 这篇论文 中被介绍。此外,还能使用 TencentPretrain 进行预训练,该工具在 这篇论文 中被提及,它继承了 UER-py 以支持参数超过十亿的模型,并将其扩展为多模态预训练框架。
- 多途径下载:可以从 UER-py 模型库页面、GPT2-Chinese Github 页面 下载该模型,也可通过 HuggingFace 从 gpt2-chinese-poem 链接下载。
- 特殊标记处理:由于在 pipelines.py 中使用了参数 skip_special_tokens,像 [SEP]、[UNK] 这样的特殊标记会被删除,因此托管推理 API(右侧)的输出结果可能无法正确显示。
📦 安装指南
本模型使用前需安装相关依赖库,可通过以下方式安装:
pip install transformers
💻 使用示例
基础用法
当参数 skip_special_tokens 为 True 时:
>>> from transformers import BertTokenizer, GPT2LMHeadModel,TextGenerationPipeline
>>> tokenizer = BertTokenizer.from_pretrained("uer/gpt2-chinese-poem")
>>> model = GPT2LMHeadModel.from_pretrained("uer/gpt2-chinese-poem")
>>> text_generator = TextGenerationPipeline(model, tokenizer)
>>> text_generator("[CLS]梅 山 如 积 翠 ,", max_length=50, do_sample=True)
[{'generated_text': '[CLS]梅 山 如 积 翠 , 丛 竹 隠 疏 花 。 水 影 落 寒 濑 , 竹 声 随 暮 鸦 。 茅 茨 数 间 屋 , 烟 火 两 三 家 。 安 得 携 琴 酒 , 相 逢 烟 雨 赊 。 向 湖 边 过 , 偏 怜 雪 里 看 。 浮 峦 如 画 出 , 远 树 与 天 连 。 月 上 僧 房 静 , 风 回 萤 火 寒 。 幽 情 何 可 写 , 赖 有 子 期 弹 。 棠 真'}]
高级用法
当参数 skip_special_tokens 为 False 时:
>>> from transformers import BertTokenizer, GPT2LMHeadModel,TextGenerationPipeline
>>> tokenizer = BertTokenizer.from_pretrained("uer/gpt2-chinese-poem")
>>> model = GPT2LMHeadModel.from_pretrained("uer/gpt2-chinese-poem")
>>> text_generator = TextGenerationPipeline(model, tokenizer)
>>> text_generator("[CLS]梅 山 如 积 翠 ,", max_length=100, do_sample=True)
[{'generated_text': '[CLS]梅 山 如 积 翠 , 秀 出 何 其 雄 。 矫 矫 云 间 质 , 映 日 生 玲 珑 。 根 大 乱 石 结 , 枝 高 青 云 蒙 。 常 因 风 露 晚 , 隠 映 瑶 台 中 。 忽 闻 山 石 裂 , 万 里 吹 天 风 。 又 觉 此 身 高 , 迥 出 凡 境 空 。 清 影 落 潭 水 , 暗 香 来 逈 峰 。 却 寻 白 太 白 , 月 影 摇 江 东 。 [SEP] 而 非'}]
📚 详细文档
训练数据
训练数据包含 80 万首中文古诗,这些古诗由 chinese-poetry 和 Poetry 项目收集。
训练过程
该模型在 腾讯云 上通过 UER-py 进行预训练。我们以 128 的序列长度进行 200,000 步的预训练,使用扩展词汇表来处理未登录词,将在古诗语料库中出现次数大于或等于 100 的汉字添加到词汇表中。
数据预处理命令:
python3 preprocess.py --corpus_path corpora/poem.txt \
--vocab_path models/google_zh_poem_vocab.txt \
--dataset_path poem_dataset.pt --processes_num 16 \
--seq_length 128 --data_processor lm
预训练命令:
python3 pretrain.py --dataset_path poem_dataset.pt \
--vocab_path models/google_zh_poem_vocab.txt \
--config_path models/gpt2/config.json \
--output_model_path models/poem_gpt2_model.bin \
--world_size 8 --gpu_ranks 0 1 2 3 4 5 6 7 \
--total_steps 200000 --save_checkpoint_steps 50000 --report_steps 1000 \
--learning_rate 5e-4 --batch_size 64
最后,将预训练模型转换为 Huggingface 格式:
python3 scripts/convert_gpt2_from_uer_to_huggingface.py --input_model_path models/poem_gpt2_model.bin-200000 \
--output_model_path pytorch_model.bin \
--layers_num 12
引用信息
@article{radford2019language,
title={Language Models are Unsupervised Multitask Learners},
author={Radford, Alec and Wu, Jeff and Child, Rewon and Luan, David and Amodei, Dario and Sutskever, Ilya},
year={2019}
}
@article{zhao2019uer,
title={UER: An Open-Source Toolkit for Pre-training Models},
author={Zhao, Zhe and Chen, Hui and Zhang, Jinbin and Zhao, Xin and Liu, Tao and Lu, Wei and Chen, Xi and Deng, Haotang and Ju, Qi and Du, Xiaoyong},
journal={EMNLP-IJCNLP 2019},
pages={241},
year={2019}
}
@article{zhao2023tencentpretrain,
title={TencentPretrain: A Scalable and Flexible Toolkit for Pre-training Models of Different Modalities},
author={Zhao, Zhe and Li, Yudong and Hou, Cheng and Zhao, Jing and others},
journal={ACL 2023},
pages={217},
year={2023}
}
📄 许可证
文档中未提及许可证相关信息。
Phi 2 GGUF
其他
Phi-2是微软开发的一个小型但强大的语言模型,具有27亿参数,专注于高效推理和高质量文本生成。
大型语言模型 支持多种语言
P
TheBloke
41.5M
205
Roberta Large
MIT
基于掩码语言建模目标预训练的大型英语语言模型,采用改进的BERT训练方法
大型语言模型 英语
R
FacebookAI
19.4M
212
Distilbert Base Uncased
Apache-2.0
DistilBERT是BERT基础模型的蒸馏版本,在保持相近性能的同时更轻量高效,适用于序列分类、标记分类等自然语言处理任务。
大型语言模型 英语
D
distilbert
11.1M
669
Llama 3.1 8B Instruct GGUF
Meta Llama 3.1 8B Instruct 是一个多语言大语言模型,针对多语言对话用例进行了优化,在常见的行业基准测试中表现优异。
大型语言模型 英语
L
modularai
9.7M
4
Xlm Roberta Base
MIT
XLM-RoBERTa是基于100种语言的2.5TB过滤CommonCrawl数据预训练的多语言模型,采用掩码语言建模目标进行训练。
大型语言模型 支持多种语言
X
FacebookAI
9.6M
664
Roberta Base
MIT
基于Transformer架构的英语预训练模型,通过掩码语言建模目标在海量文本上训练,支持文本特征提取和下游任务微调
大型语言模型 英语
R
FacebookAI
9.3M
488
Opt 125m
其他
OPT是由Meta AI发布的开放预训练Transformer语言模型套件,参数量从1.25亿到1750亿,旨在对标GPT-3系列性能,同时促进大规模语言模型的开放研究。
大型语言模型 英语
O
facebook
6.3M
198
1
基于transformers库的预训练模型,适用于多种NLP任务
大型语言模型
Transformers

1
unslothai
6.2M
1
Llama 3.1 8B Instruct
Llama 3.1是Meta推出的多语言大语言模型系列,包含8B、70B和405B参数规模,支持8种语言和代码生成,优化了多语言对话场景。
大型语言模型
Transformers 支持多种语言

L
meta-llama
5.7M
3,898
T5 Base
Apache-2.0
T5基础版是由Google开发的文本到文本转换Transformer模型,参数规模2.2亿,支持多语言NLP任务。
大型语言模型 支持多种语言
T
google-t5
5.4M
702
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers 支持多种语言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers 英语

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统 中文
R
uer
2,694
98