tardigrade-doc commited on
Commit
6088fbb
·
verified ·
1 Parent(s): d809740

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +120 -35
README.md CHANGED
@@ -6,41 +6,126 @@ base_model:
6
  pipeline_tag: fill-mask
7
  ---
8
 
9
- https://zh.wikipedia.org/wiki/%E7%B9%81%E7%B0%A1%E8%BD%89%E6%8F%9B%E4%B8%80%E5%B0%8D%E5%A4%9A%E5%88%97%E8%A1%A8
10
- 使用 繁简转换一对多列表 结合数据内容进行了删减. 实际训练到的字和数据量是
11
- 著 | 著 | 249116
12
- 著 | 着 | 108632
13
- 畫 | 画 | 155935
14
- 畫 | 划 | 180328
15
- 覆 | 覆 | 23468
16
- 覆 | 复 | 183362
17
- 鍊 | 炼 | 11019
18
- 鍊 | 链 | 16014
19
- 乾 | 乾 | 20686
20
- 乾 | 干 | 105431
21
- | | 9361
22
- || 3998
23
- | | 4618
24
- | | 49825
25
-
26
- 数据源:
27
- https://huggingface.co/datasets/tardigrade-doc/t2c-plus
28
- 从以下数据中滤得到
29
- https://huggingface.co/datasets/shaowenchen/wiki_zh
30
- https://huggingface.co/datasets/TigerResearch/pretrain_zh
31
-
32
- base model:
33
- https://huggingface.co/hfl/chinese-roberta-wwm-ext
34
-
35
- onnx 转换工具
36
- https://huggingface.co/spaces/onnx-community/convert-to-onnx
37
-
38
- 使用场景
39
- 在通过opencc t2s处理后, 进一步处理opencc无法处理部分内容,如、着等
40
-
41
- 可优化地方:
42
- 部分训练数据存在错误, 如著和着
43
- 没有针对其他训练数据不足的字做处理
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
 
45
 
46
 
 
6
  pipeline_tag: fill-mask
7
  ---
8
 
9
+ # chinese-ambiguous-chars-model
10
+
11
+ 繁简转换歧义字判断模型,基于 [hfl/chinese-roberta-wwm-ext](https://huggingface.co/hfl/chinese-roberta-wwm-ext) 微调,用于处理 OpenCC 无法正确判断的一繁对多简场景。
12
+
13
+ ---
14
+
15
+ ## 背景
16
+
17
+ 在繁简转换中,存在一个繁体字对应多个简体字的情况(参见[繁简转换一对多列表](https://zh.wikipedia.org/wiki/%E7%B9%81%E7%B0%A1%E8%BD%89%E6%8F%9B%E4%B8%80%E5%B0%8D%E5%A4%9A%E5%88%97%E8%A1%A8))。OpenCC 等基于字典的工具在处理此类歧义时,无法根据上下文做出正确判断。
18
+
19
+ 典型例子:
20
+
21
+ | 繁体 | 语境 | 正确简体 |
22
+ |------|------|----------|
23
+ | | 著名、著作 | 著 |
24
+ | | 走著、看著 | 着 |
25
+ | 乾 | 乾隆、乾坤 | 乾 |
26
+ | 乾 | 乾燥、乾爹 | 干 |
27
+
28
+ 本模型通 MLM(Masked Language Model)的方式,在给定上下文的情况下,预测被遮盖的歧义字应转换为哪个简体字。
29
+
30
+ ---
31
+
32
+ ## 使用场景
33
+
34
+ **推荐用法:OpenCC 初步转换 → 本模型二次修正**
35
+
36
+ ```
37
+ 繁体原文:隨著時間的推移
38
+ ↓ OpenCC t2s
39
+ 随著时间推移 ← 未被正确转换
40
+ ↓ 本模型
41
+ 随着时间推移 ✅
42
+ ```
43
+
44
+ ---
45
+
46
+ ## 训练数据
47
+
48
+ 数据集:[tardigrade-doc/t2c-plus](https://huggingface.co/datasets/tardigrade-doc/t2c-plus)
49
+
50
+ 从以下数据源过滤得到:
51
+ - [shaowenchen/wiki_zh](https://huggingface.co/datasets/shaowenchen/wiki_zh)
52
+ - [TigerResearch/pretrain_zh](https://huggingface.co/datasets/TigerResearch/pretrain_zh)
53
+
54
+ ### 训练字对与数据量
55
+
56
+ 依据[繁简转换一对多列表](https://zh.wikipedia.org/wiki/%E7%B9%81%E7%B0%A1%E8%BD%89%E6%8F%9B%E4%B8%80%E5%B0%8D%E5%A4%9A%E5%88%97%E5%88%97%E8%A1%A8),结合数据分布进行筛选,最终保留以下 7 组歧义字:
57
+
58
+ | 繁体 | 简体 | 数据量 | 说明 |
59
+ |------|------|-------:|------|
60
+ | 著 | 著 | 249,116 | 著名、著作等 |
61
+ | 著 | 着 | 108,632 | 走着、看着等动态助词 |
62
+ | 畫 | 画 | 155,935 | 绘画、画面等 |
63
+ | 畫 | 划 | 180,328 | 划分、规划等 |
64
+ | 覆 | 覆 | 23,468 | 覆盖、倾覆等 |
65
+ | 覆 | 复 | 183,362 | 答复、回复等 |
66
+ | 鍊 | 炼 | 11,019 | 炼铁、锻炼等 |
67
+ | 鍊 | 链 | 16,014 | 链条、链接等 |
68
+ | 乾 | 乾 | 20,686 | 乾隆、乾坤等专有名词 |
69
+ | 乾 | 干 | 105,431 | 干燥、干净等 |
70
+ | 帳 | 帐 | 9,361 | 帐篷、蚊帐等 |
71
+ | 帳 | 账 | 3,998 | 账目、账单等 |
72
+ | 藉 | 藉 | 4,618 | 慰藉、狼藉等 |
73
+ | 藉 | 借 | 5,000 | 借口、凭借等(截断至5000) |
74
+
75
+ ---
76
+
77
+ ## 训练配置
78
+
79
+ | 参数 | 值 |
80
+ |------|----|
81
+ | 基座模型 | hfl/chinese-roberta-wwm-ext |
82
+ | epochs | 3(最优在 epoch 1) |
83
+ | batch size | 8(gradient accumulation 4步,等效32) |
84
+ | learning rate | 2e-5 |
85
+ | max length | 64 tokens |
86
+ | fp16 | ✅ |
87
+ | gradient checkpointing | ✅ |
88
+
89
+ ### 训练结果
90
+
91
+ | Epoch | eval/loss | eval/accuracy |
92
+ |-------|-----------|---------------|
93
+ | 1 | **0.19** ✅ | 93.2% |
94
+ | 2 | 0.20 | 93.6% |
95
+ | 3 | 0.27 | 93.9% |
96
+
97
+ epoch 1 的 eval/loss 最低,为实际使用的权重(`load_best_model_at_end=True`)。
98
+
99
+ ---
100
+
101
+ ## 模型文件
102
+
103
+ | 文件 | 说明 |
104
+ |------|------|
105
+ | `model.safetensors` | PyTorch 模型权重(474MB) |
106
+ | `config.json` | 模型结构配置 |
107
+ | `tokenizer.json` | 分词器(Fast Tokenizer 格式) |
108
+ | `tokenizer_config.json` | 分词器配置 |
109
+
110
+ ONNX 版本另见对应仓库(通过 [convert-to-onnx](https://huggingface.co/spaces/onnx-community/convert-to-onnx) 转换)。
111
+
112
+ ---
113
+
114
+ ## 已知问题与可优化方向
115
+
116
+ - **训练数据存在噪声**:部分简体语料中「著」和「着」存在混用,导致训练时梯度波动较大,可通过 OpenCC 验证 label 合理性进行清洗
117
+ - **覆盖字对有限**:目前仅处理 7 组高频歧义字,其他数据量不足的字对(如「瞭/了」、「閒/间」等)未纳入训练
118
+ - **极端不均衡字对已排除**:如「臺/台」(676362 vs 0)、「甦/苏」(215855 vs 0)等,因简体候选字在语料中几乎不存在,已放弃用模型处理,建议直接用 OpenCC 词典映射
119
+
120
+ ---
121
+
122
+ ## 相关链接
123
+
124
+ - 基座模型:[hfl/chinese-roberta-wwm-ext](https://huggingface.co/hfl/chinese-roberta-wwm-ext)
125
+ - 训练数据集:[tardigrade-doc/t2c-plus](https://huggingface.co/datasets/tardigrade-doc/t2c-plus)
126
+ - ONNX 转换工具:[onnx-community/convert-to-onnx](https://huggingface.co/spaces/onnx-community/convert-to-onnx)
127
+ - 参考资料:[繁简转换一对多列表 - 维基百科](https://zh.wikipedia.org/wiki/%E7%B9%81%E7%B0%A1%E8%BD%89%E6%8F%9B%E4%B8%80%E5%B0%8D%E5%A4%9A%E5%88%97%E8%A1%A8)
128
+
129
 
130
 
131