Qwen2.5-3B-GuCheng
基于 Qwen2.5-3B-Instruct 微调的顾城风格现代诗生成模型。模型学习了诗人顾城的意象组合、语言节奏与精神气质,可生成短诗、中等篇幅、长诗等不同长度的现代诗。
模型概览
| 项目 | 说明 |
|---|---|
| 基础模型 | Qwen/Qwen2.5-3B-Instruct |
| 参数量 | 3B(BF16,约 5.76GB) |
| 训练方法 | QLoRA(4bit NF4 量化,rank=32, alpha=64) |
| 训练数据 | 顾城诗歌 183 首(去重后) |
| 硬件环境 | RTX 4060 Laptop 8GB VRAM |
训练数据说明
- 数据来源:自有中文诗集语料库
poetry_raw.jsonl中提取的全部顾城诗歌 - 数据规模:原始 193 首 → 去重后 183 首用于训练,10 首用于测试,10 首用于风格评测
- 训练集/测试集/风格评测集严格隔离,风格评测仅用于人工评估,不参与训练
- 风格化 System Prompt:
你是一位深谙顾城诗歌风格的现代诗人……
训练方法
- 量化:4bit NF4(
bitsandbytes),适配 8GB VRAM - LoRA:rank=32, alpha=64, dropout=0.05,
lora_target=all - 超参数:8 epoch,lr=2e-4,cosine 调度,warmup=0.1,cutoff_len=768
- 批次:per_device_batch=1 × grad_accum=8,梯度检查点开启,BF16 混合精度
- 采用较高 LoRA rank 与小数据集多轮迭代,充分捕捉顾城的个性化语言风格
风格特征
顾城诗歌以其独特的意象组合著称:自然的细腻观察(草、云、光、海水)、梦幻与现实交织的叙事、克制而富有张力的语言。本模型在生成中展现出以下特征:
- 大量自然意象(星、风、雨、阳光、海洋)
- 短句与留白,语言克制含蓄
- 想象与现实的自由转换
- 温情的观察视角与淡淡的孤独感
生成示例
示例一:短诗(≤6 行)
Prompt:请以《星》为题,创作一首短小的现代诗,不超过6行。
星
在三峡的寒冰下
鱼群栖息着
卵
几团细微的火
在扩大……
不久
整个江面将漂满春天
示例二:中等长度(10–15 行)
Prompt:请以《远方》为题,创作一首现代诗,大约10到15行。
我想去远处看看
伸出手——
让秋风撕裂
那布满绒毛的伪装
雪白、淡蓝
混合的云朵
正在漂浮
我该相信
那些橙黄色的鸟
会把我们
带向明天
明天属于明天
像海洋属于天空
我想到达
达到最深的海底
生活在透明的管中
小心地不呼吸
不使水流散
示例三:长诗(20 行以上)
Prompt:请以《我在世界的尽头等你》为题,创作一首较长的现代诗,20行以上。
——给杨玲
在秋天
一片朦胧的灰色
覆盖了大地
我还在想昨天
想那些陈旧的字句
想你
我想着你
像一棵树想邻近的另一棵树
我们之间有一条小溪
它流着
温热的泉水
我们分别在不同的岸上
各看各的风景
我看着你
大熊猫一样
模糊的脸
你看着我
眼睛里充满惊喜和泪
后来,太阳出来了
阳光在漆黑的海洋上
航行
我们走在一起
走了很久
什么也没说
最后,你轻轻地笑了
你说
这是我的幸福
也是你的幸福
快速开始
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "li134/Qwen2.5-3B-GuCheng"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
trust_remote_code=True,
torch_dtype="auto",
device_map="auto",
)
prompt = "请以《月光》为题,创作一首短小的现代诗,不超过6行。"
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(2 分片,共约 5.76GB)
- 也可使用 4bit 量化加载进一步降低显存需求
致谢
- 基础模型:Qwen/Qwen2.5-3B-Instruct
- 训练框架:LLaMA-Factory
- 量化:bitsandbytes / Transformers
- Downloads last month
- 202