Safetensors
Chinese
ViperEk commited on
Commit
cd767ee
·
verified ·
1 Parent(s): 0e0740c

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +15 -14
README.md CHANGED
@@ -14,20 +14,18 @@ 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
- - **语言支持**:该模型目前支持在中文和英文数据集上训练, 在训练分词器时没有加入其他语言的文本,BBPE分词器不会存在OOV问题,但是对别的语言支持比较差
22
-
23
- ### 1. 如何训练
24
 
25
  要训练这个Transformer模型,您可以按照以下步骤进行操作:
26
 
27
  (1). 准备数据集:
28
 
29
  确保您的数据集位于一个指定的根目录下。数据集应包含用于训练的文本文件,这些文件可以是中文、英文或两者混合。
30
- 数据文件的格式应与模型的输入要求一致,最好是经过tokenizer处理过后的token_id
31
 
32
  (2).安装依赖:
33
 
@@ -43,6 +41,7 @@ conda env create -f environment.yml --name env_name
43
 
44
  ```bash
45
  python train.py \
 
46
  --data_root_path=/path/to/dataset \
47
  --n_epoch=5 \
48
  --batch_size=8 \
@@ -50,6 +49,7 @@ python train.py \
50
  --n_iter_ckpt=10000 \
51
  --ckpt_dir checkpoints
52
  ```
 
53
 
54
  --data_root_path:指定数据集的根目录路径。
55
 
@@ -73,7 +73,7 @@ python train.py \
73
  检查点文件会保存在指定的检查点目录中,您可以使用这些检查点文件来恢复训练或进行评估。
74
 
75
 
76
- ### 2. 如何使用
77
  如果您想使用这个模型进行对话聊天, 请打开 chat.py 文件,并运行它。
78
  或者, 您可以使用流式输出接口/对话生成接口完成对话
79
 
@@ -93,12 +93,12 @@ while True:
93
  for response, histroy in model.stream_generate(
94
  query=query,
95
  history=histroy,
96
- temperature=0.95,
97
- top_p=0.9,
 
98
  ):
99
  print(response[response_size:], end="")
100
  response_size = len(response)
101
- print()
102
 
103
  ```
104
 
@@ -120,13 +120,14 @@ while True:
120
  response = model.generate(
121
  query=query,
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 参数, 因为词表会占用太多的参数, 所以采用权重绑定是小模型的通用方法)
 
14
 
15
  代码部分在:https://github.com/ViperEkura/KHAOSZ/tree/main
16
 
17
+ - **📊设备选择**:当前代码默认使用CUDA进行训练
18
+ - **🌐性能优化**:代码中设置了`dtype=torch.bfloat16`来启用训练,这有助于提高训练速度和降低显存消耗,但需确保硬件支持此特性。
19
+ - **🤖语言支持**:该模型目前支持在中文和英文数据集上训练, 在训练分词器时没有加入其他语言的文本,BBPE分词器不会存在OOV问题,但是对别的语言支持比较差
20
 
21
+ ## 📌如何训练
 
 
 
 
22
 
23
  要训练这个Transformer模型,您可以按照以下步骤进行操作:
24
 
25
  (1). 准备数据集:
26
 
27
  确保您的数据集位于一个指定的根目录下。数据集应包含用于训练的文本文件,这些文件可以是中文、英文或两者混合。
28
+ 数据文件的格式应与模型的输入要求一致,最好是经过tokenizer处理过后的token_id, 为了节省内存占用采用torch.Tensor 存储id,(如果使用python的list, 在读取训练数据的时候内存占用大概是原来的两倍以上,因为python似乎是默认采用64位数精度存储的数据, 但是实际上int32足够)
29
 
30
  (2).安装依赖:
31
 
 
41
 
42
  ```bash
43
  python train.py \
44
+ --train_type=train_type[seq, sft, dpo] \
45
  --data_root_path=/path/to/dataset \
46
  --n_epoch=5 \
47
  --batch_size=8 \
 
49
  --n_iter_ckpt=10000 \
50
  --ckpt_dir checkpoints
51
  ```
52
+ --train_type: 指定训练的类型,可选值有seq, sft, dpo
53
 
54
  --data_root_path:指定数据集的根目录路径。
55
 
 
73
  检查点文件会保存在指定的检查点目录中,您可以使用这些检查点文件来恢复训练或进行评估。
74
 
75
 
76
+ ## 👉如何使用
77
  如果您想使用这个模型进行对话聊天, 请打开 chat.py 文件,并运行它。
78
  或者, 您可以使用流式输出接口/对话生成接口完成对话
79
 
 
93
  for response, histroy in model.stream_generate(
94
  query=query,
95
  history=histroy,
96
+ temperature=0.85,
97
+ top_p=0.95,
98
+ top_k=50
99
  ):
100
  print(response[response_size:], end="")
101
  response_size = len(response)
 
102
 
103
  ```
104
 
 
120
  response = model.generate(
121
  query=query,
122
  history=histroy,
123
+ temperature=0.85,
124
+ top_p=0.95,
125
+ top_k=50
126
  )
127
  print(response)
128
  ```
129
 
130
+ ## 📌其他问题
131
  本模型基于20层的transformer,参数大致设置如`config.json`,参数大小为4亿(0.40b)
132
 
133
  模型采用权重绑定, embedding层的权重和最后线性层的权重是共享的(比较小的模型都采用这种方式节省参数大小, 因为不采用权重绑定, embedding层假设有10000单词, 将会占用 10000 * 1024 = 102,400,000 参数, 也就是 0.1b 参数, 因为词表会占用太多的参数, 所以采用权重绑定是小模型的通用方法)