一、引言(模型链接在正文里有)
● gpt2-chinese-poem:这是一个使用180MB的约80万首古诗词训练所得模型。使用这个模型可以生成和原诗不一样的相似的诗词。
静夜思(原版)AI生成版
床前看月光,床前看月光,
疑是地上霜。 清 辉 独 堪 赏 。
举头望山月,欲 持 一 尊 酒 ,
低头思故乡。谁 寄 千 里 想
(素材来自网络,侵删)
● 使用环境:
1、在写小说的时候,如果某角是文超公,就可以用这个模型生成相似的诗词。
2、可以通过生成相似的诗词,更加深入地理解诗词的押韵,和对词的方式
二、模型介绍
-
gpt2-chinese-poem模型summary:
config.json
和tokenizer_config.json
包含了模型和分词器的配置信息。
pytorch_model.bin
、flax_model.msgpack
和tf_model.h5
分别包含了不同框架(PyTorch、Flax 和 TensorFlow)下的模型权重。
special_tokens_map.json
包含了特殊 token 的映射。
vocab.txt
包含了模型的词汇表。
-
gpt2-chinese-poem模型sub-items:
config.json
:
- 作用:这个文件包含了模型的配置信息,例如层数、隐藏层大小、激活函数等。它定义了模型的架构。
- 用途:当你从预训练模型加载模型时,
config.json
会被用来初始化模型的结构。
flax_model.msgpack
:
- 作用:这个文件包含了用 Flax 框架保存的模型权重。Flax 是一个基于 JAX 的机器学习库。
- 用途:如果你使用 Flax 框架来加载和运行模型,这个文件会被用来加载模型的权重。
pytorch_model.bin
:
- 作用:这个文件包含了用 PyTorch 框架保存的模型权重。
- 用途:如果你使用 PyTorch 框架来加载和运行模型,这个文件会被用来加载模型的权重。
special_tokens_map.json
:
- 作用:这个文件包含了特殊 token 的映射,例如
[CLS]
、[SEP]
、[PAD]
等。这些特殊 token 在处理文本时非常重要。- 用途:当你加载分词器时,这个文件会被用来设置这些特殊 token 的 ID。
tf_model.h5
:
- 作用:这个文件包含了用 TensorFlow 框架保存的模型权重。
- 用途:如果你使用 TensorFlow 框架来加载和运行模型,这个文件会被用来加载模型的权重。
tokenizer_config.json
:
- 作用:这个文件包含了分词器的配置信息,例如使用的分词器类型(如 BERT、GPT-2 等)、是否使用下标等。
- 用途:当你加载分词器时,这个文件会被用来初始化分词器的配置。
vocab.txt
:
- 作用:这个文件包含了模型词汇表中的所有 token 及其对应的 ID。词汇表是分词器的基础,用于将文本转换为 token ID。
- 用途:当你加载分词器时,这个文件会被用来构建词汇表,从而能够将文本转换为模型可以理解的 token ID。
三、准备工作
模型名称 | 模型介绍 | 分享者 | 链接地址1 | 链接地址2 |
---|
1、诗词模型 | 使用180MB的约80万首古诗词训练所得。 | hhou435 | 百度网盘【7fev】 | GDrive |
2、配置
windows+pycharm+python:3.9+pip+虚拟环境
3、依赖包
pytorch+cuda+cudnn+tensorflow+transformers
( Transformers 4.2 1.0之前主要是处理文本,之后注重于图片和音像)
四、实操代码:
1、06poemto_cache.py
from transformers import GPT2LMHeadModel,AutoTokenizer
model_name = "uer/gpt2-chinese-poem"
cache_dir = "../model/uer/gpt2-chinese-poem" # 相对路径
GPT2LMHeadModel.from_pretrained(model_name,cache_dir=cache_dir)#下载模型
AutoTokenizer.from_pretrained(model_name,cache_dir=cache_dir)#下载分词工具
print(f"模型分词器已下载到:{cache_dir}")
2、06poem.py
from transformers import GPT2LMHeadModel,AutoTokenizer,TextGenerationPipeline
model_dir = r"B:\Ama_AI\modle\uer\gpt2-chinese-poem"#设置具体包含config.json的目录,本地调用只支持绝对路径
model =GPT2LMHeadModel.from_pretrained(model_dir,local_files_only=True)
tokenizer = AutoTokenizer.from_pretrained(model_dir)#加载模型和分词器
text_generator = TextGenerationPipeline(model, tokenizer,device="cuda")
result = text_generator("[CLS] 窗前明月光", max_length=24, do_sample=True)
print(result)
3、生成效果: