Qwen3-8B Attribution Best Candidate LoRA (v3.2) ⭐

All Novel Can Be Galgame — Agent 3: 角色归因

从候选角色中为目标对话选出最可能的说话人。 ChatGPT Image 2026年7月4日 12_42_39 基座: Qwen3-8B-Novel-Base-SFT | 方法: LoRA r=64 α=128 | 硬件: A800 80GB

项目地址:https://github.com/lin1753/novel2galgame

训练代码仓库:https://github.com/lin1753/novel-agent


任务

  • 输入: 候选角色列表 + 上下文(含目标对话)
  • 输出: {"best_candidate": "角色名", "uncertain": true/false}
  • 测试集: 30 条

示例

输入:
  候选: 林秋、苏晚、陈遥
  上下文:
    [1] "你今天又迟到了。"苏晚把笔放下。
    [2] 我把书包丢到桌上,没接话。
    [3] 陈遥坐在后排憋笑。
    [4] "路上堵车。" 【目标对话】

输出:
  {"best_candidate": "林秋", "uncertain": true}
  ← 第2句"我把书包丢到桌上"暗示"我"说了[4],陈遥在憋笑排除,苏晚说了[1];证据不足,不确定

加载

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-attribution-assist-lora"
)

训练

基座: Qwen3-8B-Novel-Base-SFT (Stage1 全参 SFT, 72K 小说续写数据)
方法: LoRA (r=64, α=128, dropout=0.05)
数据: 495 条 (465 train / 30 val / 30 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

版本历史

版本 数据量 epochs LR JSON解析 最佳候选准确率 说明
零基座 — — — 0% 0% Qwen3-8B 原始完全不会
+Stage1 — — — 3.3% 0% 读完 669 本也不会
v1 66 3 2e-4 100% 14.3% 端到端(排序+打分)
v2 240 3 2e-4 100% 33.3% 只选最佳+不确定
v3.1 240 5 1e-4 100% 43.3% Clean 标注
v3.2 ⭐ 465 5 1e-4 100% 86.7% 候选清洁 + 数据增强 +94%

v3.1验证集指标如下

570d3a273788c14c489e0b29bacda843

结论

  • **零基座 / +Stage1 全 0%**:不做 Agent SFT 就不会角色归因 ✅
  • v3.2 大幅跃升:acc 43.3%→86.7%(**+43.4pp**)
  • 扩标效果显著:240→465 条后准确率翻倍,说明该任务对数据量敏感
  • v1→v2 +19pp, v2→v3.1 +10pp, v3.1→v3.2 +43.4pp
Downloads last month
15
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for mikuhhn1239/qwen3-8b-attribution-assist-lora

Finetuned
Qwen/Qwen3-8B
Adapter
(3)
this model