mikuhhn1239 commited on
Commit
534003e
·
verified ·
1 Parent(s): 03dd6ae

v3.2: 引号修复 + 数据扩标 + max_tokens→1024

Browse files
Files changed (3) hide show
  1. README.md +23 -20
  2. adapter_config.json +47 -47
  3. adapter_model.safetensors +1 -1
README.md CHANGED
@@ -7,13 +7,13 @@ tags: [qwen3, lora, narrative-parsing, novel-analysis, chinese-novels]
7
  base_model: mikuhhn1239/qwen3-8b-novel-base-sft
8
  ---
9
 
10
- # Qwen3-8B Narrative Type Classification LoRA
11
 
12
  **All Novel Can Be Galgame** — Agent 1: 叙事单元类型分类
13
 
14
  输入已切分的叙事单元,为每个 unit_id 标注类型。
15
 
16
- > 历史版本 v3 可通过 `revision="v3"` 加载。
17
 
18
  基座: Qwen3-8B-Novel-Base-SFT | 方法: LoRA r=64 α=128 | 硬件: A800 80GB
19
 
@@ -22,13 +22,16 @@ base_model: mikuhhn1239/qwen3-8b-novel-base-sft
22
  ## 任务
23
  - 输入: 编号叙事单元 `[1] "..." [2] "..." ...`
24
  - 输出: `{"labels": [{"unit_id": "N", "type": "dialogue|narration|thought|action|scene_description"}]}`
 
25
 
26
  ### 五种类型
27
- - `dialogue` — 对话
28
- - `narration` — 叙述
29
- - `thought` — 心理
30
- - `action` — 动作
31
- - `scene_description` — 场景描写
 
 
32
 
33
  ### 示例
34
  ```
@@ -55,7 +58,7 @@ base = AutoModelForCausalLM.from_pretrained(
55
  torch_dtype="auto", device_map="auto",
56
  )
57
  model = PeftModel.from_pretrained(
58
- base, "mikuhhn1239/qwen3-8b-narrative-type-lora"
59
  )
60
  ```
61
 
@@ -63,24 +66,24 @@ model = PeftModel.from_pretrained(
63
  ```
64
  基座: Qwen3-8B-Novel-Base-SFT (Stage1 全参 SFT, 72K 小说续写数据)
65
  方法: LoRA (r=64, α=128, dropout=0.05)
66
- 数据: 388 条 (310 train / 39 val / 39 test),Clean 标注,预切分+人工标类型
67
  框架: transformers Trainer + PEFT
68
  优化器: AdamW (adamw_torch_fused), cosine schedule, warmup=5%
69
  epoch: 5 | LR: 1e-4 | batch: 1×16(accum) | bf16 | max_length: 4096
70
  ```
71
 
72
  ### 版本历史
73
-
74
- | 版本 | 数据量 | epochs | LR | JSON解析 | 关键指标 |
75
- |------|:---:|:---:|:---:|:---:|:---:|
76
- | 零基座 (Qwen3-8B) | — | — | — | 0% | acc 0% |
77
- | +Stage1 (全参SFT) | — | — | — | 0% | acc 0% |
78
- | v1 | 70 | 3 | 2e-4 | 57.1% | acc 25.0% |
79
- | v2 | 310 | 3 | 2e-4 | 2.6% | acc 63.6% |
80
- | v3 (LoRA) | 310 | 3 | 2e-4 | 2.6% | acc 63.6% |
81
- | **v3.1 (LoRA)** | **310** | **5** | **1e-4** | **2.6%** | **acc 63.6%** |
82
 
83
  ### 结论
84
 
85
- - **零基座 / +Stage1 全 0%**:不做 Agent SFT 就不会叙事类型分类 ✅
86
- - **narrative-type**: acc 63.6% 但有意义,JSON 解析 2.6% 是格式问题(输入中原始引号干扰),修了就是有效模型
 
 
7
  base_model: mikuhhn1239/qwen3-8b-novel-base-sft
8
  ---
9
 
10
+ # Qwen3-8B Narrative Type Classification LoRA (v3.2) ⭐
11
 
12
  **All Novel Can Be Galgame** — Agent 1: 叙事单元类型分类
13
 
14
  输入已切分的叙事单元,为每个 unit_id 标注类型。
15
 
16
+ > 历史版本 v3 / v3.1 可通过 `revision="v3"` 和 `revision="v3.1"` 加载。
17
 
18
  基座: Qwen3-8B-Novel-Base-SFT | 方法: LoRA r=64 α=128 | 硬件: A800 80GB
19
 
 
22
  ## 任务
23
  - 输入: 编号叙事单元 `[1] "..." [2] "..." ...`
24
  - 输出: `{"labels": [{"unit_id": "N", "type": "dialogue|narration|thought|action|scene_description"}]}`
25
+ - 测试集: 39 条
26
 
27
  ### 五种类型
28
+ | 类型 | 含义 |
29
+ |------|------|
30
+ | `dialogue` | 对话 |
31
+ | `narration` | 叙述 |
32
+ | `thought` | 心理 |
33
+ | `action` | 动作 |
34
+ | `scene_description` | 场景描写 |
35
 
36
  ### 示例
37
  ```
 
58
  torch_dtype="auto", device_map="auto",
59
  )
60
  model = PeftModel.from_pretrained(
61
+ base, "mikuhhn1239/qwen3-8b-narrative-parsing-lora"
62
  )
63
  ```
64
 
 
66
  ```
67
  基座: Qwen3-8B-Novel-Base-SFT (Stage1 全参 SFT, 72K 小说续写数据)
68
  方法: LoRA (r=64, α=128, dropout=0.05)
69
+ 数据: 616 条 (577 train / 39 val / 39 test)
70
  框架: transformers Trainer + PEFT
71
  优化器: AdamW (adamw_torch_fused), cosine schedule, warmup=5%
72
  epoch: 5 | LR: 1e-4 | batch: 1×16(accum) | bf16 | max_length: 4096
73
  ```
74
 
75
  ### 版本历史
76
+ | 版本 | 数据量 | epochs | LR | JSON解析 | 类型准确率 | 说明 |
77
+ |------|:---:|:---:|:---:|:---:|:---:|------|
78
+ | 零基座 | — | — | — | 0% | 0% | Qwen3-8B 原始完全不会 |
79
+ | +Stage1 | — | — | — | 0% | 0% | 读完 669 本也不会 |
80
+ | v1 | 56 | 3 | 2e-4 | 57.1% | 25.0% | 端到端(切分+分类) |
81
+ | v2 | 310 | 3 | 2e-4 | 2.6% | 63.6% | 只分类,引号冲突 |
82
+ | v3.1 | 310 | 5 | 1e-4 | 2.6% | 63.6% | max_new_tokens=256 截断 JSON |
83
+ | **v3.2** ⭐ | **577** | **5** | **1e-4** | **100%** | **69.5%** | **引号修复 + 扩标 + tokens→1024** |
 
84
 
85
  ### 结论
86
 
87
+ - **零基座 / +Stage1 全 0%**:不做 Agent SFT 就不会叙事分类 ✅
88
+ - **v3.2 突破**:JSON 解析 2.6%→100%,类型准确率 63.6%→69.5%(+5.9pp)
89
+ - **关键修复**: 输入引号 `""`→`「」` + max_new_tokens 256→1024
adapter_config.json CHANGED
@@ -1,48 +1,48 @@
1
- {
2
- "alora_invocation_tokens": null,
3
- "alpha_pattern": {},
4
- "arrow_config": null,
5
- "auto_mapping": null,
6
- "base_model_name_or_path": "Qwen/Qwen3-8B-Instruct",
7
- "bias": "none",
8
- "corda_config": null,
9
- "ensure_weight_tying": false,
10
- "eva_config": null,
11
- "exclude_modules": null,
12
- "fan_in_fan_out": false,
13
- "inference_mode": true,
14
- "init_lora_weights": true,
15
- "layer_replication": null,
16
- "layers_pattern": null,
17
- "layers_to_transform": null,
18
- "loftq_config": {},
19
- "lora_alpha": 128,
20
- "lora_bias": false,
21
- "lora_dropout": 0.05,
22
- "lora_ga_config": null,
23
- "megatron_config": null,
24
- "megatron_core": "megatron.core",
25
- "modules_to_save": null,
26
- "peft_type": "LORA",
27
- "peft_version": "0.19.1",
28
- "qalora_group_size": 16,
29
- "r": 64,
30
- "rank_pattern": {},
31
- "revision": null,
32
- "target_modules": [
33
- "k_proj",
34
- "gate_proj",
35
- "up_proj",
36
- "down_proj",
37
- "o_proj",
38
- "q_proj",
39
- "v_proj"
40
- ],
41
- "target_parameters": null,
42
- "task_type": "CAUSAL_LM",
43
- "trainable_token_indices": null,
44
- "use_bdlora": null,
45
- "use_dora": false,
46
- "use_qalora": false,
47
- "use_rslora": false
48
  }
 
1
+ {
2
+ "alora_invocation_tokens": null,
3
+ "alpha_pattern": {},
4
+ "arrow_config": null,
5
+ "auto_mapping": null,
6
+ "base_model_name_or_path": "mikuhhn1239/qwen3-8b-novel-base-sft",
7
+ "bias": "none",
8
+ "corda_config": null,
9
+ "ensure_weight_tying": false,
10
+ "eva_config": null,
11
+ "exclude_modules": null,
12
+ "fan_in_fan_out": false,
13
+ "inference_mode": true,
14
+ "init_lora_weights": true,
15
+ "layer_replication": null,
16
+ "layers_pattern": null,
17
+ "layers_to_transform": null,
18
+ "loftq_config": {},
19
+ "lora_alpha": 128,
20
+ "lora_bias": false,
21
+ "lora_dropout": 0.05,
22
+ "lora_ga_config": null,
23
+ "megatron_config": null,
24
+ "megatron_core": "megatron.core",
25
+ "modules_to_save": null,
26
+ "peft_type": "LORA",
27
+ "peft_version": "0.19.1",
28
+ "qalora_group_size": 16,
29
+ "r": 64,
30
+ "rank_pattern": {},
31
+ "revision": null,
32
+ "target_modules": [
33
+ "up_proj",
34
+ "v_proj",
35
+ "o_proj",
36
+ "k_proj",
37
+ "q_proj",
38
+ "gate_proj",
39
+ "down_proj"
40
+ ],
41
+ "target_parameters": null,
42
+ "task_type": "CAUSAL_LM",
43
+ "trainable_token_indices": null,
44
+ "use_bdlora": null,
45
+ "use_dora": false,
46
+ "use_qalora": false,
47
+ "use_rslora": false
48
  }
adapter_model.safetensors CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:e1454b00f37e0dce8aacd61601de6982592bc83c9f4ccd9ce98a91b22fae1c40
3
  size 698419728
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:721979bc610ec0d5fb207cc553c4156e91b6714fd82b5e74237a37f5058fdca1
3
  size 698419728