Qwen2.5-3B-PoetryGen

基于 Qwen2.5-3B-Instruct 在自有中文古典诗歌数据集上微调的中文诗歌生成模型,支持古体诗、五言律诗、七言律诗、绝句等体裁的创作,并具备诗人风格模仿能力。

模型概览

项目 说明
基础模型 Qwen/Qwen2.5-3B-Instruct
参数量 3B(BF16,约 5.76GB)
训练方法 QLoRA(4bit NF4 量化,rank=16, alpha=32)+ DPO 强化学习
训练数据 20,001 首中国古典诗歌(来源:自有诗集数据,43,011 首去重筛选)
硬件环境 RTX 4060 Laptop 8GB VRAM

训练数据说明

  • 数据来源:自有中文诗集语料库 poetry_raw.jsonl(43,011 首古典诗歌,覆盖唐、宋等朝代多位诗人作品)
  • 数据规模:从中构建 20,001 条 SFT 样本(ShareGPT 格式),每条约含题目、体裁、作者与正文
  • 风格隔离:风格模仿评测集与训练集/测试集严格隔离,不混入训练数据
  • Prompt 示例请以《终南秋雪》为题,创作一首五言律诗。

训练方法

1. SFT 指令微调(QLoRA 4bit)

  • 量化:4bit NF4(bitsandbytes),有效降低显存占用,适配 8GB VRAM 笔记本
  • LoRA:rank=16, alpha=32, dropout=0.05,lora_target=all
  • 超参数:2 epoch,lr=2e-4,cosine 调度,warmup=0.1,cutoff_len=512
  • 批次:per_device_batch=1 × grad_accum=16,梯度检查点开启,BF16 混合精度

2. DPO 强化学习(偏好优化)

  • 使用 Qwen2.5-1.5B 诗歌判别模型对同一题目生成多首候选诗,按诗歌质量构造 31 组偏好对
  • 超参数:pref_beta=0.1,sigmoid 损失,5 epoch,lr=5e-5

生成示例

示例一:五言律诗

Prompt:请以《终南秋雪》为题,创作一首五言律诗。

高卧北窗下,
偶兹霁景清。
白云满山色,
独鸟去无声。
阴壑凝虚白,
寒郊澹馀明。
悠然无俗虑,
浩思起冥冥。

示例二:五言律诗

Prompt:请以《夏日题岫禅师房》为题,创作一首五言律诗。

闲室清阴在,
中轩纳远峰。
松花落酒满,
水月入茶浓。
独鹤归难见,
高僧礼不逢。
时将一瓢去,
何处访支公。

示例三:古体诗

Prompt:请以《修史亭三首》为题,创作一首古体诗。

何人开此亭,
置在修史间。
百代有遗业,
千钧无一闲。
孤峰出遥汉,
双涧落晴山。
自是尘外境,
岂关人事删。

示例四:风格模仿(李白)

Prompt:模仿李白的风格,创作一首古体诗,题目《出塞》。

汉将归天马,
胡儿落日愁。
关山万里静,
旌节五陵秋。
剑匣神珠润,
烽台战士休。
何当投笔赋,
归奏报边筹。

快速开始

from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "li134/Qwen2.5-3B-PoetryGen"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    trust_remote_code=True,
    torch_dtype="auto",
    device_map="auto",
)

prompt = "请以《秋夜》为题,创作一首五言律诗。"
messages = [{"role": "user", "content": prompt}]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to(model.device)

outputs = model.generate(
    **inputs,
    max_new_tokens=256,
    do_sample=True,
    temperature=0.9,
    top_p=0.9,
)
print(tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True))

硬件与资源

  • 训练硬件:NVIDIA RTX 4060 Laptop(8GB VRAM)+ 16GB RAM
  • 模型格式:BF16 safetensors(4 分片,共约 5.76GB)
  • 也可使用 4bit 量化加载进一步降低显存需求

致谢

Downloads last month
210
Safetensors
Model size
3B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for shikunpunk/Qwen2.5-3B-PoetryGen

Base model

Qwen/Qwen2.5-3B
Adapter
(1390)
this model