mikuhhn1239 commited on
Commit
a624018
·
verified ·
1 Parent(s): aec6973

Upload folder using huggingface_hub

Browse files
Files changed (4) hide show
  1. README.md +20 -53
  2. adapter_config.json +47 -47
  3. adapter_model.safetensors +1 -1
  4. tokenizer.json +1 -1
README.md CHANGED
@@ -3,43 +3,28 @@ language: zh
3
  license: apache-2.0
4
  library_name: peft
5
  pipeline_tag: text-generation
6
- tags:
7
- - qwen3
8
- - lora
9
- - narrative-parsing
10
- - novel-analysis
11
- - chinese-novels
12
- base_model: mikuhhn1239/qwen3-8b-novel-base-sft
13
  ---
14
 
15
- # Qwen3-8B Narrative Parsing LoRA
16
 
17
- **All Novel Can Be Galgame** 工作台 — Agent 1:叙事解析。
18
 
19
- 将小说文本切分为叙事单元并标注类型。
20
 
21
- ## 任务
22
 
23
- 输入:中文小说片段
24
- 输出:`[{unit_id, text, type}]`
 
 
 
 
 
 
25
 
26
- 五种类型:
27
- - `dialogue` — 角色对话
28
- - `narration` — 一般叙述
29
- - `thought` — 内心活动
30
- - `action` — 动作/行为
31
- - `scene_description` — 环境描写
32
-
33
- ## 示例
34
-
35
- ```
36
- 输入: "你怎么来了?"她愣了一下。我站在门口,雨水顺着伞沿滴落。
37
-
38
- 输出:
39
- u1: "你怎么来了?" → dialogue
40
- u2: 她愣了一下。 → action
41
- u3: 我站在门口,雨水... → narration
42
- ```
43
 
44
  ## 加载
45
 
@@ -47,30 +32,12 @@ base_model: mikuhhn1239/qwen3-8b-novel-base-sft
47
  from transformers import AutoModelForCausalLM
48
  from peft import PeftModel
49
 
50
- base = AutoModelForCausalLM.from_pretrained(
51
- "mikuhhn1239/qwen3-8b-novel-base-sft",
52
- torch_dtype="auto", device_map="auto",
53
- )
54
- model = PeftModel.from_pretrained(
55
- base, "mikuhhn1239/qwen3-8b-narrative-parsing-lora"
56
- ).merge_and_unload()
57
  ```
58
 
59
- ## 版本历史
60
-
61
- | 版本 | JSON 解析率 | 类型准确率 | 比对单元 | 说明 |
62
- |------|-----------|-----------|---------|------|
63
- | v1 | 14.3% | 6.2% | 16 | 端到端(切分+分类+复制原文),68条数据 |
64
- | v2 | 57.1% | 25.0% | 92 | v2 简化格式(只分类),扩标数据 |
65
- | v3 | 待训 | 待训 | — | 388条清洁数据,统一System Prompt |
66
-
67
- > v1: 需同时做切分+分类+复制原文 → 过难
68
- > v2: 只输出 unit_id + type → JSON解析从14%→57%,类型准确从6%→25%
69
- > v3: 388条训练数据 + 更高质量标注 → 预期>70%类型准确率
70
-
71
  ## 训练
72
 
73
- - 基座:`mikuhhn1239/qwen3-8b-novel-base-sft`
74
- - 方法:LoRA (r=64, alpha=128, dropout=0.05)
75
- - 数据:15 本标注小说的 68 条训练样本 (v1 格式)
76
- - 硬件:A800
 
3
  license: apache-2.0
4
  library_name: peft
5
  pipeline_tag: text-generation
6
+ tags: [qwen3, lora, narrative-parsing, novel-analysis, chinese-novels]
7
+ base_model: Qwen/Qwen3-8B-Instruct
 
 
 
 
 
8
  ---
9
 
10
+ # Qwen3-8B Narrative Type Classification LoRA
11
 
12
+ **All Novel Can Be Galgame** — Agent 1: 叙事单元分类 (v3.1)
13
 
14
+ 将已切分的叙事单元标注为 dialogue / narration / thought / action / scene_description。
15
 
16
+ ## 版本演进
17
 
18
+ | 版本 | 数据 | epochs | LR | JSON解析 | 类型准确率 | 说明 |
19
+ |------|------|--------|-----|---------|-----------|------|
20
+ | 零基座 | — | — | — | 0% | 0% | Qwen3-8B原始完全不会 |
21
+ | +Stage1全参 | — | — | — | 0% | 0% | 读完669本小说也不会 |
22
+ | v1 | 68 | 3 | 2e-4 | 14.3% | 6.2% | 端到端(切分+分类+复制)过难 |
23
+ | v2 | ~140 | 3 | 2e-4 | 57.1% | 25.0% | 简化格式只分类 |
24
+ | v3 | 310 | 3 | 2e-4 | 2.6% | **63.6%** | 清洁数据+统一Prompt |
25
+ | **v3.1** | **310** | **5** | **1e-4** | **2.6%** | **63.6%** | **当前最佳** |
26
 
27
+ > 类型准确率 63.6% 但 JSON 解析 2.6% 是输出格式问题(引号/换行符转义),非判断错误。下版修复格式。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
 
29
  ## 加载
30
 
 
32
  from transformers import AutoModelForCausalLM
33
  from peft import PeftModel
34
 
35
+ base = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-8B-Instruct", torch_dtype="auto", device_map="auto")
36
+ model = PeftModel.from_pretrained(base, "mikuhhn1239/qwen3-8b-narrative-parsing-lora").merge_and_unload()
 
 
 
 
 
37
  ```
38
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  ## 训练
40
 
41
+ - 基座: Qwen3-8B-Instruct | 方法: LoRA r=64 α=128
42
+ - 数据: 388条 (310 train / 39 val / 39 test)
43
+ - 格式: 只输出 `{"labels": [{"unit_id","type"}]}`,不复制原文
 
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": "/workspace/project-nas-1000073/linyupeng/data/checkpoints/stage1-base-sft/final",
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
- "o_proj",
35
- "up_proj",
36
- "v_proj",
37
- "q_proj",
38
- "down_proj",
39
- "gate_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": "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
  }
adapter_model.safetensors CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:0991c5b27e8772ad9781a30560ab7eb5a3400f2f1839e413cd86db0f20a4fd2f
3
  size 698419728
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e1454b00f37e0dce8aacd61601de6982592bc83c9f4ccd9ce98a91b22fae1c40
3
  size 698419728
tokenizer.json CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:c0acdaba32b920d640afb36af4396c91974e074735636e4016d17a8ed9c03730
3
  size 11422753
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2f1298e298f2fe0059aba46f037697a339ccba45a1908780ce8ca14b45582f23
3
  size 11422753