mikuhhn1239/qwen3-8b-narrative-parsing-lora
216
Qwen3-8B Narrative Type Classification LoRA (v4) ⭐
All Novel Can Be Galgame — Agent 1: 叙事单元类型分类
输入已切分的叙事单元,为每个 unitid 标注类型。  基座: Qwen3-8B-Novel-Base-SFT | 方法: LoRA r=64 α=128 | 硬件: A800 80GB
项目地址:https://github.com/lin1753/novel2galgame
训练代码仓库:https://github.com/lin1753/novel-agent
任务
- 输入: 编号叙事单元
[1] "..." [2] "..." ... - 输出:
{"labels": [{"unit_id": "N", "type": "dialogue|narration|thought|action|scene_description"}]} - 测试集: 39 条
五种类型
示例
输入:
[1] "你怎么来了?"
[2] 她愣了一下。
[3] 其实我也不知道自己为什么会来。
输出:
{"labels": [
{"unit_id": "1", "type": "dialogue"},
{"unit_id": "2", "type": "action"},
{"unit_id": "3", "type": "thought"}
]}加载
from transformers import AutoModelForCausalLM
from peft import PeftModel
base = AutoModelForCausalLM.from_pretrained(
"mikuhhn1239/qwen3-8b-novel-base-sft",
torch_dtype="auto", device_map="auto",
)
model = PeftModel.from_pretrained(
base, "mikuhhn1239/qwen3-8b-narrative-parsing-lora"
)训练
基座: Qwen3-8B-Novel-Base-SFT (Stage1 全参 SFT, 72K 小说续写数据)
方法: LoRA (r=64, α=128, dropout=0.05)
数据: 616 条 (577 train / 39 val / 39 test)
框架: transformers Trainer + PEFT
优化器: AdamW (adamw_torch_fused), cosine schedule, warmup=5%
epoch: 5 | LR: 1e-4 | batch: 1×16(accum) | bf16 | max_length: 4096版本历史
v4 各类型准确率
v3.1验证集指标如下

结论
- 零基座 / +Stage1 全 0%:不做 Agent SFT 就不会叙事分类 ✅
- v3.2→v4 +3.3pp:8 卡 DDP 重训,1,526 个 unit 测试,凭更大 batch/更多通信推高上限
- 关键修复: 输入引号
""→「」+ maxnewtokens 256→1024
