Safetensors
Chinese
ViperEk commited on
Commit
ec9fef8
·
1 Parent(s): a8750b0

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +10 -8
README.md CHANGED
@@ -14,11 +14,11 @@ license: apache-2.0
14
 
15
  代码部分在:https://github.com/ViperEkura/KHAOSZ/tree/main
16
 
17
- 代码遵循 apache-2.0 协议, 使用时请注明代码来源而且不得用于商业用途
18
 
19
  - **设备选择**:当前代码默认使用CUDA进行训练
20
  - **性能优化**:代码中设置了`dtype=torch.bfloat16`来启用训练,这有助于提高训练速度和降低显存消耗,但需确保硬件支持此特性。
21
- - **语言支持**:该模型目前仅仅在中文数据集上训练, 因此通过英文对话可能出现问题, 但是训练tokenzier 的时候加入了英文文段, 也可以解码英文token
22
 
23
  ### 1. 如何训练
24
 
@@ -57,6 +57,8 @@ python train.py \
57
 
58
  --batch_size:指定每个批次的样本数量。
59
 
 
 
60
  --max_lr: 指定过程中最大的学习率(学习率采用的是预热 + 余弦衰减)
61
 
62
  --n_iter_ckpt:指定每多少迭代次数保存一次检查点。
@@ -67,7 +69,7 @@ python train.py \
67
 
68
  --resume_dir: 恢复训练的checkpoint路径
69
 
70
- 训练过程中,您可以在终端中查看训练日志,了解训练进度、损失值等信息。
71
  检查点文件会保存在指定的检查点目录中,您可以使用这些检查点文件来恢复训练或进行评估。
72
 
73
 
@@ -93,7 +95,6 @@ while True:
93
  history=histroy,
94
  temperature=0.95,
95
  top_p=0.9,
96
- top_K=50,
97
  ):
98
  print(response[response_size:], end="")
99
  response_size = len(response)
@@ -121,14 +122,15 @@ while True:
121
  history=histroy,
122
  temperature=0.95,
123
  top_p=0.9,
124
- top_K=50,
125
  )
126
  print(response)
127
  ```
128
 
129
  ### 其他问题
130
- 本模型基于18层的transformer,参数大致设置如`config.json`,参数大小为3.3亿(0.33b
 
 
131
 
132
- 模型采用权重绑定, embedding层的权重和最后线性层的权重是共享的(比较小的模型都采用这种方式节省参数大小, 因为不采用权重绑定, embedding层假设有14000单词, 将会占用 14000 * 1024 = 143,200,000 参数 , 也就是 0.14b 参数, 因为词表会占用太多的参数, 所以采用权重绑定是小模型的通用方法)
133
 
134
- 另外, 模型参数比较小, 生成速度快, 但是由于训练数据只使用了7gb 的中文数据集, 所以存在生成文段比较混乱的情况, 作为个聊天机器比较适合, 但是对于没有训练过的知识点,会存在胡言乱语的问题
 
14
 
15
  代码部分在:https://github.com/ViperEkura/KHAOSZ/tree/main
16
 
17
+ 代码遵循 apache-2.0 协议, 使用时请注明代码来源
18
 
19
  - **设备选择**:当前代码默认使用CUDA进行训练
20
  - **性能优化**:代码中设置了`dtype=torch.bfloat16`来启用训练,这有助于提高训练速度和降低显存消耗,但需确保硬件支持此特性。
21
+ - **语言支持**:该模型目前支持在中文和英文数据集上训练, 在训练分词器时没有加入其他语言的文本,BBPE分词器不会存在OOV问题,但是对别的语言支持比较差
22
 
23
  ### 1. 如何训练
24
 
 
57
 
58
  --batch_size:指定每个批次的样本数量。
59
 
60
+ --n_iter_step: 多少batch迭代一步
61
+
62
  --max_lr: 指定过程中最大的学习率(学习率采用的是预热 + 余弦衰减)
63
 
64
  --n_iter_ckpt:指定每多少迭代次数保存一次检查点。
 
69
 
70
  --resume_dir: 恢复训练的checkpoint路径
71
 
72
+ 训练过程中,您可以在终端中查看训练日志(train_log.txt),了解训练进度、损失值等信息。
73
  检查点文件会保存在指定的检查点目录中,您可以使用这些检查点文件来恢复训练或进行评估。
74
 
75
 
 
95
  history=histroy,
96
  temperature=0.95,
97
  top_p=0.9,
 
98
  ):
99
  print(response[response_size:], end="")
100
  response_size = len(response)
 
122
  history=histroy,
123
  temperature=0.95,
124
  top_p=0.9,
 
125
  )
126
  print(response)
127
  ```
128
 
129
  ### 其他问题
130
+ 本模型基于20层的transformer,参数大致设置如`config.json`,参数大小为4亿(0.40b
131
+
132
+ 模型采用权重绑定, embedding层的权重和最后线性层的权重是共享的(比较小的模型都采用这种方式节省参数大小, 因为不采用权重绑定, embedding层假设有10000单词, 将会占用 10000 * 1024 = 102,400,000 参数, 也就是 0.1b 参数, 因为词表会占用太多的参数, 所以采用权重绑定是小模型的通用方法)
133
 
134
+ 由于模型参数相对较少,在某些任务上可能会出现性能不足的情况,比如对复杂语言现象的理解能力可能不如更大规模的模型。此外,较小的模型也可能更容易过拟合训练数据,导致泛化能力较差。不过,这也意味着该模型可以在较低配置的硬件上运行,并且训练时间相对较短。
135
 
136
+ 另外目前给定的权重仅仅完成了 preTrain + SFT (也就是说训练流程并非完整的), 之后在完成DPO/PPO 训练之后会更新权重和readme