Qwen3-4B-LoRA-ZH-WebNovelty-v0.0

基于阿里巴巴 Qwen/Qwen3-4B,使用 LoRA 对中文网络小说写作任务进行微调,适合“场景+类型”指令下的创作。

模型概览

  • Base ModelQwen/Qwen3-4B
  • 微调框架:LoRA (Low-Rank Adaptation)
  • 微调任务:根据“场景”+“类型”指令生成小说段落

超参数配置

参数 说明
Batch Size 16 每卡样本数
Learning Rate 1e-4 学习率
Epochs 2 训练轮次
Packing Enabled 多条样本拼接,提升显存利用率
LoRA Rank 16 低秩分解秩
LoRA Alpha 8 LoRA 缩放因子
LoRA Dropout 0.05 LoRA 层 Dropout 概率
Warmup Ratio 0 预热步数占比
Weight Decay 0 权重衰减
Seed 114514 随机种子

数据格式

训练和验证使用 Instruction 格式的 JSONL:

{"prompt":"请根据下面的场景和类型创作一段文字:\n场景:古代茶馆相遇\n类型:dialogue","completion":"“这茶香真不错”,他轻声说道。"}
  • prompt:包括场景说明与创作类型
  • completion:对应要生成的小说段落

使用示例

from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel

# 1. 加载基础模型(原始 Instruct 或带 Adapter 的 repo)
base_model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen3-4B",
trust_remote_code=True,
load_in_8bit=True, # 量化方式可选
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(
"Qwen/Qwen3-4B",
trust_remote_code=True
)

# 2. 加载 LoRA Adapter
model = PeftModel.from_pretrained(
base_model,
"TanXS/Qwen3-4B-LoRA-ZH-WebNovelty-v0.0"
)

# 3. 推理示例
prompt = "请根据场景写一段旁白:夜色下的古城塔楼矗立…"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=200)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

Qwen3-4B-LoRA-ZH-WebNovelty-v0.0

Fine-tuned on Chinese web novel writing using LoRA, based on Alibaba’s Qwen/Qwen3-4B. Suitable for “Scene + Type” instruction-driven creative generation in Chinese.

Model Overview

  • Base Model: Qwen/Qwen3-4B
  • Fine-tuning Framework: LoRA (Low-Rank Adaptation)
  • Task: Generate novel passages given a “Scene” and “Type” instruction

Hyperparameters

Parameter Value Description
Batch Size 16 Samples per GPU
Learning Rate 1e-4 Learning rate
Epochs 2 Number of training epochs
Packing Enabled Concatenate multiple samples for efficiency
LoRA Rank 16 Low-rank decomposition rank
LoRA Alpha 8 Scaling factor for the LoRA update
LoRA Dropout 0.05 Dropout rate in LoRA layers
Warmup Ratio 0 No learning-rate warmup
Weight Decay 0 No weight decay
Seed 114514 Random seed

Data Format

Training and validation use an Instruction JSONL format:

{"prompt":"请根据下面的场景和类型创作一段文字:\n场景:古代茶馆相遇\n类型:dialogue","completion":"“这茶香真不错”,他轻声说道。"}
  • prompt: Includes scene description and creative type
  • completion: The target novel passage to generate

Usage Example

from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel

# 1. Load the base model (original Instruct or with Adapter)
base_model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen3-4B",
trust_remote_code=True,
load_in_8bit=True, # Optional quantization
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(
"Qwen/Qwen3-4B",
trust_remote_code=True
)

# 2. Load the LoRA Adapter
model = PeftModel.from_pretrained(
base_model,
"TanXS/Qwen3-4B-LoRA-ZH-WebNovelty-v0.0"
)

# 3. Inference example
prompt = "请根据场景写一段旁白:夜色下的古城塔楼矗立…"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=200)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for TanXS/Qwen3-4B-LoRA-ZH-WebNovelty-v0.0

Base model

Qwen/Qwen3-4B-Base
Finetuned
Qwen/Qwen3-4B
Finetuned
(101)
this model