本项目为重庆大学自然语言处理课程实验,旨在基于 GPT2 预训练模型实现中文诗歌的生成。项目支持加载 HuggingFace 预训练权重,进行多种微调训练,并提供多种生成策略(贪心、top-k、top-p、beam search、藏头诗等),并将训练好的模型在ROUGE1和GOUGE2上面进行评估。
poem-generate/
├── config.py # 配置文件,定义模型结构参数
├── datasets.py # 数据集处理与加载
├── model/
│ ├── gpt2.py # GPT2模型结构与权重加载
│ ├── poem_gpt.py # 封装诗歌生成模型与生成方法
│ └── base_gpt # 存储GPTPreTrainedModel的配置文件
├── scripts/
│ ├── run_experiments.py # 实验批量运行脚本
│ └── generate_res.py # 生成诗歌结果脚本
├── train.py # 训练主程序
├── generate.py # 交互式生成诗歌脚本
├── test.py # 评测与ROUGE分数计算
├── data/ # 数据集与中间数据
├── result/ # 训练日志与生成结果
├── main.ipynb # 数据分析与预处理notebook
├── exp4.ipynb # 生成与评测实验notebook
├── ori.ipynb # 原始的基于LSTM生成模型notebook
└── test.ipynb # 生成与评测notebook
data/clear_data.npy。cache/bert-tokenizer。cache/pretrained_model。python train.py --epochs 20 --batch_size 16 --lr 1e-4 --use_gpu
--poem_path、--epochs、--batch_size、--lr、--use_gpu、--use_lora 等。result/ 目录下。python generate.py --use_gpu
输入诗句前缀,模型将自动生成后续内容。导入不同的模型可以生成不同类型的诗歌。也支持不同的生成策略的指定。
可参考 scripts/generate_res.py,批量生成多首诗歌并保存。
详见 model/poem_gpt.py 中各生成方法实现。
test.py 自动评测不同生成方法的结果。如有问题请联系课程助教或在 Issues 区留言。
实验目的:掌握预训练语言模型的微调与文本生成方法,提升中文自然语言生成的工程实践能力。
本项目为重庆大学自然语言处理课程实验,旨在基于 GPT2 预训练模型实现中文诗歌的生成。项目支持加载 HuggingFace 预训练权重,进行多种微调训练,并提供多种生成策略(贪心、top-k、top-p、beam search、藏头诗等),并将训练好的模型在ROUGE1和GOUGE2上面进行评估。
poem-generate/
├── config.py # 配置文件,定义模型结构参数
├── datasets.py # 数据集处理与加载
├── model/
│ ├── gpt2.py # GPT2模型结构与权重加载
│ ├── poem_gpt.py # 封装诗歌生成模型与生成方法
│ └── base_gpt # 存储GPTPreTrainedModel的配置文件
├── scripts/
│ ├── run_experiments.py # 实验批量运行脚本
│ └── generate_res.py # 生成诗歌结果脚本
├── train.py # 训练主程序
├── generate.py # 交互式生成诗歌脚本
├── test.py # 评测与ROUGE分数计算
├── data/ # 数据集与中间数据
├── result/ # 训练日志与生成结果
├── main.ipynb # 数据分析与预处理notebook
├── exp4.ipynb # 生成与评测实验notebook
├── ori.ipynb # 原始的基于LSTM生成模型notebook
└── test.ipynb # 生成与评测notebook
data/clear_data.npy。cache/bert-tokenizer。cache/pretrained_model。python train.py --epochs 20 --batch_size 16 --lr 1e-4 --use_gpu
--poem_path、--epochs、--batch_size、--lr、--use_gpu、--use_lora 等。result/ 目录下。python generate.py --use_gpu
输入诗句前缀,模型将自动生成后续内容。导入不同的模型可以生成不同类型的诗歌。也支持不同的生成策略的指定。
可参考 scripts/generate_res.py,批量生成多首诗歌并保存。
详见 model/poem_gpt.py 中各生成方法实现。
test.py 自动评测不同生成方法的结果。如有问题请联系课程助教或在 Issues 区留言。
实验目的:掌握预训练语言模型的微调与文本生成方法,提升中文自然语言生成的工程实践能力。